Issue 13102: xml.dom.minidom does not support default namespaces (original) (raw)
When using getAttributeNS, attributes with no namespace should be considered as having the default namespace for that scope. See examples in http://www.w3.org/TR/REC-xml-names/#defaulting. Python's xml.dom.minidom will always set the namespace to None for attributes that have no namespace prefix.
I've attached a test program to illustrate this issue in action. The output I get is: [((None, u'attr'), u'value1')] [(('http://www.w3.org/2000/xmlns/', 'xmlns'), u'http://path/to/ns2#'), ((None, u'attr'), u'value2')] [((u'http://path/to/ns2#', u'attr'), u'value3')] Successfully got child3 attr value
In the first two cases the namespaceURI is None, but it should be set to the default namespace specified in the root element. I believe this problem occurs with all *NS functions. Not tested in 3.x.
Please read the link which you posted. Quoting the second paragraph, second sentence:
"Default namespace declarations do not apply directly to attribute names;"
and from the third paragraph, third sentence:
"The namespace name for an unprefixed attribute name always has no value."
Therefore minidom is conformant by having None as the namespace-uri for unprefixed attribute names.