Подобно узлам атрибутов, узлы пространств имен ассоциируются с узлом элемента. Узел элемента является их родительским узлом, но при этом они сами не являются дочерними узлами узла элемента.
Расширенные имена узлов пространств имен состоят из локальной части имени, которая равна префиксу, использованному для объявления этого пространства и нулевого идентификатора пространства имен. Локальная часть пространства, определенного по умолчанию, будет пустой.
Строковым значением узла пространства имен является уникальный идентификатор ресурса (URI), с которым оно связано.
Мы будем помечать узлы пространств имен метками вида xmlns:
для обычного пространства и xmlns
для пространства имен по умолчанию. Мы не будем показывать в деревьях узлы пространства имен xml
, поскольку они ассоциируются со всеми узлами элементов. При необходимости в нижней части изображения узла мы будем приводить URI пространства, которое ему соответствует.
Приведем изображение дерева (рис. 3.8) документа
<а xmlns='urn:a'><b:b xmlns:b='urn:b'/></a>
Рис. 3.8. Изображение дерева документа с узлами пространств имен
Узлы инструкций по обработке
Каждой инструкции по обработке соответствует свой узел. В дерево не включаются узлы инструкций, которые были приведены в декларации типа документа (DTD). Кроме этого, поскольку декларация XML не является инструкцией по обработке, ей не будет соответствовать никакой узел в дереве документа.
Локальной частью расширенного имени инструкции по обработке является имя целевого приложения инструкции. Пространство имен инструкции по обработке всегда нулевое.
Строковым значением инструкции по обработке является ее содержание — последовательность символов, которая начинается после имени приложения и следующего за ним пробела и заканчивается перед символами '?>
', которые закрывают инструкцию. Напомним, что символьные данные инструкции по обработке не выделяются в отдельный текстовый узел.
Узел инструкции по обработке помечается именем целевого приложения, заключенным в символы '<?
' и '?>
'. В нижней части изображения узла пространства имен может быть указано содержимое инструкции.
Узел инструкции по обработке <?xsql quit?>
может быть изображен следующим образом (рис. 3.9):
Рис. 3.9. Изображение узла инструкции по обработке
Узел комментария
Узел комментария соответствует каждому из комментариев, которые присутствуют в документе кроме тех, которые находятся в декларации типа документа (DTD). Узлы комментариев не имеют имен; их строковым значением является текст комментария — последовательность символов после '<!--
' и до '-->
'. В изображении дерева узлы комментариев будут помечаться символами '<!-- -->
'. В нижней части при необходимости будет указываться текст комментария.
Узел комментария <!-- To do... -->
может быть изображен следующим образом (рис. 3.10):
Рис. 3.10. Изображение узла комментария
Сводная таблица характеристик узлов
Для удобства использования мы можем свести в одну таблицу (табл. 3.1) такие характеристики узлов, как строковое значение, локальная часть имени, пространство имен и так далее.
Тип узла | Характеристики | ||||
---|---|---|---|---|---|
Строковое значение | Расширенное имя | Дочерние узлы | Родительские узлы | ||
Локальная часть имени | Пространство имен | ||||
Корневой узел | Конкатенация текстовых потомков | Нет | Узлы элементов, комментариев, инструкций по обработке | Нет | |
Узел элемента | Конкатенация текстовых потомков | Имя элемента | Пространство имен элемента | Узлы элементов, комментариев, инструкций по обработке, текстовые узлы | Корневой узел или узел элемента |
Узел атрибута | Значение атрибута | Имя атрибута | Пространство имен атрибута |