„Content is not allowed in prolog”: ceva înainte de <?xml
Mesajul din SPV
Content is not allowed in prolog.
Ce înseamnă
Parserul XML a găsit caractere înainte de primul element, acolo unde nu are voie să fie nimic în afară de declarația <?xml …?> și comentarii. Fișierul nici nu ajunge la verificările de factură.
Cauze frecvente în e-Factura
- un rând gol sau spații înainte de
<?xml; - text lipit din greșeală la începutul fișierului (de exemplu un mesaj de eroare al programului);
- fișierul nu e XML: ai încărcat PDF-ul, arhiva ZIP descărcată din SPV sau XML-ul semnat de răspuns;
- codare dublă: XML trimis ca text Base64 sau escape-uit (
<Invoice) printr-o integrare API.
Exemplu
Greșit:
Factura nr. 101 <?xml version="1.0" encoding="UTF-8"?> <Invoice …>
Corect:
<?xml version="1.0" encoding="UTF-8"?> <Invoice …>
Cum o repari
- Deschide fișierul într-un editor de text (Notepad++, VS Code), nu în browser.
- Șterge tot ce e înainte de
<?xml(rânduri goale, spații, text). - Salvează ca UTF-8; dacă editorul are opțiunea, „UTF-8 fără BOM”.
- Prin API: trimite fișierul ca octeți, nu ca șir Base64 sau HTML-escape-uit.
Verifică XML-ul înainte să-l încarci din nou
Lipește XML-ul facturii: vezi toate erorile odată (schemă UBL, CIUS-RO, EN 16931), cu corectura pentru fiecare. Gratuit, 3 verificări pe zi; fișierul nu e păstrat.
Întrebări frecvente
Ce e BOM-ul și de ce contează?
Trei octeți (EF BB BF) pe care unele editoare îi pun la începutul fișierelor UTF-8. Majoritatea parserelor îi acceptă, dar împreună cu alte caractere sau o codare greșită pot produce eroarea. Salvarea fără BOM o evită.
Alte erori din SPV
- cvc-complex-type.2.4.a la e-Factura: „Invalid content was found starting with element”
- cvc-complex-type.2.4.b la e-Factura: „The content of element … is not complete”
- cvc-complex-type.2.4.d la e-Factura: „No child element is expected at this point”
- cvc-complex-type.4 la e-Factura: „Attribute 'currencyID' must appear on element”
- cvc-complex-type.3.2.2 la e-Factura: „Attribute … is not allowed to appear in element”
- cvc-datatype-valid.1.2.1 la e-Factura: „is not a valid value for 'date'” / „'decimal'”
- cvc-elt.1.a la e-Factura: „Cannot find the declaration of element 'Invoice'”
- „Invalid byte 1 of 1-byte UTF-8 sequence” la e-Factura: diacriticele
- „The element type … must be terminated by the matching end-tag” la e-Factura
- Factură respinsă în SPV (nok): cum citești eroarea și ce faci