Что такое XML простыми словами: формат, теги и примеры

XML — это формат, в котором приходят выписки с Госуслуг, отчёты из банков и даже документы Word под капотом. Разобрали простыми словами: что за формат, как устроены его теги, чем открыть XML-файл на компьютере и телефоне и чем он отличается от HTML и JSON. После статьи сможете открыть любой XML и понять, что внутри, даже если никогда не писали код.
Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 1440 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 2101 экспертное мнение Подписаться на Телеграм-канал

Знакомая ситуация: скачали с Госуслуг выписку, справку из налоговой или отчёт из банка, а вместо привычного PDF на диске лежит файл с расширением .xml. Открываешь его двойным кликом, а внутри мешанина из угловых скобок и непонятных слов. Первая мысль: файл битый.

Файл не битый. Это XML — один из самых распространённых форматов, в которых компьютеры хранят и передают данные. В нём же живут RSS-ленты, настройки программ и даже документы Word под капотом.

В этой статье разберём простыми словами: что такое XML, как он устроен изнутри, по каким правилам пишется, чем его открыть на компьютере и телефоне и где он применяется. Отдельно сравним XML с двумя его «соседями» — HTML и JSON: новичок их постоянно путает, а разница простая.

Статья пригодится не только будущим программистам. С XML сталкиваются бухгалтеры, специалисты по маркетплейсам, вебмастера, кадровики — все, кто выгружает или загружает данные между системами. Уметь хотя бы прочитать такой файл полезно каждому.

А если после статьи захочется разобраться в разработке всерьёз — загляните в нашу подборку курсов по веб-разработке: там больше сотни программ, от коротких интенсивов до годового обучения с трудоустройством.

Курсы по Веб-разработкаКурсыСравнение 162 курсов по веб-разработкеЦены, школы, длительность, рассрочка

Что такое XML простыми словами

XML расшифровывается как eXtensible Markup Language — «расширяемый язык разметки». Разметка (markup) — это когда мы обрамляем данные специальными пометками-тегами, чтобы было видно, что к чему относится. «Расширяемый» означает, что теги вы придумываете сами под свою задачу: <товар>, <клиент>, <заказ>. Какие нужны, такие и создаёте.

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

Возьмём пример из жизни. Интернет-магазин хочет отправить поставщику список товаров. Просто текстом «Кофеварка, 8000 рублей, 12 штук» отправлять бесполезно: чужая программа не поймёт, где название, где цена, а где остаток. А вот если завернуть каждое значение в понятный тег, машина на том конце разберёт данные без ошибок.

Важно сразу снять одно распространённое опасение: XML — это не язык программирования. На нём нельзя написать программу, он ничего не вычисляет и не выполняет команды. Это способ записать данные, а не инструкция к действию. Поэтому и уметь программировать, чтобы прочитать XML-файл, не нужно: достаточно понять несколько простых правил.

Запомните главное. XML не отвечает за то, как данные выглядят на экране. Он отвечает за то, что эти данные означают и как они связаны между собой.

Как устроен XML-файл

Проще один раз увидеть. Вот тот самый список товаров для магазина в формате XML:

<?xml version="1.0" encoding="UTF-8"?>
<магазин>
  <товар id="101">
    <название>Кофеварка</название>
    <цена валюта="RUB">8000</цена>
    <остаток>12</остаток>
  </товар>
  <товар id="102">
    <название>Чайник</название>
    <цена валюта="RUB">2500</цена>
    <остаток>40</остаток>
  </товар>
</магазин>

Даже без знания программирования тут понятно почти всё: есть магазин, в нём два товара, у каждого название, цена и остаток. В этом и сила XML — он читается почти как обычный текст. Разберём его по частям.

Пролог. Самая первая строка <?xml version="1.0" encoding="UTF-8"?> называется прологом. Это служебная пометка, которая сообщает программе две вещи: перед ней документ XML версии 1.0 и текст записан в кодировке UTF-8 (кодировка — это набор символов, который поддерживает русские буквы и эмодзи). Пролог ставится один раз в самом начале.

Тег и элемент. Тег — это слово в угловых скобках. Теги ходят парами: открывающий <цена> и закрывающий </цена> со слешем. Открывающий тег, значение внутри и закрывающий тег вместе называются элементом. В нашем примере <название>Кофеварка</название> — это один элемент.

