errorstructurexsd

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.

Severity
Fatal
Rule set
xsd
Country
All EU
Fix type
CONFIRM
Confidence
60%

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

Failing XML
<cac:AccountingSupplierParty><cac:Party><cac:PartyName>Acme Industries BV</cac:PartyName></cac:Party></cac:AccountingSupplierParty>
Corrected XML
<cac:AccountingSupplierParty><cac:Party><cac:PartyName><cbc:Name>Acme Industries BV</cbc:Name></cac:PartyName></cac:Party></cac:AccountingSupplierParty>

Technical Reference

Specxsd

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

Share this guide:

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.