The effective Boolean value (EBV) of a sequence is computed implicitly during the processing of expressions that require Boolean values. The EBV of a value is determined by applying the fn:boolean function to a value.
The following table describes the EBVs that are returned for specific types of values.
| Description of value | EBV returned |
|---|---|
| An empty sequence | false |
| A sequence whose first item is a node | true |
| A single value of type xs:boolean (or derived from xs:boolean) | false - if the xs:boolean value is false |
| true - if the xs:boolean value is true | |
| A single value of type xs:string or xdt:untypedAtomic (or derived from one of these types) | false - if the length of the value is zero |
| true - if the length if the value is greater than zero | |
| A single value of any numeric type (or derived from a numeric type) | false - if the value is NaN or is numerically equal to zero |
| true - if the value is not numerically equal to zero | |
| All other values | error |
Note: The effective Boolean
value of a sequence that contains at least one node and at least one atomic
value is nondeterministic in a query where the order is unpredictable.
|
|