Przewodnik · Walidacja XML / kodowanie
XML: błąd kodowania, prologu UTF-8 i białych znaków
Tego typu problemy są częste i podstępne: komunikat wygląda na merytoryczny, a źródło błędu okazuje się czysto techniczne.
Typ
Przewodnik
Warstwa
Walidacja XML / kodowanie
Skutek
Błąd blokujący
Typowy komunikat GoKSeF
KSeF jest bardzo czuły na to, czy plik jest zapisany i odczytany jako UTF-8 bez ukrytych znaków sterujących oraz bez ukrytych artefaktów formatowania.
Jak to poprawić
- 1 Zapisz plik jako spójne UTF-8 i upewnij się, że cały pipeline od generatora po wysyłkę używa tego samego wariantu kodowania.
- 2 Sprawdź i popraw prolog XML, zwłaszcza deklarację <?xml version="1.0" encoding="UTF-8"?>.
- 3 Usuń znaki niedrukowalne i niewidoczne znaki z nazw, opisów i numerów (np. zerowe znaki, niezamknięte entitety).
- 4 Sprawdź linie końcowe i separatory; unikaj ręcznej modyfikacji pliku w formatach, które doklejają dodatkowe znaki.
- 5 Wygeneruj nowy XML z niezależnego źródła i uruchom ponownie lokalną walidację.
- 6 Dopiero po wyeliminowaniu tych kwestii sprawdź status w KSeF.
Sprawdź przed ponowną walidacją
- Plik jest jednoznacznie zapisany jako UTF-8.
- Prolog XML i rzeczywiste kodowanie nie pozostają w konflikcie.
- Nie ma ukrytych znaków sterujących ani uszkodzonego XML.
FAQ
- Czy problem kodowania rozwiązuje tylko poprawa deklaracji?
- Nie, deklaracja musi zgadzać się z realnym kodowaniem pliku oraz z faktyczną treścią zapisaną przez generator.
- Czy BOM zawsze psuje walidację?
- Nie zawsze, ale bywa źródłem problemów w realnych integracjach. Najbezpieczniej trzymać się jednego, spójnego standardu i konsekwentnie go testować.
- Czy usunąć polskie znaki?
- Nie, ale pamiętaj, że bezpieczny zapis to UTF-8 i poprawne zapisanie ich wartości jako znaków unicode.
Powiązane artykuły
Przewodnik · Walidacja FA(3)
Przechodzi lokalną XSD, a KSeF nadal odrzuca — jak szukać rozjazdu
XSD to baza, ale nie pełny obraz. KSeF wykonuje dodatkowe walidacje semantyczne i biznesowe, które potrafią zatrzymać poprawnie wyglądający lokalnie XML.
Przewodnik · Walidacja XML / kodowanie
FA(3): lokalna walidacja przechodzi, ale API KSeF nadal odrzuca XML
To techniczny wariant rozjazdu między lokalną walidacją i zachowaniem API KSeF.
Przewodnik · KSeF API / status
Faktura wysłana do KSeF, ale brak numeru KSeF albo UPO
Dokument został przekazany do KSeF, ale numer KSeF albo UPO nie są jeszcze dostępne.
Przewodnik · KSeF API / status
Faktura w trakcie przetwarzania w KSeF — co to znaczy
Status przetwarzania nie musi oznaczać błędu, ale wymaga świadomej kontroli i dalszej diagnostyki.
Sprawdź poprawiony plik
Po poprawieniu danych źródłowych wygeneruj XML ponownie i sprawdź nowy plik w GoKSeF.