PEPPOL-EN16931-R008

This id stands for 2 different rules, one per rule set below: Factur-X numbers its rules in each profile separately.

error: the document is invalid warning: reported, still valid Peppol documentation ↗

Why it fails

  • An element is present but empty, such as <cbc:Note/> or <cbc:Note> </cbc:Note>. Generators often write optional fields even when they have no value.

How to fix it

Leave out elements that have no value instead of writing them empty. The line of the finding points at the empty element.

What the rule checks

As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.

Message

Document MUST not contain empty elements.

Context
//*[not(*) and not(normalize-space())]
Test
false()

Checked with Peppol BIS Billing 3.0 Invoice, Peppol BIS Billing 3.0 Credit Note

Message

Document MUST not contain empty elements.

Context
//*[not(*) and not(normalize-space())]
Test
self::cbc:ID[parent::cac:OrderReference]

Checked with XRechnung 3.0 Invoice (UBL), XRechnung 3.0 Credit Note (UBL)

Message

Document MUST not contain empty elements.

Context
//*[not(name() = 'ram:ApplicableHeaderTradeDelivery') and not(*) and not(normalize-space())]
Test
false()

Checked with XRechnung 3.0 Invoice (CII)

Message

Document MUST not contain empty elements. (still status warning)

Context
//*[not(*) and not(normalize-space())]
Test
false

Checked with France Factur-X EN 16931, Factur-X / ZUGFeRD EN 16931