Модель данных XQuery и XPath
Выражения XQuery оперируют экземплярами модели данных XQuery и XPath (XDM) и возвращают экземпляры модели данных. XDM обеспечивает абстрактное представление одного или более XML-документа или фрагмента. Модель данных определяет все допустимые значения для выражений XQuery, включая значения, которые используются для промежуточных вычислений.
Разбор данных XML в XDM и проверка правильности данных по схеме происходит перед обработкой данных в XQuery. При генерации модели данных входной XML-документ разбирается и преобразуется в экземпляр XDM. Документ может разбираться с проверкой данных по схеме или без нее.
XDM описывается в терминах последовательностей атомарных значений и узлов.
- Последовательности и пункты
Все экземпляры XDM являются последовательностями. Последовательность - это упорядоченная коллекция из нуля или более пунктов. Пункт - это либо атомарное значение, либо узел.
- Атомарные значения
Атомарное значение - это экземпляр одного из встроенных типов данных, которые определены в XML Schema. Эти типы данных включают в себя строки, целые числа, десятичные числа, даты и другие атомарные типы. Эти типы описаны как атомарные потому, что они не могут более разделяться.
- Иерархия узлов
Узлы в последовательности формируют одну или более иерархий или деревьев, которые состоят из корневого узла и всех узлов, которые непосредственно или опосредованно достижимы из корневого узла. Каждый узел принадлежит к только одной иерархии, и каждая иерархия имеет только один корневой узел. DB2 поддерживает шесть видов узлов: документ, элемент, атрибут, текст, инструкция обработки и комментарий.
- Свойства узлов
Каждый узел имеет свойства, которые описывают характеристики узла. Например, свойства узла могут включать имя узла, его потомков, его предка, его атрибуты и другую информацию, которая описывает узел. Вид узла определяет, какие свойства имеются для данного узла.
- Виды узлов
DB2 поддерживает шесть видов узлов: документ, элемент, атрибут, текст, инструкция обработки и комментарий.
- Порядок узлов в документе
Все узлы в иерархии соответствуют порядку, называемому порядком документа, в котором каждый узел появляется до появления его потомков. Порядок документа соответствует порядку, в котором узлы будут появляться в иерархии узлов, представленной в сериализованном XML.
- Идентификация узлов
Каждый узел имеет уникальную идентификацию. Два узла различаются даже, если их имена и значения одинаковы. Напротив, атомарные значения не имеют идентификации.
- Типизированные и строковые значения узлов
Каждый узел имеет типизированное значение и строковое значение. Эти два свойства узла используются для определения некоторых операций XQuery (таких, как атомизация) и функций (таких, как fn:data, fn:string и fn:deep-equal).