Документация / XML
Структура документа
XML-документ состоит из пролога, единственного корневого элемента и, при необходимости, комментариев и инструкций обработки после него.
Пролог
Пролог может содержать:
- Объявление XML — строго в самом начале файла, без пробелов и пустых строк перед ним.
- Комментарии и инструкции обработки.
- Объявление типа документа
<!DOCTYPE …>— ссылку на DTD (см. «DTD»).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
| Параметр | Значение |
|---|---|
version | Версия XML: 1.0 |
encoding | Кодировка файла. Без объявления — UTF-8 или UTF-16 (определяется по началу файла) |
standalone | yes — документ не зависит от внешних объявлений разметки (внешнего DTD) |
Объявление XML необязательно, но рекомендуется: оно фиксирует кодировку.
Корневой элемент
В документе ровно один корневой элемент; все остальные элементы вложены в него. Два элемента верхнего уровня — ошибка:
<?xml version="1.0" encoding="UTF-8"?>
<customer>Анна</customer>
<customer>Иван</customer>
Правила правильности
Документ правильный, если:
- у каждого открывающего тега есть закрывающий, или элемент записан как пустой:
<br/>; - элементы вложены корректно, без пересечений:
<b><i>текст</i></b>, но не<b><i>текст</b></i>; - имена в открывающем и закрывающем тегах совпадают с учётом регистра:
<Name>и</name>— разные теги; - значения атрибутов заключены в кавычки (двойные или одинарные), а имена атрибутов в элементе не повторяются;
- символы
<и&в тексте и значениях атрибутов экранированы; - все ссылки на сущности ссылаются на объявленные сущности (кроме пяти предопределённых);
- в документе нет запрещённых символов (например, управляющих символов с кодами 0–31, кроме табуляции, перевода строки и возврата каретки).
Пересекающиеся теги — ошибка:
<p><b>Важно:<i> срок</b> — 3 дня</i></p>
Логическая и физическая структура
С точки зрения XML документ — это дерево элементов (логическая структура), которое может храниться в нескольких
сущностях — файлах или фрагментах текста (физическая структура). Сущности подключаются ссылками &имя;,
объявленными в DTD. В современных форматах внешние сущности почти не используют — для модульности применяют
XInclude, xs:include и собственные механизмы ссылок.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
