Языки информационного обмена

Узлы дерева


Язык XPath различает семь видов узлов.

  1. Узлы документа. Не отождествляйте узел документа с узлом корневого элемента документа. Узел корневого элемента вложен в узел документа наряду с узлами-комментариями и узлами инструкции по обработке. Кроме того, в языке XPath предусмотрена возможность работы с другими типами документов, возможно, содержащими несколько корневых элементов. Имя узла документа совпадает с именем корневого элемента документа.
  2. Узлы-элементы. Имя узла-элемента состоит из идентификатора пространства имен, получаемого по префиксу уточненного имени элемента, и локального имени элемента. Это расширенное имя узла. Если у элемента есть атрибут типа ID, то он служит идентификатором узла.
  3. Узлы-атрибуты. Их предок - узел-элемент, к которому относятся атрибуты, хотя они не считаются потомками этого узла. Узел-атрибут тоже определяется расширенным именем, полученным из уточненного имени атрибута.
  4. Узлы пространств имен. С каждым узлом-элементом связаны узлы тех пространств имен, в область действия которых входит данный элемент. Так же как и узлы-атрибуты, они не считаются потомками узла-элемента, хотя считают его своим предком. Поэтому программа-анализатор, обходя дерево, не будет автоматически просматривать узлы пространств имен. Имя узла пространства имен - это префикс, связанный с ним.
  5. Узлы инструкций по обработке. Это отдельные узлы, имена которых - это имена целевых приложений, выполняющих инструкцию. Первая строка пролога документа XML <?xml version="1.0"?> не считается инструкцией по обработке и не входит в дерево документа.
  6. Узлы комментарии. Каждый комментарий заносится в дерево как узел без имени.
  7. Текстовые узлы. Это строка символов, записанная в теле элемента между вложенными элементами. У текстовых узлов нет расширенного имени.

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

  • Строка, представляющая узел документа или узел-элемент, состоит из всех строк, представляющих его узлы-потомки текстового вида.
  • Строка, представляющая узел-атрибут, содержит его значение.
  • Строка, представляющая узел пространства имен, содержит его строку URI.
  • Строка узла инструкции по обработке составлена из ее содержимого.
  • Узел-комментарий и текстовый узел сами являются строками, причем начальные символы <!- и конечные символы -> комментария в строку не входят.



Содержание раздела