@@ -68,10 +68,13 @@ [super dealloc]; } @end @implementation OFXMLElement +@synthesize name = _name, namespace = _namespace; +@synthesize defaultNamespace = _defaultNamespace; + + (void)initialize { if (self == [OFXMLElement class]) { charactersClass = [OFXMLCharacters class]; CDATAClass = [OFXMLCDATA class]; @@ -223,11 +226,11 @@ [parser setDelegate: builder]; [builder setDelegate: delegate]; [parser parseString: string]; - if (![parser finishedParsing]) + if (![parser hasFinishedParsing]) @throw [OFMalformedXMLException exceptionWithParser: parser]; self = [delegate->_element retain]; objc_autoreleasePoolPop(pool); @@ -255,11 +258,11 @@ [parser setDelegate: builder]; [builder setDelegate: delegate]; [parser parseFile: path]; - if (![parser finishedParsing]) + if (![parser hasFinishedParsing]) @throw [OFMalformedXMLException exceptionWithParser: parser]; self = [delegate->_element retain]; objc_autoreleasePoolPop(pool); @@ -367,46 +370,25 @@ [_children release]; [super dealloc]; } -- (void)setName: (OFString*)name -{ - if (name == nil) - @throw [OFInvalidArgumentException exception]; - - OF_SETTER(_name, name, true, 1) -} - -- (OFString*)name -{ - OF_GETTER(_name, true) -} - -- (void)setNamespace: (OFString*)namespace -{ - OF_SETTER(_namespace, namespace, true, 1) -} - -- (OFString*)namespace -{ - OF_GETTER(_namespace, true) -} - - (OFArray*)attributes { - OF_GETTER(_attributes, true) + return [[_attributes copy] autorelease]; } - (void)setChildren: (OFArray*)children { - OF_SETTER(_children, children, true, 2) + OFArray *old = _children; + _children = [children copy]; + [old release]; } - (OFArray*)children { - OF_GETTER(_children, true) + return [[_children copy] autorelease]; } - (void)setStringValue: (OFString*)stringValue { void *pool = objc_autoreleasePoolPush(); @@ -909,20 +891,10 @@ [self addAttributeWithName: prefix namespace: @"http://www.w3.org/2000/xmlns/" stringValue: namespace]; } -- (OFString*)defaultNamespace -{ - OF_GETTER(_defaultNamespace, true) -} - -- (void)setDefaultNamespace: (OFString*)defaultNamespace -{ - OF_SETTER(_defaultNamespace, defaultNamespace, true, 1) -} - - (void)addChild: (OFXMLNode*)child { if ([child isKindOfClass: [OFXMLAttribute class]]) @throw [OFInvalidArgumentException exception];