Как отформатировать XML
- Вставьте XML в поле — выгрузку из 1С, файл обмена с интернет-магазином в CommerceML, электронный документ, запрос или ответ SOAP, RSS-ленту, карту сайта,
pom.xmlиз Maven, разметку Android или SVG. Проверка и форматирование идут сразу при вставке. - Выберите Форматировать, чтобы каждый элемент оказался на своей строке с отступом в 2 или 4 пробела либо табуляцией, или Сжать, чтобы убрать пробелы и переносы между тегами.
- Нажмите Копировать рядом с результатом или Скачать, чтобы сохранить файл.
- Если XML некорректен, вы увидите описание ошибки, номер строки и столбца, саму строку со знаком ^ под проблемным местом и подсказку, как исправить. Исправьте — и отформатированный XML появится сразу.
Что форматирование меняет, а чего не трогает никогда
Документ XML — это дерево элементов. Форматирование ставит каждый дочерний элемент, комментарий и инструкцию обработки на отдельную строку с отступом по глубине вложенности; сжатие убирает эти переносы и отступы обратно. Так обрабатываются только элементы, содержимое которых состоит из других элементов: только там пробелы между тегами ничего не значат. Всё остальное копируется символ в символ:
- Текст, включая пробелы в начале и в конце:
<name> Анна </name>сохраняет обе пары пробелов. - Смешанное содержимое — текст и теги в одном элементе, например
<note>Доставка за <b>2 дня</b>.</note>, — остаётся как есть: перенос строки там стал бы частью текста. - Элементы с
xml:space="preserve"со всем содержимым. - Секции CDATA, комментарии, инструкции обработки и DOCTYPE, включая внутреннее подмножество в
[ ]. - Ссылки на сущности и символы:
&остаётся&, аЖне превращается в «Ж». - Значения атрибутов, их кавычки и порядок. Внутри тега пробелы приводятся в порядок: один пробел перед каждым атрибутом и никаких вокруг
=, так что<x id = "1" />станет<x id="1"/>.
Переносы строк Windows (CR LF) записываются как LF — любой XML-парсер всё равно читает их так.
Что значит «корректный» (well-formed) XML
Любой XML-файл должен соблюдать синтаксис XML 1.0 и пространств имён, иначе его не прочитает ни одна программа. Проверка сообщает о первом нарушенном правиле: один корневой элемент, внутри которого всё; каждый открывающий тег закрыт парным, в правильном порядке и в том же регистре; значения атрибутов в кавычках, ни один атрибут не повторяется в теге; & и < в тексте записаны как & и <; только пять предопределённых сущностей, если DOCTYPE не объявляет других; каждый префикс вроде dc: объявлен через xmlns:dc="…"; объявление <?xml … ?>, если оно есть, — самые первые символы файла. Например:
<client>ООО «Рога & Копыта»</client>
^
Здесь ошибка Неэкранированный & в строке 2, столбце 21: амперсанд в названии компании нужно записать как ООО «Рога & Копыта». Это самая частая ошибка в выгрузках и товарных фидах, собранных вручную или «склейкой» строк. Ёлочки « » при этом допустимы — в XML это обычные символы текста.
Корректный — не то же самое, что валидный. Валидация сверяет документ со схемой (XSD или DTD), где сказано, какие элементы и значения разрешены, — для электронных документов это схемы, которые публикует ФНС вместе с форматом. Эта страница проверяет синтаксис, а не схему.
Пример
В поле — каталог книжного магазина размером 508 байт в одну строку, с пространством имён, комментарием, смешанным содержимым и секцией CDATA. С отступом в 2 пробела он выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<catalog xmlns:dc="http://purl.org/dc/elements/1.1/">
<!-- две книги -->
<book id="bk101" lang="ru">
<dc:title>Мастер и Маргарита</dc:title>
<price currency="RUB">590.00</price>
<note>Доставка за <b>2 дня</b>.</note>
</book>
<book id="bk102" lang="ru">
<dc:title>Евгений Онегин</dc:title>
<price currency="RUB">350.00</price>
<summary><![CDATA[Роман в стихах: <глава 1> & далее.]]></summary>
</book>
</catalog>
10 элементов вложены на 4 уровня. Элемент <note> смешивает текст и тег, поэтому остаётся в одной строке, а секция CDATA сохраняет свою <глава 1> и голый &. Отступы добавили 47 байт; сжатие отформатированной версии возвращает размер к 508 байтам. Учтите, что в UTF-8 каждая русская буква занимает 2 байта.
Подписанные XML: документы ФНС, ЭДО, SOAP
Электронные документы — счета-фактуры, УПД и другие файлы по форматам ФНС, а также многие сообщения веб-сервисов — заверяются электронной подписью. Подпись относится к точному содержимому файла, включая пробелы между тегами и кодировку, поэтому отформатированная копия подписанного документа проверку подписи уже не пройдёт. Форматируйте подписанный файл, чтобы прочитать его или найти ошибку, а отправляйте и храните оригинал. Сжатие так же опасно, если оригинал подписан с переносами строк.
Кодировка windows-1251
Многие российские XML-файлы — документы по форматам ФНС, старые выгрузки 1С — объявлены как <?xml version="1.0" encoding="windows-1251"?>. Страница работает с символами, которые вы вставили, поэтому вставлять такой файл можно, если он открыт в редакторе правильно (без кракозябр). Но Скачать сохраняет UTF-8: если в объявлении осталось windows-1251, программа прочитает русские буквы неправильно. Для чтения это не важно, а для дальнейшей работы замените в скачанном файле объявление на encoding="UTF-8" или используйте оригинал.
Ограничения и советы
- Большие файлы: документ на 200 КБ с тысячами элементов проверяется и форматируется заметно быстрее секунды, длинный результат прокручивается плавно. Файлы в десятки мегабайт — например, полная выгрузка номенклатуры из 1С — удобнее открывать в настольном редакторе.
- Сущности DTD: если в документе есть DOCTYPE, именованные сущности вроде
&co;принимаются без проверки, объявлены ли они. - HTML — не XML. Теги вроде
<br>без закрывающей косой черты здесь считаются ошибкой. Для JSON есть форматирование JSON, для запросов к базе — форматирование SQL.
XML остаётся на вашем устройстве
Разбор, проверка и форматирование выполняются в вашем браузере. В счетах, выгрузках и сообщениях API часто есть ИНН, адреса и цены — ничего из этого не загружается на сервер и не записывается в логи. Данные и не сохраняются: после перезагрузки страницы поле очищается.
Частые вопросы
Загружается ли мой XML на сервер?
Нет. Форматирование выполняет JavaScript в вашем браузере, файл не покидает устройство, а после загрузки страница работает даже без интернета.
Чем корректный XML отличается от валидного?
Корректный (well-formed) XML соблюдает синтаксис, который требует любой парсер: теги закрыты и вложены правильно, значения атрибутов в кавычках, спецсимволы экранированы, корневой элемент один. Валидный XML вдобавок соответствует схеме (XSD или DTD), где перечислены разрешённые элементы и значения. Эта страница проверяет корректность.
Почему появляется ошибка «Неэкранированный &»?
В XML амперсанд начинает ссылку вроде & или Ж. Обычный & — в названии компании, описании товара или URL с несколькими параметрами — нужно писать как &.
Можно ли отформатировать подписанный документ и отправить его?
Нет. Электронная подпись относится к точному содержимому файла, включая пробелы, поэтому отформатированная копия не пройдёт проверку. Читайте отформатированную версию, а храните и отправляйте исходный файл.
Почему некоторые элементы остались в одной строке?
Элемент с текстом — отдельно или вперемешку с тегами — копируется ровно так, как записан, потому что переносы и пробелы внутри него изменили бы текст. На несколько строк раскладываются только элементы, в которых нет ничего, кроме других элементов, комментариев и инструкций обработки.
Обновлено: 16 октября 2026 г.