Атрибут. Иногда к тегу нужно добавить уточнение. Для этого внутри открывающего тега пишут атрибут: пару «имя=значение» в кавычках. У тега <товар id="101"> есть атрибут id со значением 101, а у цены есть атрибут валюта. Атрибут удобен для дополнительных данных, которые описывают элемент, но не являются его основным содержимым.

Корневой элемент. У любого XML-документа есть один главный тег, внутрь которого вложено всё остальное. У нас это <магазин>. Корень всегда один — это обязательное правило.

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

Курсы по XMLКурсыСравнение 31 курса по XMLЦены, школы, длительность, рассрочка

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

XML строгий. Если в HTML браузер простит забытый закрывающий тег, то XML на такой ошибке остановится и выдаст сообщение вроде «документ не well-formed». Well-formedправильно сформированный») — это XML, который соблюдает все правила синтаксиса. Их немного:

  • Каждый тег закрыт. Открыли <товар> — обязательно закройте </товар>. Пустой элемент можно записать одним самозакрывающимся тегом: <фото/>.
  • Один корневой элемент. Всё содержимое лежит внутри единственного главного тега.
  • Теги не пересекаются. Вложенность закрывается в обратном порядке: <a><b>текст</b></a>, а не наоборот.
  • Регистр важен. <Цена> и <цена> — для XML это два разных тега. Пишите одинаково.
  • Значения атрибутов — в кавычках. Всегда id="101", а не id=101.

Отдельная тонкость — спецсимволы. Знаки < и & для XML служебные, внутри текста их напрямую писать нельзя, иначе парсер (программа, которая разбирает XML) запутается. Вместо них ставят замены-сущности: &lt; вместо знака «меньше», &amp; вместо амперсанда. А если нужно вставить большой кусок текста, не трогая его (например, фрагмент кода), его заворачивают в блок <![CDATA[ ... ]]>, и всё внутри воспринимается как обычный текст.

Полезный лайфхак. Если XML-файл «не открывается» или программа ругается на ошибку, в девяти случаях из десяти где-то забыт закрывающий тег или лишний символ. Проверить файл можно бесплатным онлайн-валидатором за пару секунд.

Ваня Буявец, продюсер, основатель CheckroiВаня Буявец, основатель CheckroiПоказываю, как применять Claude Code, ChatGPT и другие нейросети в учёбе и работе, с примерами и промптамиЧитать в Телеграме

XML и HTML — в чём разница

Оба формата состоят из тегов в угловых скобках и выглядят похоже, отсюда и путаница. У них даже общий предок, старый язык разметки SGML. Но задачи у них разные, и это ключевое.

HTML описывает оформление, XML описывает данные. HTML отвечает на вопрос «как это показать в браузере» — вот заголовок, вот абзац, вот картинка. XML отвечает на вопрос «что это за данные и как они связаны» — вот товар, вот его цена, вот остаток. Подробный разбор HTML со всеми тегами у нас есть в отдельной статье «Что такое язык разметки HTML».

Что сравниваем HTML XML
Для чего нужен Показать страницу в браузере Хранить и передавать данные
Теги Готовый набор (p, h1, img) Придумываете сами
Строгость Прощает ошибки Строгий, требует well-formed
Регистр тегов Не важен Важен
Кто читает В основном браузер Любая программа

Проще говоря: HTML — это про витрину, которую видит человек. XML — это про склад данных, к которому обращаются программы.

XML или JSON — что выбрать

Второй сосед XML — формат JSON. Он тоже хранит и передаёт данные, но делает это компактнее: вместо тегов использует пары «ключ: значение» и фигурные скобки. Тот же товар в JSON занимает заметно меньше места.

{
  "товар": {
    "название": "Кофеварка",
    "цена": 8000,
    "остаток": 12
  }
}

Оба формата решают одну задачу — обмен данными между программами — но по-разному расставляют акценты. Вот главные отличия:

Что сравниваем XML JSON
Компактность Многословный, теги дублируются Короче, легче
Читаемость для человека Наглядный, но громоздкий Чище и проще
Атрибуты и метаданные Есть из коробки Нет, всё через вложенность
Проверка структуры Строгие схемы XSD Есть, но слабее
Где чаще применяют Госсистемы, банки, документы, конфиги Веб-приложения, мобильные API

