In Geoffrey's book he writes on page 86 about the nifty feature of the
if tokens that can be used to test if a value is in a list.

Specifically he says that "The node-set has to have either a node-set
of values (no XML, just a bunch of value nodes) or, if XML, then the
values will be XML text strings."

I always thought it was just going to concatenate the string value of
each top level element with all of it's child nodes and compare this
list of text() nodes against the value specified in the comparison.

So for example:
<item name="a">Value 1</item>
<item name="b">Value 2</item>
<item name="c">Value 3</item>
<item name="f">Value 4</item>

It would just consider the text() of each element and ignore the

Essentially it was an enhanced version (optionally case insensitive
etc) of the classic node set value identity intersection.

In other words something like this in XPath.


I just recently had a report that made me question this assumption. Can
anyone else confirm if my assumption is correct or not?