For the purposes of condition checking, an XPath will be considered 'true' if:
It evaluates to a non empty node set.
It returns the boolean value 'true'. (e.g. from using the not() function)
It returns a string which does not have the text value 'false'
Each rule can have a simple condition (with just one XPath check), or it can be complex, with a number of conditions joined through boolean operators AND, OR, and XOR.
It is also possible to have a rule without a condition section, in which case the rule will fire as soon as it has the highest priority.