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

Subject: Re: [xsl] are multiple predicates same as boolean and
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Fri, 21 Nov 2008 20:36:28 +0530
Thanks, David for further thoughts .. this makes me better at this.

I have a related question ...

for real world XSLT/XPath programs, upto how many predicates can we
typically see?

I haven't seen programs using 3, 4 or more predicates.

X[..][..][..][..]

I have used one or two predicates upto now.

are excessively large number or predicates really useful? (the syntax
allows that ...)

I think perhaps, for complex 'and' conditions, using multiple
predicates are useful ...

On Fri, Nov 21, 2008 at 8:11 PM, David Carlisle <davidc@xxxxxxxxx> wrote:
>
>
>> If X[@a='hi'] matches a node, then that node will become the context
>> node when evaluating [@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


-- 
Regards,
Mukul Gandhi

Current Thread