Fonction true (XQuery)

Retourne la valeur xs:boolean True. Ceci équivaut à xs:boolean("1").

Syntaxe

fn:true() as xs:boolean

Exemples

Cette rubrique propose des exemples de XQuery relatifs à des instances XML stockés dans différentes colonnes de type xml tirées de la base de données AdventureWorks2008R2. Pour obtenir une vue d'ensemble de chacune de ces colonnes, consultez Représentation du type de données xml dans la base de données AdventureWorks2008R2.

A. Utilisation de la fonction booléenne XQuery true()

L'exemple suivant interroge une variable xml non typée. L'expression de la méthode value() retourne true() booléen si « aaa » est la valeur d'attribut. La méthode value() du type de données xml convertit la valeur booléenne en bit et le retourne.

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

Dans l'exemple suivant, la requête est spécifiée sur une colonne xml typée. L'expression if vérifie la valeur booléenne typée de l'élément <ROOT> et retourne le code XML construit en conséquence. L'exemple effectue les opérations suivantes :

  • Création d'une collection de schémas XML qui définit l'élément <ROOT> du type xs:boolean.

  • Création d'une table avec une colonne xml typée à l'aide de la collection de schémas XML.

  • Enregistrement de l'instance XML dans la colonne et interrogation de l'instance.

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