Gramatyka XQuery

XQuery jest wrażliwy na wielkość liter, elementy, atrybuty oraz zmienne w XQuery muszą być legalnymi nazwami XML.

Podstawowe zasady gramatyczne XQuery:

Oto kilka podstawowych zasad gramatycznych:

  • XQuery jest wrażliwy na wielkość liter
  • Elementy, atrybuty oraz zmienne w XQuery muszą być legalnymi nazwami XML.
  • Wartości ciągłe w XQuery mogą być używane z pojedynczymi lub podwójnymi znakami cudzysłowymi.
  • Zmienne w XQuery są definiowane poprzez znak $ i nazwę, na przykład, $bookstore
  • Komentarze w XQuery są oddzielone przez (: i :), na przykład, (: Komentarz XQuery :)

Warunkowe wyrażenia XQuery

"If-Then-Else" może być używane w XQuery.

Proszę spojrzeć na poniższy przykład:

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>

Proszę zauważyć gramatykę "If-Then-Else": klamry po wyrażeniu if są obowiązkowe. else również jest obowiązkowy, ale można napisać również "else ()".

Wynik powyższych przykładów:

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

Porównanie w XQuery

W XQuery istnieją dwa sposoby porównywania wartości.

  1. Porównanie ogólne: =, !=, <, <=, >, >=
  2. Porównanie wartości: eq, ne, lt, le, gt, ge

Różnice między tymi dwoma metodami porównania są następujące:

Zobacz poniższe wyrażenie XQuery:

$bookstore//book/@q > 10

Jeśli wartość atrybutu q jest większa niż 10, wartość zwracana przez powyższe wyrażenie to true.

$bookstore//book/@q gt 10

Jeśli zwraca się tylko jeden q, a jego wartość jest większa niż 10, wyrażenie zwraca true. Jeśli zwraca się więcej niż jeden q, wystąpi błąd.