Какой выбрать, если начинаете с нуля? Для современных сайтов и мобильных приложений по умолчанию берут JSON — он легче и быстрее обрабатывается. XML остаётся там, где нужна строгая проверка данных и поддержка сложных документов: банковский обмен, госотчётность, форматы Office. Оба формата живы и никуда не денутся, так что разбираться полезно в обоих. Полное сравнение с примерами кода мы собрали в гайде про JSON.

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

Вернёмся к той самой выписке с Госуслуг. Открыть XML можно несколькими способами — выбирайте по ситуации.

Браузер — самый быстрый вариант, если нужно просто посмотреть содержимое. Перетащите файл в окно Chrome, Яндекс Браузера или Firefox — он покажет структуру с подсветкой и отступами. Ничего устанавливать не нужно.

Блокнот или простой текстовый редактор (Notepad в Windows, TextEdit на Mac) откроет XML как обычный текст. Способ рабочий, но без подсветки и отступов читать неудобно.

Редактор кода — лучший вариант, если с XML предстоит работать регулярно. Visual Studio Code, Notepad++ или Sublime Text подсвечивают теги, выравнивают структуру и сразу показывают, где ошибка. Это бесплатные программы.

На телефоне XML открывается встроенным файловым менеджером на Android или бесплатными приложениями-просмотрщиками. Ещё проще — онлайн-сервисы: загружаете файл на сайт и смотрите содержимое прямо в браузере смартфона.

Важный нюанс про Госуслуги. Многие выписки идут в паре: сам XML-файл с данными и файл подписи .sig. Чтобы увидеть выписку в привычном виде с печатями, загрузите оба файла в специальный сервис проверки на сайте ведомства — он превратит сухой XML в читаемый документ.

Курсы по ПрограммистКурсыСравнение 160 курсов для программистовЦены, школы, длительность, рассрочка

Где применяется XML

XML появился ещё в 1998 году и за это время прижился в огромном числе мест. Скорее всего, вы пользуетесь им каждый день, сами того не замечая. Вот где он работает:

  • Документы Office. Файлы .docx, .xlsx, .pptx — это архивы, внутри которых текст и форматирование хранятся в XML. Переименуйте .docx в .zip, распакуйте — и увидите XML-файлы внутри.
  • RSS-ленты. Когда сайт отдаёт свежие новости в приложение-читалку или агрегатор — это RSS-лента (способ автоматически публиковать обновления), и построена она на XML.
  • Конфигурационные файлы. Многие программы хранят свои настройки в XML: удобно, потому что человек может открыть файл и поправить параметр вручную.
  • Банки и госсистемы. Обмен платёжными документами, отчётность в налоговую, выписки — здесь XML стандарт де-факто, потому что строгие схемы гарантируют, что данные придут ровно в нужном виде.
  • Электронная бухгалтерия и ЭДО. Электронные счета-фактуры и УПД (универсальный передаточный документ) передаются между компаниями строго в XML по формату, который утверждает ФНС. Именно поэтому бухгалтер, выгружая УПД из 1С или сервиса электронного документооборота, получает на выходе .xml, а не PDF.
  • Карты сайтов и маркетплейсы. Файл sitemap.xml — это карта сайта для поисковиков: он в формате XML перечисляет все страницы, чтобы Яндекс и Google быстрее их находили и индексировали. А товарные фиды для Wildberries, Ozon и Яндекс Маркета часто выгружаются именно в XML.
  • Веб-сервисы SOAP. SOAP — это протокол обмена данными между программами по сети, и сообщения в нём передаются в XML. Он до сих пор в ходу в корпоративных и банковских системах.

Для более строгих задач у XML есть напарник — схема XSD. Это отдельный файл, который описывает, какие теги допустимы в документе, в каком порядке и какого типа. По схеме программа заранее проверяет, что данные корректны, и не пропустит, скажем, текст туда, где ждали число. Именно поэтому банки и госорганы так любят XML — он не даёт прислать документ «не по форме».

Где научиться работать с данными и кодом

Прочитать XML-файл и понять его структуру — это база, которую освоит любой за один вечер. Но если хочется идти дальше — писать программы, которые сами разбирают такие файлы, настраивать выгрузки для маркетплейсов или уйти в разработку — удобнее один раз пройти системный курс, чем собирать знания по форумам.

