Compartir a través de


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 consultas XQuery con instancias XML almacenadas en varias columnas de tipo xml en la base de datos AdventureWorks.

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, la consulta se especifica 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

Vea también

Conceptos

Funciones de constructor booleano (XQuery)