XQuery Syntaxis

XQuery is hoofdlettergevoelig, en XQuery elementen, attributen en variabelen moeten legitieme XML-namen zijn.

Basis grammaticale regels van XQuery:

Enkele basis grammaticale regels:

  • XQuery is hoofdlettergevoelig
  • XQuery elementen, attributen en variabelen moeten legitieme XML-namen zijn.
  • XQuery stringwaarden kunnen worden gebruikt met enkele of dubbele aanhalingstekens.
  • XQuery variabelen worden gedefinieerd door een $ te volgen door een naam, bijvoorbeeld, $bookstore
  • XQuery commentaar wordt gescheiden door (: en :), bijvoorbeeld, (: XQuery commentaar :)

XQuery conditionele expressie

"If-Then-Else" kan worden gebruikt in XQuery.

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

Let op de syntaxis van "If-Then-Else": de ronde haakjes achter de if-uitdrukking zijn vereist. else is ook vereist, maar je kunt ook alleen "else ()" schrijven.

Het resultaat van het bovenstaande voorbeeld:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Learning XML</adult>
<adult>XQuery Kick Start</adult>

XQuery vergelijking

In XQuery zijn er twee methoden om waarden te vergelijken.

  1. Algemene vergelijking: =, !=, <, <=, >, >=
  2. Waarde vergelijking: eq, ne, lt, le, gt, ge

Het verschil tussen deze twee vergelijkingsmethoden is als volgt:

Zie hieronder de XQuery expressie:

$bookstore//book/@q > 10

Als de waarde van de q-eigenschap groter is dan 10, is de retourwaarde van de bovenstaande expressie true.

$bookstore//book/@q gt 10

Als er maar één q wordt geretourneerd en zijn waarde groter is dan 10, dan retourneert de expressie true. Als er meer dan één q wordt geretourneerd, ontstaat er een fout.