XML-форматировщик

Форматируйте, проверяйте и улучшайте XML-документы с подсветкой синтаксиса и обнаружением ошибок

Работает локально

XML Ввод

Результат форматирования

Инспектор

Вставьте корректный (well-formed) XML — структура, дерево и пути элементов появятся здесь автоматически

Расширенные настройки

Сравнить с другим XML

Отправьте этот документ в Data Diff и вставьте вторую версию, чтобы увидеть, что изменилось.

Валидация с точной позицией ошибки

Валидация выполняется при каждом нажатии клавиши с помощью XML-парсера браузера. Well-formed документы получают счётчики в реальном времени: количество элементов, атрибутов, текстовых узлов и глубину вложенности. Сломанные сообщают точные строку и столбец, вероятную причину и подсвечивают ошибочную позицию — а не просто «not well-formed».

Распространённые XML-ошибки, которые этот инструмент точно определяет

На такие ошибки приходится большая часть невалидного XML. Каждая обнаруживается с указанием позиции и вероятной причины:

Несовпадающие теги

<person> закрыт как </perso>. Парсер выдаёт «Opening and ending tag mismatch» с указанием строк обоих тегов; подсветка перескакивает на ошибочный.

Незакрытый тег

Отсутствующий > или отсутствующий закрывающий тег. Обычно сообщается как «expected >» или «premature end of data in tag X» в точной позиции.

Дублирующийся атрибут

Одно и то же имя атрибута дважды на одном элементе, например <item id="1" id="2">. Сообщается как «Attribute redefined» с указанием на второе вхождение.

Некорректная сущность / неэкранированный &

Литеральный & или < внутри текста должны быть экранированы (&amp;, &lt;). Парсер сообщает «EntityRef: expecting ;» или «not well-formed», указывая точный символ.

До / После

Минифицированный ответ API слева, тот же документ, отформатированный с отступом в 2 пробела, справа. Структура, дерево и пути обновляются на основе разобранного документа.

Before
<catalog><book id="1" category="fiction"><title>The Hobbit</title><author>J.R.R. Tolkien</author></book><book id="2" category="tech"><title>Refactoring</title><author>Martin Fowler</author></book></catalog>
After
<catalog>
  <book id="1" category="fiction">
    <title>The Hobbit</title>
    <author>J.R.R. Tolkien</author>
  </book>
  <book id="2" category="tech">
    <title>Refactoring</title>
    <author>Martin Fowler</author>
  </book>
</catalog>

Краткая справка по XML (W3C XML 1.0)

  • Well-formed ≠ valid: well-formed означает, что теги корректно вложены и закрыты; valid дополнительно означает, что документ соответствует DTD или XSD-схеме.
  • Пять предопределённых сущностей: &lt; &gt; &amp; &quot; &apos; — литеральный < или & в тексте всегда является ошибкой.
  • Имена элементов и атрибутов чувствительны к регистру и могут иметь префиксы пространств имён (ns:tag).
  • Ровно один корневой элемент; XML-объявление вида <?xml version="1.0" encoding="UTF-8"?>, если присутствует, должно идти первым.
  • Комментарии <!-- … --> не могут содержать -- и не могут быть вложенными.

Следующие шаги с этими данными

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

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

Ответы на распространенные вопросы о форматировании Xml Formatter

Форматер выполняет проверку корректности (well-formedness) и базовую валидацию. Он проверяет правильную вложенность тегов, синтаксис атрибутов и соответствие XML-объявления согласно спецификациям W3C XML 1.0/1.1.

Да, встроенный XPath-тестер позволяет писать и вычислять выражения XPath 1.0 и 2.0 для вашего XML-документа, подсвечивая совпадающие элементы и мгновенно показывая результаты.

Да, форматер корректно обрабатывает XML-документы с пространствами имён, сохраняя объявления и префиксы пространств имён и правильно форматируя элементы и атрибуты.

Да, функция конвертации позволяет преобразовывать XML в JSON и обратно с интеллектуальным сопоставлением, которое сохраняет структуру элементов, атрибуты и типы данных.

XML-форматировщик поддерживает файлы размером до 50 МБ благодаря оптимизированным алгоритмам разбора, что делает его подходящим для больших конфигурационных файлов, сообщений SOAP и документов обмена данными.

Объявления пространств имён (xmlns, xmlns:prefix) при форматировании рассматриваются как обычные атрибуты для целей отступов и никогда не переупорядочиваются и не удаляются, поэтому URI пространств имён остаются привязанными к тем же префиксам. Форматирование никогда не разрешает и не переписывает префиксы — их разрешением занимаются последующие инструменты согласно рекомендации W3C Namespaces in XML.

Форматирование только изменяет отступы и нормализует пробелы между элементами. Валидация проверяет структуру: сбалансированность тегов, наличие единственного корневого элемента, корректное заключение атрибутов в кавычки и синтаксис сущностей согласно спецификации W3C XML 1.0. Форматировщик сообщает об ошибках корректности построения (некорректный ввод невозможно переформатировать отступами), но не выполняет валидацию по DTD или XSD-схеме.

Да — блоки CDATA сохраняют своё точное внутреннее содержимое (в этом их назначение: экранирование текста, который иначе потребовал бы кодирования сущностями), а комментарии проходят без изменений, за исключением окружающих отступов. XML-декларации и инструкции обработки вида <?xml version="1.0"?> также остаются в начале файла нетронутыми.

{-- * External Resources Component(#19 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / 官方语言文档 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}

Связанные инструменты