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