Рис. 6.9. Расположение в документе осей навигации

На этом рисунке не показано расположение осей атрибутов и пространств имен вследствие того, что эти оси не имеют в документе физического направления.

Каждая ось имеет базовый тип узла — это тип узла, который считается 'главным' в этом направлении навигации. Этот тип устанавливается следующим образом: если ось может содержать узлы элементов, ее базовым типом является элемент, в противном случае базовым типом оси навигации является тип узлов, которые она может содержать.

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

Базовые типы узлов и направление их просмотра можно свести в одну таблицу (табл. 6.1).

Таблица 6.1. Базовые типы узлов и направления просмотра осей навигации

Ось навигации Базовый тип узла Направление просмотра
self Узел элемента Нет
child Узел элемента Прямое
parent Узел элемента Нет
descendant Узел элемента Прямое
descendant-or-self Узел элемента Прямое
ancestor Узел элемента Обратное
ancestor-or-self Узел элемента Обратное
following Узел элемента Прямое
following-sibling Узел элемента Прямое
preceding Узел элемента Обратное
preceding-sibling Узел элемента Обратное
attribute Узел атрибута Прямое
namespace Узел пространства имен Прямое

Базовый тип влияет на то, как в данном шаге выборки будет выполняться тест узла, а направление просмотра на позицию, которую будет занимать тот или иной узел в данном направлении.

Легче всего понять, какие узлы и в каком порядке содержат те или иные оси навигации, представив это графически. Рис. 6.10 иллюстрирует выбор узлов осями навигации. Здесь показано дерево документа, контекстный узел, выделенный жирной линией, и множество узлов, содержащееся в данной оси, ограниченное пунктиром. Узлы выбранного множества пронумерованы в порядке просмотра оси.

Рис. 6.10. Расположение и порядок просмотра осей навигации в документе

Приведем продукцию AxisName, которая описывает синтаксис осей навигации.

Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату