XQuery- syntaxis
XQuery is hoofdlettergevoelig en XQuery-elementen, attributen en variabelen moeten geldige XML-namen zijn.
Basisregels voor XQuery-syntaxis
Enkele basisregels voor syntaxis:
- XQuery is hoofdlettergevoelig
- XQuery-elementen, attributen en variabelen moeten geldige XML-namen zijn
- Een XQuery-tekenreekswaarde kan tussen enkele of dubbele aanhalingstekens staan
- Een XQuery-variabele wordt gedefinieerd met een $ gevolgd door een naam, bijvoorbeeld $bookstore
- XQuery-opmerkingen worden gescheiden door (: en :), bijv. (: XQuery-opmerking :)
Het XML-voorbeelddocument
In de onderstaande voorbeelden gebruiken we het document "books.xml" (hetzelfde XML-bestand als in de vorige hoofdstukken).
Bekijk het bestand "books.xml" in uw browser .
XQuery voorwaardelijke expressies
"Als-Dan-Anders"-expressies zijn toegestaan in XQuery.
Kijk naar het volgende voorbeeld:
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>
Opmerkingen over de "if-then-else"-syntaxis: haakjes rond de if-expressie zijn vereist. else is vereist, maar het kan ook gewoon else ().
Het resultaat van het bovenstaande voorbeeld is:
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
XQuery-vergelijkingen
In XQuery zijn er twee manieren om waarden te vergelijken.
1. Algemene vergelijkingen: =, !=, <, <=, >, >=
2. Waardevergelijkingen: eq, ne, lt, le, gt, ge
Het verschil tussen de twee vergelijkingsmethoden wordt hieronder weergegeven.
De volgende expressie retourneert true als q-kenmerken een waarde groter dan 10 hebben:
$bookstore//book/@q > 10
De volgende expressie retourneert true als er slechts één q-kenmerk wordt geretourneerd door de expressie en de waarde groter is dan 10. Als er meer dan één q wordt geretourneerd, treedt er een fout op:
$bookstore//book/@q gt 10