Задание проверки узла в пути доступа (SQLXML 4.0)
Применимо к:база данных SQL ServerAzure SQL
Проверка узла задает тип узла, выбранного на шаге доступа. Каждая ось (дочерняя, родительская, атрибутная или самостоятельная) имеет тип основного узла. Для оси атрибутов основным типом узла является <attribute>. Для родительского, дочернего и самостоятельного осей основного узла используется <тип element>.
Примечание
Шаблон проверки узла * (например child::*
) не поддерживается.
Тест узла: пример 1
Путь к child::Customer
расположению выбирает дочерние <элементы customer> узла контекста.
В следующем примере элемент child
является осью, а Customer
является проверкой узла. Тип основного узла для дочерней оси — <element>. Поэтому проверка узла имеет значение 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()
можно сократить до двух точек (..).
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по