* Source/NSXMLDocument.m (-URI, -setURI:): Specific implementation.

* Source/NSXMLPrivate.h: Remove URI ivar.
* Source/NSXMLElement.m,
* Source/NSXMLNode.m: Full support for namespaces.
* Tests/base/NSXMLNode/namespace.m: Test code borrowed from
Google data project.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34972 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2012-03-22 09:34:54 +00:00
parent 818d2ee2ae
commit 2079071716
6 changed files with 517 additions and 79 deletions

View file

@ -280,15 +280,42 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
internal->node->standalone = standalone;
}
- (void) setURI: (NSString*)URI
{
xmlDocPtr node = internal->node;
if (node->URL != NULL)
{
xmlFree((xmlChar *)node->URL);
}
node->URL = XMLStringCopy(URI);
}
- (NSString*) URI
{
xmlDocPtr node = internal->node;
if (node->URL)
{
return StringFromXMLStringPtr(node->URL);
}
else
{
return nil;
}
}
- (void) setVersion: (NSString*)version
{
if ([version isEqualToString: @"1.0"] || [version isEqualToString: @"1.1"])
{
if (internal->node->version != NULL)
xmlDocPtr node = internal->node;
if (node->version != NULL)
{
xmlFree((xmlChar *)internal->node->version);
xmlFree((xmlChar *)node->version);
}
internal->node->version = XMLStringCopy(version);
node->version = XMLStringCopy(version);
}
else
{
@ -299,8 +326,10 @@ GS_PRIVATE_INTERNAL(NSXMLDocument)
- (NSString*) version
{
if (internal->node->version)
return StringFromXMLStringPtr(internal->node->version);
xmlDocPtr node = internal->node;
if (node->version)
return StringFromXMLStringPtr(node->version);
else
return @"1.0";
}