Мы собрали и сравнили программы по веб-разработке от разных школ — с ценами, длительностью и условиями трудоустройства. Ниже — актуальная подборка.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Fullstack-разработчик на Python
Перейти на сайт курса
НетологияНетология175 800 ₽7125 ₽/мес.21 месяцОбзор курса
Профессия «Веб-разработчик с нуля»
Перейти на сайт курса
НетологияНетология163 300 ₽7125 ₽/мес.13 месяцевОбзор курса
Веб-разработчик
Перейти на сайт курса
Академия СинергияАкадемия Синергия141 036 ₽5877 ₽/мес.6 месяцевОбзор курса
Веб-разработчик
Перейти на сайт курса
SkillboxSkillbox153 348 ₽4486 ₽/мес.16 месяцевОбзор курса
FullStack-разработчик: тариф PRO
Перейти на сайт курса
Академия ЭдюсонЭдюсон182 000 ₽7583 ₽/мес.14 месяцевОбзор курса
Fullstack-разработчик на JavaScript
Перейти на сайт курса
Академия ЭдюсонЭдюсон158 760 ₽6615 ₽/мес.11 месяцевОбзор курса
Веб-разработка для фриланса
Перейти на сайт курса
SkyproSkypro118 320 ₽364 833 ₽/мес.12 месяцевОбзор курса
Фулстек-разработчик на JavaScript
Перейти на сайт курса
SkillboxSkillbox153 348 ₽4296 ₽/мес.11 месяцевОбзор курса
FullStack-разработчик: тариф Базовый
Перейти на сайт курса
Академия ЭдюсонЭдюсон158 760 ₽6615 ₽/мес.12 месяцевОбзор курса
Веб-разработчик (c индивидуальным сопровождением)
Перейти на сайт курса
SkyproSkypro204 000 ₽368 333 ₽/мес.12 месяцевОбзор курса

Больше программ — в полном каталоге курсов по веб-разработке

Если пока не определились с направлением, посмотрите смежные материалы: разбор формата JSON для тех, кто идёт в веб и мобильную разработку, и статью про Schema.org-разметку — это уже прикладное применение структурированных данных для SEO.

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

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

Нет. XML — это формат для хранения и передачи данных, а не язык программирования. Он ничего не вычисляет и не выполняет команды, а только описывает информацию с помощью тегов. Поэтому уметь программировать, чтобы прочитать XML-файл, не нужно.

Чем открыть XML-файл на компьютере?

Проще всего перетащить файл в браузер (Chrome, Яндекс Браузер, Firefox) — он покажет структуру с подсветкой. Для регулярной работы удобнее бесплатные редакторы кода: Visual Studio Code, Notepad++ или Sublime Text. Открыть можно и обычным Блокнотом, но без отступов читать неудобно.

Как открыть XML-файл с Госуслуг на телефоне?

На Android XML открывается встроенным файловым менеджером или бесплатным приложением-просмотрщиком. Если это выписка с электронной подписью (рядом лежит файл .sig), загрузите оба файла в сервис проверки на сайте ведомства — он покажет документ в привычном виде с печатями.

Чем XML отличается от HTML?

HTML описывает, как страница выглядит в браузере, а XML описывает, что означают данные и как они связаны. В HTML набор тегов готовый и фиксированный, а в XML вы придумываете теги сами. XML строже: он не простит забытый закрывающий тег, тогда как HTML такую ошибку проигнорирует.

Что лучше — XML или JSON?

Зависит от задачи. JSON компактнее и быстрее обрабатывается, поэтому в современных сайтах и мобильных приложениях по умолчанию берут его. XML остаётся там, где нужна строгая проверка структуры: банковский обмен, госотчётность, документы Office. Оба формата актуальны.

Что значит ошибка «документ не well-formed»?

Это значит, что XML нарушает правила синтаксиса и программа не может его разобрать. Чаще всего где-то забыт закрывающий тег, перепутан регистр, теги пересекаются или в тексте стоит служебный символ без экранирования. Проверить файл можно бесплатным онлайн-валидатором за пару секунд.

XML — устаревший формат?

Нет. XML появился в 1998 году, но активно используется до сих пор: в документах Word и Excel, RSS-лентах, картах сайтов, товарных фидах для маркетплейсов, банковских и государственных системах. В вебе его частично потеснил JSON, но полностью заменить не смог.

Можно ли создать XML-файл самому?

Да, это обычный текстовый файл. Откройте любой редактор кода, начните с пролога <?xml version="1.0" encoding="UTF-8"?>, задайте один корневой элемент и вложите внутрь свои теги с данными. Сохраните с расширением .xml и проверьте результат онлайн-валидатором.

Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!