On Fri, 28 Mar 2008 18:32:47 +0100, Boris Zbarsky <[EMAIL PROTECTED]> wrote:
Bjoern Hoehrmann wrote:
What is the correct behavior if a lookupNamespaceURI call moves nodes
between documents? In particular, what is the correct behavior is the
Element node the call is being made on is moved to a different
document during the lookupNamespaceURI call (using adoptNode)?
Do I understand correctly that this is something scripts should not do?
Correct. I think it's worth taking the HTML5 approach of defining both
what documents are conforming and what to do with the non-conforming
ones....
Agree.
I would be rather reluctant to define this so long as we don't also de-
fine when and how many times the resolver is invoked, since depending on
that, the results would not necessarily become more predictable.
Indeed.
Sorry, I didn't understand Björn's logic in that quote.
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".
Would it be acceptable to include a general provision to the effect that
if an implementation detects that resolvers manipulate documents in some
undesirable way, they may throw an exception?
I would be happy with that, yes.
I would not. It sounds like a vague statement that will cause
incompatibilities because implementors will make different choices. I'd
rather insert this somewhere suitable:
"If the custom lookupNamespaceURI function moves nodes between documents,
the implementation trying to use the NSResolver MUST throw an error."
--
Hallvord R. M. Steen
Core QA JavaScript tester, Opera Software
http://www.opera.com/
Opera - simply the best Internet experience