Gramatyka XQuery

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

Podstawowe reguły gramatyczne XQuery:

Niektóre podstawowe reguły gramatyczne:

  • XQuery jest wrażliwy na wielkość liter
  • Elementy, atrybuty oraz zmienne w XQuery muszą być legalnymi nazwami XML.
  • Wartości ciągowe w XQuery można definiować za pomocą apostrofów prostych lub podwójnych
  • Zmienne w XQuery są definiowane za pomocą "$" i nazwy, na przykład, $bookstore
  • Komentarze w XQuery są oddzielone przez (: i :), na przykład, (: Komentarz XQuery :)

Wyrażenie warunkowe w XQuery

Wyrażenie "If-Then-Else" można używać w XQuery.

Proszę zobaczyć 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ązkowe, ale można napisać również "else ()".

Wynik powyższego przykładu:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Uczenie się XML</adult>
<adult>Podstawy XQuery</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.