Несовпадение тегов XML: найти нарушенную вложенность
XSDHub · 4 ноября 2026 года
Причина и контекст
Открывающий и закрывающий теги должны иметь одинаковое имя с учётом регистра и префикса. Элемент Item нельзя завершить тегом item. Даже если два префикса объявлены для одного пространства имён, синтаксическое закрытие элемента требует совпадения написанного имени. Это проверка разметки, которая выполняется раньше сопоставления со схемой.
Что проверить в документе
Вторая частая причина — пересечение элементов. В примере открыт корень order, затем quantity, но сразу закрывается order. Парсер ожидает завершение quantity и сообщает о несовпадении. Добавление нужного закрывающего тега перед концом корня восстанавливает правильную вложенность и делает документ синтаксически корректным.
Разбор примера
Смотрите на первую ошибку и пару имён в исходном сообщении. Оно может содержать строку открытия и строку неожиданного закрытия. Перейдите к обеим позициям, затем проследите вложенность между ними. Последующие сообщения об окончании документа часто являются следствием той же незакрытой конструкции и исчезают после исправления.
Как найти источник ошибки
Пустой элемент записывают как <item/> или как <item></item>. Обе формы допустимы, однако запись <item> сама по себе пустым завершённым элементом не является. При объединении фрагментов не добавляйте лишний закрывающий тег к уже самозакрывающейся записи. Проверяйте границы шаблонов, особенно внутри циклов генерации.
Особые случаи
Форматирование помогает увидеть уровни вложенности только после успешного разбора. Оно не угадывает недостающие теги и не должно менять содержание ради восстановления повреждённого файла. Если форматирование отказало, исправьте разметку в исходном документе и повторите попытку. Сравните изменения с сохранённой копией.
Порядок исправления
Воспроизведите ошибку в режиме проверки синтаксиса без схемы. После исправления подключите XSD, если она предусмотрена вашим обменом: правильно закрытые элементы всё ещё могут стоять в неправильном порядке или содержать недопустимые значения. Для устранения повторяющейся проблемы исправляйте генератор файла, а не только один полученный экземпляр.
Воспроизведите результат
Открыть инструмент для этих примеров. Сначала проверьте вариант с ошибкой, затем исправленный документ. Выберите проверку синтаксиса без схемы.
XML с ошибкой — ожидается отказ
<order><quantity>3</order>Исправленный XML — ожидается успех
<order><quantity>3</quantity></order>