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


Указание пути расположения (SQLXML 4.0)

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

Типы путей расположения

Путь к расположению может принимать любой из следующих форм:

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

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

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

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

    Замечание

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

Действия по расположению

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

  • Ось

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

  • Тест узла

    Тест узла указывает тип узла, выбранный на шаге расположения. Каждая ось (child, , attributeparentиself) имеет тип основного узла. Для оси тип основного attribute узла является <атрибутом>. parentДля осей и self осей childосновной узел является <элементом>.

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

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

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

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

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

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

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

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