If we had this XML

<foo>X <bar>Y</bar> Z</foo>

And we evaluated the XPath expression

    * | text()

We'd get

Element(<bar>),. text('X'), text('Z')

Rather than

text('X'), element(<bar>), text('Z')

So the document order is wrong. Basically because the XPath expressions are
evaluated in full and appended together by the union operator, rather than
intermingled in document order.

I've heard Michael Kay say in the past that maintaining document order is
one of the hardest parts of XSLT.

In simple terms for common path expressions like * | @* | text() or
whatever, we need to evaluate all of the expressions in the union on each
node as we navigate - rather than walking the tree entire for each
expression then concatenating the results together .

I'm a bit heavily loaded until the towards the end of next week, does anyone
fancy diving in and taking a look? This could be quite hard to fix...

James


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


_______________________________________________
Jaxen-interest mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jaxen-interest

Reply via email to