Недопустимый символ XML: найти и исправить источник
XSDHub · 4 ноября 2026 года
Причина и контекст
Сообщение о недопустимом символе часто связано с управляющим кодом, который не виден в обычном редакторе. XML 1.0 допускает табуляцию, перевод строки и возврат каретки, но запрещает многие другие управляющие символы. Наличие такого кода внутри текста делает документ некорректным независимо от XSD.
Что проверить в документе
В ошибочном примере используется числовая ссылка  на запрещённый код. Ссылка не делает запрещённый символ допустимым: парсер проверяет значение кода и отвергает документ. Правильный вариант содержит обычный текст без этого символа. Для воспроизведения достаточно синтаксического режима; схема здесь не участвует.
Разбор примера
Не путайте управляющие коды с неэкранированным амперсандом или знаком меньше. У этих случаев другая причина и другое исправление. Допустимый амперсанд нужно сериализовать как &, а запрещённый код нельзя легализовать похожей заменой на числовую ссылку. Сначала установите точное значение символа в исходных данных.
Как найти источник ошибки
Номер позиции в сообщении может считать байты, символы или единицы представления строки в конкретной библиотеке. Для кириллицы эти величины не всегда совпадают. Откройте файл в редакторе с просмотром кодов или шестнадцатеричным режимом и сопоставьте строку вокруг указанной позиции. Перед изменениями сохраните исходную копию.
Особые случаи
Если повреждение связано с кодировкой, повторно экспортируйте документ как UTF-8 из источника. Простая замена объявления encoding не перекодирует байты. Локальная загрузка файлов проверяет UTF-8 и отклоняет недопустимую последовательность. Текст, уже испорченный неправильным декодированием, требует восстановления из исходных данных, а не косметической правки заголовка.
Порядок исправления
Удаление символов допустимо только при понимании их назначения. В платёжных реквизитах или наименовании механическая очистка может изменить значимые данные. Исправьте генератор или настройку экспорта, затем проверьте новый файл целиком. После синтаксического успеха запустите проверку схемы и отдельно убедитесь, что содержание документа сохранилось.
Воспроизведите результат
Открыть инструмент для этих примеров. Сначала проверьте вариант с ошибкой, затем исправленный документ. Выберите проверку синтаксиса без схемы.
XML с ошибкой — ожидается отказ
<text>Данные</text>Исправленный XML — ожидается успех
<text>Данные без управляющего символа</text>