Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-05.doc
Скачиваний:
6
Добавлен:
12.05.2015
Размер:
645.12 Кб
Скачать

5.1.1.5.3. Шаги с использованием фильтров

Шаги с использованием фильтров имеют следующий синтаксис:

первичное-выражение[предикат]

Необязательный предикатв этом выражении имеет тот же смысл, что и при использовании осей поиска, апервичное-выражениеможет быть одним из следующих видов:

  • числовой литерал (литерал типа xs:integer,xs:decimalилиxs:double);

  • строковый литерал (литерал типа xs:string);

  • ссылка на переменную (имя переменной, перед которым стоит символ "$");

  • вызов функции.

Первичные выражения могут содержать также произвольное выражение, содержащее приведенные выше виды данных. При необходимости отдельные компоненты выражения могут быть заключены в скобки (для изменения приоритета выполнения операций).

В предикатах с использованием фильтров может использоваться выражение контекстного элемента – символ ".". Контекстный элемент может быть либо узлом, либо атомарным выражением.

Примеры использования фильтров:

1. (11 to 20)[6]– выбирает шестой элемент (число16) в последовательности от11до20.

2. (11 to 20)[. mod 2 eq 1]– выбирает нечетные элементы последовательности от11до20(числа11,13,15,17и19).

3. $header-node[fn:position() = (1 to 3)]– выбирает первые три элемента последовательности в переменной$header-node.

4. fn:doc("email.xml")/fn:root("header")– выбирает корневой элемент для элементаheaderв документеemail.xml.

5. $header-node/comment()– выбирает узлы комментариев для последовательности в переменной$header-node.

5.1.2. Язык xQuery

Одним из важнейших преимуществ при использовании языка XML для хранения данных является гибкость представления самых разнообразных видов информации из разных источников. Для обработки этих данных, в частности, для поиска и выборки по заданным критериям, необходимо соответствующее средство, подобное языку SQL, используемому в релятивистских базах данных.

Первую задачу – поиск необходимых данных в документах XML решает язык XPath 2.0. Язык XQueryбыл разработан как расширение XPath 2.0, позволяющее с помощью набора операторов сформировать запрос к документу XML и получить ответ в виде фрагмента документа XML или полного документа XML.

Спецификация языка XQuery(XQuery1.0) была принята консорциумом W3 в январе 2007 г. Отдельно была принята спецификация языкаXQueryX, в котором запрос к данным формируется как документ XML.

Из осей, определенных в XPath, обязательными для реализации обработчикамиXQueryявляются осиself,child,parent,descendant,descendant-or-selfиattribute. Поддержка осей ancestor, ancestor-or-self, following, following-sibling, preceding и preceding-sibling является необязательной и зависит от реализации.

5.1.2.1. Структура запроса xQuery

Запрос XQuery задается в текстовом файле с расширением .xq,.xqlили.xqueryи состоит из необязательного объявления версии, а также одного и более фрагментов, называемыхмодулями.

Объявление версии имеет следующий вид:

xquery version "номер-версии" encoding "кодировка";

Для номера-версииможно пока задать только значение"1.0". Необязательный параметрencodingзадает кодировку документа XQuery, например,"utf-8"или"windows-1251".

Модуль может быть либо главным модулем, либо библиотечным модулем.

Соседние файлы в папке Лекции