Грамматика 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, то происходит ошибка.