From c109e1f02ebb37e13670968bbbbb3bc46ae72284 Mon Sep 17 00:00:00 2001 From: Blake Watters Date: Tue, 28 Aug 2012 21:02:06 -0400 Subject: [PATCH] Drop bundled XMLReader dependency --- Vendor/XMLReader/LICENCE | 17 ---- Vendor/XMLReader/XMLReader.h | 29 ------ Vendor/XMLReader/XMLReader.m | 186 ----------------------------------- 3 files changed, 232 deletions(-) delete mode 100644 Vendor/XMLReader/LICENCE delete mode 100644 Vendor/XMLReader/XMLReader.h delete mode 100644 Vendor/XMLReader/XMLReader.m diff --git a/Vendor/XMLReader/LICENCE b/Vendor/XMLReader/LICENCE deleted file mode 100644 index e14c3714..00000000 --- a/Vendor/XMLReader/LICENCE +++ /dev/null @@ -1,17 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/Vendor/XMLReader/XMLReader.h b/Vendor/XMLReader/XMLReader.h deleted file mode 100644 index 958db122..00000000 --- a/Vendor/XMLReader/XMLReader.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// XMLReader.h -// -// Created by Troy on 9/18/10. -// Updated by Antoine Marcadet on 9/23/11. -// - -#import - -enum { - XMLReaderOptionsProcessNamespaces = 1 << 0, // Specifies whether the receiver reports the namespace and the qualified name of an element. - XMLReaderOptionsReportNamespacePrefixes = 1 << 1, // Specifies whether the receiver reports the scope of namespace declarations. - XMLReaderOptionsResolveExternalEntities = 1 << 2, // Specifies whether the receiver reports declarations of external entities. -}; -typedef NSUInteger XMLReaderOptions; - -@interface XMLReader : NSObject -{ - NSMutableArray *dictionaryStack; - NSMutableString *textInProgress; - NSError * __autoreleasing *errorPointer; -} - -+ (NSDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)errorPointer; -+ (NSDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)errorPointer; -+ (NSDictionary *)dictionaryForXMLData:(NSData *)data options:(XMLReaderOptions)options error:(NSError **)errorPointer; -+ (NSDictionary *)dictionaryForXMLString:(NSString *)string options:(XMLReaderOptions)options error:(NSError **)errorPointer; - -@end diff --git a/Vendor/XMLReader/XMLReader.m b/Vendor/XMLReader/XMLReader.m deleted file mode 100644 index 9616fb03..00000000 --- a/Vendor/XMLReader/XMLReader.m +++ /dev/null @@ -1,186 +0,0 @@ -// -// XMLReader.m -// -// Created by Troy on 9/18/10. -// Updated by Antoine Marcadet on 9/23/11. -// - -#import "XMLReader.h" - -NSString *const kXMLReaderTextNodeKey = @"text"; -NSString *const kXMLReaderAttributePrefix = @"@"; - -@interface XMLReader () - -- (id)initWithError:(NSError **)error; -- (NSDictionary *)objectWithData:(NSData *)data options:(XMLReaderOptions)options; - -@end - - -@implementation XMLReader - -#pragma mark - -#pragma mark Public methods - -+ (NSDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)error -{ - XMLReader *reader = [[XMLReader alloc] initWithError:error]; - NSDictionary *rootDictionary = [reader objectWithData:data options:0]; - [reader release]; - return rootDictionary; -} - -+ (NSDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)error -{ - NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; - return [XMLReader dictionaryForXMLData:data error:error]; -} - -+ (NSDictionary *)dictionaryForXMLData:(NSData *)data options:(XMLReaderOptions)options error:(NSError **)error -{ - XMLReader *reader = [[XMLReader alloc] initWithError:error]; - NSDictionary *rootDictionary = [reader objectWithData:data options:options]; - [reader release]; - return rootDictionary; -} - -+ (NSDictionary *)dictionaryForXMLString:(NSString *)string options:(XMLReaderOptions)options error:(NSError **)error -{ - NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; - return [XMLReader dictionaryForXMLData:data options:options error:error]; -} - -#pragma mark - -#pragma mark Parsing - -- (id)initWithError:(NSError **)error -{ - if (self = [super init]) - { - errorPointer = error; - } - return self; -} - -- (void)dealloc -{ - [dictionaryStack release]; - [textInProgress release]; - [super dealloc]; -} - -- (NSDictionary *)objectWithData:(NSData *)data options:(XMLReaderOptions)options -{ - // Clear out any old data - [dictionaryStack release]; - [textInProgress release]; - - dictionaryStack = [[NSMutableArray alloc] init]; - textInProgress = [[NSMutableString alloc] init]; - - // Initialize the stack with a fresh dictionary - [dictionaryStack addObject:[NSMutableDictionary dictionary]]; - - // Parse the XML - NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; - - [parser setShouldProcessNamespaces:(options & XMLReaderOptionsProcessNamespaces)]; - [parser setShouldReportNamespacePrefixes:(options & XMLReaderOptionsReportNamespacePrefixes)]; - [parser setShouldResolveExternalEntities:(options & XMLReaderOptionsResolveExternalEntities)]; - - parser.delegate = self; - BOOL success = [parser parse]; - - [parser release]; - - // Return the stack's root dictionary on success - if (success) - { - NSDictionary *resultDict = [dictionaryStack objectAtIndex:0]; - return resultDict; - } - - return nil; -} - - -#pragma mark - -#pragma mark NSXMLParserDelegate methods - -- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict -{ - // Get the dictionary for the current level in the stack - NSMutableDictionary *parentDict = [dictionaryStack lastObject]; - - // Create the child dictionary for the new element, and initilaize it with the attributes - NSMutableDictionary *childDict = [NSMutableDictionary dictionary]; - [childDict addEntriesFromDictionary:attributeDict]; - - // If there's already an item for this key, it means we need to create an array - id existingValue = [parentDict objectForKey:elementName]; - if (existingValue) - { - NSMutableArray *array = nil; - if ([existingValue isKindOfClass:[NSMutableArray class]]) - { - // The array exists, so use it - array = (NSMutableArray *) existingValue; - } - else - { - // Create an array if it doesn't exist - array = [NSMutableArray array]; - [array addObject:existingValue]; - - // Replace the child dictionary with an array of children dictionaries - [parentDict setObject:array forKey:elementName]; - } - - // Add the new child dictionary to the array - [array addObject:childDict]; - } - else - { - // No existing value, so update the dictionary - [parentDict setObject:childDict forKey:elementName]; - } - - // Update the stack - [dictionaryStack addObject:childDict]; -} - -- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName -{ - // Update the parent dict with text info - NSMutableDictionary *dictInProgress = [dictionaryStack lastObject]; - - // Set the text property - if ([textInProgress length] > 0) - { - // trim after concatenating - NSString *trimmedString = [textInProgress stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; - [dictInProgress setObject:[[trimmedString mutableCopy] autorelease] forKey:kXMLReaderTextNodeKey]; - - // Reset the text - [textInProgress release]; - textInProgress = [[NSMutableString alloc] init]; - } - - // Pop the current dict - [dictionaryStack removeLastObject]; -} - -- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string -{ - // Build the text value - [textInProgress appendString:string]; -} - -- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError -{ - // Set the error pointer to the parser's error object - *errorPointer = parseError; -} - -@end