On May 12, 2008, at 8:00 AM, Bjoern Hoehrmann wrote:

* Maciej Stachowiak wrote:
This does not look much better (it does avoid repeatedly mentioning
the xmlns namespace at least):

function resolver(prefix) {
   if (prefix == "xht") {
        return "http://www.w3.org/1999/xhtml";;
   } else if if (prefix == "svg") {
        return "http://www.w3.org/2000/svg";;
   } else if (prefix == "mml") {
        return "http://www.w3.org/2000/xmlns/";;
   }
   return null; // ???
}

However, this does look better:

var namespaces = {xht: "http://www.w3.org/1999/xhtml";; svg: 
"http://www.w3.org/2000/svg
"; mml: "http://www.w3.org/1998/Math/MathML"; };

You can just use `function(p) { return namespaces[p]; }` then.

Sure, but there's no actual need to allow running arbitrary code and all the risks that creates/

You'll have to define what happens if you pass `{ get svg() { ... } }` if you
allow this,

I would define that getters are ignored (after all, the point of this is to avoid code execution)

and what to pass in other language bindings.

Other language bindings are the 1% case for this API (and that's being generous). They can just use Nodes. Or anyone who wishes to champion a more convenient syntax for some specific binding can propose what language-specific dictionary type should be allowed to use Nodes.

Regards,
Maciej


Reply via email to