xsl-list
[Top] [All Lists]

Re: [xsl] are multiple predicates same as boolean and

2008-11-21 09:41:23


If X[(_at_)a='hi'] matches a node, then that node will become the context
node when evaluating [(_at_)b='hi..']

as Andrew just said [] the context node doesn't change, so 

X[P][Q] is equivalent to X[P and Q] if and only if Q does not depend on
the context node at all.

isnt't true, howver

context position (position() ) and size (last()) do change. so basically
repeated filters are equivalent to and unless any of them depend on
position() or last(), including the speical case of [integer] being
equivalent to  [position()=integer]
this last case is what makes it tricky to do a static rewite of this
unless you are a real XSLT engine that really know what is happening.
If you have
X[... foo ..][... bar ...]
you can only rewrite that to

X[(... foo ..) and (... bar ...)]
if you know that neither expression will evaluate to a number at run
time. You probably don't know that unless you are the XSLt engine,
except in special cases.

David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>