Валідатор

Елемент не на своєму місці в XML рахунку FA(3)

Що означає ця помилка

Схема FA(3) не очікувала цього елемента в цьому місці файлу. Елемент стоїть у неправильному порядку, має одрук у назві або взагалі не існує у FA(3).

Те саме повідомлення з'являється, коли перед зазначеним елементом бракує обов'язкового поля. Якщо в Fa немає P_2, схема вкаже на елемент, що стоїть одразу після цього місця (наприклад, P_6), бо саме там вона чекала на P_2.

Чому порядок має значення

Схема XSD FA(3) описує вміст розділу як послідовність (xs:sequence): елементи мають іти в установленому порядку. Необов'язкові поля можна пропустити, але ті, що є у файлі, стоять на своєму місці. Fa починається з KodWaluty, P_1, P_1M і P_2, а Podmiot2 закінчується полями JST і GV, після NrKlienta і IDNabywcy. Назви елементів чутливі до регістру, тож Nip це не NIP.

Схема XSD FA(3)

Як читати підказку

Біля помилки бачиш назву елемента, номер рядка і список «Тут має бути». Це елементи, які схема прийняла б тут замість зазначеного.

  • Одна назва в списку, наприклад P_1 при зазначеному P_2. Або зазначений елемент стоїть зарано, або перед ним бракує поля зі списку. Пошукай це поле нижче в розділі: якщо воно є, поміняй елементи місцями, якщо немає, додай його.
  • Кілька назв. Це елементи, які можуть тут стояти, зокрема необов'язкові. У довгих послідовностях, як-от підсумок за ставками в Fa, список буває обрізаний ще в повідомленні бібліотеки libxml2, якою ми перевіряємо схему, і може не містити поля, якого насправді бракує. Тоді порівняй розділ із порядком у схемі.
  • «Може, тут має бути…?» Назва відрізняється від очікуваної на одну-дві літери, тож це майже напевно одрук: Nazw замість Nazwa, NazwaBank замість NazwaBanku. Для назв, що відрізняються лише номером, ми підказки не показуємо, бо P_13_1 і P_13_2 це різні поля.

Як це виправити

  1. Відкрий файл на рядку, вказаному в повідомленні.
  2. Порівняй назву елемента зі списком очікуваних і виправ одрук або регістр.
  3. Якщо назва правильна, перенеси елемент на належне місце або додай перед ним поле, якого бракує.
  4. Елемент, якого схема FA(3) взагалі не знає (власне поле програми, залишок з іншого формату), видали. Додаткову інформацію на рахунку записують у DodatkowyOpis, як пару Klucz і Wartosc.
<!-- ❌ P_2 перед P_1 -->
<Fa>
  <KodWaluty>PLN</KodWaluty>
  <P_2>FV/2026/10/014</P_2>
  <P_1>2026-10-08</P_1>
  ...
</Fa>
<!-- ✅ Порядок зі схеми -->
<Fa>
  <KodWaluty>PLN</KodWaluty>
  <P_1>2026-10-08</P_1>
  <P_2>FV/2026/10/014</P_2>
  ...
</Fa>
<!-- ❌ Код GTU як назва елемента -->
<GTU_12>1</GTU_12>
<!-- ✅ Код GTU як значення елемента GTU -->
<GTU>GTU_12</GTU>

Після виправлення можуть з'явитися нові помилки

Після першої помилки порядку схема не перевіряє решту цього розділу і вкладених у нього розділів. Якщо в Fa переставлено P_1 і P_2, а нижче в Adnotacje стоїть P_16 зі значенням 0, помилку цього значення побачиш лише після виправлення порядку. Наші правила MF працюють незалежно від схеми, тож їхні повідомлення, наприклад про кому в P_15, бачиш одразу. Перевіряй файл, доки список не стане порожнім.

Файл зі старого шаблону FA(2) зупиниться раніше, на просторі імен в елементі Faktura. Порядок основних розділів ми описали в огляді найчастіших помилок FA(3) (польською). Після виправлення перевір рахунок ще раз.

Перевір свій рахунок

Завантаж XML-файл, і ми покажемо, що треба виправити. Твій файл не залишає браузер.

Відкрити валідатор