Грамматика XQuery

XQuery чувствителен к регистру, элементы, атрибуты и переменные в XQuery должны быть合法ными именами XML.

Основные правила грамматики XQuery:

Некоторые основные правила грамматики:

  • XQuery чувствителен к регистру.
  • Элементы, атрибуты и переменные в XQuery должны быть合法ными именами XML.
  • Строковые значения в XQuery могут использовать одиночные или двойные кавычки.
  • Переменные в XQuery определяются символом "$" и следуют за именем, например, $bookstore
  • Комментарии в XQuery разделены (: и :), например, (: XQuery комментарий :)

Условные выражения в XQuery

"If-Then-Else" можно использовать в XQuery.

Смотрите следующий пример:

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>

Обратите внимание на грамматику "If-Then-Else": скобки после выражения if обязательны. else также обязателен, но можно написать просто "else ()".

Результат примера выше:

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

Сравнение в XQuery

В XQuery есть два способа сравнивать значения.

  1. Общий сравнение: =, !=, <, <=, >, >=
  2. Сравнение значений: eq, ne, lt, le, gt, ge

Различия между этими двумя методами сравнения таковы:

Пожалуйста, посмотрите на следующий выражение XQuery:

$bookstore//book/@q > 10

Если значение атрибута q больше 10, то значение上面的 выражения возвращает true.

$bookstore//book/@q gt 10

Если возвращается только один q, и его значение больше 10, то выражение возвращает true. Если возвращается несколько q, то происходит ошибка.