W3C home > Mailing lists > Public > public-webapi@w3.org > April 2008

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

From: Hallvord R. M. Steen <hallvord@opera.com>
Date: Mon, 14 Apr 2008 16:43:58 +0200
To: "Boris Zbarsky" <bzbarsky@mit.edu>, "Bjoern Hoehrmann" <derhoermi@gmx.net>
Cc: "Web APIs WG (public)" <public-webapi@w3.org>
Message-ID: <op.t9lu7kxna3v5gv@hr-opera.oslo.opera.com>

On Fri, 28 Mar 2008 18:32:47 +0100, Boris Zbarsky <bzbarsky@mit.edu> 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
Received on Monday, 14 April 2008 14:44:49 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 14 April 2008 14:44:51 GMT