Re: [selectors-api] Test Suite Missing tests for Namespace Selectors

Alexey Proskuryakov wrote:
> This is actually a difference in createElementNS(null, "p") vs. 
> createElementNS("", "p") behavior. I don't know whose bug it is, but in 
> Firefox and Opera, empty and null namespace arguments both result in 
> null namespace for the created element.

Interesting question.  DOM 2 Core has this to say (section 1.1.8, XML 
Namespaces):

   Note that because the DOM does no lexical checking, the empty
   string will be treated as a real namespace URI in DOM Level 2
   methods. Applications must use the value null as the namespaceURI
   parameter for methods if they wish to have no namespace.

But DOM 3 Core (which I would assume supercedes that) says (section 
1.3.3, XML Namespaces):

   In programming languages where empty strings can be differentiated
   from null, empty strings, when given as a namespace URI, are
   converted to null. This is true even though the DOM does no lexical
   checking of URIs.

At the same time, the DOM 3 Core definition of createElementNS says:

   Per [XML Namespaces], applications must use the value null as the
   namespaceURI parameter for methods if they wish to have no
   namespace.

Make of this what you will.  But as I recall, the change in the "XML 
Namespaces" section was meant precisely to ensure that in JS passing "" 
for all namespace URIs would work exactly like passing null.

Sounds like webkit either implements createElementNS per DOM Core 2 or 
has a buggy DOM Core 3 impl.

In either case, the test should probably pass null, not "".

-Boris

Received on Thursday, 12 March 2009 15:08:57 UTC