- 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>
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 UTC