Инструменты
RU

Что такое XML?

XML (Extensible Markup Language, расширяемый язык разметки) — текстовый формат для хранения и обмена структурированными данными. В этой статье рассказываем, что означает XML, как устроен его синтаксис, что такое файл .xml и где XML встречается каждый день — от карт сайта и SVG-изображений до документов Office и электронных счетов.

Что означает XML

XML расшифровывается как Extensible Markup Language — «расширяемый язык разметки». В 1998 году он получил статус рекомендации W3C. XML описывает данные с помощью тегов, имена которых вы придумываете сами, — именно это и означает «расширяемый». В отличие от HTML, в XML нет заранее заданных тегов: в каталоге могут быть <product> и <price>, в счёте — <item> и <total>.

Небольшой XML-документ выглядит так: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML — это обычный текст, поэтому его может прочитать человек и обработать любой язык программирования. XML только хранит и структурирует данные, сам по себе он ничего не делает. Что означают данные и как их показывать, решают программы.

Правила синтаксиса XML

Любой XML-документ должен соблюдать несколько строгих правил. Документ, который им следует, называется синтаксически корректным (well-formed):

Комментарии записываются как <!-- … -->. Валидатор XML проверяет все эти правила за секунду и указывает строку с ошибкой.

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

Элемент — это открывающий тег, содержимое и закрывающий тег: <price>19.90</price>. Элементы могут содержать текст, другие элементы или и то и другое. Атрибут — это пара «имя — значение» внутри открывающего тега: <price currency="EUR">.

ЭлементАтрибут
Пример<color>red</color>color="red"
Может повторятьсяДаНет, один раз в элементе
Может содержать дочерние элементыДаНет, только текст
Порядок важенДаНет

Распространённое соглашение: элементы используют для самих данных и всего, что может повторяться или иметь структуру, а атрибуты — для метаданных, например идентификаторов, единиц измерения или типов.

Well-formed и валидный XML: в чём разница

Синтаксически корректный (well-formed) XML соблюдает правила синтаксиса — всё остальное парсеры отвергают. Валидный XML синтаксически корректен и вдобавок соответствует схеме, которая определяет, какие элементы и атрибуты допустимы, в каком порядке и с какими типами данных.

Пространства имён XML

Поскольку имена тегов может придумать кто угодно, в двух словарях может встретиться одно и то же имя — например, <title> как название книги и <title> как звание человека. Пространства имён разделяют их, привязывая имена к URI. Атрибут xmlns:cfdi="http://www.sat.gob.mx/cfd/4" объявляет префикс cfdi, поэтому <cfdi:Comprobante> относится к мексиканскому словарю CFDI 4.0. Пространство имён по умолчанию — xmlns="…" без префикса — действует на все элементы без префикса внутри него. URI служит только идентификатором: по нему ничего не загружается.

XML, JSON и HTML: в чём разница

XMLJSONHTML
НазначениеХранение и обмен структурированными данными и документамиОбмен данными, особенно в веб-APIОтображение веб-страниц
Имена тегов или ключейЗадаёте вы самиЗадаёте вы самиЗаданы стандартом HTML
Типы данныхТекст, если типы не заданы схемойСтрока, число, boolean, null, массив, объектТекст
АтрибутыДаНетДа
КомментарииДаНетДа
СхемыDTD, XSDJSON Schema–
Синтаксические ошибкиПарсеры отвергают документПарсеры отвергают документБраузеры исправляют сами

JSON компактнее и напрямую соответствует объектам JavaScript, поэтому большинство веб-API перешли на него. XML остаётся сильным там, где документы сочетают текст и разметку, нужны пространства имён или строгая проверка по схемам, — поэтому налоговые органы, издательства и офисные форматы до сих пор на него опираются.

Что такое XML-файл и чем его открыть

Файл .xml — это обычный текстовый файл с XML-документом, как правило в кодировке UTF-8. Раз это текст, его откроет любой текстовый редактор: «Блокнот» в Windows, TextEdit на Mac или редактор кода, например VS Code. Chrome и Firefox показывают XML-файлы в виде дерева, если перетащить их в окно браузера, а Excel умеет импортировать данные XML в таблицу.

Многие файлы используют XML без расширения .xml: изображения .svg, ленты .rss, схемы .xsd, таблицы стилей .xsl, файлы .config в .NET и файлы .plist в macOS, которые могут храниться в формате XML. Файлы Word, Excel и PowerPoint (.docx, .xlsx, .pptx) — это ZIP-архивы, полные XML-файлов.

Где используется XML

Часто задаваемые вопросы

Как расшифровывается XML?

Extensible Markup Language — «расширяемый язык разметки». «Расширяемый» означает, что теги вы определяете сами, а «разметка» — что структура записывается в виде тегов вокруг данных.

XML — это язык программирования?

Нет. XML — это формат данных: он описывает и структурирует информацию, но ничего не вычисляет. Для запросов к XML и его преобразования служат родственные технологии — XPath и XSLT.

Используется ли XML сегодня?

Да. Во многих веб-API JSON вытеснил XML, но XML остаётся стандартом для карт сайта, RSS-лент, SVG, офисных документов, макетов Android, SOAP-сервисов и электронных счетов во многих странах.

Обновлено: