После того как язык XML научился делать ссылки на языке XLink, создавать указатели XPointer на каждую точку документа и тонко адресовать любые части документа с помощью XPath, остался последний шаг: научиться извлекать найденную по адресу информацию из любых участков документа и оформлять ее в виде элементов документа XML. Язык XQuery как раз и призван сделать этот последний шаг.
Поскольку перед извлечением информации из документа надо ее отыскать. и язык XQuery разрабатывался в тесной связи с языком XPath 2.0. Более того, большинство конструкций языка XPath 2.0 созданы в расчете на написание запросов. Многие выражения XPath, такие как выражение //ааа/ввв, делают запрос на поиск информации в документе XML. Поэтому язык XQuery можно считать расширением язык XPath 2.0. В нем можно применять почти все, что есть в языке XPath 2.0.
Единственное ограничение — в первой версии языка XQuery, выражения, определяющие путь, можно направлять только по 6 осям из 13, имеющихся в языке XPath: child (по умолчанию), descendant, attribute, self, descendant-or-self и parent.
Основной единицей языка XQuery, как и языка XPath, служит выражение, причем набор выражений, перечисленных через запятую, тоже считается выражением. Это так называемая "операция запятая", объединяющая несколько выражений в одно, вычисляемое последовательно слева направо. Результат вычисления выражения, как и в языке XPath, — последовательность узлов и/или атомарных значений. Виды узлов и типы атомарных значений таковы же, как и в XPath 2.0.
Запрос (query) в языке XQuery тоже оформляется как выражение. Разница заключается в том, что и результате вычисления выражения получается последовательность, а в к результате выполнения запроса должен получиться один или несколько документов XML, а то и целый документ ХМL. Значит, в первую очередь язык XQuery должен научиться конструировать элементы XML. Посмотрим, как работают конструкторы элементов и других узлом,
Конструкторы
Конструктор узлов — это выражение, которое создает и добавляет к дереву документа новые узлы.
Конструкторы могут создавать узлы каждого вида за исключением узлов пространств имен. При этом узел-элемент можно создать средствами прямого или вычисляемого конструктора, узел-атрибут, корневой узел документа и текстовый узел — только вычисляемого конструктора, а узлы-комментарии и узлы инструкций по обработке просто записываются в конструкторе прямо в том виде, в каком они затем появятся в документе.
Прямой конструктор элемента
Самый простой способ сконструировать элемент XML— это записать его в явном виде с открывающим тегом, атрибутами, содержимым и закрывающим тегом. Эта форма называется прямым конструктором элемента.
Достарыңызбен бөлісу: |