English

Content is not allowed in prolog: проверить начало XML

XSDHub · 4 ноября 2026 года

Причина и контекст

Ошибка «Content is not allowed in prolog» относится к началу документа перед корневым элементом. Формулировка зависит от парсера: другая библиотека может сообщить «Start tag expected». Обе диагностики в похожем случае указывают, что входные данные начинаются не с допустимой разметки XML.

Что проверить в документе

В ошибочном примере перед корнем стоит слово ERROR. Такой ответ часто появляется, когда приложение сохраняет в файл текст сбоя, диагностический префикс или посторонние данные. Удаление слова исправляет именно этот учебный документ. В рабочем процессе сначала выясните, почему генератор добавил его, иначе следующий экспорт снова окажется повреждённым.

Разбор примера

Просмотрите самые первые байты файла и его полный ответ HTTP, если документ получен по сети. Вместо XML сервер мог вернуть HTML-страницу входа, JSON с ошибкой или текст отказа. Не переименовывайте такой файл в .xml в надежде исправить формат. Проверьте код ответа, тип содержимого и авторизацию в исходной интеграции.

Как найти источник ошибки

XML-декларация, если присутствует, должна находиться в начале документа с учётом допустимой метки кодировки. Пробел перед декларацией может вызвать отдельное сообщение о её расположении. При отсутствии декларации пробельные символы перед корнем допустимы. Поэтому совет удалить абсолютно всё перед первым угловым символом слишком груб и может скрыть настоящую проблему.

Особые случаи

Корректная метка BOM для UTF-8 сама по себе не является доказательством повреждения XML. Проблемы возникают при неверном декодировании, дублировании метки или появлении её в неожиданном месте. Сравните фактические байты с объявленной кодировкой и повторите экспорт. Текстовая загрузка на этой странице рассчитана на UTF-8.

Порядок исправления

Сначала запустите ошибочный пример без схемы и зафиксируйте отказ. Затем проверьте вариант с корнем в начале: он должен пройти синтаксический этап. Только после этого подключайте XSD, если она нужна. Устранение ошибки пролога подтверждает читаемость разметки, но ничего не говорит о соответствии содержимого контракту получателя.

Воспроизведите результат

Открыть инструмент для этих примеров. Сначала проверьте вариант с ошибкой, затем исправленный документ. Выберите проверку синтаксиса без схемы.

XML с ошибкой — ожидается отказ

ERROR<root>Данные</root>

Исправленный XML — ожидается успех

<root>Данные</root>

Спецификация

Первоисточник W3C (English)