Re: [selectors-api] NSResolver moving nodes between documents

* Hallvord R. M. Steen wrote:
>What I've understood: it's proposed that if the custom lookupNamespaceURI  
>function moves nodes between documents, the implementation trying to use  
>the NSResolver (may|must) throw an error. I don't see why we can't specify  
>that unless we specify "when and how many times the resolver is invoked".

That could be done, but it would have little benefit at a high cost
(more specification text to read for everyone, more tests to write,
implementations cannot choose some better behavior, ... versus more
consistent implementation behavior in a rather hypothetical case of
incorrect code).

>"If the custom lookupNamespaceURI function moves nodes between documents,  
>the implementation trying to use the NSResolver MUST throw an error."

If there should be a rule for mutations of the document from inside the
namespace resolver, it should cover all the mutations, not pick some un-
usual case. Further note that implementations would still differ, e.g.,
consider the selector

  a|b > c|d > :not(*|*)

Some implementations might resolve a,c, others c,a, and yet others none
of the prefixes because they immediately saw it does not match anything.
So I would find it preferable, if this needs to be addressed, that the
prefix resolution is made predictable, so that all mutations from inside
the resolver become predictable, or that the DOM is locked while the
query is evaluated, or that all mutations result in an error, not just
node movements between documents, but I don't think this needs to be de-
fined at all.
-- 
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 

Received on Monday, 14 April 2008 20:23:08 UTC