true (función de XQuery)

Devuelve el valor xs:boolean True. Es equivalente a xs:boolean("1").

Sintaxis

fn:true() as xs:boolean

Ejemplos

En este tema se ofrecen ejemplos de XQuery con instancias XML almacenadas en varias columnas de tipo xml en la base de datos AdventureWorks2008R2. Para obtener información general de cada una de estas columnas, vea Representación de tipo de datos xml en la base de datos AdventureWorks2008R2.

A. Utilizar la función booleana true() de XQuery

En el ejemplo siguiente se consulta una variable xml sin tipo. La expresión del método value() devuelve el valor booleano true() si "aaa" es el valor del atributo. El método value() del tipo de datos xml convierte el valor booleano en bit y lo devuelve.

DECLARE @x XML;
SET @x= '<ROOT><elem attr="aaa">bbb</elem></ROOT>'
select @x.value(' if ( (/ROOT/elem/@attr)[1] eq "aaa" ) then fn:true() else fn:false() ', 'bit');
go
-- result = 1

En el ejemplo siguiente, se especifica una consulta en una columna xml con tipo. La expresión if comprueba el valor booleano con tipo del elemento <ROOT> y devuelve el XML generado, según corresponda. En el ejemplo se realizan las operaciones siguientes:

  • Se crea una colección de esquemas XML que define el elemento <ROOT> del tipo xs:boolean.

  • Se crea una tabla con una columna xml con tipo utilizando la colección de esquemas XML.

  • Se guarda una instancia XML en la columna y se consulta.

-- Drop table if exist
--DROP TABLE T
--go
DROP XML SCHEMA COLLECTION SC;
go
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="QNameXSD" >
      <element name="ROOT" type="boolean" nillable="true"/>
</schema>';
go
CREATE TABLE T (xmlCol XML(SC));
go
-- following OK
insert into T values ('<ROOT xmlns="QNameXSD">true</ROOT>');
 go
-- Retrieve the local name. 
SELECT xmlCol.query('declare namespace a="QNameXSD"; 
   if (/a:ROOT[1] eq true()) then
       <result>Found boolean true</result>
   else
       <result>Found boolean false</result>')

FROM T;
-- result = <result>Found boolean true</result>
-- Clean up
DROP TABLE T;
go
DROP XML SCHEMA COLLECTION SC;
go