Поделиться через


Указание пути доступа (SQLXML 4.0)

Область применения: SQL Server База данных SQL Azure

Запросы XPath указываются в форме выражения. Существуют различные типы выражений. Путь доступа представляет собой выражение для выбора набора узлов относительно контекстного узла. Результатом вычисления пути доступа является набор узлов.

Типы путей доступа

Путь доступа может иметь две следующие формы.

  • Абсолютный путь к расположению

    Абсолютный путь доступа начинается с корневого узла документа. Он состоит из косой черты (/), за которой необязательно следует относительный путь доступа. Косая черта (/) выбирает корневой узел документа.

  • Относительный путь к расположению

    Относительный путь доступа начинается с контекстного узла документа. Путь доступа состоит из последовательности одного или нескольких шагов доступа, разделенных косой чертой (/). Каждый шаг доступа выбирает набор узлов относительно контекстного узла. Начальная последовательность шагов доступа выбирает набор узлов относительно контекстного узла. Каждый узел в этом наборе используется как контекстный узел для следующего шага доступа. Наборы узлов, определенные этим шагом, соединяются. Например, child::Order/child::OrderDetail выбирает< дочерние элементы OrderDetail> дочерних элементов элемента Order узла <>контекста.

    Примечание.

    В реализации XPath в SQLXML 4.0 каждый запрос XPath начинается в корневом контексте, даже если XPath не является явно абсолютным. Например, запрос XPath, начинающийся с «Customer» рассматривается как «/Customer». В запросе XPath Customer[Order], клиент начинается в корневом контексте, но заказ начинается в контексте клиента. Дополнительные сведения см. в разделе "Общие сведения об использовании запросов XPath" (SQLXML 4.0).

Шаги доступа

Путь доступа (абсолютный или относительный) состоит из шагов доступа, составленных из следующих трех частей.

  • Axis

    Ось определяет древовидную связь между узлами, которые выбираются шагом доступа, и контекстными узлами. Поддерживаются родительские, дочерние, атрибуты и самостоятельные оси. Если дочерняя ось указана в пути расположения, все узлы, выбранные запросом, являются дочерними элементами узла контекста. Если указана родительская ось, выбранный узел является родительским узлом контекстного узла. Если указана ось атрибутов, выбранные узлы являются атрибутами узла контекста.

  • Тест узла

    Проверка узла задает тип узла, выбранного на шаге доступа. Каждая ось (дочерний, родительский, атрибут и самостоятельно) имеет тип основного узла. Для оси атрибута тип основного узла является <атрибутом>. Для родительских, дочерних и самостоятельных осей основной узел является <элементом>.

    Например, если путь расположения указывает дочерний::Customer,< выбран дочерний элемент Customer> узла контекста. Так как дочерняя ось имеет <элемент> в качестве основного типа узла, тест узла Customer имеет значение TRUE, если Customer является <узлом элемента.>

  • Предикаты выбора (ноль или больше)

    Предикат фильтрует набор узлов относительно оси. Указание предикатов выбора в выражении XPath напоминает указание предложения WHERE в инструкции SELECT. Предикат указывается в квадратных скобках. Применение проверки, указанной в предикатах выбора, фильтрует узлы, возвращаемые проверкой узла. Для каждого узла в фильтруемом наборе узлов выражение предиката вычисляется с этим узлом в качестве узла контекста, а количество узлов в наборе определяет размер контекста. Если для данного узла выражение предиката дает значение TRUE, то узел включается в результирующий набор узлов.

    Синтаксис шага доступа: имя оси и проверки узла, разделенные двумя двоеточиями, за которыми следует ноль или более выражений — каждое в квадратных скобках. Например, дочернее выражение XPath (путь к расположению)::Customer[@CustomerID='ALFKI'] выбирает все <дочерние элементы Customer> узла контекста. Затем тест в предикате применяется к набору узлов, который возвращает только узлы элемента Customer> с значением атрибута ALFKI для атрибута CustomerID.<

В этом разделе

Определение оси (SQLXML 4.0)
Содержит примеры указания оси.

Задание проверки узла в пути доступа (SQLXML 4.0)
Содержит примеры указания проверки узла.

Указание предикатов выбора в пути доступа (SQLXML 4.0)
Содержит примеры указания предикатов выбора.