Message

Reason code MUST be according to subset of UNCL 5189 D.16B.

Context
cac:AllowanceCharge[cbc:ChargeIndicator = 'false']/cbc:AllowanceChargeReasonCode
Test
some $code in $UNCL5189 satisfies normalize-space(text()) = $code
Usage
/ ubl:Invoice / cac:AllowanceCharge / cbc:AllowanceChargeReasonCode
/ ubl:Invoice / cac:InvoiceLine / cac:AllowanceCharge / cbc:AllowanceChargeReasonCode