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

Re: [selectors-api] Proposal to Drop NSResolver from Selectors API v1

From: Ian Hickson <ian@hixie.ch>
Date: Mon, 12 May 2008 21:05:43 +0000 (UTC)
To: Maciej Stachowiak <mjs@apple.com>
Cc: Jonas Sicking <jonas@sicking.cc>, Lachlan Hunt <lachlan.hunt@lachy.id.au>, public-webapi <public-webapi@w3.org>
Message-ID: <Pine.LNX.4.62.0805122100530.23209@hixie.dreamhostps.com>

On Mon, 12 May 2008, Maciej Stachowiak wrote:
> 
> A function is not a particularly convenient way to specify a namespace 
> mapping, and it creates these error handling issues as well as causing 
> problems with case (in)sensitivity. Even though NSResolver is what XPath 
> uses, wouldn't it be simpler to just accept an object that provides the 
> relevant namespace mappings? I originally thought that this could be a 
> JSON-style JavaScript object, but it seems to me that a DOM node would 
> actually work just as well.

How about a dedicated object?

   var namespaces = new NamespaceMapper();
   namespaces.add('xhr', 'http://www.w3.org/1999/xhtml');
   namespaces.add('svg', 'http://www.w3.org/2000/svg');

...and then you can just pass this lightweight object around.

   [Constructor] interface NamespaceMapper {
     void add(in DOMString prefix, in DOMString namespace);
   };

This also resolve the case problem, as we can just define it to be 
case-folding in some specific way that we control. We don't need to allow 
namespace prefixes to be removable, mutable, or enumerable, either, this 
can be a completely opaque object, thus allowing UAs to apply whatever 
fancy one-way hashing algorithms they want for performance.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'
Received on Monday, 12 May 2008 21:06:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 12 May 2008 21:06:19 GMT