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

Применимо к:база данных SQL ServerAzure SQL

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

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

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

  • Абсолютный путь доступа

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

  • Относительный путь доступа

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

    Примечание

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

Шаги доступа

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

  • Ось

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

  • Тест узла

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

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

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

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

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

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

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

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

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