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
--~------------------------------------------------------------------
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>
--~--