XML Formatter / Validator

XML Formatter / Validator

Форматируйте, минифицируйте и проверяйте любой XML — REST-ответы, SOAP-конверты, RSS-ленты, sitemap, Maven, AndroidManifest. Вывод с подсветкой синтаксиса, отчёты об ошибках с указанием строки и столбца. Всё в вашем браузере.

Well-formed — это базовый набор структурных правил: теги должны быть правильно вложены и закрыты, атрибуты заключены в кавычки, должен быть единственный корневой элемент, специальные символы должны быть экранированы (<, & и т. д.). Этот инструмент проверяет well-formed с помощью встроенного в браузер DOMParser.

Validity (валидность) — более строгая проверка по схеме (DTD, XSD, RelaxNG): «документ соответствует этой грамматике». Браузерный DOMParser не выполняет валидацию по схеме; для XSD-валидации нужен серверный инструмент вроде xmllint --schema.

Да. Секции CDATA (<![CDATA[…]]>) сохраняют содержимое ровно как написано — спецсимволы внутри не переэкранируются. Комментарии (<!-- … -->) и processing instruction (<?xml-stylesheet … ?>) возвращаются на свои исходные позиции. Declaration XML и строка doctype сохраняются как первые строки.

Ввод
Вывод

            

Создан для реального XML, а не игрушечных примеров

SOAP-конверты, RSS-ленты, sitemap, Maven `pom.xml`, AndroidManifest — всё корректно обрабатывается при форматировании, минификации и валидации.

Красивое оформление с правильным отступом

Настраиваемый отступ: 2 пробела, 4 пробела или Tab. Самозакрывающиеся теги остаются самозакрывающимися. Секции CDATA, комментарии, processing instruction и declaration XML переживают форматирование без потерь.

Минификация

Удалите незначащие пробелы между элементами и сверните весь документ в одну строку. Полезно для встраивания XML в строковое поле JSON или передачи по узкому каналу.

Валидация с указанием строки и столбца

Проверка well-formed с помощью встроенного DOMParser браузера. При ошибке строка и столбец некорректной разметки показываются прямо в интерфейсе, чтобы вы могли сразу перейти к проблеме.

Вывод с подсветкой синтаксиса

Имена тегов, атрибуты, значения атрибутов, текст, комментарии, CDATA и processing instruction — всё имеет цветовую кодировку, так что структура читается мгновенно.

Приватность по дизайну

Каждый байт остаётся в браузере. Разбор, форматирование, валидация и скачивание выполняются как JavaScript на вашей машине. Откройте DevTools → Network и убедитесь: ноль исходящих запросов.

Маленький и быстрый

Чистый JavaScript, без рантайма фреймворка. Холодная загрузка — менее 25 КБ в gzip. Форматирование XML-документа размером 200 КБ и повторный рендер с подсветкой синтаксиса занимают менее 80 мс.

Как форматировать и проверять XML

Четыре шага от грязного XML к чистому, проверенному выводу.

  1. 1

    Вставьте свой XML

    Перетащите или вставьте любую XML-нагрузку — ответы REST API, SOAP-конверты, RSS / Atom-ленты, sitemap, конфиги. Инструмент автоматически форматирует по мере ввода (с задержкой 350 мс).

  2. 2

    Выберите отступ

    2 пробела — современный стандарт (соответствует Prettier и большинству style guide). 4 пробела — более старая конвенция (Java и.NET). Tab подстраивается под ширину табуляции в вашем редакторе — удобно, когда документ будут править вручную.

  3. 3

    Проверьте или минифицируйте

    Validate сообщает о любых ошибках well-formed с указанием строки и столбца. Minify сворачивает документ в одну строку — удобно для встраивания XML в строку JSON, столбец БД или переменную shell.

  4. 4

    Скопируйте или скачайте

    Нажмите иконку копирования, чтобы отправить очищенный XML в буфер обмена, или скачайте как formatted.xml. Вывод сохраняет CDATA, комментарии, processing instruction и declaration XML.

Создан для SOAP, RSS, sitemap и конфигурационных файлов

Четыре типичных XML-сценария, где приватный браузерный форматтер выигрывает у запуска IDE.

