Lists Home |
Date Index |
> And how would you fix it? You have to:
> a) Respect the Xpath spec so you can't return 3 TEXT nodes
> b) Respect the DOM spec so you have 3 text nodes in the tree
> So you have 3 nodes and you must return only one of them.
> No way out. No way out.
Of course there's a way out. It's called layering. DOM has a view of the
world. XPath has a view of the world. There is a simple algorithm for
converting from the DOM to the XPath view of the world. It involves mutating
or re-creating the DOM node. Perhaps not ideal, but certainly much more sane
than, in effect, silently mutating the actual XML serialization, which is what
the current DOM/XPath spec amounts to.
As a programmer, I would prefer to have my DOM normalized into the XPath model
for me, even though it mutated my tree. I certainly wouldn't want to have to
do all the work of normalizing it myself everytime I wanted to use XPath. As
an implementor, I would prefer it this way as well, because I could have
optimizations behind the scene. For example, I could set a mutated flag on
the document element, and not have to bother with re-normalizing the DOM on an
XPath invocation if there had been no change since the last time I normalized
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Track chair, XML/Web Services One Boston: http://www.xmlconference.com/
The many heads of XML modeling - http://adtmag.com/article.asp?id=6393
Will XML live up to its promise? - http://www-106.ibm.com/developerworks/xml/li