xsl-list
[Top] [All Lists]

RE: OR expr with node sets

2005-10-18 02:49:45
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>
--~--



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