> This is why I think it is best to leave them alone (i.e., having them be
> null) when namespaces processing is off.
And that, in turn, is why I don't think anyone should be using non-namespace-aware tools and APIs these days. Mixing namespaced and non-namespaced code is almost guaranteed to hit this sort of edge case and cause breakage. With namespace support turned on, foo:bar:baz _is_ an illegal QName and can be rejected; with it turned off, it could be left over from a pre-Namespaces experiment in namespace design (XML 1.0 reserved colon for that purpose but said nothing about how many colons could appear) and is technically legal.
Actually, my own preference would be to say that foo:bar:baz should be declared a deprecated syntax so we can stop accepting it. But convincing the W3C to go along with that would be a major battle; there's always _someone_ who is deliberately abusing a feature like this and will fight for the right to continue doing so.
______________________________________
Joe Kesselman / IBM Research
