Message

Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.

Context
//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]
Test
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)
Usage
/ ubl:Invoice / cac:InvoiceLine / cac:AllowanceCharge / cbc:AllowanceChargeReasonCode
/ ubl:Invoice / cac:InvoiceLine / cac:AllowanceCharge / cbc:AllowanceChargeReason
/ ubl:CreditNote / cac:CreditNoteLine / cac:AllowanceCharge / cbc:AllowanceChargeReasonCode
/ ubl:CreditNote / cac:CreditNoteLine / cac:AllowanceCharge / cbc:AllowanceChargeReason