Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

Узлы дерева XML-документа

Корневой узел

Корневой узел XML-документа — это узел, который является корнем дерева документа. Не следует путать его с корневым элементом документа, поскольку помимо корневого элемента дочерними узлами корня также являются инструкции по обработке и комментарии, которые находятся вне корневого элемента.

Мы будем помечать корневой узел документа символом "

/
" и изображать следующим образом (рис. 3.3):

Рис. 3.3. Изображение корневого узла

На рис. 3.4 показано изображение документа,

<!--А-->

<В/>

<?С?>

корневой узел которого помимо корневого элемента содержит комментарии и инструкции по обработке.

Рис. 3.4. XML-документ и его изображение

Корневой элемент не имеет имени. Функция

name(/)
будет всегда возвращать пустую строку.

Строковым значением корневого узла является конкатенация строковых значений всех его текстовых потомков в порядке просмотра документа.

Узлы элементов

Каждому элементу XML-документа соответствует узел элемента. Дочерними узлами узла элемента могут быть узлы его дочерних элементов, а также узлы комментариев, инструкций по обработке и текстовые узлы, которые представляют его непосредственное содержимое. Следует обратить внимание на то, что узлы атрибутов не считаются дочерними узлами своего элемента, они лишь только ассоциируются с ними.

При изображении деревьев мы будем помечать узлы элементов их именами. Например, элемент

A
будет изображен следующим образом (рис. 3.5):

Рис. 3.5. Изображение элемента

А

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

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

Узлы атрибутов

Атрибутам того или иного элемента соответствуют узлы атрибутов. Считается, что узел элемента является родителем узла своего атрибута, но вместе с тем узел атрибута не является дочерним узлом узла его элемента. Такая ситуация несколько отличает дерево документа в XSLT от классического дерева, как оно было определено ранее — отношение между узлом элемента и узлом атрибута является отношением ассоциации. Говорят, что узел атрибута ассоциируется с узлом элемента.

Между тем, отношения такого рода не сильно отличаются от отношений между родительскими и дочерними узлами — один атрибут ассоциируется ровно с одним элементом. Поэтому мы будем изображать узлы атрибутов точно так же, как если бы они были дочерними узлами элементов. Для того чтобы отличать узлы атрибутов от остальных узлов, мы будем помечать их именем, которому будет предшествовать символ "

@
". При необходимости, значение атрибута будет приводиться в нижней части изображения узла.

Пример

Рис. 3.6 показывает возможные варианты изображения элемента, определенного как

<file name="a.txt"/>
.

Рис. 3.6. Изображение элемента и принадлежащего ему атрибута

В случаях, когда значение атрибута не является важным, оно может отсутствовать в изображении узла.

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

Строковым значением узла атрибута является значение атрибута, который ему соответствует.

Текстовые узлы

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

<
" и "
&
", на сущности
&lt;
и
&amp;
.

  • Читать дальше
  • 1
  • ...
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: