Знакомая ситуация: скачали с Госуслуг выписку, справку из налоговой или отчёт из банка, а вместо привычного 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-документа есть один главный тег, внутрь которого вложено всё остальное. У нас это <магазин>. Корень всегда один — это обязательное правило.
Обратите внимание на отступы: товары вложены в магазин, а название и цена — в товар. Получается древовидная структура: от одного корня расходятся ветки, у веток — свои листья. Такую вложенность называют иерархией, и именно она позволяет описывать сложные данные: от каталога товаров до анкеты сотрудника со всеми подробностями.
КурсыСравнение 31 курса по XMLЦены, школы, длительность, рассрочка
Правила синтаксиса XML
XML строгий. Если в HTML браузер простит забытый закрывающий тег, то XML на такой ошибке остановится и выдаст сообщение вроде «документ не well-formed». Well-formed («правильно сформированный») — это XML, который соблюдает все правила синтаксиса. Их немного:
- Каждый тег закрыт. Открыли
<товар>— обязательно закройте</товар>. Пустой элемент можно записать одним самозакрывающимся тегом:<фото/>. - Один корневой элемент. Всё содержимое лежит внутри единственного главного тега.
- Теги не пересекаются. Вложенность закрывается в обратном порядке:
<a><b>текст</b></a>, а не наоборот. - Регистр важен.
<Цена>и<цена>— для XML это два разных тега. Пишите одинаково. - Значения атрибутов — в кавычках. Всегда
id="101", а неid=101.
Отдельная тонкость — спецсимволы. Знаки < и & для XML служебные, внутри текста их напрямую писать нельзя, иначе парсер (программа, которая разбирает XML) запутается. Вместо них ставят замены-сущности: < вместо знака «меньше», & вместо амперсанда. А если нужно вставить большой кусок текста, не трогая его (например, фрагмент кода), его заворачивают в блок <![CDATA[ ... ]]>, и всё внутри воспринимается как обычный текст.
Полезный лайфхак. Если XML-файл «не открывается» или программа ругается на ошибку, в девяти случаях из десяти где-то забыт закрывающий тег или лишний символ. Проверить файл можно бесплатным онлайн-валидатором за пару секунд.
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 месяцев | Обзор курса | |
| Веб-разработчик Перейти на сайт курса | 153 348 ₽ | 4486 ₽/мес. | 16 месяцев | Обзор курса | |
| FullStack-разработчик: тариф PRO Перейти на сайт курса | 182 000 ₽ | 7583 ₽/мес. | 14 месяцев | Обзор курса | |
| Fullstack-разработчик на JavaScript Перейти на сайт курса | 158 760 ₽ | 6615 ₽/мес. | 11 месяцев | Обзор курса | |
| Веб-разработка для фриланса Перейти на сайт курса | 118 320 ₽ | 364 833 ₽/мес. | 12 месяцев | Обзор курса | |
| Фулстек-разработчик на JavaScript Перейти на сайт курса | 153 348 ₽ | 4296 ₽/мес. | 11 месяцев | Обзор курса | |
| FullStack-разработчик: тариф Базовый Перейти на сайт курса | 158 760 ₽ | 6615 ₽/мес. | 12 месяцев | Обзор курса | |
| Веб-разработчик (c индивидуальным сопровождением) Перейти на сайт курса | 204 000 ₽ | 368 333 ₽/мес. | 12 месяцев | Обзор курса |
Больше программ — в полном каталоге курсов по веб-разработке
Если пока не определились с направлением, посмотрите смежные материалы: разбор формата JSON для тех, кто идёт в веб и мобильную разработку, и статью про Schema.org-разметку — это уже прикладное применение структурированных данных для SEO.




