Fonctions constructeurs booléennes : true (XQuery)
S’applique à :SQL Server
Retourne la valeur xs:boolean True. Ceci équivaut à xs:boolean("1")
.
Syntaxe
fn:true() as xs:boolean
Exemples
Cette rubrique fournit des exemples XQuery par rapport aux instances XML stockées dans différentes colonnes de type XML dans la base de données AdventureWorks.
R. Utilisation de la fonction booléenne XQuery true()
L’exemple suivant interroge une variable xml non typée. L’expression dans la méthode value() retourne booléen true() 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 la 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 par rapport à 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. Cet exemple illustre les opérations suivantes :
Crée une collection de schémas XML qui définit l’élément <
ROOT
> du type xs:boolean.Crée 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