PEPPOL-EN16931-R008
This id stands for 2 different rules, one per rule set below: Factur-X numbers its rules in each profile separately.
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.
Document MUST not contain empty elements.
//*[not(*) and not(normalize-space())]
false()
Checked with Peppol BIS Billing 3.0 Invoice, Peppol BIS Billing 3.0 Credit Note
Document MUST not contain empty elements.
//*[not(*) and not(normalize-space())]
self::cbc:ID[parent::cac:OrderReference]
Checked with XRechnung 3.0 Invoice (UBL), XRechnung 3.0 Credit Note (UBL)
Document MUST not contain empty elements.
//*[not(name() = 'ram:ApplicableHeaderTradeDelivery') and not(*) and not(normalize-space())]
false()
Checked with XRechnung 3.0 Invoice (CII)
Document MUST not contain empty elements. (still status warning)
//*[not(*) and not(normalize-space())]
false
Checked with France Factur-X EN 16931, Factur-X / ZUGFeRD EN 16931