Funzione true (XQuery)

Restituisce il valore di tipo xs:boolean True, che equivale a xs:boolean("1").

Sintassi

fn:true() as xs:boolean

Esempi

In questo argomento vengono forniti esempi di utilizzo del linguaggio XQuery sulle istanze XML archiviate in diverse colonne di tipo xml nel database AdventureWorks2008R2. Per una panoramica su ognuna di queste colonne, vedere Rappresentazione del tipo di dati XML nel database AdventureWorks2008R2.

A. Utilizzo della funzione booleana true() di XQuery

Nell'esempio seguente viene eseguita una query su una variabile xml non tipizzata. L'espressione nel metodo value() restituisce il valore booleano true() se come valore dell'attributo è specificato "aaa". Il metodo value() del tipo di dati xml converte il valore booleano in un bit e lo restituisce.

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

Nell'esempio seguente, la query viene eseguita su una colonna di tipo xml. L'espressione if verifica il valore booleano tipizzato dell'elemento <ROOT> e restituisce il relativo codice XML creato. Nell'esempio vengono eseguite le operazioni seguenti:

  • Viene creata una raccolta di XML Schema che definisce l'elemento <ROOT> di tipo xs:boolean.

  • Viene creata una tabella con una colonna xml tipizzata utilizzando la raccolta di XML Schema.

  • Viene salvata un'istanza XML della colonna, sulla quale viene eseguita una query.

-- 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