RE: [xsl] OR expr with node sets

Subject: RE: [xsl] OR expr with node sets
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Tue, 18 Oct 2005 12:49:45 +0300
Hi,

> > The above uses an union expression, not an or expression.
> There's a difference.
> >
> >   <xsl:if test="foo | bar">
> >
> > collects two node-sets, creates an union and then casts the
> combined node-set to a boolean.
> >
> >   <xsl:if test="foo or bar">
> >
> > collects two node-sets, casts both of them into booleans
> and then makes an OR comparison between the resulting booleans.
> >
>
> That's true according to the way things are specified,
> although the end
> result is always the same so an actual implementation may well do the
> same thing in both those cases (and in both cases not
> generate the whole
> set, but stop looking as soon as it finds any node, as it
> knows that it
> is in a boolean context).

Naturally, could have specified that "a naive implementation following the
spec... ", but I wanted to highlight that "|" is not an OR operator. Xalan
throwing an exception in the case the original poster described is clearly
wrong, can't say why it fails, though.

Cheers,

Jarno

--
Kevin Energy: DJ Kevin Energy + MC Sharkey @ Enchanted Australia

Current Thread