- From: Joseph Kesselman <keshlam@us.ibm.com>
- Date: Tue, 17 Sep 2002 09:28:13 -0400
- To: www-dom@w3.org
Parent and ownerElement are distinct values in the DOM. As of DOM Level 1 (and 2), the latter is defined only for Attrs, which have no parent (because they are never children) but do have an ownerElement (because some applications -- the XPath data model in particular! -- did want to be able to navigate from Attr to its associated Element). What XPath calls parent has to be implemented in DOM code as if(node is an Attribute -- or, now, a Namespace Node) return node's ownerElement else return node's parent Since Namespace Nodes are also not children, they too have no Parent -- but do have an ownerElement, for exactly the same reason; XPath 1.0 insisted on making it possible to navigate back to the Element. XPath 2.0 has admitted that was a design error and said that the parent of a Namespace Node is undefined, which makes implementation one heck of a lot simpler -- especially since nobody but compliance tests was ever attempting to navigate back out of a Namespace Node, and vanishingly few applications even attempt to use the Namespace axis. Yes, this terminology conflict, and the extra test, is a nuisance. In retrospect, XPath really should have changed their terminology (but they weren't willing to do so, sigh), and/or the DOM should have provided a single operation that mapped more closely to XPath's concept of parent (which is why I've proposed that we might want to move ownerElement from the Attr interface to the Node interface). ______________________________________ Joe Kesselman / IBM Research
Received on Tuesday, 17 September 2002 09:28:48 UTC