ZUGFeRD / ZUV

ZUgferd validator using Verapdf
Apache License 2.0
25 stars 5 forks source link

Official FNFE Factur-X samples do not validate #12

Closed jstaerk closed 5 years ago

jstaerk commented 6 years ago

e.g. Facture_DOM_EN16931.pdf reports

<errors><error><criterion>not(ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:CalculationPercent)</criterion><result>[CII-SR-122] - CalculationPercent should not be present</result></error>
<error><criterion>not(ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge/ram:BasisAmount)</criterion><result>[CII-SR-123] - BasisAmount should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>not(@currencyID)</criterion><result>[CII-DT-031] - currencyID should not be present</result></error>
<error><criterion>((not(contains(normalize-space(.), ' ')) and contains(' AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW ', concat(' ', normalize-space(.), ' '))))</criterion><result>[CL-14]-Country codes in an invoice MUST be coded using ISO code list
      3166-1</result></error>
<error><criterion>((not(contains(normalize-space(.), ' ')) and contains(' AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BL BJ BM BN BO BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW ', concat(' ', normalize-space(.), ' '))))</criterion><result>[CL-14]-Country codes in an invoice MUST be coded using ISO code list
      3166-1</result></error>
</errors>
jstaerk commented 6 years ago

The samples from http://fnfe-mpe.org/wp-content/uploads/2018/10/0.-FACTUR-X-V1.2a-Dossier-complet-2018-09-30-FR.zip contain alpha 2 country codes (in this case "RE") which are unknown to https://github.com/CenPC434/validation/blob/master/cii/schematron/codelist/EN16931-CII-codes.sch . There is a list on https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste, one should add the missing ones in lines 98 and 105 and upstream=PR