Función fn:boolean

La función fn:boolean devuelve el valor booleano efectivo de una secuencia.

Sintaxis

Leer diagrama de sintaxisOmitir el diagrama de sintaxis visualfn:boolean( secuencia-expresión)
expresión-secuencia
Cualquier secuencia que contenga elementos de cualquier tipo, o la secuencia vacía.

Valor devuelto

El valor devuelto es un valor xs:boolean que depende del valor de la expresión de secuencia:
  • Si la expresión de secuencia es la secuencia vacía, se devuelve false.
  • Si la expresión de secuencia no es la secuencia vacía y la expresión de secuencia contiene un valor:
    • Si el valor es xs:boolean false, se devuelve false.
    • Si el valor es una cadena de longitud 0 y el tipo es xs:string o xs:untypedAtomic,, se devuelve false.
    • Si el valor es 0 y el tipo es numérico, se devuelve false.
    • Si el valor es " NaN, " y el tipo es "xs:double", se devuelve "false".
    • De lo contrario, se devuelve true.
  • Si la expresión de secuencia no es la secuencia vacía y la expresión de secuencia contiene más de un valor, se devuelve true.

ejemplos

Las siguientes funciones devuelven verdadero, porque ambas son cadenas con una longitud mayor que cero
  • fn:boolean("true")
  • fn:boolean("false")

La siguiente función devuelve falso, porque el valor de la expresión de secuencia es 0 y el tipo es numérico: fn:boolean(0)

Los siguientes ejemplos muestran cómo se puede utilizar la función fn:boolean en el contexto más amplio de Db2. Las sentencias XMLQUERY se utilizan para consultar datos XML y toman una expresión e XQuery a como primer argumento. En ambos casos, la función fn:boolean recibe datos de la cláusula PASSING. En el primer ejemplo, el argumento de la función fn:boolean es una secuencia de tres ceros. En el segundo ejemplo, el argumento de la función fn:boolean son tres valores «false». Ambas funciones se evalúan como verdaderas, porque la expresión de secuencia contiene más de un valor.
XMLQUERY('fn:boolean($x)' PASSING XMLCONCAT(XMLQUERY('0'),
 XMLQUERY('0'),XMLQUERY('0')))
XMLQUERY('fn:boolean(fn:data(//b))' 
 PASSING XMLPARSE(DOCUMENT '<a><b>false</b><b>false></b><b>false</b></a>'))