OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Question for the XPath and DOM folks

[ Lists Home | Date Index | Thread 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 
it.


-- 
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
brary/x-think11.html






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS