XML сформовано некоректно: що виправити
Що означає це повідомлення
Файл не є коректним документом XML, тож його не можна прочитати як рахунок. Найчастіше бракує закривального тега, теги закрито в неправильному порядку або в назві фірми знак & записано напряму. Валідатор зупиняється на цьому кроці, тож інших помилок у файлі не побачиш, доки не виправиш цю.
Чому так
Структурований рахунок (faktura ustrukturyzowana) це файл XML, а XML має суворі правила запису, описані в специфікації W3C. Кожен відкритий тег треба закрити, теги не можуть перекриватися, весь файл має один кореневий елемент (Faktura), а знаки < і & у тексті записують як < і &. Файл, що порушує будь-яке з цих правил, відхилить кожна програма, яка читає XML, а не лише KSeF.
Звідки береться найчастіше
- Знак
&у назві фірми чи описі товару, наприклад «Kowalski & Syn». - Немає закривального тега після ручного редагування файлу.
- Помилка в назві закривального тега. Регістр має значення:
<Nazwa>не закривається тегом</nazwa>. - Порожній рядок або пробіл перед декларацією
<?xml ...?>на початку файлу. - Невидимі керівні символи, вставлені з PDF чи Word.
- Файл обрізано під час експорту, або це інший файл (наприклад, PDF) з розширенням
.xml.
Проблеми з кодуванням символів зазвичай мають інший симптом: спотворені польські літери або окреме повідомлення про кодування, відмінне від UTF-8, якого вимагає брошура. Ці правила ми описали в статті про сувору валідацію XML у KSeF (польською).
Як це виправити
- Відкрий файл у редакторі з підсвічуванням XML (наприклад, VS Code). Наше повідомлення не вказує рядка, тож шукай місце, де підсвічування обривається або перестає відповідати тегам.
- Перевір також кілька рядків вище: помилка буває там, де починається незакритий тег.
- Виправ запис і завантаж файл знову.
<!-- ❌ Знак & записано напряму -->
<Nazwa>Kowalski & Syn sp. z o.o.</Nazwa>
<!-- ✅ Знак & як & -->
<Nazwa>Kowalski & Syn sp. z o.o.</Nazwa>
<!-- ❌ Немає закривального тега P_7 -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Sesja zdjęciowa
<P_8A>szt.</P_8A>
</FaWiersz>
<!-- ✅ P_7 закрито -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Sesja zdjęciowa</P_7>
<P_8A>szt.</P_8A>
</FaWiersz>
<!-- ❌ Теги закрито в неправильному порядку -->
<Adres><KodKraju>PL</Adres></KodKraju>
<!-- ✅ Спершу закривається тег, відкритий останнім -->
<Adres><KodKraju>PL</KodKraju></Adres>Якщо файл згенерувала програма для рахунків, не виправляй його вручну щоразу. Повідом про помилку постачальника програми або виправ вихідні дані, наприклад назву контрагента.
Що далі
Коли файл уже можна прочитати, валідатор перевірить його за схемою FA(3). Найчастіші помилки на цьому етапі ми описали в найчастіших помилках валідації FA(3) (польською). Після виправлення перевір рахунок ще раз.
Перевір свій рахунок
Завантаж XML-файл, і ми покажемо, що треба виправити. Твій файл не залишає браузер.
Відкрити валідатор