[XML-SIG] question about setAttributeNS()

Keith Beattie KSBeattie at lbl.gov
Thu Jan 8 19:56:02 EST 2004


Andrew Clover wrote:
> The only problem comes when you serialise this. Most Python implementations
> don't automatically write the xmlns:new="newNS" attribute you would need for
> a serialised version to be namespace-well-formed. And that's perfectly
> reasonable because the standard they are based on (DOM Level 2 Core) has
> absolutely nothing to say about how documents should be serialised.

Ugh. I guess I was making the (apparently unsafe) assumption that serializers 
would produce well-formed xml.  So, according to DOM Level 2 Core, serializers 
could always produce the empty string and be correct?  :)

>>This is different than createElementNS() which adds the namespace
>>attribute for you, when creating a new element in a new namespace.
> 
> 
> ? This is not part of the standard DOM API, and I know of no Python
> implementation that does it. What software are you using?

4Suite.  I thought minidom did this too, but upon checking, it doesn't and 
works as you describe (though as you point out this is a 'feature' of the 
serializers and not createElementNS (which is part of DOM Level 2 spec 
certainly)) Here's a 4Suite example:

$ python
Python 2.3.3 (#1, Dec 24 2003, 01:29:00)
[GCC 2.95.4 20020320 [FreeBSD]] on freebsd4
Type "help", "copyright", "credits" or "license" for more information.
 >>> from Ft.Xml import Domlette
 >>> dom = Domlette.NonvalidatingReader.parseString("<X/>", "memory://")
 >>> el = dom.createElementNS("http://example.org/ns1", "ns1:Y")
 >>> Domlette.Print(el)
<ns1:Y xmlns:ns1="http://example.org/ns1"/>>>>


Thanks,
ksb




More information about the XML-SIG mailing list