Недопустимий символ у XML: як знайти причину
XSDHub · 4 листопада 2026 року
Що означає проблема
Невидимий керувальний символ здатен зробити XML 1.0 некоректним ще до перевірки структури. Табуляція, переведення рядка та повернення каретки дозволені, проте багато інших керувальних кодів заборонено. Через непомітність такого коду звичайний перегляд файла може не показати причини, тоді як аналізатор зупиниться на відповідному текстовому вузлі.
З чого почати перевірку
У помилковому прикладі числове посилання  вказує на заборонений код. Посилання не легалізує символ: обробник перевіряє його числове значення і відхиляє документ. Виправлений варіант прибирає цей код із навчального тексту. Для відтворення достатньо режиму синтаксису; XSD на допустимість цього символу не впливає.
Як працює приклад
Не плутайте цю ситуацію з неекранованим амперсандом. Амперсанд є допустимим значенням і передається як &, тоді як заборонений керувальний код не стає допустимим після числового екранування. Перед очищенням установіть точне значення підозрілого символу та його походження. Зайва заміна всіх нестандартних знаків може пошкодити українські літери або потрібні розділові знаки.
На що звернути увагу
Позиція в повідомленні залежить від способу підрахунку в конкретній бібліотеці. Байти UTF-8 і видимі символи не завжди збігаються за кількістю, тому зіставляйте також рядок і сусідній текст. За потреби відкрийте копію файла в редакторі з переглядом кодів або шістнадцяткових байтів. Початковий файл збережіть для встановлення причини збою.
Як застосувати виправлення
Якщо проблема походить від кодування, повторно експортуйте дані як UTF-8. Зміна слова encoding в декларації не перетворює фактичних байтів. Локальний інструмент відхиляє недопустимі послідовності UTF-8 під час відкриття файла. Виправте джерело або налаштування експорту, потім перевірте новий документ цілком і переконайтеся, що зміст даних залишився правильним.
Перевірте приклади самостійно
Відкрити безкоштовний інструмент. Порівняйте помилковий і виправлений документи. Використовуйте режим синтаксису XML.
XML з помилкою — очікується відмова
<text>Дані</text>Виправлений XML — очікується успіх
<text>Дані без керувального символу</text>