Syntaxe XQuery
XQuery est sensible à la casse et les éléments, attributs et variables XQuery doivent être des noms XML valides.
Règles de syntaxe de base XQuery
Quelques règles de syntaxe de base :
- XQuery est sensible à la casse
- Les éléments, attributs et variables XQuery doivent être des noms XML valides
- Une valeur de chaîne XQuery peut être entre guillemets simples ou doubles
- Une variable XQuery est définie avec un $ suivi d'un nom, par exemple $bookstore
- Les commentaires XQuery sont délimités par (: et :), par exemple (: XQuery Comment :)
L'exemple de document XML
Nous utiliserons le document "books.xml" dans les exemples ci-dessous (même fichier XML que dans les chapitres précédents).
Affichez le fichier "books.xml" dans votre navigateur .
Expressions conditionnelles XQuery
Les expressions "If-Then-Else" sont autorisées dans XQuery.
Regardez l'exemple suivant :
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
Remarques sur la syntaxe "if-then-else": les parenthèses autour de l'expression if sont obligatoires. else est obligatoire, mais il peut s'agir simplement d'autre ().
Le résultat de l'exemple ci-dessus sera :
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
Comparaisons XQuery
Dans XQuery, il existe deux façons de comparer des valeurs.
1. Comparaisons générales : =, !=, <, <=, >, >=
2. Comparaisons de valeurs : eq, ne, lt, le, gt, ge
La différence entre les deux méthodes de comparaison est indiquée ci-dessous.
L'expression suivante renvoie true si l'un des attributs q a une valeur supérieure à 10 :
$bookstore//book/@q > 10
L'expression suivante renvoie true si un seul attribut q est renvoyé par l'expression et que sa valeur est supérieure à 10. Si plusieurs q sont renvoyés, une erreur se produit :
$bookstore//book/@q gt 10