Как пользоваться инструментом форматирования XML
- Вставьте XML в поле ввода: SOAP-конверт, RSS-ленту, карту сайта, SVG-файл или файл конфигурации.
- Нажмите Форматировать, чтобы получить читаемый вид: один элемент на строку и единообразные отступы.
- Нажмите Минифицировать, чтобы убрать пробельные символы между тегами и получить максимально компактную версию.
- Если документ не является корректно сформированным, проверка сообщит, что не так и где, чтобы вы могли сразу перейти к проблеме.
- Скопируйте результат в редактор или запрос.
Разбор выполняется локально в вашем браузере. Вставленный XML никогда не загружается и не сохраняется, поэтому вы можете спокойно работать с внутренними данными API и конфигурацией.
Что такое XML и зачем его форматировать?
XML (Extensible Markup Language) — стандарт W3C для представления структурированных данных в виде вложенных именованных элементов с необязательными атрибутами. Он по-прежнему повсюду: веб-сервисы SOAP, ленты RSS и Atom, XML-карты сайта, файлы Microsoft Office, макеты Android, файлы Maven pom.xml и графика SVG — всё это XML.
XML, созданный программами, часто записан в одну строку или с неровными отступами. Форматирование делает иерархию видимой: можно проследить, какой элемент принадлежит какому родителю, и заметить значение не на своём месте. Минификация полезна, когда нужно встроить XML в другие данные или уменьшить его размер.
Корректно сформированный и валидный XML
Эти два термина часто путают:
- Корректно сформированный (well-formed) XML соответствует синтаксическим правилам спецификации XML: один корневой элемент, правильно вложенные и закрытые теги, значения атрибутов в кавычках и экранированные специальные символы. Этого требует любой XML-парсер.
- Валидный (valid) XML корректно сформирован и соответствует схеме (DTD, XSD или RELAX NG), определяющей, какие элементы и атрибуты допустимы.
Этот инструмент проверяет, корректно ли сформирован документ (well-formedness). Проверка по схеме требует файла схемы и обычно выполняется в инструментах сборки или IDE.
Частые ошибки XML и как их исправить
Больше одного корневого элемента. В XML-документе должен быть ровно один элемент верхнего уровня:
<item>A</item>
<item>B</item>
Оберните соседние элементы в один родительский:
<items>
<item>A</item>
<item>B</item>
</items>
Несовпадающие или неправильно вложенные теги. Теги должны закрываться в обратном порядке, а имена чувствительны к регистру, поэтому <Name>…</name> — ошибка, как и <b><i>text</b></i>.
Неэкранированные специальные символы. Одиночный < или & внутри текста ломает разбор. Используйте предопределённые сущности:
| Символ | Сущность | Когда обязательно |
|---|---|---|
< | < | Всегда в тексте и значениях атрибутов |
& | & | Всегда в тексте и значениях атрибутов |
> | > | Рекомендуется; обязательно в последовательности ]]> |
" | " | Внутри значений атрибутов в двойных кавычках |
' | ' | Внутри значений атрибутов в одинарных кавычках |
Например, URL в карте сайта нужно записывать как <loc>https://example.com/?a=1&b=2</loc>. Либо оберните большие блоки текста в секцию <![CDATA[ … ]]>, где символы разметки не интерпретируются.
Атрибуты без кавычек. В отличие от HTML, XML требует кавычки вокруг каждого значения атрибута: <user id="42">, а не <user id=42>.
Содержимое перед XML-объявлением. Если в файле есть объявление <?xml version="1.0" encoding="UTF-8"?>, оно должно стоять в самом начале. Даже один пробел или пустая строка перед ним делают документ некорректным.
Советы и лучшие практики
- Объявляйте кодировку и сохраняйте файлы в UTF-8, чтобы не было проблем с символами с диакритикой.
- Будьте осторожны при форматировании документов, где важны пробельные символы, например со смешанным содержимым или элементами с
xml:space="preserve": добавление переносов строк может изменить текстовое значение. - Последовательно используйте пространства имён: префикс вроде
soap:должен быть объявлен атрибутомxmlns:soapна элементе или его предке. - Нужно встроить XML в URL или строку JSON? Сначала закодируйте его с помощью кодирования URL или кодирования Base64.
Часто задаваемые вопросы
HTML и XML — это одно и то же?
Нет. HTML менее строг: он допускает незакрытые элементы вроде <br>, атрибуты без кавычек и имена тегов без учёта регистра. XHTML — вариант HTML, который следует правилам XML. Чтобы привести в порядок обычные веб-страницы, используйте инструмент Форматирование HTML.
Меняет ли форматирование мои данные?
Форматирование добавляет пробельные символы между элементами, а минификация убирает их. Имена элементов, атрибуты и текстовое содержимое остаются прежними, но в документах, где пробелы внутри текста значимы, лишние отступы могут иметь значение.
Проверяет ли этот инструмент XML по схеме XSD?
Нет. Он проверяет, что документ корректно сформирован. Для проверки по DTD или XSD нужны схема и валидирующий парсер.
Почему мой XML не проходит из-за амперсанда?
В XML символ & всегда начинает ссылку на сущность. Одиночный амперсанд, частый в URL и названиях компаний, нужно записывать как & или помещать в секцию CDATA.
Обновлено