Element w złym miejscu w XML faktury FA(3)
Co oznacza ten błąd
Schemat FA(3) nie spodziewał się tego elementu w tym miejscu pliku. Element stoi w złej kolejności, ma literówkę w nazwie albo w ogóle nie istnieje w FA(3).
Ten sam komunikat dostaniesz, gdy przed zgłoszonym elementem brakuje pola obowiązkowego. Jeśli w Fa nie ma P_2, schemat zgłosi element, który stoi zaraz za tym miejscem (na przykład P_6), bo tam czekał na P_2.
Dlaczego kolejność ma znaczenie
Schemat XSD FA(3) opisuje zawartość sekcji jako sekwencję (xs:sequence): elementy muszą wystąpić w ustalonej kolejności. Pola opcjonalne możesz pominąć, ale te, które wpisujesz, stoją na swoim miejscu. Fa zaczyna się od KodWaluty, P_1, P_1M i P_2, a Podmiot2 kończy się polami JST i GV, po NrKlienta i IDNabywcy. Nazwy elementów rozróżniają wielkość liter, więc Nip to nie NIP.
Jak czytać podpowiedź
Przy błędzie widzisz nazwę elementu, numer linii i listę „W tym miejscu oczekujemy”. To elementy, które schemat przyjąłby w tym miejscu zamiast zgłoszonego.
- Jedna nazwa na liście, na przykład
P_1przy zgłoszonymP_2. Albo zgłoszony element jest za wcześnie, albo przed nim brakuje wymienionego pola. Poszukaj tego pola niżej w sekcji: jeśli jest, przestaw elementy, jeśli go nie ma, dodaj je. - Kilka nazw. To elementy, które mogą tu stać, także opcjonalne. Przy długich sekwencjach, takich jak podsumowanie stawek w
Fa, lista bywa ucięta już w komunikacie biblioteki libxml2, której używamy do walidacji schematu, i może nie zawierać pola, którego faktycznie brakuje. Wtedy porównaj sekcję z kolejnością w schemacie. - „Czy chodziło o…?” Nazwa różni się od oczekiwanej o jedną lub dwie litery, więc to prawie na pewno literówka:
NazwzamiastNazwa,NazwaBankzamiastNazwaBanku. Nie podpowiadamy przy nazwach różniących się tylko numerem, boP_13_1iP_13_2to różne pola.
Jak to naprawić
- Otwórz plik w linii podanej w komunikacie.
- Porównaj nazwę elementu z listą oczekiwanych i popraw literówkę albo wielkość liter.
- Jeśli nazwa jest poprawna, przenieś element na właściwe miejsce albo dodaj brakujące pole przed nim.
- Element, którego schemat FA(3) w ogóle nie zna (własne pole programu, pozostałość z innego formatu), usuń. Dodatkowe informacje na fakturze zapisuje się w
DodatkowyOpis, jako paręKlucziWartosc.
<!-- ❌ P_2 przed P_1 -->
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_2>FV/2026/10/014</P_2>
<P_1>2026-10-08</P_1>
...
</Fa>
<!-- ✅ Kolejność ze schematu -->
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-10-08</P_1>
<P_2>FV/2026/10/014</P_2>
...
</Fa>
<!-- ❌ Kod GTU jako nazwa elementu -->
<GTU_12>1</GTU_12>
<!-- ✅ Kod GTU jako wartość elementu GTU -->
<GTU>GTU_12</GTU>Po poprawce mogą pojawić się nowe błędy
Po pierwszym błędzie kolejności schemat nie sprawdza dalszej części tej sekcji ani sekcji w niej zagnieżdżonych. Jeśli w Fa przestawisz P_1 i P_2, a niżej w Adnotacje wpiszesz P_16 z wartością 0, błąd tej wartości zobaczysz dopiero po poprawieniu kolejności. Nasze reguły MF działają niezależnie od schematu, więc ich komunikaty, na przykład o przecinku w P_15, widzisz od razu. Sprawdzaj plik, aż lista będzie pusta.
Plik ze starego szablonu FA(2) zatrzyma się wcześniej, na przestrzeni nazw w elemencie Faktura. Kolejność głównych sekcji opisujemy w przeglądzie najczęstszych błędów FA(3). Po poprawce sprawdź fakturę ponownie.
Sprawdź swoją fakturę
Wrzuć plik XML, a pokażemy, co trzeba poprawić. Twój plik nie opuszcza przeglądarki.
Otwórz walidator