The simplest comparison operators are eq
, ne
, lt
le
, gt
, ge
. These compare two atomic values of the same type,
for example two integers, two dates, or two strings. In the case of strings, the default collation
is used (see
saxon:collation).
If the operands are not atomic values, an error is raised.
The operators =
, !=
, <
, <=
,
>
, and >=
can compare arbitrary sequences. The result is true
if any pair of items from the two sequences has the specified relationship, for example
$A = $B
is true if there is an item in $A
that is equal to
some item in $B
. If an argument is a node, Saxon currently uses its string
value in the comparison, not its typed value as required by the XPath 2.0 specification.
The operator is
tests whether the operands represent the same
(identical) node. For example, title[1] is *[@note][1]
is true if the first title
child is the first child element that has a @note
attribute. If either operand is an
empty sequence the result is an empty sequence (which will usually be treated as false).
The operators <<
and >>
test whether one node precedes
or follows another in document order.