Отладка SOAP / API

Вставьте сырой SOAP-ответ из лога сети, отформатируйте — и реальный fault теперь виден внутри конверта. Строка и столбец ошибки позволяют за секунды добраться до неправильного префикса namespace или неэкранированного &.

Создание sitemap и RSS

Вставьте написанный вручную `sitemap.xml` или RSS-ленту, проверьте well-formed перед отправкой в Search Console / агрегаторы. Минифицируйте до одной строки, чтобы встроить в скрипты автоматизации.

Build-файлы и конфиги

Maven pom.xml, Spring beans, маппинги NHibernate, Android AndroidManifest.xml — все выигрывают от переформатирования после ручных правок. Проверяйте перед коммитом, чтобы поймать опечатки, на которые иначе ругнётся сборка.

Office-документы и внутренности EPUB

.docx, .xlsx, .pptx и .epub — это ZIP-архивы XML. Извлеките внутренний XML, вставьте сюда, отформатируйте, и вы сможете аккуратно прочитать или отредактировать структуру перед обратной упаковкой.

100% приватно — работает в вашем браузере

XML-нагрузки никогда не покидают ваше устройство. Откройте DevTools → Network и увидите ноль исходящих запросов во время форматирования, валидации, копирования или скачивания.

  • Разбор использует встроенный в браузер DOMParser; форматирование и минификация — простые JavaScript-обходы получившегося DOM-дерева.
  • Никакого удалённого валидатора, никакого стороннего XML API. Каждый байт вашего XML остаётся на вашей машине.
  • Никакого логина, никакой телеметрии содержимого документов. Мы используем только один cookie для состояния согласия на cookie и один для языкового предпочтения.

Похожие руководства

Подборка материалов про XML, отладку SOAP и работу с конфигурационными файлами.

Частые вопросы

Что такое well-formed и чем это отличается от «valid» XML?

Well-formed — это базовый набор структурных правил: теги должны быть правильно вложены и закрыты, атрибуты заключены в кавычки, должен быть единственный корневой элемент, специальные символы должны быть экранированы (&lt;, &amp; и т. д.). Этот инструмент проверяет well-formed с помощью встроенного в браузер DOMParser.

Validity (валидность) — более строгая проверка по схеме (DTD, XSD, RelaxNG): «документ соответствует этой грамматике». Браузерный DOMParser не выполняет валидацию по схеме; для XSD-валидации нужен серверный инструмент вроде xmllint --schema.

Сохраняются ли при форматировании CDATA, комментарии и processing instruction?

Да. Секции CDATA (<![CDATA[…]]>) сохраняют содержимое ровно как написано — спецсимволы внутри не переэкранируются. Комментарии (<!-- … -->) и processing instruction (<?xml-stylesheet … ?>) возвращаются на свои исходные позиции. Declaration XML и строка doctype сохраняются как первые строки.

Можно ли вставить SOAP-конверт или RSS-ленту?

Да, работает всё well-formed — SOAP-конверты (с префиксами namespace soap:Envelope, soap:Body), RSS / Atom-ленты, sitemap, SVG, plist, Maven pom.xml, конфиги Spring, EPUB container.xml, Android AndroidManifest.xml. Префиксы namespace сохраняются — мы не удаляем атрибуты xmlns:.

Почему мой XML выдаёт «parser error», хотя выглядит нормально?

Самые частые причины: (1) неэкранированный & в тексте или значении атрибута — должен быть &amp;; (2) два корневых элемента (XML допускает ровно один); (3) тег написан иначе, чем закрывающий (например, <Item>…</item> — XML чувствителен к регистру); (4) значение атрибута без кавычек; (5) несопоставленный < в текстовом содержимом. Строка и столбец в сообщении об ошибке указывают на проблемную позицию.

Что-нибудь отправляется на ваш сервер?

Нет. Разбор, форматирование, минификация, валидация, подсветка синтаксиса и скачивание — всё работает как JavaScript в вашем браузере. Откройте DevTools → Network и увидите ноль исходящих запросов во время использования. Мы используем один cookie для состояния согласия на cookie и один для языкового предпочтения — и всё.