XQuery syntaks

XQuery er følsom over for store/kleine bogstaver, og XQuery elementer, egenskaber og variabler skal være gyldige XML-navne.

Grundlæggende syntaksregler for XQuery:

Nogle grundlæggende syntaksregler:

  • XQuery er følsom over for store/kleine bogstaver
  • XQuery elementer, egenskaber og variabler skal være gyldige XML-navne.
  • XQuery strengværdier kan bruge enten enkelt- eller dobbeltanførselstegn.
  • XQuery variabler defineres ved "$" fulgt af et navn, f.eks. $bookstore
  • XQuery kommentarer adskilles af (: og :), f.eks. (: XQuery kommentar :)

XQuery betingelsesudtryk

"If-Then-Else" kan bruges i XQuery.

Se nedenstående eksempel:

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>

Bemærk syntaksen for "If-Then-Else": Parenteser efter if-udtrykket er obligatoriske. Else er også obligatorisk, men man kan også skrive "else ()".

Resultatet af de ovennævnte eksempler:

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

XQuery sammenligning

Der er to metoder til at sammenligne værdier i XQuery.

  1. Generel sammenligning: =, !=, <, <=, >, >=
  2. Værdiforlignelse: eq, ne, lt, le, gt, ge

Forskellen mellem disse to sammenligningsmetoder er som følger:

Se nedenstående XQuery udtryk:

$bookstore//book/@q > 10

Hvis værdien af q-attributten er større end 10, er værdien af det ovenstående udtryk true.

$bookstore//book/@q gt 10

Hvis kun en q returneres, og dens værdi er større end 10, returnerer udtrykket true. Hvis der returneres mere end én q, vil der opstå en fejl.