Структура дерева XML

Документ XML формирует структуру дерева, которая начинается с "корня" и затем расширяется до "ветвей".

Структура дерева XML

Дерево узлов DOM

Пример XML документа

Этот XML представляет собой список книг:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="Кулинария">
  <title lang="zh">Яшэ о еде</title>
  <author>Ли Шичhou</author>
  <press>Jiangsu Literature and Art Press</press>
  <year>2013</year>
  <price>35</price>
  <ISBN>9787539962771</ISBN>
</book>
<book category="Детская литература">
  <title lang="zh">Великолепный папа-лиса</title>
  <author>Рольф Дал</author>
  <translator>Дай Вей</translator>
  <press>Томorrow Press</press>
  <year>2009</year>
  <price>10</price>
  <ISBN>9787533259563</ISBN>
</book>
<book category="文学">
  <title lang="zh">Преобразование знакомого в незнакомое</title>
  <author>Цигмунд Бауман</author>
  <author>Пётр Хавна</author>
  <translator>Ван Личжоу</translator>
  <press>Нanjing University Press</press>
  <year>2023</year>
  <price>68</price>
  <ISBN>9787305269387</ISBN>
</book>
<book category="科学">
  <title lang="zh">Ты хочешь лететь, как птица?</title>
  <author>Ричард Докинс</author>
  <author>Яна Ренцова</author>
  <translator>Гао Тяньyu</translator>
  <press>Хунаньская академия наук и технологий</press>
  <year>2023</year>
  <price>88</price>
  <ISBN>9787571019075</ISBN>
</book>
<book category="политика" cover="бумажная обложка">
  <title lang="ru">О демократии в США</title>
  <author>Токвиль</author>
  <translator>Дунг Гуолиан</translator>
  <press>Коммерческое издательство</press>
  <year>1989</year>
  <price>60</price>
  <ISBN>9787100124553</ISBN>
</book>
</bookstore>

Структура дерева XML

элементы в документе XML формируют деревоэлементное дерево.

этот элементкорневой элементначиная и простираясь до дереваподэлементы.

Документ XML должен содержать корневой элемент. Этот элемент является родителем для всех других элементов.

Все элементы могут иметь подэлементы:

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

термины «родительский», «подэлемент» и «сиблинг» используются для описания отношений между элементами.

родительский элемент имеет подэлементы. У подэлементов есть родительский элемент. Подэлементы на одном уровне становятся сиблингами (брат или сестра).

Все элементы могут иметь текстовый контент (Яша о еде) и атрибуты (category="вкусная еда"), как в HTML.

самоопределяющаяся грамматика

XML использует простую самоопределяющуюся грамматику:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Не забудьте встречу!</body>
</note>

первая строка - это宣言 XML. Оно определяет версию XML (1.0) и используемый кодировщик (ISO-8859-1 = Latin-1/европейский字符ный набор).

следующую строку описывает документкорневой элемент(как говорят: «Этот документ - это закладка»):

<note>

следующие 4 строки описывают корень 4 элемента(to, from, heading и body):

<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Не забудьте встречу!</body>

Последний абзац определяет конец корневого элемента:

</note>

Из этого примера можно предположить, что этот документ XML содержит записку Джона для Джорджа.

XML обладает отличной самоописательностью, согласны ли вы с этим?