Документация / XML

Элементы и атрибуты

Элементы

Элемент — открывающий тег, содержимое и закрывающий тег: <name>Анна</name>. Содержимое может включать текст, другие элементы, комментарии, инструкции обработки, ссылки и секции CDATA. Элемент без содержимого записывается короче: <empty></empty> или <empty/> — это одно и то же.

Имена

Имена элементов и атрибутов:

  • начинаются с буквы, подчёркивания _ или двоеточия :; дальше могут идти буквы, цифры, -, ., _;
  • могут содержать буквы любых алфавитов — <заказ> допустим, хотя латиница привычнее для обмена между системами;
  • не содержат пробелов;
  • чувствительны к регистру;
  • имена, начинающиеся с xml в любом регистре, зарезервированы стандартом;
  • двоеточие используется для префиксов пространств имён, поэтому в своих именах его не применяют.
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <product-item id="p1">
    <unit_price>100</unit_price>
    <цвет>чёрный</цвет>
  </product-item>
</catalog>

Атрибуты

Атрибут — пара «имя = значение» в открывающем теге. Значение всегда в кавычках; если внутри значения нужна такая же кавычка, её экранируют (&quot;, &apos;) или берут кавычки другого вида.

<link title='Отчёт "Итоги года"' href="https://example.com/?a=1&amp;b=2"/>

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

Специальные атрибуты

Стандарт определяет два атрибута с префиксом xml:, которые можно использовать в любом формате:

АтрибутЗначение
xml:langЯзык содержимого: ru, en-GB. Наследуется вложенными элементами
xml:spacepreserve — приложение должно сохранить пробелы в содержимом как есть; default — поведение по умолчанию

Спецификация Namespaces добавляет ещё xmlns и xmlns:префикс, а связанные стандарты — xml:id и xml:base.

<?xml version="1.0" encoding="UTF-8"?>
<messages>
  <message xml:lang="ru">Заказ принят</message>
  <message xml:lang="en">Order accepted</message>
  <code xml:space="preserve">  отступы   сохраняются  </code>
</messages>

Обновлено: 30 сентября 2026 г.