Boolean expressions: AND and OR
The expression E1 and E2
returns true if the effective boolean values
of E1
and E2
are both true.
The expression E1 or E2
returns true if the effective boolean values of
either or both of E1
and E2
are true.
The specification allows the operands to be evaluated in either order, but Saxon will
normally evaluate them left-to-right, which means if you write something like $a
instance of xs:integer and $x = (1 to $a)
, then you won't get an error if
$a
is not an integer. But the specification doesn't guarantee this.