On Fri, 10 Sep 2010 18:28:14 +0200, Jonas Sicking <jo...@sicking.cc> wrote:
Indeed, Node.attributes is currently the only way to enumerate all the
attributes of an Element. This makes me think there are probably
people out there doing this, and so I suspect Node.attributes is
needed for web compat. Additionally, it seems bad to remove the
ability to enumerate attributes completely. Lastly, keeping Attrs as a
type of object gives us something to return from DOM-XPath.

What I suggest is #2 in Anne's list. Make Attrs into objects with the
following properties:

* name
* value
* namespaceURI
* localName

'name' would be my guess for most commonly used when iterating all the
atttributes. The others are the minimum set of attributes needed for
proper enumeration

We might also consider these attributes, though if they're not needed
for web compat, then it would be nice to not add them IMHO.

* ownerElement
* prefix
* nodeName
* nodeValue

Also, I wouldn't mind making value/nodeValue readonly, but I don't
feel strongly about that.

This in addition to #1 then, I assume? (Not having child nodes for Attr would such a win already.) I agree that #3 is not really realistic. Ian mentioned it and I thought I should list it for completeness, but e.g. Live DOM Viewer relies on Node.attributes being on Element. (These are other potential optimizations we could consider. Moving interface members down from Node to to only where they are needed.)


--
Anne van Kesteren
http://annevankesteren.nl/

Reply via email to