Задание проверки узла в пути доступа (SQLXML 4.0)
Проверка узла задает тип узла, выбранного на шаге определения расположения. Каждая ось (child, parent, attribute или self) имеет тип узла участника. Для оси attribute основным типом узла является <attribute>. Для осей parent, child и self основным типом узла является <element>.
Примечание |
|---|
Шаблон проверки узла * (например, child::*) не поддерживается. |
Проверка узла: Пример 1
Путь доступа child::Customer выбирает дочерний элемент <Customer> узла контекста.
В следующем примере элемент child является осью, а Customer является проверкой узла. Тип узла участника для оси child - это <element>. Таким образом, проверка узла принимает значение TRUE, если узел <Customer> является узлом <element>. Если узел контекста не имеет потомка <Customer>, то возвращается пустое множество узлов.
Проверка узла: Пример 2
Путь доступа attribute::CustomerID выбирает атрибут CustomerID узла контекста.
В примере элемент attribute является осью, а CustomerID является проверкой узла. Тип узла участника для оси attribute - это <attribute>. Таким образом, проверка узла принимает значение TRUE, если атрибут CustomerID является узлом <attribute>. Если узел контекста не имеет атрибута CustomerID, то возвращается пустое множество узлов.
Примечание |
|---|
В данной реализации XPath, если шаги определения расположения данных ссылается на тип <element> или <attribute>, который не объявлен в схеме, возникает ошибка. Это отличается от реализации XPath в MSXML, где возвращается пустое множество узлов. |
Сокращенный синтаксис осей
Поддерживается следующий сокращенный синтаксис пути доступа:
attribute:: можно сократить до @.
Путь доступа Customer[@CustomerID="ALFKI"] аналогичен выражению child::Customer[attribute::CustomerID="ALFKI"].
child:: можно исключить из шага определения расположения данных.
Таким образом, ось child является осью по умолчанию. Путь доступа Customer/Order аналогичен выражению child::Customer/child::Order.
self::node() можно сократить до одной точки (.), а parent::node() можно сократить до двух точек (..).
Примечание