Ce înseamnă
Validatorul XSD a întâlnit un element care nu are toți copiii pe care îi cere schema. Un mesaj tipic arată cam așa:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'cac:PaymentMeans'.
One of '{...}AccountingSupplierParty' is expected.
Asta înseamnă: la nivelul curent al XML-ului, schema aștepta un anumit
element (în exemplu, AccountingSupplierParty), dar a găsit altul
(PaymentMeans). Cel mai probabil ai sărit peste un element obligatoriu
sau l-ai pus în ordinea greșită.
Cauze frecvente
- Element obligatoriu sărit — ex: ai uitat
<cac:AccountingSupplierParty>sau<cac:AccountingCustomerParty> - Ordine greșită — UBL 2.1 are o ordine strictă pentru elementele copil. Vezi secțiunea de mai jos.
- Element pus în namespace greșit —
cbc:în loc decac:sau invers
Ordinea elementelor în UBL Invoice / CreditNote
Pentru o factură (Invoice), ordinea aproximativă a copiilor de prim nivel este:
cbc:UBLVersionID,cbc:CustomizationID,cbc:ProfileIDcbc:IDcbc:IssueDate,cbc:DueDatecbc:InvoiceTypeCode(saucbc:CreditNoteTypeCodepentru CreditNote)cbc:DocumentCurrencyCodecac:BillingReference(obligatoriu pentru CreditNote)cac:AccountingSupplierPartycac:AccountingCustomerPartycac:PaymentMeanscac:TaxTotalcac:LegalMonetaryTotalcac:InvoiceLine(saucac:CreditNoteLine)
Dacă pui PaymentMeans înainte de AccountingSupplierParty, primești
această eroare.
Cum se rezolvă
- Citește mesajul cu atenție: îți spune ce element era așteptat la acel punct. Verifică dacă acesta lipsește sau dacă următorul element este în afara secvenței.
- Verifică ordinea elementelor copil împotriva schemei UBL.
- Asigură-te că prefixele de namespace (
cbc:vscac:) corespund — schema le tratează ca elemente diferite. - Folosește validatorul nostru la
/validare-xml-efacturaca să vezi toate erorile structurale simultan, nu doar prima.