cvc-complex-type.2.3:Text content inside an element-only element
Fix: Move the character data into the correct leaf element (e.g. wrap a party name in cbc:Name inside cac:PartyName).
cvc-complex-type.2.3 is an XSD error raised when an element declared as element-only has non-whitespace text inside it. Mixing text and structural children is not allowed for that complex type.
Engine Classification
Requires user confirmation before application
What is cvc-complex-type.2.3?
cvc-complex-type.2.3 is a fatal validation rule defined in the xsd specification.
When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.
Why This Error Matters
Mixed content in EN 16931 types would make deterministic field extraction impossible, so XSD enforces element-only containers strictly.
cvc-complex-type.2.3 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.
Validator Behavior
- ·Causes invoice rejection
- ·Error returned: cvc-complex-type.2.3
- ·Specification: xsd
Before / After
<cac:AccountingSupplierParty><cac:Party><cac:PartyName>Acme Industries BV</cac:PartyName></cac:Party></cac:AccountingSupplierParty>
<cac:AccountingSupplierParty><cac:Party><cac:PartyName><cbc:Name>Acme Industries BV</cbc:Name></cac:PartyName></cac:Party></cac:AccountingSupplierParty>
Technical Reference
Seeing this in production? The API handles cvc-complex-type.2.3 automatically. See the fix response →
Frequently Asked Questions
An element marked as element-only was given character data. The parser refuses text inside a container that may only contain child elements.
2.3 is a content-type mismatch (text vs element-only). 2.4.a is a sequence or multiplicity violation.
The fix is often deterministic — wrap the text in the expected leaf element — but Invoice Navigator requires confirmation because the correct leaf depends on the parent type.
Most often inside cac:PartyName, cac:Item, cac:Country, and cac:AdditionalItemProperty.
EN 16931 uses strict element-only types so every receiver extracts field values deterministically.
Related Content
Last updated: 20 April 2026
Validate your invoice
Drop your XML here to check for cvc-complex-type.2.3
Fix cvc-complex-type.2.3 with one click
Upload your invoice and we'll suggest a fix for your review before applying it.