[XSL-LIST Mailing List Archive Home]
RE: [xsl] OR expr with node sets
> > 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.
Kevin Energy: DJ Kevin Energy + MC Sharkey @ Enchanted Australia