XML Syntaxes

UBL vs. UN/CEFACT CII

XRechnung supports two XML syntaxes: OASIS UBL 2.1 and UN/CEFACT CII D16B. Both comply with EN 16931 — but they differ significantly in structure, adoption and tooling.

Side-by-side comparison: OASIS UBL 2.1 vs. UN/CEFACT CII D16B
CriterionOASIS UBL 2.1UN/CEFACT CII D16B
Standards bodyOASIS (Organization for the Advancement of Structured Information Standards)UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business)
Full nameUniversal Business Language 2.1 — InvoiceCross Industry Invoice D16B
Adoption in Germany (XRechnung)Very common — preferred syntax for many software vendorsAlso common — basis of ZUGFeRD/Factur-X
Adoption in EuropeScandinavia (PEPPOL BIS), UK, Belgium prefer UBLFrance (Factur-X), Germany (ZUGFeRD) prefer CII
XML namespace prefixcbc:, cac: (CommonBasicComponents / CommonAggregateComponents)ram:, rsm:, udt: (UN/CEFACT-specific)
XML readabilityRelatively readable, English element namesMore compact, but cryptic; many abbreviations
Use in PEPPOL networkPEPPOL BIS Billing 3.0 is based on UBLNot native in PEPPOL standard; mapping required
Use in ZUGFeRD/Factur-XNot used — ZUGFeRD uses CII exclusivelyBasis of the embedded XML in ZUGFeRD and Factur-X
ValidatorsKoSIT Validator (UBL Schematron), PEPPOL ValidatorKoSIT Validator (CII Schematron), Mustang Project
EN 16931 conformanceYes — EN 16931-3-2 defines the UBL syntax bindingYes — EN 16931-3-3 defines the CII syntax binding

Verdict

UBL and CII deliver semantically identical invoice data — the choice of syntax mainly depends on the ecosystem. Those using PEPPOL networks or targeting international partners in Northern Europe are better served by UBL. Those creating ZUGFeRD hybrid invoices or working with French partners need CII. For XRechnung to German authorities, both syntaxes are equally accepted.