PEPPOL-EN16931-CL007Behaviour changed without the rule changing
$ISO4217: tokenize('AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD SSP STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL', '\s') → tokenize('AFN EUR ALL DZD USD AOA XCD XCD ARS AMD AWG AUD AZN BSD BHD BDT BBD BYN BZD XOF BMD INR BTN BOB BOV USD BAM BWP NOK BRL USD BND BGN XOF BIF CVE KHR XAF CAD KYD XAF XAF CLP CLF CNY AUD AUD COP COU KMF CDF XAF NZD CRC XOF CUP CUC ANG CZK DKK DJF XCD DOP USD EGP SVC USD XAF ERN ETB FKP DKK FJD XPF XAF GMD GEL GHS GIP DKK XCD USD GTQ GBP GNF XOF GYD HTG USD AUD HNL HKD HUF ISK INR IDR XDR IRR IQD GBP ILS JMD JPY GBP JOD KZT KES AUD KPW KRW KWD KGS LAK LBP LSL ZAR LRD LYD CHF MOP MKD MGA MWK MYR MVR XOF USD MRO MUR XUA MXN MXV USD MDL MNT XCD MAD MZN MMK NAD ZAR AUD NPR XPF NZD NIO XOF NGN NZD AUD USD NOK OMR PKR USD PAB USD PGK PYG PEN PHP NZD PLN USD QAR RON RUB RWF SHP XCD XCD XCD WST STD SAR XOF RSD SCR SLE SGD ANG XSU SBD SOS ZAR SSP LKR SDG SRD NOK SZL SEK CHF CHE CHW SYP TWD TJS TZS THB USD XOF NZD TOP TTD TND TRY TMT USD AUD UGX UAH AED GBP USD USD USN UYU UYI UZS VUV VND USD USD XPF MAD YER ZMW ZWL XBA XBB XBC XBD XTS XXX XAU XPD XPT XAG VES VED ZWG ', '\s')
The change is shown above; an explanation appears once one has been reviewed.
PEPPOL-EN16931-CL008Behaviour changed without the rule changing
$eaid: tokenize('0002 0007 0009 0037 0060 0088 0096 0097 0106 0130 0135 0142 0151 0183 0184 0188 0190 0191 0192 0193 0195 0196 0198 0199 0200 0201 0202 0204 0208 0209 0210 0211 0212 0213 0215 0216 0218 0221 0230 9901 9910 9913 9914 9915 9918 9919 9920 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9957 9959', '\s') → tokenize('0002 0007 0009 0037 0060 0088 0096 0097 0106 0130 0135 0142 0147 0151 0170 0177 0183 0184 0188 0190 0191 0192 0193 0195 0196 0198 0199 0200 0201 0202 0204 0208 0209 0210 0211 0212 0213 0215 0216 0218 0221 0230 0235 9901 9906 9907 9910 9913 9914 9915 9918 9919 9920 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9957 9959', '\s')
The change is shown above; an explanation appears once one has been reviewed.
SE-R-004Severity raised
severity: warning → fatal
The change is shown above; an explanation appears once one has been reviewed.
SE-R-013Severity raised
severity: warning → fatal
The change is shown above; an explanation appears once one has been reviewed.
SE-R-003Severity raised
severity: warning → fatal
The change is shown above; an explanation appears once one has been reviewed.
PEPPOL-EN16931-R002Test expression rewritten
count(cbc:Note) <= 1
count(cbc:Note) <= 1 or ($supplierCountryIsDE and $customerCountryIsDE)
The change is shown above; an explanation appears once one has been reviewed.
PEPPOL-EN16931-P0100Test expression rewritten
$profile != '01' or (some $code in tokenize('71 80 82 84 102 218 219 331 380 382 383 386 388 393 395 553 575 623 780 817 870 875 876 877', '\s') satisfies normalize-space(text()) = $code)
$profile != '01' or (some $code in tokenize('71 80 82 84 102 218 219 326 331 380 382 383 384 386 388 393 395 553 575 623 780 817 870 875 876 877', '\s') satisfies normalize-space(text()) = $code)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-011New rule
asserts: cbc:PostalZone[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-015New rule
asserts: cbc:BuyerReference[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-014New rule
asserts: cac:TaxCategory/cbc:Percent[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-018New rule
asserts: every $line in cac:PaymentTerms/cbc:Note[1]/tokenize(. , '(\r?\n)')[starts-with( normalize-space(.) , '#')] satisfies matches ( normalize-space ($line), $XR-SKONTO-REGEX) and matches( cac:PaymentTerms/cbc:Note[1]/tokenize(. , '#.+#')[last()], '^\s*\n' )
The change is shown above; an explanation appears once one has been reviewed.
DE-R-017New rule
asserts: cbc:InvoiceTypeCode = $supportedInvAndCNTypeCodes or cbc:CreditNoteTypeCode = $supportedInvAndCNTypeCodes
The change is shown above; an explanation appears once one has been reviewed.
PEPPOL-EN16931-P0112New rule
asserts: not(normalize-space(.) = '326' or normalize-space(.) = '384') or ($supplierCountryIsDE and $customerCountryIsDE)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-025-2New rule
asserts: not(cac:PayeeFinancialAccount) and not(cac:CardAccount)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-004New rule
asserts: cbc:PostalZone[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-008New rule
asserts: cbc:CityName[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-026New rule
asserts: ((not(cbc:InvoiceTypeCode = 384 or cbc:CreditNoteTypeCode = 384) or (cac:BillingReference/cac:InvoiceDocumentReference)))
The change is shown above; an explanation appears once one has been reviewed.
DE-R-003New rule
asserts: cbc:CityName[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-023-2New rule
asserts: not(cac:CardAccount) and not(cac:PaymentMandate)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-019New rule
asserts: not(cbc:PaymentMeansCode = '58') or matches(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')), '^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$') and xs:integer(string-join(for $cp in string-to-codepoints(concat(substring(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),5),upper-case(substring(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),1,2)),substring(normalize-space(replace(cac:PayeeFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),3,2))) return (if($cp > 64) then string($cp - 55) else string($cp - 48)),'')) mod 97 = 1
The change is shown above; an explanation appears once one has been reviewed.
DE-R-010New rule
asserts: cbc:CityName[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-022New rule
asserts: count(cac:AdditionalDocumentReference) = count(cac:AdditionalDocumentReference[not(./cac:Attachment/cbc:EmbeddedDocumentBinaryObject/@filename = preceding-sibling::cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject/@filename)])
The change is shown above; an explanation appears once one has been reviewed.
DE-R-025-1New rule
asserts: cac:PaymentMandate
The change is shown above; an explanation appears once one has been reviewed.
DE-R-027New rule
asserts: matches(normalize-space(cbc:Telephone), $XR-TELEPHONE-REGEX)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-031New rule
asserts: not(cac:PaymentMeans/cac:PaymentMandate) or (cac:PaymentMeans/cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-005New rule
asserts: cbc:Name[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-006New rule
asserts: cbc:Telephone[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-001New rule
asserts: cac:PaymentMeans
The change is shown above; an explanation appears once one has been reviewed.
DE-R-007New rule
asserts: cbc:ElectronicMail[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-030New rule
asserts: not(cac:PaymentMeans/cac:PaymentMandate) or (cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEPA'] | cac:PayeeParty/cac:PartyIdentification/cbc:ID[@schemeID='SEPA'])
The change is shown above; an explanation appears once one has been reviewed.
DE-R-023-1New rule
asserts: cac:PayeeFinancialAccount
The change is shown above; an explanation appears once one has been reviewed.
DE-R-028New rule
asserts: matches(normalize-space(cbc:ElectronicMail), $XR-EMAIL-REGEX)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-009New rule
asserts: cbc:PostalZone[boolean(normalize-space(.))]
The change is shown above; an explanation appears once one has been reviewed.
DE-R-016New rule
asserts: (not( ($BT-95-UBL-Inv = $supportedVATCodes or $BT-95-UBL-CN = $supportedVATCodes) or ($BT-102 = $supportedVATCodes) or ($BT-151 = $supportedVATCodes) ) or (cac:TaxRepresentativeParty, $BT-31orBT-32Path))
The change is shown above; an explanation appears once one has been reviewed.
DE-R-020New rule
asserts: not(cbc:PaymentMeansCode = '59') or matches(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')), '^[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{0,30}$') and xs:decimal(string-join(for $cp in string-to-codepoints(concat(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),5),upper-case(substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),1,2)),substring(normalize-space(replace(cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID, '([ \n\r\t\s])', '')),3,2))) return (if($cp > 64) then string($cp - 55) else string($cp - 48)),'')) mod 97 = 1
The change is shown above; an explanation appears once one has been reviewed.
DE-R-024-1New rule
asserts: cac:CardAccount
The change is shown above; an explanation appears once one has been reviewed.
DE-R-024-2New rule
asserts: not(cac:PayeeFinancialAccount) and not(cac:PaymentMandate)
The change is shown above; an explanation appears once one has been reviewed.
DE-R-002New rule
asserts: cac:Party/cac:Contact
The change is shown above; an explanation appears once one has been reviewed.