secretariat 2.0.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2905 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schema xmlns="http://purl.oclc.org/dsdl/schematron"
3
+ queryBinding="xslt2"
4
+ schemaVersion="iso">
5
+ <title>Schema for Factur-X; 1.0.07; EN16931-COMPLIANT (FULLY)</title>
6
+ <ns uri="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" prefix="rsm"/>
7
+ <ns uri="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" prefix="qdt"/>
8
+ <ns uri="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" prefix="ram"/>
9
+ <ns uri="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100" prefix="udt"/>
10
+ <pattern>
11
+ <rule context="//ram:AdditionalReferencedDocument">
12
+ <assert test="(ram:IssuerAssignedID!=&apos;&apos;)">
13
+ [BR-52]-Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122).</assert>
14
+ </rule>
15
+ </pattern>
16
+ <pattern>
17
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax">
18
+ <assert test="(ram:BasisAmount)">
19
+ [BR-45]-Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).</assert>
20
+ <assert test="(ram:CalculatedAmount)">
21
+ [BR-46]-Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).</assert>
22
+ <assert test="(ram:CategoryCode)">
23
+ [BR-47]-Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).</assert>
24
+ <assert test="(ram:RateApplicablePercent) or (ram:CategoryCode = &apos;O&apos;)">
25
+ [BR-48]-Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.</assert>
26
+ <assert test="((ram:TaxPointDate) and not (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and (ram:DueDateTypeCode)) or (not (ram:TaxPointDate) and not (ram:DueDateTypeCode))">
27
+ [BR-CO-03]-Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.</assert>
28
+ <assert test="(round(.[normalize-space(upper-case(ram:TypeCode)) = &apos;VAT&apos;]/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = &apos;VAT&apos;]/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 &lt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = &apos;VAT&apos;]/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 &gt;= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = &apos;VAT&apos;]/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))=&apos;VAT&apos;]/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0))">
29
+ [BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.</assert>
30
+ <assert test="string-length(substring-after(ram:BasisAmount,&apos;.&apos;))&lt;=2">
31
+ [BR-DEC-19]-The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.</assert>
32
+ <assert test="string-length(substring-after(ram:CalculatedAmount,&apos;.&apos;))&lt;=2">
33
+ [BR-DEC-20]-The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.</assert>
34
+ </rule>
35
+ </pattern>
36
+ <pattern>
37
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = &apos;Z&apos;]">
38
+ <assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;Z&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;Z&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;Z&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100)) and (../ram:BasisAmount +1 &gt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;Z&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;Z&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;Z&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100))">
39
+ [BR-Z-08]-In a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Zero rated".</assert>
40
+ <assert test="../ram:CalculatedAmount = 0">
41
+ [BR-Z-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).</assert>
42
+ <assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
43
+ [BR-Z-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</assert>
44
+ </rule>
45
+ </pattern>
46
+ <pattern>
47
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.=&apos;S&apos;]">
48
+ <assert test="(abs(xs:decimal(../ram:CalculatedAmount)) - 1 &lt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 ) and (abs(xs:decimal(../ram:CalculatedAmount)) + 1 &gt; round(abs(xs:decimal(../ram:BasisAmount)) * ../ram:RateApplicablePercent) div 100 )">
49
+ [BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</assert>
50
+ <assert test="not(../ram:ExemptionReason) and not (../ram:ExemptionReasonCode)">
51
+ [BR-S-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</assert>
52
+ <assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;S&apos; and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;S&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;S&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
53
+ [BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</assert>
54
+ </rule>
55
+ </pattern>
56
+ <pattern>
57
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod">
58
+ <assert test="(ram:EndDateTime/udt:DateTimeString[@format = &apos;102&apos;]) &gt;= (ram:StartDateTime/udt:DateTimeString[@format = &apos;102&apos;]) or not (ram:EndDateTime) or not (ram:StartDateTime)">
59
+ [BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).</assert>
60
+ <assert test="(ram:StartDateTime) or (ram:EndDateTime)">
61
+ [BR-CO-19]-If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.</assert>
62
+ </rule>
63
+ </pattern>
64
+ <pattern>
65
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator=&apos;false&apos;]">
66
+ <assert test="(../ram:ActualAmount)">
67
+ [BR-31]-Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).</assert>
68
+ <assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = &apos;VAT&apos;]/ram:CategoryCode)">
69
+ [BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).</assert>
70
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
71
+ [BR-33]-Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).</assert>
72
+ <assert test="true()">
73
+ [BR-CO-05]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.</assert>
74
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
75
+ [BR-CO-21]-Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.</assert>
76
+ <assert test="string-length(substring-after(../ram:ActualAmount,&apos;.&apos;))&lt;=2">
77
+ [BR-DEC-01]-The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.</assert>
78
+ <assert test="string-length(substring-after(../ram:BasisAmount,&apos;.&apos;))&lt;=2">
79
+ [BR-DEC-02]-The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.</assert>
80
+ </rule>
81
+ </pattern>
82
+ <pattern>
83
+ <rule context="//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator=&apos;true&apos;]">
84
+ <assert test="(../ram:ActualAmount)">
85
+ [BR-36]-Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).</assert>
86
+ <assert test="(../ram:CategoryTradeTax[upper-case(ram:TypeCode) = &apos;VAT&apos;]/ram:CategoryCode)">
87
+ [BR-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).</assert>
88
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
89
+ [BR-38]-Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).</assert>
90
+ <assert test="true()">
91
+ [BR-CO-06]-Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.</assert>
92
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
93
+ [BR-CO-22]-Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.</assert>
94
+ <assert test="string-length(substring-after(../ram:ActualAmount,&apos;.&apos;))&lt;=2">
95
+ [BR-DEC-05]-The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.</assert>
96
+ <assert test="string-length(substring-after(../ram:BasisAmount,&apos;.&apos;))&lt;=2">
97
+ [BR-DEC-06]-The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.</assert>
98
+ </rule>
99
+ </pattern>
100
+ <pattern>
101
+ <rule context="//ram:ApplicableProductCharacteristic">
102
+ <assert test="(ram:Description) and (ram:Value)">
103
+ [BR-54]-Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).</assert>
104
+ </rule>
105
+ </pattern>
106
+ <pattern>
107
+ <rule context="//ram:ApplicableTradeSettlementFinancialCard">
108
+ <assert test="string-length(ram:ID)&lt;=10">
109
+ [BR-51]-In accordance with card payments security standards an invoice should never include a full card primary account number (BT-87). At the moment PCI Security Standards Council has defined that the first 6 digits and last 4 digits are the maximum number of digits to be shown.</assert>
110
+ </rule>
111
+ </pattern>
112
+ <pattern>
113
+ <rule context="//ram:IncludedSupplyChainTradeLineItem">
114
+ <assert test="(ram:AssociatedDocumentLineDocument/ram:LineID!=&apos;&apos;)">
115
+ [BR-21]-Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).</assert>
116
+ <assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity)">
117
+ [BR-22]-Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).</assert>
118
+ <assert test="(ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode)">
119
+ [BR-23]-An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).</assert>
120
+ <assert test="(ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)">
121
+ [BR-24]-Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).</assert>
122
+ <assert test="(ram:SpecifiedTradeProduct/ram:Name!=&apos;&apos;)">
123
+ [BR-25]-Each Invoice line (BG-25) shall contain the Item name (BT-153).</assert>
124
+ <assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount)">
125
+ [BR-26]-Each Invoice line (BG-25) shall contain the Item net price (BT-146).</assert>
126
+ <assert test="(ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount) &gt;= 0">
127
+ [BR-27]-The Item net price (BT-146) shall NOT be negative.</assert>
128
+ <assert test="(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount &gt;= 0) or not(ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount)">
129
+ [BR-28]-The Item gross price (BT-148) shall NOT be negative.</assert>
130
+ <assert test="ram:SpecifiedTradeProduct/ram:GlobalID/@schemeID!=&apos;&apos; or not (ram:SpecifiedTradeProduct/ram:GlobalID)">
131
+ [BR-64]-The Item standard identifier (BT-157) shall have a Scheme identifier.</assert>
132
+ <assert test="(ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode/@listID!=&apos;&apos;) or not (ram:SpecifiedTradeProduct/ram:DesignatedProductClassification)">
133
+ [BR-65]-The Item classification identifier (BT-158) shall have a Scheme identifier.</assert>
134
+ <assert test="(ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[upper-case(ram:TypeCode) = &apos;VAT&apos;]/ram:CategoryCode)">
135
+ [BR-CO-04]-Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).</assert>
136
+ <assert test="string-length(substring-after(ram:SpecifiedTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount,&apos;.&apos;))&lt;=2">
137
+ [BR-DEC-23]-The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.</assert>
138
+ </rule>
139
+ </pattern>
140
+ <pattern>
141
+ <rule context="//ram:PayeeTradeParty">
142
+ <assert test="(ram:Name) and (not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID))">
143
+ [BR-17]-The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).</assert>
144
+ </rule>
145
+ </pattern>
146
+ <pattern>
147
+ <rule context="//ram:SellerTaxRepresentativeTradeParty">
148
+ <assert test="(ram:Name)">
149
+ [BR-18]-The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</assert>
150
+ <assert test="(ram:PostalTradeAddress)">
151
+ [BR-19]-The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).</assert>
152
+ <assert test="(ram:PostalTradeAddress/ram:CountryID)">
153
+ [BR-20]-The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).</assert>
154
+ <assert test="(ram:SpecifiedTaxRegistration/ram:ID[@schemeID=&apos;VA&apos;]!=&apos;&apos;)">
155
+ [BR-56]-Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).</assert>
156
+ </rule>
157
+ </pattern>
158
+ <pattern>
159
+ <rule context="//ram:SellerTradeParty">
160
+ <assert test="(ram:ID) or (ram:GlobalID) or (ram:SpecifiedLegalOrganization/ram:ID) or (ram:SpecifiedTaxRegistration/ram:ID[@schemeID=&apos;VA&apos;])">
161
+ [BR-CO-26]-In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.</assert>
162
+ </rule>
163
+ </pattern>
164
+ <pattern>
165
+ <rule context="//ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod">
166
+ <assert test="(ram:EndDateTime/udt:DateTimeString[@format = &apos;102&apos;]) &gt;= (ram:StartDateTime/udt:DateTimeString[@format = &apos;102&apos;]) or not (ram:EndDateTime) or not (ram:StartDateTime)">
167
+ [BR-30]-If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).</assert>
168
+ <assert test="(ram:StartDateTime) or (ram:EndDateTime)">
169
+ [BR-CO-20]-If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.</assert>
170
+ </rule>
171
+ </pattern>
172
+ <pattern>
173
+ <rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = &apos;false&apos;]">
174
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
175
+ [BR-42]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).</assert>
176
+ </rule>
177
+ </pattern>
178
+ <pattern>
179
+ <rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = &apos;false&apos;]&#13;&#10;">
180
+ <assert test="(../ram:ActualAmount)">
181
+ [BR-41]-Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).</assert>
182
+ <assert test="true()">
183
+ [BR-CO-07]-Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.</assert>
184
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
185
+ [BR-CO-23]-Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both.</assert>
186
+ <assert test="string-length(substring-after(../ram:ActualAmount,&apos;.&apos;))&lt;=2">
187
+ [BR-DEC-24]-The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.</assert>
188
+ <assert test="string-length(substring-after(../ram:BasisAmount,&apos;.&apos;))&lt;=2">
189
+ [BR-DEC-25]-The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.</assert>
190
+ </rule>
191
+ </pattern>
192
+ <pattern>
193
+ <rule context="//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = &apos;true&apos;]">
194
+ <assert test="(../ram:ActualAmount)">
195
+ [BR-43]-Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).</assert>
196
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
197
+ [BR-44]-Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).</assert>
198
+ <assert test="true()">
199
+ [BR-CO-08]-Invoice line charge reason code (BT-145) and Invoice line charge reason (BT-144) shall indicate the same type of charge reason.</assert>
200
+ <assert test="(../ram:Reason) or (../ram:ReasonCode)">
201
+ [BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.</assert>
202
+ <assert test="string-length(substring-after(../ram:ActualAmount,&apos;.&apos;))&lt;=2">
203
+ [BR-DEC-27]-The allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.</assert>
204
+ <assert test="string-length(substring-after(../ram:BasisAmount,&apos;.&apos;))&lt;=2">
205
+ [BR-DEC-28]-The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.</assert>
206
+ </rule>
207
+ </pattern>
208
+ <pattern>
209
+ <rule context="//ram:SpecifiedTaxRegistration/ram:ID[@schemeID=&apos;VA&apos;]">
210
+ <assert test="contains(&apos; 1A 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 BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH EL 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 RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SX 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 XI YE YT ZA ZM ZW &apos;, concat(&apos; &apos;, substring(.,1,2), &apos; &apos;))">
211
+ [BR-CO-09]-The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix ‘EL’.</assert>
212
+ </rule>
213
+ </pattern>
214
+ <pattern>
215
+ <rule context="//ram:SpecifiedTradeAllowanceCharge">
216
+ <assert test="(ram:ChargeIndicator)">
217
+ [BR-66]-Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.</assert>
218
+ </rule>
219
+ </pattern>
220
+ <pattern>
221
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;AE&apos;]">
222
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
223
+ [BR-AE-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</assert>
224
+ <assert test="ram:RateApplicablePercent = 0">
225
+ [BR-AE-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</assert>
226
+ </rule>
227
+ </pattern>
228
+ <pattern>
229
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;E&apos;]">
230
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
231
+ [BR-E-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
232
+ <assert test="ram:RateApplicablePercent = 0">
233
+ [BR-E-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).</assert>
234
+ </rule>
235
+ </pattern>
236
+ <pattern>
237
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;G&apos;]">
238
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
239
+ [BR-G-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</assert>
240
+ <assert test="ram:RateApplicablePercent = 0">
241
+ [BR-G-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</assert>
242
+ </rule>
243
+ </pattern>
244
+ <pattern>
245
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;K&apos;]">
246
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
247
+ [BR-IC-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</assert>
248
+ <assert test="ram:RateApplicablePercent = 0">
249
+ [BR-IC-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</assert>
250
+ </rule>
251
+ </pattern>
252
+ <pattern>
253
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;L&apos;]">
254
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
255
+ [BR-AF-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
256
+ <assert test="ram:RateApplicablePercent &gt; 0">
257
+ [BR-AF-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</assert>
258
+ </rule>
259
+ </pattern>
260
+ <pattern>
261
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;M&apos;]">
262
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
263
+ [BR-AG-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
264
+ <assert test="ram:RateApplicablePercent &gt; 0">
265
+ [BR-AG-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.</assert>
266
+ </rule>
267
+ </pattern>
268
+ <pattern>
269
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;O&apos;]">
270
+ <assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
271
+ [BR-O-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</assert>
272
+ <assert test="not(ram:RateApplicablePercent)">
273
+ [BR-O-06]-A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).</assert>
274
+ </rule>
275
+ </pattern>
276
+ <pattern>
277
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;S&apos;]">
278
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
279
+ [BR-S-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
280
+ <assert test="ram:RateApplicablePercent &gt; 0">
281
+ [BR-S-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.</assert>
282
+ </rule>
283
+ </pattern>
284
+ <pattern>
285
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;Z&apos;]">
286
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
287
+ [BR-Z-03]-An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
288
+ <assert test="ram:RateApplicablePercent = 0">
289
+ [BR-Z-06]-In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).</assert>
290
+ </rule>
291
+ </pattern>
292
+ <pattern>
293
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;AE&apos;]">
294
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
295
+ [BR-AE-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</assert>
296
+ <assert test="ram:RateApplicablePercent = 0">
297
+ [BR-AE-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).</assert>
298
+ </rule>
299
+ </pattern>
300
+ <pattern>
301
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;E&apos;]">
302
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
303
+ [BR-E-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
304
+ <assert test="ram:RateApplicablePercent = 0">
305
+ [BR-E-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).</assert>
306
+ </rule>
307
+ </pattern>
308
+ <pattern>
309
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;G&apos;]">
310
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
311
+ [BR-G-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</assert>
312
+ <assert test="ram:RateApplicablePercent = 0">
313
+ [BR-G-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).</assert>
314
+ </rule>
315
+ </pattern>
316
+ <pattern>
317
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;K&apos;]">
318
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
319
+ [BR-IC-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</assert>
320
+ <assert test="ram:RateApplicablePercent = 0">
321
+ [BR-IC-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).</assert>
322
+ </rule>
323
+ </pattern>
324
+ <pattern>
325
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;L&apos;]">
326
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
327
+ [BR-AF-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
328
+ <assert test="ram:RateApplicablePercent &gt; 0">
329
+ [BR-AF-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</assert>
330
+ </rule>
331
+ </pattern>
332
+ <pattern>
333
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;M&apos;]">
334
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
335
+ [BR-AG-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
336
+ <assert test="ram:RateApplicablePercent &gt; 0">
337
+ [BR-AG-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.</assert>
338
+ </rule>
339
+ </pattern>
340
+ <pattern>
341
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;O&apos;]">
342
+ <assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
343
+ [BR-O-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).</assert>
344
+ <assert test="not(ram:RateApplicablePercent)">
345
+ [BR-O-07]-A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).</assert>
346
+ </rule>
347
+ </pattern>
348
+ <pattern>
349
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;S&apos;]">
350
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
351
+ [BR-S-04]-An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
352
+ <assert test="ram:RateApplicablePercent &gt; 0">
353
+ [BR-S-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.</assert>
354
+ </rule>
355
+ </pattern>
356
+ <pattern>
357
+ <rule context="//ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:CategoryTradeTax[ram:CategoryCode = &apos;Z&apos;]">
358
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
359
+ [BR-Z-04]-An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
360
+ <assert test="ram:RateApplicablePercent = 0">
361
+ [BR-Z-07]-In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).</assert>
362
+ </rule>
363
+ </pattern>
364
+ <pattern>
365
+ <rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation">
366
+ <assert test="xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)">
367
+ [BR-CO-10]-Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).</assert>
368
+ <assert test="(ram:LineTotalAmount)">
369
+ [BR-12]-An Invoice shall have the Sum of Invoice line net amount (BT-106).</assert>
370
+ <assert test="(ram:TaxBasisTotalAmount)">
371
+ [BR-13]-An Invoice shall have the Invoice total amount without VAT (BT-109).</assert>
372
+ <assert test="(ram:GrandTotalAmount)">
373
+ [BR-14]-An Invoice shall have the Invoice total amount with VAT (BT-112).</assert>
374
+ <assert test="(ram:DuePayableAmount)">
375
+ [BR-15]-An Invoice shall have the Amount due for payment (BT-115).</assert>
376
+ <assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;])and not (ram:AllowanceTotalAmount)) or ram:AllowanceTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;false&apos;]/ram:ActualAmount)* 10 * 10 ) div 100)">
377
+ [BR-CO-11]-Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).</assert>
378
+ <assert test="(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;])and not (ram:ChargeTotalAmount)) or (round (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount * 10 * 10) div 100)= &#13;&#10;round(((round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&apos;true&apos;]/ram:ActualAmount)* 10 * 10 ) div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount)* 10 * 10 ) div 100))*10*10) div 100">
379
+ [BR-CO-12]-Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).</assert>
380
+ <assert test="(xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) or &#13;&#10; ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) - xs:decimal(ram:AllowanceTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount)) or &#13;&#10; ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount) + xs:decimal(ram:ChargeTotalAmount)) *10 * 10) div 100) and not (ram:AllowanceTotalAmount)) or &#13;&#10; ((xs:decimal(ram:TaxBasisTotalAmount) = round((xs:decimal(ram:LineTotalAmount)) *10 * 10) div 100) and not (ram:ChargeTotalAmount) and not (ram:AllowanceTotalAmount))">
381
+ [BR-CO-13]-Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).</assert>
382
+ <assert test="every $Currency &#13;&#10; in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode&#13;&#10; satisfies ( &#13;&#10; count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and &#13;&#10; (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( &#13;&#10; (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + &#13;&#10; (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or&#13;&#10; (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))">
383
+ [BR-CO-15]-Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).</assert>
384
+ <assert test="(xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount) + xs:decimal(ram:RoundingAmount)) or &#13;&#10; ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) + xs:decimal(ram:RoundingAmount)) and not (xs:decimal(ram:TotalPrepaidAmount))) or &#13;&#10; ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount) - xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount))) or &#13;&#10; ((xs:decimal(ram:DuePayableAmount) = xs:decimal(ram:GrandTotalAmount)) and not (xs:decimal(ram:TotalPrepaidAmount)) and not (xs:decimal(ram:RoundingAmount)))">
385
+ [BR-CO-16]-Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).</assert>
386
+ <assert test="string-length(substring-after(ram:LineTotalAmount,&apos;.&apos;))&lt;=2">
387
+ [BR-DEC-09]-The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.</assert>
388
+ <assert test="string-length(substring-after(ram:AllowanceTotalAmount,&apos;.&apos;))&lt;=2">
389
+ [BR-DEC-10]-The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.</assert>
390
+ <assert test="string-length(substring-after(ram:ChargeTotalAmount,&apos;.&apos;))&lt;=2">
391
+ [BR-DEC-11]-The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.</assert>
392
+ <assert test="string-length(substring-after(ram:TaxBasisTotalAmount,&apos;.&apos;))&lt;=2">
393
+ [BR-DEC-12]-The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.</assert>
394
+ <assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode and . = round(. * 100) div 100) or not (@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode)]">
395
+ [BR-DEC-13]-The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.</assert>
396
+ <assert test="string-length(substring-after(ram:GrandTotalAmount,&apos;.&apos;))&lt;=2">
397
+ [BR-DEC-14]-The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.</assert>
398
+ <assert test="not(ram:TaxTotalAmount) or ram:TaxTotalAmount[(@currencyID =/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and . = round(. * 100) div 100) or not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode)]">
399
+ [BR-DEC-15]-The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.</assert>
400
+ <assert test="string-length(substring-after(ram:TotalPrepaidAmount,&apos;.&apos;))&lt;=2">
401
+ [BR-DEC-16]-The allowed maximum number of decimals for the Paid amount (BT-113) is 2.</assert>
402
+ <assert test="string-length(substring-after(ram:RoundingAmount,&apos;.&apos;))&lt;=2">
403
+ [BR-DEC-17]-The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.</assert>
404
+ <assert test="string-length(substring-after(ram:DuePayableAmount,&apos;.&apos;))&lt;=2">
405
+ [BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.</assert>
406
+ <assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) or (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and (ram:TaxTotalAmount/@currencyID = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode) and not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode = /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode))">
407
+ [BR-53]-If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.</assert>
408
+ </rule>
409
+ </pattern>
410
+ <pattern>
411
+ <rule context="//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode]">
412
+ <assert test=". = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)">
413
+ [BR-CO-14]-Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).</assert>
414
+ </rule>
415
+ </pattern>
416
+ <pattern>
417
+ <rule context="//ram:SpecifiedTradeSettlementPaymentMeans">
418
+ <assert test="(ram:TypeCode)">
419
+ [BR-49]-A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).</assert>
420
+ <assert test="(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) or (ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID) or (not(ram:PayeePartyCreditorFinancialAccount/ram:IBANID) and not(ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID))">
421
+ [BR-CO-27]-Either the IBAN or a Proprietary ID (BT-84) shall be used.</assert>
422
+ </rule>
423
+ </pattern>
424
+ <pattern>
425
+ <rule context="//ram:SpecifiedTradeSettlementPaymentMeans[ram:TypeCode=&apos;30&apos; or ram:TypeCode=&apos;58&apos;]/ram:PayerPartyDebtorFinancialAccount">
426
+ <assert test="(ram:IBANID) or (ram:ProprietaryID)">
427
+ [BR-50]-A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.</assert>
428
+ <assert test="(ram:IBANID) or (ram:ProprietaryID)">
429
+ [BR-61]-If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.</assert>
430
+ </rule>
431
+ </pattern>
432
+ <pattern>
433
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement">
434
+ <assert test="ram:ApplicableTradeTax">
435
+ [BR-CO-18]-An Invoice shall at least have one VAT breakdown group (BG-23).</assert>
436
+ </rule>
437
+ </pattern>
438
+ <pattern>
439
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = &apos;AE&apos;]">
440
+ <assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;AE&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;AE&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;AE&apos;]/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 &gt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;AE&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;AE&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;AE&apos;]/ram:ActualAmount)*10*10)div 100))">
441
+ [BR-AE-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Reverse charge".</assert>
442
+ <assert test="../ram:CalculatedAmount = 0">
443
+ [BR-AE-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).</assert>
444
+ <assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
445
+ [BR-AE-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).</assert>
446
+ </rule>
447
+ </pattern>
448
+ <pattern>
449
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = &apos;E&apos;]">
450
+ <assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;E&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;E&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;E&apos;]/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 &gt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;E&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;E&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;E&apos;]/ram:ActualAmount)*10*10)div 100))">
451
+ [BR-E-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Exempt from VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Exempt from VAT".</assert>
452
+ <assert test="../ram:CalculatedAmount = 0">
453
+ [BR-E-09]-The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).</assert>
454
+ <assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
455
+ [BR-E-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).</assert>
456
+ </rule>
457
+ </pattern>
458
+ <pattern>
459
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = &apos;G&apos;]">
460
+ <assert test="(../ram:BasisAmount -1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;G&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;G&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;G&apos;]/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount +1 &gt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;G&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;G&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;G&apos;]/ram:ActualAmount)*10*10)div 100))">
461
+ [BR-G-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Export outside the EU".</assert>
462
+ <assert test="../ram:CalculatedAmount = 0">
463
+ [BR-G-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).</assert>
464
+ <assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
465
+ [BR-G-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).</assert>
466
+ </rule>
467
+ </pattern>
468
+ <pattern>
469
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[.= &apos;K&apos;]">
470
+ <assert test="(../ram:BasisAmount - 1 &lt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;K&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;K&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;K&apos;]/ram:ActualAmount)*10*10)div 100)) and (../ram:BasisAmount + 1 &gt; (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;K&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;K&apos;]/ram:ActualAmount)*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;K&apos;]/ram:ActualAmount)*10*10)div 100))">
471
+ [BR-IC-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Intra-community supply".</assert>
472
+ <assert test="../ram:CalculatedAmount = 0">
473
+ [BR-IC-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).</assert>
474
+ <assert test="(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)">
475
+ [BR-IC-10]-A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).</assert>
476
+ <assert test="(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString) or (../../ram:BillingSpecifiedPeriod/ram:StartDateTime) or (../../ram:BillingSpecifiedPeriod/ram:EndDateTime)">
477
+ [BR-IC-11]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.</assert>
478
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
479
+ [BR-IC-12]-In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.</assert>
480
+ </rule>
481
+ </pattern>
482
+ <pattern>
483
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;L&apos;]">
484
+ <assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;L&apos; and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;L&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;L&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
485
+ [BR-AF-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IGIC", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IGIC" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</assert>
486
+ <assert test="true()">
487
+ [BR-AF-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</assert>
488
+ <assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
489
+ [BR-AF-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</assert>
490
+ </rule>
491
+ </pattern>
492
+ <pattern>
493
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;M&apos;]">
494
+ <assert test="every $rate in ../ram:RateApplicablePercent/xs:decimal(.) satisfies (../ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;M&apos; and ram:ApplicableTradeTax/xs:decimal(ram:RateApplicablePercent) =$rate]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount)) * 10 * 10) div 100 + round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;M&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100 - round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;M&apos; and ram:CategoryTradeTax/xs:decimal(ram:RateApplicablePercent)=$rate]/xs:decimal(ram:ActualAmount)) * 10 * 10) div 100))">
495
+ [BR-AG-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IPSI", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IPSI" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).</assert>
496
+ <assert test="true()">
497
+ [BR-AG-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).</assert>
498
+ <assert test="not(ram:ExemptionReason) and not (ram:ExemptionReasonCode)">
499
+ [BR-AG-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).</assert>
500
+ </rule>
501
+ </pattern>
502
+ <pattern>
503
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;O&apos;]">
504
+ <assert test="ram:BasisAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement[ram:ApplicableTradeTax/ram:CategoryCode = &apos;O&apos;]/ram:SpecifiedTradeSettlementLineMonetarySummation/xs:decimal(ram:LineTotalAmount))*10*10)div 100) + (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=true() and ram:CategoryTradeTax/ram:CategoryCode=&apos;O&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100) - (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[(ram:ChargeIndicator/udt:Indicator cast as xs:boolean)=false() and ram:CategoryTradeTax/ram:CategoryCode=&apos;O&apos;]/xs:decimal(ram:ActualAmount))*10*10)div 100)">
505
+ [BR-O-08]-In a VAT breakdown (BG-23) where the VAT category code (BT-118) is " Not subject to VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Not subject to VAT".</assert>
506
+ <assert test="ram:CalculatedAmount = 0">
507
+ [BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).</assert>
508
+ <assert test="(ram:ExemptionReason) or (ram:ExemptionReasonCode)">
509
+ [BR-O-10]-A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).</assert>
510
+ <assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != &apos;O&apos;])">
511
+ [BR-O-11]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).</assert>
512
+ <assert test="not(//ram:ApplicableTradeTax[ram:CategoryCode != &apos;O&apos;])">
513
+ [BR-O-12]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is not "Not subject to VAT".</assert>
514
+ <assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != &apos;O&apos;])">
515
+ [BR-O-13]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".</assert>
516
+ <assert test="not(//ram:CategoryTradeTax[ram:CategoryCode != &apos;O&apos;])">
517
+ [BR-O-14]-An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not "Not subject to VAT".</assert>
518
+ </rule>
519
+ </pattern>
520
+ <pattern>
521
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;AE&apos;]">
522
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and (//ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID)">
523
+ [BR-AE-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).</assert>
524
+ <assert test="ram:RateApplicablePercent = 0">
525
+ [BR-AE-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</assert>
526
+ </rule>
527
+ </pattern>
528
+ <pattern>
529
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;E&apos;]">
530
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
531
+ [BR-E-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
532
+ <assert test="ram:RateApplicablePercent = 0">
533
+ [BR-E-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).</assert>
534
+ </rule>
535
+ </pattern>
536
+ <pattern>
537
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;G&apos;]">
538
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
539
+ [BR-G-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).</assert>
540
+ <assert test="ram:RateApplicablePercent = 0">
541
+ [BR-G-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</assert>
542
+ </rule>
543
+ </pattern>
544
+ <pattern>
545
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;K&apos;]">
546
+ <assert test="(//ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;] or //ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and //ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
547
+ [BR-IC-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).</assert>
548
+ <assert test="ram:RateApplicablePercent = 0">
549
+ [BR-IC-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</assert>
550
+ </rule>
551
+ </pattern>
552
+ <pattern>
553
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;L&apos;]">
554
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
555
+ [BR-AF-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
556
+ <assert test="ram:RateApplicablePercent &gt; 0">
557
+ [BR-AF-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).</assert>
558
+ </rule>
559
+ </pattern>
560
+ <pattern>
561
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;M&apos;]">
562
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
563
+ [BR-AG-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
564
+ <assert test="ram:RateApplicablePercent &gt; 0">
565
+ [BR-AG-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.</assert>
566
+ </rule>
567
+ </pattern>
568
+ <pattern>
569
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;O&apos;]">
570
+ <assert test="not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]) and not (/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;])">
571
+ [BR-O-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-46).</assert>
572
+ <assert test="not(ram:RateApplicablePercent)">
573
+ [BR-O-05]-An Invoice line (BG-25) where the VAT category code (BT-151) is "Not subject to VAT" shall not contain an Invoiced item VAT rate (BT-152).</assert>
574
+ </rule>
575
+ </pattern>
576
+ <pattern>
577
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;S&apos;]">
578
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
579
+ [BR-S-02]-An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
580
+ <assert test="ram:RateApplicablePercent &gt; 0">
581
+ [BR-S-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.</assert>
582
+ </rule>
583
+ </pattern>
584
+ <pattern>
585
+ <rule context="//rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode = &apos;Z&apos;]">
586
+ <assert test="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = (&apos;VA&apos;, &apos;FC&apos;)] or /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID = &apos;VA&apos;]">
587
+ [BR-Z-02]-An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).</assert>
588
+ <assert test="ram:RateApplicablePercent = 0">
589
+ [BR-Z-05]-In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Zero rated" the Invoiced item VAT rate (BT-152) shall be 0 (zero).</assert>
590
+ </rule>
591
+ </pattern>
592
+ <pattern>
593
+ <rule context="/rsm:CrossIndustryInvoice">
594
+ <assert test="//ram:IncludedSupplyChainTradeLineItem">
595
+ [BR-16]-An Invoice shall have at least one Invoice line (BG-25).</assert>
596
+ <assert test="(number(//ram:DuePayableAmount) &gt; 0 and ((//ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime) or (//ram:SpecifiedTradePaymentTerms/ram:Description))) or not(number(//ram:DuePayableAmount) &gt; 0)">
597
+ [BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.</assert>
598
+ <assert test="(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID != &apos;&apos;)">
599
+ [BR-01]-An Invoice shall have a Specification identifier (BT-24).</assert>
600
+ <assert test="(rsm:ExchangedDocument/ram:ID !=&apos;&apos;)">
601
+ [BR-02]-An Invoice shall have an Invoice number (BT-1).</assert>
602
+ <assert test="(rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format=&apos;102&apos;]!=&apos;&apos;)">
603
+ [BR-03]-An Invoice shall have an Invoice issue date (BT-2).</assert>
604
+ <assert test="(rsm:ExchangedDocument/ram:TypeCode!=&apos;&apos;)">
605
+ [BR-04]-An Invoice shall have an Invoice type code (BT-3).</assert>
606
+ <assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode!=&apos;&apos;)">
607
+ [BR-05]-An Invoice shall have an Invoice currency code (BT-5).</assert>
608
+ <assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:Name!=&apos;&apos;)">
609
+ [BR-06]-An Invoice shall contain the Seller name (BT-27).</assert>
610
+ <assert test="(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Name!=&apos;&apos;)">
611
+ [BR-07]-An Invoice shall contain the Buyer name (BT-44).</assert>
612
+ <assert test="//ram:SellerTradeParty/ram:PostalTradeAddress">
613
+ [BR-08]-An Invoice shall contain the Seller postal address (BG-5).</assert>
614
+ <assert test="//ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID!=&apos;&apos;">
615
+ [BR-09]-The Seller postal address (BG-5) shall contain a Seller country code (BT-40).</assert>
616
+ <assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress">
617
+ [BR-10]-An Invoice shall contain the Buyer postal address (BG-8).</assert>
618
+ <assert test="//ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID!=&apos;&apos;">
619
+ [BR-11]-The Buyer postal address shall contain a Buyer country code (BT-55).</assert>
620
+ <assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != &apos;&apos; or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication)">
621
+ [BR-62]-The Seller electronic address (BT-34) shall have a Scheme identifier.</assert>
622
+ <assert test="normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != &apos;&apos; or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication)">
623
+ [BR-63]-The Buyer electronic address (BT-49) shall have a Scheme identifier.</assert>
624
+ <assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;S&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;S&apos;])) &gt;=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;S&apos;])) and ((count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;S&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;S&apos;])) &gt;=2 or not (//ram:CategoryTradeTax[ram:CategoryCode=&apos;S&apos;]))">
625
+ [BR-S-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".</assert>
626
+ <assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;Z&apos;])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;Z&apos;])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;Z&apos;])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;Z&apos;])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;Z&apos;]) or exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;Z&apos;])))">
627
+ [BR-Z-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".</assert>
628
+ <assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;E&apos;])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;E&apos;])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;E&apos;])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;E&apos;])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;E&apos;]) or exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;E&apos;])))">
629
+ [BR-E-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Exempt from VAT” shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".</assert>
630
+ <assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;AE&apos;])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;AE&apos;])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;AE&apos;])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;AE&apos;])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;AE&apos;]) or exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;AE&apos;])))">
631
+ [BR-AE-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".</assert>
632
+ <assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;K&apos;])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;K&apos;])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;K&apos;])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;K&apos;])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;K&apos;]) or exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;K&apos;])))">
633
+ [BR-IC-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".</assert>
634
+ <assert test="(count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;G&apos;])=0 and count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;G&apos;])=0 and count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;G&apos;])=0) or ( count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;G&apos;])=1 and (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;G&apos;]) or exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;G&apos;])))">
635
+ [BR-G-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".</assert>
636
+ <assert test="not(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;O&apos;]) or ( &#13;&#10; count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;O&apos;])=1 and &#13;&#10; (exists(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;O&apos;]) or&#13;&#10; exists(//ram:CategoryTradeTax[ram:CategoryCode=&apos;O&apos;])))">
637
+ [BR-O-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".</assert>
638
+ <assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;L&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;L&apos;])) &gt;=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;L&apos;])) and &#13;&#10; ((count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;L&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;L&apos;])) &gt;=2 or not (//ram:CategoryTradeTax[ram:CategoryCode=&apos;L&apos;]))">
639
+ [BR-AF-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".</assert>
640
+ <assert test="((count(//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;M&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;M&apos;])) &gt;=2 or not (//ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;M&apos;])) and &#13;&#10; ((count(//ram:CategoryTradeTax[ram:CategoryCode=&apos;M&apos;]) + count(//ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax[ram:CategoryCode=&apos;M&apos;])) &gt;=2 or not (//ram:CategoryTradeTax[ram:CategoryCode=&apos;M&apos;]))">
641
+ [BR-AG-01]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".</assert>
642
+ <assert test="(not(//ram:CountryID != &apos;IT&apos;) and //ram:CategoryCode =&apos;B&apos;) or (not(//ram:CategoryCode =&apos;B&apos;))">
643
+ [BR-B-01]-An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is “Split payment” shall be a domestic Italian invoice.</assert>
644
+ <assert test="(//ram:CategoryCode =&apos;B&apos; and (not(//ram:CategoryCode =&apos;S&apos;))) or (not(//ram:CategoryCode =&apos;B&apos;))">
645
+ [BR-B-02]-An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Split payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Standard rated”.</assert>
646
+ </rule>
647
+ </pattern>
648
+ <pattern>
649
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument">
650
+ <assert test="count(ram:ID)=1">
651
+ Element 'ram:ID' must occur exactly 1 times.</assert>
652
+ <assert test="count(ram:TypeCode)=1">
653
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
654
+ </rule>
655
+ </pattern>
656
+ <pattern>
657
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:ID[@schemeID]">
658
+ <report test="true()">
659
+ Attribute @schemeID' marked as not used in the given context.</report>
660
+ </rule>
661
+ </pattern>
662
+ <pattern>
663
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote">
664
+ <assert test="count(ram:Content)=1">
665
+ Element 'ram:Content' must occur exactly 1 times.</assert>
666
+ <assert test="count(ram:SubjectCode)&lt;=1">
667
+ Element 'ram:SubjectCode' may occur at maximum 1 times.</assert>
668
+ </rule>
669
+ </pattern>
670
+ <pattern>
671
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode">
672
+ <let name="codeValue4" value="."/>
673
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=4]/enumeration[@value=$codeValue4]">
674
+ Value of 'ram:SubjectCode' is not allowed.</assert>
675
+ </rule>
676
+ </pattern>
677
+ <pattern>
678
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listID]">
679
+ <report test="true()">
680
+ Attribute @listID' marked as not used in the given context.</report>
681
+ </rule>
682
+ </pattern>
683
+ <pattern>
684
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IncludedNote/ram:SubjectCode[@listVersionID]">
685
+ <report test="true()">
686
+ Attribute @listVersionID' marked as not used in the given context.</report>
687
+ </rule>
688
+ </pattern>
689
+ <pattern>
690
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString">
691
+ <assert test="@format">
692
+ Attribute '@format' is required in this context.</assert>
693
+ </rule>
694
+ </pattern>
695
+ <pattern>
696
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:IssueDateTime/udt:DateTimeString[@format]">
697
+ <let name="codeValue3" value="@format"/>
698
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
699
+ Value of '@format' is not allowed.</assert>
700
+ </rule>
701
+ </pattern>
702
+ <pattern>
703
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocument/ram:TypeCode">
704
+ <let name="codeValue2" value="."/>
705
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=2]/enumeration[@value=$codeValue2]">
706
+ Value of 'ram:TypeCode' is not allowed.</assert>
707
+ </rule>
708
+ </pattern>
709
+ <pattern>
710
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext">
711
+ <assert test="count(ram:BusinessProcessSpecifiedDocumentContextParameter)&lt;=1">
712
+ Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.</assert>
713
+ <assert test="count(ram:GuidelineSpecifiedDocumentContextParameter)=1">
714
+ Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.</assert>
715
+ </rule>
716
+ </pattern>
717
+ <pattern>
718
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter">
719
+ <assert test="count(ram:ID)=1">
720
+ Element 'ram:ID' must occur exactly 1 times.</assert>
721
+ </rule>
722
+ </pattern>
723
+ <pattern>
724
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID[@schemeID]">
725
+ <report test="true()">
726
+ Attribute @schemeID' marked as not used in the given context.</report>
727
+ </rule>
728
+ </pattern>
729
+ <pattern>
730
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter">
731
+ <assert test="count(ram:ID)=1">
732
+ Element 'ram:ID' must occur exactly 1 times.</assert>
733
+ </rule>
734
+ </pattern>
735
+ <pattern>
736
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID">
737
+ <let name="codeValue1" value="."/>
738
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=1]/enumeration[@value=$codeValue1]">
739
+ Value of 'ram:ID' is not allowed.</assert>
740
+ </rule>
741
+ </pattern>
742
+ <pattern>
743
+ <rule context="/rsm:CrossIndustryInvoice/rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID[@schemeID]">
744
+ <report test="true()">
745
+ Attribute @schemeID' marked as not used in the given context.</report>
746
+ </rule>
747
+ </pattern>
748
+ <pattern>
749
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction">
750
+ <assert test="count(ram:IncludedSupplyChainTradeLineItem)&gt;=1">
751
+ Element 'ram:IncludedSupplyChainTradeLineItem' must occur at least 1 times.</assert>
752
+ </rule>
753
+ </pattern>
754
+ <pattern>
755
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement">
756
+ <assert test="count(ram:SellerTradeParty)=1">
757
+ Element 'ram:SellerTradeParty' must occur exactly 1 times.</assert>
758
+ <assert test="count(ram:BuyerTradeParty)=1">
759
+ Element 'ram:BuyerTradeParty' must occur exactly 1 times.</assert>
760
+ </rule>
761
+ </pattern>
762
+ <pattern>
763
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ not(ram:TypeCode=&quot;916&quot;) and not(ram:TypeCode=&quot;50&quot;) and not(ram:TypeCode=&quot;130&quot;)]">
764
+ <report test="true()">
765
+ Element variant 'ram:AdditionalReferencedDocument[ not(ram:TypeCode="916") and not(ram:TypeCode="50") and not(ram:TypeCode="130")]' is marked as not used in the given context.</report>
766
+ </rule>
767
+ </pattern>
768
+ <pattern>
769
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]">
770
+ <assert test="count(ram:IssuerAssignedID)=1">
771
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
772
+ <assert test="count(ram:TypeCode)=1">
773
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
774
+ </rule>
775
+ </pattern>
776
+ <pattern>
777
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:AttachmentBinaryObject">
778
+ <report test="true()">
779
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
780
+ </rule>
781
+ </pattern>
782
+ <pattern>
783
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:FormattedIssueDateTime">
784
+ <report test="true()">
785
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
786
+ </rule>
787
+ </pattern>
788
+ <pattern>
789
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:IssuerAssignedID[@schemeID]">
790
+ <report test="true()">
791
+ Attribute @schemeID' marked as not used in the given context.</report>
792
+ </rule>
793
+ </pattern>
794
+ <pattern>
795
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:LineID">
796
+ <report test="true()">
797
+ Element 'ram:LineID' is marked as not used in the given context.</report>
798
+ </rule>
799
+ </pattern>
800
+ <pattern>
801
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:Name">
802
+ <report test="true()">
803
+ Element 'ram:Name' is marked as not used in the given context.</report>
804
+ </rule>
805
+ </pattern>
806
+ <pattern>
807
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:ReferenceTypeCode">
808
+ <let name="codeValue14" value="."/>
809
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=14]/enumeration[@value=$codeValue14]">
810
+ Value of 'ram:ReferenceTypeCode' is not allowed.</assert>
811
+ </rule>
812
+ </pattern>
813
+ <pattern>
814
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:TypeCode">
815
+ <let name="codeValue23" value="."/>
816
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=23]/enumeration[@value=$codeValue23]">
817
+ Value of 'ram:TypeCode' is not allowed.</assert>
818
+ </rule>
819
+ </pattern>
820
+ <pattern>
821
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;130&quot;]/ram:URIID">
822
+ <report test="true()">
823
+ Element 'ram:URIID' is marked as not used in the given context.</report>
824
+ </rule>
825
+ </pattern>
826
+ <pattern>
827
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]">
828
+ <assert test="count(ram:IssuerAssignedID)=1">
829
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
830
+ <assert test="count(ram:TypeCode)=1">
831
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
832
+ </rule>
833
+ </pattern>
834
+ <pattern>
835
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:AttachmentBinaryObject">
836
+ <report test="true()">
837
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
838
+ </rule>
839
+ </pattern>
840
+ <pattern>
841
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:FormattedIssueDateTime">
842
+ <report test="true()">
843
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
844
+ </rule>
845
+ </pattern>
846
+ <pattern>
847
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:IssuerAssignedID[@schemeID]">
848
+ <report test="true()">
849
+ Attribute @schemeID' marked as not used in the given context.</report>
850
+ </rule>
851
+ </pattern>
852
+ <pattern>
853
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:LineID">
854
+ <report test="true()">
855
+ Element 'ram:LineID' is marked as not used in the given context.</report>
856
+ </rule>
857
+ </pattern>
858
+ <pattern>
859
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:Name">
860
+ <report test="true()">
861
+ Element 'ram:Name' is marked as not used in the given context.</report>
862
+ </rule>
863
+ </pattern>
864
+ <pattern>
865
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:ReferenceTypeCode">
866
+ <report test="true()">
867
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
868
+ </rule>
869
+ </pattern>
870
+ <pattern>
871
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:TypeCode">
872
+ <let name="codeValue22" value="."/>
873
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=22]/enumeration[@value=$codeValue22]">
874
+ Value of 'ram:TypeCode' is not allowed.</assert>
875
+ </rule>
876
+ </pattern>
877
+ <pattern>
878
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;50&quot;]/ram:URIID">
879
+ <report test="true()">
880
+ Element 'ram:URIID' is marked as not used in the given context.</report>
881
+ </rule>
882
+ </pattern>
883
+ <pattern>
884
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]">
885
+ <assert test="count(ram:IssuerAssignedID)=1">
886
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
887
+ <assert test="count(ram:TypeCode)=1">
888
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
889
+ <assert test="count(ram:Name)&lt;=1">
890
+ Element 'ram:Name' may occur at maximum 1 times.</assert>
891
+ <assert test="count(ram:AttachmentBinaryObject)&lt;=1">
892
+ Element 'ram:AttachmentBinaryObject' may occur at maximum 1 times.</assert>
893
+ </rule>
894
+ </pattern>
895
+ <pattern>
896
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject">
897
+ <assert test="@mimeCode">
898
+ Attribute '@mimeCode' is required in this context.</assert>
899
+ <assert test="@filename">
900
+ Attribute '@filename' is required in this context.</assert>
901
+ </rule>
902
+ </pattern>
903
+ <pattern>
904
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:AttachmentBinaryObject[@mimeCode]">
905
+ <let name="codeValue21" value="@mimeCode"/>
906
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=21]/enumeration[@value=$codeValue21]">
907
+ Value of '@mimeCode' is not allowed.</assert>
908
+ </rule>
909
+ </pattern>
910
+ <pattern>
911
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:FormattedIssueDateTime">
912
+ <report test="true()">
913
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
914
+ </rule>
915
+ </pattern>
916
+ <pattern>
917
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:IssuerAssignedID[@schemeID]">
918
+ <report test="true()">
919
+ Attribute @schemeID' marked as not used in the given context.</report>
920
+ </rule>
921
+ </pattern>
922
+ <pattern>
923
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:LineID">
924
+ <report test="true()">
925
+ Element 'ram:LineID' is marked as not used in the given context.</report>
926
+ </rule>
927
+ </pattern>
928
+ <pattern>
929
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:ReferenceTypeCode">
930
+ <report test="true()">
931
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
932
+ </rule>
933
+ </pattern>
934
+ <pattern>
935
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:TypeCode">
936
+ <let name="codeValue20" value="."/>
937
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=20]/enumeration[@value=$codeValue20]">
938
+ Value of 'ram:TypeCode' is not allowed.</assert>
939
+ </rule>
940
+ </pattern>
941
+ <pattern>
942
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:AdditionalReferencedDocument[ram:TypeCode=&quot;916&quot;]/ram:URIID[@schemeID]">
943
+ <report test="true()">
944
+ Attribute @schemeID' marked as not used in the given context.</report>
945
+ </rule>
946
+ </pattern>
947
+ <pattern>
948
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument">
949
+ <assert test="count(ram:IssuerAssignedID)=1">
950
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
951
+ </rule>
952
+ </pattern>
953
+ <pattern>
954
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject">
955
+ <report test="true()">
956
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
957
+ </rule>
958
+ </pattern>
959
+ <pattern>
960
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime">
961
+ <report test="true()">
962
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
963
+ </rule>
964
+ </pattern>
965
+ <pattern>
966
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]">
967
+ <report test="true()">
968
+ Attribute @schemeID' marked as not used in the given context.</report>
969
+ </rule>
970
+ </pattern>
971
+ <pattern>
972
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID">
973
+ <report test="true()">
974
+ Element 'ram:LineID' is marked as not used in the given context.</report>
975
+ </rule>
976
+ </pattern>
977
+ <pattern>
978
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name">
979
+ <report test="true()">
980
+ Element 'ram:Name' is marked as not used in the given context.</report>
981
+ </rule>
982
+ </pattern>
983
+ <pattern>
984
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode">
985
+ <report test="true()">
986
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
987
+ </rule>
988
+ </pattern>
989
+ <pattern>
990
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode">
991
+ <report test="true()">
992
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
993
+ </rule>
994
+ </pattern>
995
+ <pattern>
996
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID">
997
+ <report test="true()">
998
+ Element 'ram:URIID' is marked as not used in the given context.</report>
999
+ </rule>
1000
+ </pattern>
1001
+ <pattern>
1002
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty">
1003
+ <assert test="count(ram:ID)&lt;=1">
1004
+ Element 'ram:ID' may occur at maximum 1 times.</assert>
1005
+ <assert test="count(ram:GlobalID)&lt;=1">
1006
+ Element 'ram:GlobalID' may occur at maximum 1 times.</assert>
1007
+ <assert test="count(ram:Name)=1">
1008
+ Element 'ram:Name' must occur exactly 1 times.</assert>
1009
+ <assert test="count(ram:DefinedTradeContact)&lt;=1">
1010
+ Element 'ram:DefinedTradeContact' may occur at maximum 1 times.</assert>
1011
+ <assert test="count(ram:PostalTradeAddress)=1">
1012
+ Element 'ram:PostalTradeAddress' must occur exactly 1 times.</assert>
1013
+ <assert test="count(ram:URIUniversalCommunication)&lt;=1">
1014
+ Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</assert>
1015
+ <assert test="count(ram:SpecifiedTaxRegistration)&lt;=1">
1016
+ Element 'ram:SpecifiedTaxRegistration' may occur at maximum 1 times.</assert>
1017
+ </rule>
1018
+ </pattern>
1019
+ <pattern>
1020
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication">
1021
+ <assert test="count(ram:URIID)=1">
1022
+ Element 'ram:URIID' must occur exactly 1 times.</assert>
1023
+ </rule>
1024
+ </pattern>
1025
+ <pattern>
1026
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber">
1027
+ <report test="true()">
1028
+ Element 'ram:CompleteNumber' is marked as not used in the given context.</report>
1029
+ </rule>
1030
+ </pattern>
1031
+ <pattern>
1032
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]">
1033
+ <report test="true()">
1034
+ Attribute @schemeID' marked as not used in the given context.</report>
1035
+ </rule>
1036
+ </pattern>
1037
+ <pattern>
1038
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication">
1039
+ <assert test="count(ram:CompleteNumber)=1">
1040
+ Element 'ram:CompleteNumber' must occur exactly 1 times.</assert>
1041
+ </rule>
1042
+ </pattern>
1043
+ <pattern>
1044
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID">
1045
+ <report test="true()">
1046
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1047
+ </rule>
1048
+ </pattern>
1049
+ <pattern>
1050
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:Description">
1051
+ <report test="true()">
1052
+ Element 'ram:Description' is marked as not used in the given context.</report>
1053
+ </rule>
1054
+ </pattern>
1055
+ <pattern>
1056
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID">
1057
+ <assert test="@schemeID">
1058
+ Attribute '@schemeID' is required in this context.</assert>
1059
+ </rule>
1060
+ </pattern>
1061
+ <pattern>
1062
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:GlobalID[@schemeID]">
1063
+ <let name="codeValue15" value="@schemeID"/>
1064
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=15]/enumeration[@value=$codeValue15]">
1065
+ Value of '@schemeID' is not allowed.</assert>
1066
+ </rule>
1067
+ </pattern>
1068
+ <pattern>
1069
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:ID[@schemeID]">
1070
+ <report test="true()">
1071
+ Attribute @schemeID' marked as not used in the given context.</report>
1072
+ </rule>
1073
+ </pattern>
1074
+ <pattern>
1075
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress">
1076
+ <assert test="count(ram:CountryID)=1">
1077
+ Element 'ram:CountryID' must occur exactly 1 times.</assert>
1078
+ <assert test="count(ram:CountrySubDivisionName)&lt;=1">
1079
+ Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</assert>
1080
+ </rule>
1081
+ </pattern>
1082
+ <pattern>
1083
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:CountryID">
1084
+ <let name="codeValue7" value="."/>
1085
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=7]/enumeration[@value=$codeValue7]">
1086
+ Value of 'ram:CountryID' is not allowed.</assert>
1087
+ </rule>
1088
+ </pattern>
1089
+ <pattern>
1090
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]">
1091
+ <report test="true()">
1092
+ Attribute @listID' marked as not used in the given context.</report>
1093
+ </rule>
1094
+ </pattern>
1095
+ <pattern>
1096
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]">
1097
+ <report test="true()">
1098
+ Attribute @listVersionID' marked as not used in the given context.</report>
1099
+ </rule>
1100
+ </pattern>
1101
+ <pattern>
1102
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]">
1103
+ <let name="codeValue16" value="@schemeID"/>
1104
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=16]/enumeration[@value=$codeValue16]">
1105
+ Value of '@schemeID' is not allowed.</assert>
1106
+ </rule>
1107
+ </pattern>
1108
+ <pattern>
1109
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration">
1110
+ <assert test="count(ram:ID)=1">
1111
+ Element 'ram:ID' must occur exactly 1 times.</assert>
1112
+ </rule>
1113
+ </pattern>
1114
+ <pattern>
1115
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID">
1116
+ <assert test="@schemeID">
1117
+ Attribute '@schemeID' is required in this context.</assert>
1118
+ </rule>
1119
+ </pattern>
1120
+ <pattern>
1121
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]">
1122
+ <let name="codeValue18" value="@schemeID"/>
1123
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=18]/enumeration[@value=$codeValue18]">
1124
+ Value of '@schemeID' is not allowed.</assert>
1125
+ </rule>
1126
+ </pattern>
1127
+ <pattern>
1128
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication">
1129
+ <assert test="count(ram:URIID)=1">
1130
+ Element 'ram:URIID' must occur exactly 1 times.</assert>
1131
+ </rule>
1132
+ </pattern>
1133
+ <pattern>
1134
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber">
1135
+ <report test="true()">
1136
+ Element 'ram:CompleteNumber' is marked as not used in the given context.</report>
1137
+ </rule>
1138
+ </pattern>
1139
+ <pattern>
1140
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID">
1141
+ <assert test="@schemeID">
1142
+ Attribute '@schemeID' is required in this context.</assert>
1143
+ </rule>
1144
+ </pattern>
1145
+ <pattern>
1146
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]">
1147
+ <let name="codeValue17" value="@schemeID"/>
1148
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=17]/enumeration[@value=$codeValue17]">
1149
+ Value of '@schemeID' is not allowed.</assert>
1150
+ </rule>
1151
+ </pattern>
1152
+ <pattern>
1153
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument">
1154
+ <assert test="count(ram:IssuerAssignedID)=1">
1155
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
1156
+ </rule>
1157
+ </pattern>
1158
+ <pattern>
1159
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:AttachmentBinaryObject">
1160
+ <report test="true()">
1161
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
1162
+ </rule>
1163
+ </pattern>
1164
+ <pattern>
1165
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:FormattedIssueDateTime">
1166
+ <report test="true()">
1167
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
1168
+ </rule>
1169
+ </pattern>
1170
+ <pattern>
1171
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:IssuerAssignedID[@schemeID]">
1172
+ <report test="true()">
1173
+ Attribute @schemeID' marked as not used in the given context.</report>
1174
+ </rule>
1175
+ </pattern>
1176
+ <pattern>
1177
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:LineID">
1178
+ <report test="true()">
1179
+ Element 'ram:LineID' is marked as not used in the given context.</report>
1180
+ </rule>
1181
+ </pattern>
1182
+ <pattern>
1183
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:Name">
1184
+ <report test="true()">
1185
+ Element 'ram:Name' is marked as not used in the given context.</report>
1186
+ </rule>
1187
+ </pattern>
1188
+ <pattern>
1189
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:ReferenceTypeCode">
1190
+ <report test="true()">
1191
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
1192
+ </rule>
1193
+ </pattern>
1194
+ <pattern>
1195
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:TypeCode">
1196
+ <report test="true()">
1197
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
1198
+ </rule>
1199
+ </pattern>
1200
+ <pattern>
1201
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:ContractReferencedDocument/ram:URIID">
1202
+ <report test="true()">
1203
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1204
+ </rule>
1205
+ </pattern>
1206
+ <pattern>
1207
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument">
1208
+ <assert test="count(ram:IssuerAssignedID)=1">
1209
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
1210
+ </rule>
1211
+ </pattern>
1212
+ <pattern>
1213
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:AttachmentBinaryObject">
1214
+ <report test="true()">
1215
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
1216
+ </rule>
1217
+ </pattern>
1218
+ <pattern>
1219
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:FormattedIssueDateTime">
1220
+ <report test="true()">
1221
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
1222
+ </rule>
1223
+ </pattern>
1224
+ <pattern>
1225
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:IssuerAssignedID[@schemeID]">
1226
+ <report test="true()">
1227
+ Attribute @schemeID' marked as not used in the given context.</report>
1228
+ </rule>
1229
+ </pattern>
1230
+ <pattern>
1231
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:LineID">
1232
+ <report test="true()">
1233
+ Element 'ram:LineID' is marked as not used in the given context.</report>
1234
+ </rule>
1235
+ </pattern>
1236
+ <pattern>
1237
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:Name">
1238
+ <report test="true()">
1239
+ Element 'ram:Name' is marked as not used in the given context.</report>
1240
+ </rule>
1241
+ </pattern>
1242
+ <pattern>
1243
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:ReferenceTypeCode">
1244
+ <report test="true()">
1245
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
1246
+ </rule>
1247
+ </pattern>
1248
+ <pattern>
1249
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:TypeCode">
1250
+ <report test="true()">
1251
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
1252
+ </rule>
1253
+ </pattern>
1254
+ <pattern>
1255
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerOrderReferencedDocument/ram:URIID">
1256
+ <report test="true()">
1257
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1258
+ </rule>
1259
+ </pattern>
1260
+ <pattern>
1261
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty">
1262
+ <assert test="count(ram:Name)=1">
1263
+ Element 'ram:Name' must occur exactly 1 times.</assert>
1264
+ <assert test="count(ram:PostalTradeAddress)=1">
1265
+ Element 'ram:PostalTradeAddress' must occur exactly 1 times.</assert>
1266
+ <assert test="count(ram:SpecifiedTaxRegistration)=1">
1267
+ Element 'ram:SpecifiedTaxRegistration' must occur exactly 1 times.</assert>
1268
+ </rule>
1269
+ </pattern>
1270
+ <pattern>
1271
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:DefinedTradeContact">
1272
+ <report test="true()">
1273
+ Element 'ram:DefinedTradeContact' is marked as not used in the given context.</report>
1274
+ </rule>
1275
+ </pattern>
1276
+ <pattern>
1277
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:Description">
1278
+ <report test="true()">
1279
+ Element 'ram:Description' is marked as not used in the given context.</report>
1280
+ </rule>
1281
+ </pattern>
1282
+ <pattern>
1283
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:GlobalID">
1284
+ <report test="true()">
1285
+ Element 'ram:GlobalID' is marked as not used in the given context.</report>
1286
+ </rule>
1287
+ </pattern>
1288
+ <pattern>
1289
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:ID">
1290
+ <report test="true()">
1291
+ Element 'ram:ID' is marked as not used in the given context.</report>
1292
+ </rule>
1293
+ </pattern>
1294
+ <pattern>
1295
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress">
1296
+ <assert test="count(ram:CountryID)=1">
1297
+ Element 'ram:CountryID' must occur exactly 1 times.</assert>
1298
+ <assert test="count(ram:CountrySubDivisionName)&lt;=1">
1299
+ Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</assert>
1300
+ </rule>
1301
+ </pattern>
1302
+ <pattern>
1303
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:CountryID">
1304
+ <let name="codeValue7" value="."/>
1305
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=7]/enumeration[@value=$codeValue7]">
1306
+ Value of 'ram:CountryID' is not allowed.</assert>
1307
+ </rule>
1308
+ </pattern>
1309
+ <pattern>
1310
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]">
1311
+ <report test="true()">
1312
+ Attribute @listID' marked as not used in the given context.</report>
1313
+ </rule>
1314
+ </pattern>
1315
+ <pattern>
1316
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]">
1317
+ <report test="true()">
1318
+ Attribute @listVersionID' marked as not used in the given context.</report>
1319
+ </rule>
1320
+ </pattern>
1321
+ <pattern>
1322
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedLegalOrganization">
1323
+ <report test="true()">
1324
+ Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</report>
1325
+ </rule>
1326
+ </pattern>
1327
+ <pattern>
1328
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration">
1329
+ <assert test="count(ram:ID)=1">
1330
+ Element 'ram:ID' must occur exactly 1 times.</assert>
1331
+ </rule>
1332
+ </pattern>
1333
+ <pattern>
1334
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID">
1335
+ <assert test="@schemeID">
1336
+ Attribute '@schemeID' is required in this context.</assert>
1337
+ </rule>
1338
+ </pattern>
1339
+ <pattern>
1340
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:SpecifiedTaxRegistration/ram:ID[@schemeID]">
1341
+ <let name="codeValue19" value="@schemeID"/>
1342
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=19]/enumeration[@value=$codeValue19]">
1343
+ Value of '@schemeID' is not allowed.</assert>
1344
+ </rule>
1345
+ </pattern>
1346
+ <pattern>
1347
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTaxRepresentativeTradeParty/ram:URIUniversalCommunication">
1348
+ <report test="true()">
1349
+ Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</report>
1350
+ </rule>
1351
+ </pattern>
1352
+ <pattern>
1353
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty">
1354
+ <assert test="count(ram:Name)=1">
1355
+ Element 'ram:Name' must occur exactly 1 times.</assert>
1356
+ <assert test="count(ram:Description)&lt;=1">
1357
+ Element 'ram:Description' may occur at maximum 1 times.</assert>
1358
+ <assert test="count(ram:DefinedTradeContact)&lt;=1">
1359
+ Element 'ram:DefinedTradeContact' may occur at maximum 1 times.</assert>
1360
+ <assert test="count(ram:PostalTradeAddress)=1">
1361
+ Element 'ram:PostalTradeAddress' must occur exactly 1 times.</assert>
1362
+ <assert test="count(ram:URIUniversalCommunication)&lt;=1">
1363
+ Element 'ram:URIUniversalCommunication' may occur at maximum 1 times.</assert>
1364
+ <assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;])&lt;=1">
1365
+ Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.</assert>
1366
+ <assert test="count(ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;])&lt;=1">
1367
+ Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.</assert>
1368
+ </rule>
1369
+ </pattern>
1370
+ <pattern>
1371
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication">
1372
+ <assert test="count(ram:URIID)=1">
1373
+ Element 'ram:URIID' must occur exactly 1 times.</assert>
1374
+ </rule>
1375
+ </pattern>
1376
+ <pattern>
1377
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:CompleteNumber">
1378
+ <report test="true()">
1379
+ Element 'ram:CompleteNumber' is marked as not used in the given context.</report>
1380
+ </rule>
1381
+ </pattern>
1382
+ <pattern>
1383
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:EmailURIUniversalCommunication/ram:URIID[@schemeID]">
1384
+ <report test="true()">
1385
+ Attribute @schemeID' marked as not used in the given context.</report>
1386
+ </rule>
1387
+ </pattern>
1388
+ <pattern>
1389
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication">
1390
+ <assert test="count(ram:CompleteNumber)=1">
1391
+ Element 'ram:CompleteNumber' must occur exactly 1 times.</assert>
1392
+ </rule>
1393
+ </pattern>
1394
+ <pattern>
1395
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:DefinedTradeContact/ram:TelephoneUniversalCommunication/ram:URIID">
1396
+ <report test="true()">
1397
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1398
+ </rule>
1399
+ </pattern>
1400
+ <pattern>
1401
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID">
1402
+ <assert test="@schemeID">
1403
+ Attribute '@schemeID' is required in this context.</assert>
1404
+ </rule>
1405
+ </pattern>
1406
+ <pattern>
1407
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:GlobalID[@schemeID]">
1408
+ <let name="codeValue15" value="@schemeID"/>
1409
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=15]/enumeration[@value=$codeValue15]">
1410
+ Value of '@schemeID' is not allowed.</assert>
1411
+ </rule>
1412
+ </pattern>
1413
+ <pattern>
1414
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:ID[@schemeID]">
1415
+ <report test="true()">
1416
+ Attribute @schemeID' marked as not used in the given context.</report>
1417
+ </rule>
1418
+ </pattern>
1419
+ <pattern>
1420
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress">
1421
+ <assert test="count(ram:CountryID)=1">
1422
+ Element 'ram:CountryID' must occur exactly 1 times.</assert>
1423
+ <assert test="count(ram:CountrySubDivisionName)&lt;=1">
1424
+ Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</assert>
1425
+ </rule>
1426
+ </pattern>
1427
+ <pattern>
1428
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:CountryID">
1429
+ <let name="codeValue7" value="."/>
1430
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=7]/enumeration[@value=$codeValue7]">
1431
+ Value of 'ram:CountryID' is not allowed.</assert>
1432
+ </rule>
1433
+ </pattern>
1434
+ <pattern>
1435
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]">
1436
+ <report test="true()">
1437
+ Attribute @listID' marked as not used in the given context.</report>
1438
+ </rule>
1439
+ </pattern>
1440
+ <pattern>
1441
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]">
1442
+ <report test="true()">
1443
+ Attribute @listVersionID' marked as not used in the given context.</report>
1444
+ </rule>
1445
+ </pattern>
1446
+ <pattern>
1447
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]">
1448
+ <let name="codeValue16" value="@schemeID"/>
1449
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=16]/enumeration[@value=$codeValue16]">
1450
+ Value of '@schemeID' is not allowed.</assert>
1451
+ </rule>
1452
+ </pattern>
1453
+ <pattern>
1454
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID=&quot;VA&quot;) and not(ram:ID/@schemeID=&quot;FC&quot;)]">
1455
+ <report test="true()">
1456
+ Element variant 'ram:SpecifiedTaxRegistration[ not(ram:ID/@schemeID="VA") and not(ram:ID/@schemeID="FC")]' is marked as not used in the given context.</report>
1457
+ </rule>
1458
+ </pattern>
1459
+ <pattern>
1460
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]">
1461
+ <assert test="count(ram:ID)=1">
1462
+ Element 'ram:ID' must occur exactly 1 times.</assert>
1463
+ </rule>
1464
+ </pattern>
1465
+ <pattern>
1466
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;FC&quot;]/ram:ID">
1467
+ <assert test="@schemeID">
1468
+ Attribute '@schemeID' is required in this context.</assert>
1469
+ </rule>
1470
+ </pattern>
1471
+ <pattern>
1472
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]">
1473
+ <assert test="count(ram:ID)=1">
1474
+ Element 'ram:ID' must occur exactly 1 times.</assert>
1475
+ </rule>
1476
+ </pattern>
1477
+ <pattern>
1478
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:SpecifiedTaxRegistration[ram:ID/@schemeID=&quot;VA&quot;]/ram:ID">
1479
+ <assert test="@schemeID">
1480
+ Attribute '@schemeID' is required in this context.</assert>
1481
+ </rule>
1482
+ </pattern>
1483
+ <pattern>
1484
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication">
1485
+ <assert test="count(ram:URIID)=1">
1486
+ Element 'ram:URIID' must occur exactly 1 times.</assert>
1487
+ </rule>
1488
+ </pattern>
1489
+ <pattern>
1490
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:CompleteNumber">
1491
+ <report test="true()">
1492
+ Element 'ram:CompleteNumber' is marked as not used in the given context.</report>
1493
+ </rule>
1494
+ </pattern>
1495
+ <pattern>
1496
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID">
1497
+ <assert test="@schemeID">
1498
+ Attribute '@schemeID' is required in this context.</assert>
1499
+ </rule>
1500
+ </pattern>
1501
+ <pattern>
1502
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SellerTradeParty/ram:URIUniversalCommunication/ram:URIID[@schemeID]">
1503
+ <let name="codeValue17" value="@schemeID"/>
1504
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=17]/enumeration[@value=$codeValue17]">
1505
+ Value of '@schemeID' is not allowed.</assert>
1506
+ </rule>
1507
+ </pattern>
1508
+ <pattern>
1509
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:SpecifiedProcuringProject/ram:ID[@schemeID]">
1510
+ <report test="true()">
1511
+ Attribute @schemeID' marked as not used in the given context.</report>
1512
+ </rule>
1513
+ </pattern>
1514
+ <pattern>
1515
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery">
1516
+ <assert test="(ram:ShipToTradeParty/ram:PostalTradeAddress and ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID!=&apos;&apos;) or not (ram:ShipToTradeParty/ram:PostalTradeAddress)">
1517
+ [BR-57]-Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).</assert>
1518
+ </rule>
1519
+ </pattern>
1520
+ <pattern>
1521
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent">
1522
+ <assert test="count(ram:OccurrenceDateTime)=1">
1523
+ Element 'ram:OccurrenceDateTime' must occur exactly 1 times.</assert>
1524
+ </rule>
1525
+ </pattern>
1526
+ <pattern>
1527
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString">
1528
+ <assert test="@format">
1529
+ Attribute '@format' is required in this context.</assert>
1530
+ </rule>
1531
+ </pattern>
1532
+ <pattern>
1533
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ActualDeliverySupplyChainEvent/ram:OccurrenceDateTime/udt:DateTimeString[@format]">
1534
+ <let name="codeValue3" value="@format"/>
1535
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
1536
+ Value of '@format' is not allowed.</assert>
1537
+ </rule>
1538
+ </pattern>
1539
+ <pattern>
1540
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument">
1541
+ <assert test="count(ram:IssuerAssignedID)=1">
1542
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
1543
+ </rule>
1544
+ </pattern>
1545
+ <pattern>
1546
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:AttachmentBinaryObject">
1547
+ <report test="true()">
1548
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
1549
+ </rule>
1550
+ </pattern>
1551
+ <pattern>
1552
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:FormattedIssueDateTime">
1553
+ <report test="true()">
1554
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
1555
+ </rule>
1556
+ </pattern>
1557
+ <pattern>
1558
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]">
1559
+ <report test="true()">
1560
+ Attribute @schemeID' marked as not used in the given context.</report>
1561
+ </rule>
1562
+ </pattern>
1563
+ <pattern>
1564
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:LineID">
1565
+ <report test="true()">
1566
+ Element 'ram:LineID' is marked as not used in the given context.</report>
1567
+ </rule>
1568
+ </pattern>
1569
+ <pattern>
1570
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:Name">
1571
+ <report test="true()">
1572
+ Element 'ram:Name' is marked as not used in the given context.</report>
1573
+ </rule>
1574
+ </pattern>
1575
+ <pattern>
1576
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:ReferenceTypeCode">
1577
+ <report test="true()">
1578
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
1579
+ </rule>
1580
+ </pattern>
1581
+ <pattern>
1582
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:TypeCode">
1583
+ <report test="true()">
1584
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
1585
+ </rule>
1586
+ </pattern>
1587
+ <pattern>
1588
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:DespatchAdviceReferencedDocument/ram:URIID">
1589
+ <report test="true()">
1590
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1591
+ </rule>
1592
+ </pattern>
1593
+ <pattern>
1594
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument">
1595
+ <assert test="count(ram:IssuerAssignedID)=1">
1596
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
1597
+ </rule>
1598
+ </pattern>
1599
+ <pattern>
1600
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:AttachmentBinaryObject">
1601
+ <report test="true()">
1602
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
1603
+ </rule>
1604
+ </pattern>
1605
+ <pattern>
1606
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:FormattedIssueDateTime">
1607
+ <report test="true()">
1608
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
1609
+ </rule>
1610
+ </pattern>
1611
+ <pattern>
1612
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:IssuerAssignedID[@schemeID]">
1613
+ <report test="true()">
1614
+ Attribute @schemeID' marked as not used in the given context.</report>
1615
+ </rule>
1616
+ </pattern>
1617
+ <pattern>
1618
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:LineID">
1619
+ <report test="true()">
1620
+ Element 'ram:LineID' is marked as not used in the given context.</report>
1621
+ </rule>
1622
+ </pattern>
1623
+ <pattern>
1624
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:Name">
1625
+ <report test="true()">
1626
+ Element 'ram:Name' is marked as not used in the given context.</report>
1627
+ </rule>
1628
+ </pattern>
1629
+ <pattern>
1630
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:ReferenceTypeCode">
1631
+ <report test="true()">
1632
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
1633
+ </rule>
1634
+ </pattern>
1635
+ <pattern>
1636
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:TypeCode">
1637
+ <report test="true()">
1638
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
1639
+ </rule>
1640
+ </pattern>
1641
+ <pattern>
1642
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ReceivingAdviceReferencedDocument/ram:URIID">
1643
+ <report test="true()">
1644
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1645
+ </rule>
1646
+ </pattern>
1647
+ <pattern>
1648
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty">
1649
+ <assert test="count(ram:ID)&lt;=1">
1650
+ Element 'ram:ID' may occur at maximum 1 times.</assert>
1651
+ <assert test="count(ram:GlobalID)&lt;=1">
1652
+ Element 'ram:GlobalID' may occur at maximum 1 times.</assert>
1653
+ </rule>
1654
+ </pattern>
1655
+ <pattern>
1656
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:DefinedTradeContact">
1657
+ <report test="true()">
1658
+ Element 'ram:DefinedTradeContact' is marked as not used in the given context.</report>
1659
+ </rule>
1660
+ </pattern>
1661
+ <pattern>
1662
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:Description">
1663
+ <report test="true()">
1664
+ Element 'ram:Description' is marked as not used in the given context.</report>
1665
+ </rule>
1666
+ </pattern>
1667
+ <pattern>
1668
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID">
1669
+ <assert test="@schemeID">
1670
+ Attribute '@schemeID' is required in this context.</assert>
1671
+ </rule>
1672
+ </pattern>
1673
+ <pattern>
1674
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:GlobalID[@schemeID]">
1675
+ <let name="codeValue15" value="@schemeID"/>
1676
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=15]/enumeration[@value=$codeValue15]">
1677
+ Value of '@schemeID' is not allowed.</assert>
1678
+ </rule>
1679
+ </pattern>
1680
+ <pattern>
1681
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:ID[@schemeID]">
1682
+ <report test="true()">
1683
+ Attribute @schemeID' marked as not used in the given context.</report>
1684
+ </rule>
1685
+ </pattern>
1686
+ <pattern>
1687
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress">
1688
+ <assert test="count(ram:CountryID)=1">
1689
+ Element 'ram:CountryID' must occur exactly 1 times.</assert>
1690
+ <assert test="count(ram:CountrySubDivisionName)&lt;=1">
1691
+ Element 'ram:CountrySubDivisionName' may occur at maximum 1 times.</assert>
1692
+ </rule>
1693
+ </pattern>
1694
+ <pattern>
1695
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID">
1696
+ <let name="codeValue7" value="."/>
1697
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=7]/enumeration[@value=$codeValue7]">
1698
+ Value of 'ram:CountryID' is not allowed.</assert>
1699
+ </rule>
1700
+ </pattern>
1701
+ <pattern>
1702
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listID]">
1703
+ <report test="true()">
1704
+ Attribute @listID' marked as not used in the given context.</report>
1705
+ </rule>
1706
+ </pattern>
1707
+ <pattern>
1708
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:PostalTradeAddress/ram:PostcodeCode[@listVersionID]">
1709
+ <report test="true()">
1710
+ Attribute @listVersionID' marked as not used in the given context.</report>
1711
+ </rule>
1712
+ </pattern>
1713
+ <pattern>
1714
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedLegalOrganization">
1715
+ <report test="true()">
1716
+ Element 'ram:SpecifiedLegalOrganization' is marked as not used in the given context.</report>
1717
+ </rule>
1718
+ </pattern>
1719
+ <pattern>
1720
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:SpecifiedTaxRegistration">
1721
+ <report test="true()">
1722
+ Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</report>
1723
+ </rule>
1724
+ </pattern>
1725
+ <pattern>
1726
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ram:ShipToTradeParty/ram:URIUniversalCommunication">
1727
+ <report test="true()">
1728
+ Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</report>
1729
+ </rule>
1730
+ </pattern>
1731
+ <pattern>
1732
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement">
1733
+ <assert test="count(ram:PaymentReference)&lt;=1">
1734
+ Element 'ram:PaymentReference' may occur at maximum 1 times.</assert>
1735
+ <assert test="count(ram:InvoiceCurrencyCode)=1">
1736
+ Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.</assert>
1737
+ <assert test="count(ram:ApplicableTradeTax)&gt;=1">
1738
+ Element 'ram:ApplicableTradeTax' must occur at least 1 times.</assert>
1739
+ <assert test="count(ram:SpecifiedTradePaymentTerms)&lt;=1">
1740
+ Element 'ram:SpecifiedTradePaymentTerms' may occur at maximum 1 times.</assert>
1741
+ <assert test="count(ram:SpecifiedTradeSettlementHeaderMonetarySummation)=1">
1742
+ Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.</assert>
1743
+ <assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
1744
+ Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</assert>
1745
+ </rule>
1746
+ </pattern>
1747
+ <pattern>
1748
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax">
1749
+ <assert test="count(ram:CalculatedAmount)=1">
1750
+ Element 'ram:CalculatedAmount' must occur exactly 1 times.</assert>
1751
+ <assert test="count(ram:TypeCode)=1">
1752
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
1753
+ <assert test="count(ram:BasisAmount)=1">
1754
+ Element 'ram:BasisAmount' must occur exactly 1 times.</assert>
1755
+ <assert test="count(ram:CategoryCode)=1">
1756
+ Element 'ram:CategoryCode' must occur exactly 1 times.</assert>
1757
+ </rule>
1758
+ </pattern>
1759
+ <pattern>
1760
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount[@currencyID]">
1761
+ <report test="true()">
1762
+ Attribute @currencyID' marked as not used in the given context.</report>
1763
+ </rule>
1764
+ </pattern>
1765
+ <pattern>
1766
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount[@currencyID]">
1767
+ <report test="true()">
1768
+ Attribute @currencyID' marked as not used in the given context.</report>
1769
+ </rule>
1770
+ </pattern>
1771
+ <pattern>
1772
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode">
1773
+ <let name="codeValue10" value="."/>
1774
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=10]/enumeration[@value=$codeValue10]">
1775
+ Value of 'ram:CategoryCode' is not allowed.</assert>
1776
+ </rule>
1777
+ </pattern>
1778
+ <pattern>
1779
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode">
1780
+ <let name="codeValue28" value="."/>
1781
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=28]/enumeration[@value=$codeValue28]">
1782
+ Value of 'ram:DueDateTypeCode' is not allowed.</assert>
1783
+ </rule>
1784
+ </pattern>
1785
+ <pattern>
1786
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode">
1787
+ <let name="codeValue26" value="."/>
1788
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=26]/enumeration[@value=$codeValue26]">
1789
+ Value of 'ram:ExemptionReasonCode' is not allowed.</assert>
1790
+ </rule>
1791
+ </pattern>
1792
+ <pattern>
1793
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listID]">
1794
+ <report test="true()">
1795
+ Attribute @listID' marked as not used in the given context.</report>
1796
+ </rule>
1797
+ </pattern>
1798
+ <pattern>
1799
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode[@listVersionID]">
1800
+ <report test="true()">
1801
+ Attribute @listVersionID' marked as not used in the given context.</report>
1802
+ </rule>
1803
+ </pattern>
1804
+ <pattern>
1805
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString">
1806
+ <assert test="@format">
1807
+ Attribute '@format' is required in this context.</assert>
1808
+ </rule>
1809
+ </pattern>
1810
+ <pattern>
1811
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate/udt:DateString[@format]">
1812
+ <let name="codeValue27" value="@format"/>
1813
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=27]/enumeration[@value=$codeValue27]">
1814
+ Value of '@format' is not allowed.</assert>
1815
+ </rule>
1816
+ </pattern>
1817
+ <pattern>
1818
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode">
1819
+ <let name="codeValue9" value="."/>
1820
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=9]/enumeration[@value=$codeValue9]">
1821
+ Value of 'ram:TypeCode' is not allowed.</assert>
1822
+ </rule>
1823
+ </pattern>
1824
+ <pattern>
1825
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString">
1826
+ <assert test="@format">
1827
+ Attribute '@format' is required in this context.</assert>
1828
+ </rule>
1829
+ </pattern>
1830
+ <pattern>
1831
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]">
1832
+ <let name="codeValue3" value="@format"/>
1833
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
1834
+ Value of '@format' is not allowed.</assert>
1835
+ </rule>
1836
+ </pattern>
1837
+ <pattern>
1838
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString">
1839
+ <assert test="@format">
1840
+ Attribute '@format' is required in this context.</assert>
1841
+ </rule>
1842
+ </pattern>
1843
+ <pattern>
1844
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]">
1845
+ <let name="codeValue3" value="@format"/>
1846
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
1847
+ Value of '@format' is not allowed.</assert>
1848
+ </rule>
1849
+ </pattern>
1850
+ <pattern>
1851
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:CreditorReferenceID[@schemeID]">
1852
+ <report test="true()">
1853
+ Attribute @schemeID' marked as not used in the given context.</report>
1854
+ </rule>
1855
+ </pattern>
1856
+ <pattern>
1857
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode">
1858
+ <let name="codeValue24" value="."/>
1859
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=24]/enumeration[@value=$codeValue24]">
1860
+ Value of 'ram:InvoiceCurrencyCode' is not allowed.</assert>
1861
+ </rule>
1862
+ </pattern>
1863
+ <pattern>
1864
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument">
1865
+ <assert test="(ram:IssuerAssignedID!=&apos;&apos;)">
1866
+ [BR-55]-Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).</assert>
1867
+ <assert test="count(ram:IssuerAssignedID)=1">
1868
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
1869
+ </rule>
1870
+ </pattern>
1871
+ <pattern>
1872
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:AttachmentBinaryObject">
1873
+ <report test="true()">
1874
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
1875
+ </rule>
1876
+ </pattern>
1877
+ <pattern>
1878
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString">
1879
+ <assert test="@format">
1880
+ Attribute '@format' is required in this context.</assert>
1881
+ </rule>
1882
+ </pattern>
1883
+ <pattern>
1884
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:FormattedIssueDateTime/qdt:DateTimeString[@format]">
1885
+ <let name="codeValue33" value="@format"/>
1886
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=33]/enumeration[@value=$codeValue33]">
1887
+ Value of '@format' is not allowed.</assert>
1888
+ </rule>
1889
+ </pattern>
1890
+ <pattern>
1891
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID[@schemeID]">
1892
+ <report test="true()">
1893
+ Attribute @schemeID' marked as not used in the given context.</report>
1894
+ </rule>
1895
+ </pattern>
1896
+ <pattern>
1897
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:LineID">
1898
+ <report test="true()">
1899
+ Element 'ram:LineID' is marked as not used in the given context.</report>
1900
+ </rule>
1901
+ </pattern>
1902
+ <pattern>
1903
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:Name">
1904
+ <report test="true()">
1905
+ Element 'ram:Name' is marked as not used in the given context.</report>
1906
+ </rule>
1907
+ </pattern>
1908
+ <pattern>
1909
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:ReferenceTypeCode">
1910
+ <report test="true()">
1911
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
1912
+ </rule>
1913
+ </pattern>
1914
+ <pattern>
1915
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:TypeCode">
1916
+ <report test="true()">
1917
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
1918
+ </rule>
1919
+ </pattern>
1920
+ <pattern>
1921
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:URIID">
1922
+ <report test="true()">
1923
+ Element 'ram:URIID' is marked as not used in the given context.</report>
1924
+ </rule>
1925
+ </pattern>
1926
+ <pattern>
1927
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty">
1928
+ <assert test="count(ram:ID)&lt;=1">
1929
+ Element 'ram:ID' may occur at maximum 1 times.</assert>
1930
+ <assert test="count(ram:GlobalID)&lt;=1">
1931
+ Element 'ram:GlobalID' may occur at maximum 1 times.</assert>
1932
+ <assert test="count(ram:Name)=1">
1933
+ Element 'ram:Name' must occur exactly 1 times.</assert>
1934
+ </rule>
1935
+ </pattern>
1936
+ <pattern>
1937
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:DefinedTradeContact">
1938
+ <report test="true()">
1939
+ Element 'ram:DefinedTradeContact' is marked as not used in the given context.</report>
1940
+ </rule>
1941
+ </pattern>
1942
+ <pattern>
1943
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:Description">
1944
+ <report test="true()">
1945
+ Element 'ram:Description' is marked as not used in the given context.</report>
1946
+ </rule>
1947
+ </pattern>
1948
+ <pattern>
1949
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID">
1950
+ <assert test="@schemeID">
1951
+ Attribute '@schemeID' is required in this context.</assert>
1952
+ </rule>
1953
+ </pattern>
1954
+ <pattern>
1955
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:GlobalID[@schemeID]">
1956
+ <let name="codeValue15" value="@schemeID"/>
1957
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=15]/enumeration[@value=$codeValue15]">
1958
+ Value of '@schemeID' is not allowed.</assert>
1959
+ </rule>
1960
+ </pattern>
1961
+ <pattern>
1962
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:ID[@schemeID]">
1963
+ <report test="true()">
1964
+ Attribute @schemeID' marked as not used in the given context.</report>
1965
+ </rule>
1966
+ </pattern>
1967
+ <pattern>
1968
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:PostalTradeAddress">
1969
+ <report test="true()">
1970
+ Element 'ram:PostalTradeAddress' is marked as not used in the given context.</report>
1971
+ </rule>
1972
+ </pattern>
1973
+ <pattern>
1974
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:ID[@schemeID]">
1975
+ <let name="codeValue16" value="@schemeID"/>
1976
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=16]/enumeration[@value=$codeValue16]">
1977
+ Value of '@schemeID' is not allowed.</assert>
1978
+ </rule>
1979
+ </pattern>
1980
+ <pattern>
1981
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedLegalOrganization/ram:TradingBusinessName">
1982
+ <report test="true()">
1983
+ Element 'ram:TradingBusinessName' is marked as not used in the given context.</report>
1984
+ </rule>
1985
+ </pattern>
1986
+ <pattern>
1987
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:SpecifiedTaxRegistration">
1988
+ <report test="true()">
1989
+ Element 'ram:SpecifiedTaxRegistration' is marked as not used in the given context.</report>
1990
+ </rule>
1991
+ </pattern>
1992
+ <pattern>
1993
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:PayeeTradeParty/ram:URIUniversalCommunication">
1994
+ <report test="true()">
1995
+ Element 'ram:URIUniversalCommunication' is marked as not used in the given context.</report>
1996
+ </rule>
1997
+ </pattern>
1998
+ <pattern>
1999
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]">
2000
+ <report test="true()">
2001
+ Attribute @schemeID' marked as not used in the given context.</report>
2002
+ </rule>
2003
+ </pattern>
2004
+ <pattern>
2005
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]">
2006
+ <report test="true()">
2007
+ Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</report>
2008
+ </rule>
2009
+ </pattern>
2010
+ <pattern>
2011
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]">
2012
+ <assert test="count(ram:ChargeIndicator)=1">
2013
+ Element 'ram:ChargeIndicator' must occur exactly 1 times.</assert>
2014
+ <assert test="count(ram:ActualAmount)=1">
2015
+ Element 'ram:ActualAmount' must occur exactly 1 times.</assert>
2016
+ <assert test="count(ram:CategoryTradeTax)=1">
2017
+ Element 'ram:CategoryTradeTax' must occur exactly 1 times.</assert>
2018
+ </rule>
2019
+ </pattern>
2020
+ <pattern>
2021
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]">
2022
+ <report test="true()">
2023
+ Attribute @currencyID' marked as not used in the given context.</report>
2024
+ </rule>
2025
+ </pattern>
2026
+ <pattern>
2027
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]">
2028
+ <report test="true()">
2029
+ Attribute @currencyID' marked as not used in the given context.</report>
2030
+ </rule>
2031
+ </pattern>
2032
+ <pattern>
2033
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax">
2034
+ <assert test="count(ram:TypeCode)=1">
2035
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
2036
+ <assert test="count(ram:CategoryCode)=1">
2037
+ Element 'ram:CategoryCode' must occur exactly 1 times.</assert>
2038
+ </rule>
2039
+ </pattern>
2040
+ <pattern>
2041
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:BasisAmount">
2042
+ <report test="true()">
2043
+ Element 'ram:BasisAmount' is marked as not used in the given context.</report>
2044
+ </rule>
2045
+ </pattern>
2046
+ <pattern>
2047
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount">
2048
+ <report test="true()">
2049
+ Element 'ram:CalculatedAmount' is marked as not used in the given context.</report>
2050
+ </rule>
2051
+ </pattern>
2052
+ <pattern>
2053
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:CategoryCode">
2054
+ <let name="codeValue10" value="."/>
2055
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=10]/enumeration[@value=$codeValue10]">
2056
+ Value of 'ram:CategoryCode' is not allowed.</assert>
2057
+ </rule>
2058
+ </pattern>
2059
+ <pattern>
2060
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode">
2061
+ <report test="true()">
2062
+ Element 'ram:DueDateTypeCode' is marked as not used in the given context.</report>
2063
+ </rule>
2064
+ </pattern>
2065
+ <pattern>
2066
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReason">
2067
+ <report test="true()">
2068
+ Element 'ram:ExemptionReason' is marked as not used in the given context.</report>
2069
+ </rule>
2070
+ </pattern>
2071
+ <pattern>
2072
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode">
2073
+ <report test="true()">
2074
+ Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</report>
2075
+ </rule>
2076
+ </pattern>
2077
+ <pattern>
2078
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TaxPointDate">
2079
+ <report test="true()">
2080
+ Element 'ram:TaxPointDate' is marked as not used in the given context.</report>
2081
+ </rule>
2082
+ </pattern>
2083
+ <pattern>
2084
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax/ram:TypeCode">
2085
+ <let name="codeValue9" value="."/>
2086
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=9]/enumeration[@value=$codeValue9]">
2087
+ Value of 'ram:TypeCode' is not allowed.</assert>
2088
+ </rule>
2089
+ </pattern>
2090
+ <pattern>
2091
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode">
2092
+ <let name="codeValue29" value="."/>
2093
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=29]/enumeration[@value=$codeValue29]">
2094
+ Value of 'ram:ReasonCode' is not allowed.</assert>
2095
+ </rule>
2096
+ </pattern>
2097
+ <pattern>
2098
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]">
2099
+ <assert test="count(ram:ChargeIndicator)=1">
2100
+ Element 'ram:ChargeIndicator' must occur exactly 1 times.</assert>
2101
+ <assert test="count(ram:ActualAmount)=1">
2102
+ Element 'ram:ActualAmount' must occur exactly 1 times.</assert>
2103
+ <assert test="count(ram:CategoryTradeTax)=1">
2104
+ Element 'ram:CategoryTradeTax' must occur exactly 1 times.</assert>
2105
+ </rule>
2106
+ </pattern>
2107
+ <pattern>
2108
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]">
2109
+ <report test="true()">
2110
+ Attribute @currencyID' marked as not used in the given context.</report>
2111
+ </rule>
2112
+ </pattern>
2113
+ <pattern>
2114
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]">
2115
+ <report test="true()">
2116
+ Attribute @currencyID' marked as not used in the given context.</report>
2117
+ </rule>
2118
+ </pattern>
2119
+ <pattern>
2120
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax">
2121
+ <assert test="count(ram:TypeCode)=1">
2122
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
2123
+ <assert test="count(ram:CategoryCode)=1">
2124
+ Element 'ram:CategoryCode' must occur exactly 1 times.</assert>
2125
+ </rule>
2126
+ </pattern>
2127
+ <pattern>
2128
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:BasisAmount">
2129
+ <report test="true()">
2130
+ Element 'ram:BasisAmount' is marked as not used in the given context.</report>
2131
+ </rule>
2132
+ </pattern>
2133
+ <pattern>
2134
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CalculatedAmount">
2135
+ <report test="true()">
2136
+ Element 'ram:CalculatedAmount' is marked as not used in the given context.</report>
2137
+ </rule>
2138
+ </pattern>
2139
+ <pattern>
2140
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:CategoryCode">
2141
+ <let name="codeValue10" value="."/>
2142
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=10]/enumeration[@value=$codeValue10]">
2143
+ Value of 'ram:CategoryCode' is not allowed.</assert>
2144
+ </rule>
2145
+ </pattern>
2146
+ <pattern>
2147
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:DueDateTypeCode">
2148
+ <report test="true()">
2149
+ Element 'ram:DueDateTypeCode' is marked as not used in the given context.</report>
2150
+ </rule>
2151
+ </pattern>
2152
+ <pattern>
2153
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReason">
2154
+ <report test="true()">
2155
+ Element 'ram:ExemptionReason' is marked as not used in the given context.</report>
2156
+ </rule>
2157
+ </pattern>
2158
+ <pattern>
2159
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:ExemptionReasonCode">
2160
+ <report test="true()">
2161
+ Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</report>
2162
+ </rule>
2163
+ </pattern>
2164
+ <pattern>
2165
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TaxPointDate">
2166
+ <report test="true()">
2167
+ Element 'ram:TaxPointDate' is marked as not used in the given context.</report>
2168
+ </rule>
2169
+ </pattern>
2170
+ <pattern>
2171
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax/ram:TypeCode">
2172
+ <let name="codeValue9" value="."/>
2173
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=9]/enumeration[@value=$codeValue9]">
2174
+ Value of 'ram:TypeCode' is not allowed.</assert>
2175
+ </rule>
2176
+ </pattern>
2177
+ <pattern>
2178
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode">
2179
+ <let name="codeValue30" value="."/>
2180
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=30]/enumeration[@value=$codeValue30]">
2181
+ Value of 'ram:ReasonCode' is not allowed.</assert>
2182
+ </rule>
2183
+ </pattern>
2184
+ <pattern>
2185
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms">
2186
+ <assert test="count(ram:Description)&lt;=1">
2187
+ Element 'ram:Description' may occur at maximum 1 times.</assert>
2188
+ <assert test="count(ram:DirectDebitMandateID)&lt;=1">
2189
+ Element 'ram:DirectDebitMandateID' may occur at maximum 1 times.</assert>
2190
+ </rule>
2191
+ </pattern>
2192
+ <pattern>
2193
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DirectDebitMandateID[@schemeID]">
2194
+ <report test="true()">
2195
+ Attribute @schemeID' marked as not used in the given context.</report>
2196
+ </rule>
2197
+ </pattern>
2198
+ <pattern>
2199
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString">
2200
+ <assert test="@format">
2201
+ Attribute '@format' is required in this context.</assert>
2202
+ </rule>
2203
+ </pattern>
2204
+ <pattern>
2205
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradePaymentTerms/ram:DueDateDateTime/udt:DateTimeString[@format]">
2206
+ <let name="codeValue3" value="@format"/>
2207
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
2208
+ Value of '@format' is not allowed.</assert>
2209
+ </rule>
2210
+ </pattern>
2211
+ <pattern>
2212
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation">
2213
+ <assert test="count(ram:LineTotalAmount)=1">
2214
+ Element 'ram:LineTotalAmount' must occur exactly 1 times.</assert>
2215
+ <assert test="count(ram:ChargeTotalAmount)&lt;=1">
2216
+ Element 'ram:ChargeTotalAmount' may occur at maximum 1 times.</assert>
2217
+ <assert test="count(ram:AllowanceTotalAmount)&lt;=1">
2218
+ Element 'ram:AllowanceTotalAmount' may occur at maximum 1 times.</assert>
2219
+ <assert test="count(ram:TaxBasisTotalAmount)=1">
2220
+ Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.</assert>
2221
+ <assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode])&lt;=1">
2222
+ Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.</assert>
2223
+ <assert test="count(ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode])&lt;=1">
2224
+ Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.</assert>
2225
+ <assert test="count(ram:RoundingAmount)&lt;=1">
2226
+ Element 'ram:RoundingAmount' may occur at maximum 1 times.</assert>
2227
+ <assert test="count(ram:GrandTotalAmount)=1">
2228
+ Element 'ram:GrandTotalAmount' must occur exactly 1 times.</assert>
2229
+ <assert test="count(ram:TotalPrepaidAmount)&lt;=1">
2230
+ Element 'ram:TotalPrepaidAmount' may occur at maximum 1 times.</assert>
2231
+ <assert test="count(ram:DuePayableAmount)=1">
2232
+ Element 'ram:DuePayableAmount' must occur exactly 1 times.</assert>
2233
+ </rule>
2234
+ </pattern>
2235
+ <pattern>
2236
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:AllowanceTotalAmount[@currencyID]">
2237
+ <report test="true()">
2238
+ Attribute @currencyID' marked as not used in the given context.</report>
2239
+ </rule>
2240
+ </pattern>
2241
+ <pattern>
2242
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:ChargeTotalAmount[@currencyID]">
2243
+ <report test="true()">
2244
+ Attribute @currencyID' marked as not used in the given context.</report>
2245
+ </rule>
2246
+ </pattern>
2247
+ <pattern>
2248
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:DuePayableAmount[@currencyID]">
2249
+ <report test="true()">
2250
+ Attribute @currencyID' marked as not used in the given context.</report>
2251
+ </rule>
2252
+ </pattern>
2253
+ <pattern>
2254
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:GrandTotalAmount[@currencyID]">
2255
+ <report test="true()">
2256
+ Attribute @currencyID' marked as not used in the given context.</report>
2257
+ </rule>
2258
+ </pattern>
2259
+ <pattern>
2260
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount[@currencyID]">
2261
+ <report test="true()">
2262
+ Attribute @currencyID' marked as not used in the given context.</report>
2263
+ </rule>
2264
+ </pattern>
2265
+ <pattern>
2266
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:RoundingAmount[@currencyID]">
2267
+ <report test="true()">
2268
+ Attribute @currencyID' marked as not used in the given context.</report>
2269
+ </rule>
2270
+ </pattern>
2271
+ <pattern>
2272
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxBasisTotalAmount[@currencyID]">
2273
+ <report test="true()">
2274
+ Attribute @currencyID' marked as not used in the given context.</report>
2275
+ </rule>
2276
+ </pattern>
2277
+ <pattern>
2278
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and not(@currencyID=../../ram:TaxCurrencyCode)]">
2279
+ <report test="true()">
2280
+ Element variant 'ram:TaxTotalAmount[ not(@currencyID=../../ram:InvoiceCurrencyCode) and not(@currencyID=../../ram:TaxCurrencyCode)]' is marked as not used in the given context.</report>
2281
+ </rule>
2282
+ </pattern>
2283
+ <pattern>
2284
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode and @currencyID]">
2285
+ <let name="codeValue31" value="@currencyID"/>
2286
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=31]/enumeration[@value=$codeValue31]">
2287
+ Value of '@currencyID' is not allowed.</assert>
2288
+ </rule>
2289
+ </pattern>
2290
+ <pattern>
2291
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]">
2292
+ <assert test="@currencyID">
2293
+ Attribute '@currencyID' is required in this context.</assert>
2294
+ </rule>
2295
+ </pattern>
2296
+ <pattern>
2297
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode and @currencyID]">
2298
+ <let name="codeValue32" value="@currencyID"/>
2299
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=32]/enumeration[@value=$codeValue32]">
2300
+ Value of '@currencyID' is not allowed.</assert>
2301
+ </rule>
2302
+ </pattern>
2303
+ <pattern>
2304
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]">
2305
+ <assert test="@currencyID">
2306
+ Attribute '@currencyID' is required in this context.</assert>
2307
+ </rule>
2308
+ </pattern>
2309
+ <pattern>
2310
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TotalPrepaidAmount[@currencyID]">
2311
+ <report test="true()">
2312
+ Attribute @currencyID' marked as not used in the given context.</report>
2313
+ </rule>
2314
+ </pattern>
2315
+ <pattern>
2316
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans">
2317
+ <assert test="count(ram:TypeCode)=1">
2318
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
2319
+ <assert test="count(ram:Information)&lt;=1">
2320
+ Element 'ram:Information' may occur at maximum 1 times.</assert>
2321
+ <assert test="count(ram:PayeePartyCreditorFinancialAccount)&lt;=1">
2322
+ Element 'ram:PayeePartyCreditorFinancialAccount' may occur at maximum 1 times.</assert>
2323
+ </rule>
2324
+ </pattern>
2325
+ <pattern>
2326
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard">
2327
+ <assert test="count(ram:ID)=1">
2328
+ Element 'ram:ID' must occur exactly 1 times.</assert>
2329
+ </rule>
2330
+ </pattern>
2331
+ <pattern>
2332
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:ApplicableTradeSettlementFinancialCard/ram:ID[@schemeID]">
2333
+ <report test="true()">
2334
+ Attribute @schemeID' marked as not used in the given context.</report>
2335
+ </rule>
2336
+ </pattern>
2337
+ <pattern>
2338
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:IBANID[@schemeID]">
2339
+ <report test="true()">
2340
+ Attribute @schemeID' marked as not used in the given context.</report>
2341
+ </rule>
2342
+ </pattern>
2343
+ <pattern>
2344
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeePartyCreditorFinancialAccount/ram:ProprietaryID[@schemeID]">
2345
+ <report test="true()">
2346
+ Attribute @schemeID' marked as not used in the given context.</report>
2347
+ </rule>
2348
+ </pattern>
2349
+ <pattern>
2350
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution">
2351
+ <assert test="count(ram:BICID)=1">
2352
+ Element 'ram:BICID' must occur exactly 1 times.</assert>
2353
+ </rule>
2354
+ </pattern>
2355
+ <pattern>
2356
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayeeSpecifiedCreditorFinancialInstitution/ram:BICID[@schemeID]">
2357
+ <report test="true()">
2358
+ Attribute @schemeID' marked as not used in the given context.</report>
2359
+ </rule>
2360
+ </pattern>
2361
+ <pattern>
2362
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount">
2363
+ <assert test="count(ram:IBANID)=1">
2364
+ Element 'ram:IBANID' must occur exactly 1 times.</assert>
2365
+ </rule>
2366
+ </pattern>
2367
+ <pattern>
2368
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:PayerPartyDebtorFinancialAccount/ram:IBANID[@schemeID]">
2369
+ <report test="true()">
2370
+ Attribute @schemeID' marked as not used in the given context.</report>
2371
+ </rule>
2372
+ </pattern>
2373
+ <pattern>
2374
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode">
2375
+ <let name="codeValue25" value="."/>
2376
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=25]/enumeration[@value=$codeValue25]">
2377
+ Value of 'ram:TypeCode' is not allowed.</assert>
2378
+ </rule>
2379
+ </pattern>
2380
+ <pattern>
2381
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode">
2382
+ <let name="codeValue24" value="."/>
2383
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=24]/enumeration[@value=$codeValue24]">
2384
+ Value of 'ram:TaxCurrencyCode' is not allowed.</assert>
2385
+ </rule>
2386
+ </pattern>
2387
+ <pattern>
2388
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem">
2389
+ <assert test="count(ram:AssociatedDocumentLineDocument)=1">
2390
+ Element 'ram:AssociatedDocumentLineDocument' must occur exactly 1 times.</assert>
2391
+ <assert test="count(ram:SpecifiedTradeProduct)=1">
2392
+ Element 'ram:SpecifiedTradeProduct' must occur exactly 1 times.</assert>
2393
+ <assert test="count(ram:SpecifiedLineTradeAgreement)=1">
2394
+ Element 'ram:SpecifiedLineTradeAgreement' must occur exactly 1 times.</assert>
2395
+ <assert test="count(ram:SpecifiedLineTradeDelivery)=1">
2396
+ Element 'ram:SpecifiedLineTradeDelivery' must occur exactly 1 times.</assert>
2397
+ </rule>
2398
+ </pattern>
2399
+ <pattern>
2400
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument">
2401
+ <assert test="count(ram:LineID)=1">
2402
+ Element 'ram:LineID' must occur exactly 1 times.</assert>
2403
+ <assert test="count(ram:IncludedNote)&lt;=1">
2404
+ Element 'ram:IncludedNote' may occur at maximum 1 times.</assert>
2405
+ </rule>
2406
+ </pattern>
2407
+ <pattern>
2408
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote">
2409
+ <assert test="count(ram:Content)=1">
2410
+ Element 'ram:Content' must occur exactly 1 times.</assert>
2411
+ </rule>
2412
+ </pattern>
2413
+ <pattern>
2414
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:IncludedNote/ram:SubjectCode">
2415
+ <report test="true()">
2416
+ Element 'ram:SubjectCode' is marked as not used in the given context.</report>
2417
+ </rule>
2418
+ </pattern>
2419
+ <pattern>
2420
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineID[@schemeID]">
2421
+ <report test="true()">
2422
+ Attribute @schemeID' marked as not used in the given context.</report>
2423
+ </rule>
2424
+ </pattern>
2425
+ <pattern>
2426
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement">
2427
+ <assert test="count(ram:NetPriceProductTradePrice)=1">
2428
+ Element 'ram:NetPriceProductTradePrice' must occur exactly 1 times.</assert>
2429
+ </rule>
2430
+ </pattern>
2431
+ <pattern>
2432
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:AttachmentBinaryObject">
2433
+ <report test="true()">
2434
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
2435
+ </rule>
2436
+ </pattern>
2437
+ <pattern>
2438
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:FormattedIssueDateTime">
2439
+ <report test="true()">
2440
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
2441
+ </rule>
2442
+ </pattern>
2443
+ <pattern>
2444
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID">
2445
+ <report test="true()">
2446
+ Element 'ram:IssuerAssignedID' is marked as not used in the given context.</report>
2447
+ </rule>
2448
+ </pattern>
2449
+ <pattern>
2450
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:LineID[@schemeID]">
2451
+ <report test="true()">
2452
+ Attribute @schemeID' marked as not used in the given context.</report>
2453
+ </rule>
2454
+ </pattern>
2455
+ <pattern>
2456
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:Name">
2457
+ <report test="true()">
2458
+ Element 'ram:Name' is marked as not used in the given context.</report>
2459
+ </rule>
2460
+ </pattern>
2461
+ <pattern>
2462
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:ReferenceTypeCode">
2463
+ <report test="true()">
2464
+ Element 'ram:ReferenceTypeCode' is marked as not used in the given context.</report>
2465
+ </rule>
2466
+ </pattern>
2467
+ <pattern>
2468
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:TypeCode">
2469
+ <report test="true()">
2470
+ Element 'ram:TypeCode' is marked as not used in the given context.</report>
2471
+ </rule>
2472
+ </pattern>
2473
+ <pattern>
2474
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:BuyerOrderReferencedDocument/ram:URIID">
2475
+ <report test="true()">
2476
+ Element 'ram:URIID' is marked as not used in the given context.</report>
2477
+ </rule>
2478
+ </pattern>
2479
+ <pattern>
2480
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice">
2481
+ <assert test="count(ram:ChargeAmount)=1">
2482
+ Element 'ram:ChargeAmount' must occur exactly 1 times.</assert>
2483
+ <assert test="count(ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;])&lt;=1">
2484
+ Element variant 'ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator="false"]' may occur at maximum 1 times.</assert>
2485
+ </rule>
2486
+ </pattern>
2487
+ <pattern>
2488
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]">
2489
+ <report test="true()">
2490
+ Element variant 'ram:AppliedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</report>
2491
+ </rule>
2492
+ </pattern>
2493
+ <pattern>
2494
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]">
2495
+ <assert test="count(ram:ChargeIndicator)=1">
2496
+ Element 'ram:ChargeIndicator' must occur exactly 1 times.</assert>
2497
+ <assert test="count(ram:ActualAmount)=1">
2498
+ Element 'ram:ActualAmount' must occur exactly 1 times.</assert>
2499
+ </rule>
2500
+ </pattern>
2501
+ <pattern>
2502
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]">
2503
+ <report test="true()">
2504
+ Attribute @currencyID' marked as not used in the given context.</report>
2505
+ </rule>
2506
+ </pattern>
2507
+ <pattern>
2508
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount">
2509
+ <report test="true()">
2510
+ Element 'ram:BasisAmount' is marked as not used in the given context.</report>
2511
+ </rule>
2512
+ </pattern>
2513
+ <pattern>
2514
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CalculationPercent">
2515
+ <report test="true()">
2516
+ Element 'ram:CalculationPercent' is marked as not used in the given context.</report>
2517
+ </rule>
2518
+ </pattern>
2519
+ <pattern>
2520
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax">
2521
+ <report test="true()">
2522
+ Element 'ram:CategoryTradeTax' is marked as not used in the given context.</report>
2523
+ </rule>
2524
+ </pattern>
2525
+ <pattern>
2526
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:Reason">
2527
+ <report test="true()">
2528
+ Element 'ram:Reason' is marked as not used in the given context.</report>
2529
+ </rule>
2530
+ </pattern>
2531
+ <pattern>
2532
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:AppliedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode">
2533
+ <report test="true()">
2534
+ Element 'ram:ReasonCode' is marked as not used in the given context.</report>
2535
+ </rule>
2536
+ </pattern>
2537
+ <pattern>
2538
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:BasisQuantity[@unitCode]">
2539
+ <let name="codeValue8" value="@unitCode"/>
2540
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=8]/enumeration[@value=$codeValue8]">
2541
+ Value of '@unitCode' is not allowed.</assert>
2542
+ </rule>
2543
+ </pattern>
2544
+ <pattern>
2545
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:GrossPriceProductTradePrice/ram:ChargeAmount[@currencyID]">
2546
+ <report test="true()">
2547
+ Attribute @currencyID' marked as not used in the given context.</report>
2548
+ </rule>
2549
+ </pattern>
2550
+ <pattern>
2551
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice">
2552
+ <assert test="count(ram:ChargeAmount)=1">
2553
+ Element 'ram:ChargeAmount' must occur exactly 1 times.</assert>
2554
+ </rule>
2555
+ </pattern>
2556
+ <pattern>
2557
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:AppliedTradeAllowanceCharge">
2558
+ <report test="true()">
2559
+ Element 'ram:AppliedTradeAllowanceCharge' is marked as not used in the given context.</report>
2560
+ </rule>
2561
+ </pattern>
2562
+ <pattern>
2563
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:BasisQuantity[@unitCode]">
2564
+ <let name="codeValue8" value="@unitCode"/>
2565
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=8]/enumeration[@value=$codeValue8]">
2566
+ Value of '@unitCode' is not allowed.</assert>
2567
+ </rule>
2568
+ </pattern>
2569
+ <pattern>
2570
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeAgreement/ram:NetPriceProductTradePrice/ram:ChargeAmount[@currencyID]">
2571
+ <report test="true()">
2572
+ Attribute @currencyID' marked as not used in the given context.</report>
2573
+ </rule>
2574
+ </pattern>
2575
+ <pattern>
2576
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery">
2577
+ <assert test="count(ram:BilledQuantity)=1">
2578
+ Element 'ram:BilledQuantity' must occur exactly 1 times.</assert>
2579
+ </rule>
2580
+ </pattern>
2581
+ <pattern>
2582
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity">
2583
+ <assert test="@unitCode">
2584
+ Attribute '@unitCode' is required in this context.</assert>
2585
+ </rule>
2586
+ </pattern>
2587
+ <pattern>
2588
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeDelivery/ram:BilledQuantity[@unitCode]">
2589
+ <let name="codeValue8" value="@unitCode"/>
2590
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=8]/enumeration[@value=$codeValue8]">
2591
+ Value of '@unitCode' is not allowed.</assert>
2592
+ </rule>
2593
+ </pattern>
2594
+ <pattern>
2595
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement">
2596
+ <assert test="count(ram:ApplicableTradeTax)=1">
2597
+ Element 'ram:ApplicableTradeTax' must occur exactly 1 times.</assert>
2598
+ <assert test="count(ram:SpecifiedTradeSettlementLineMonetarySummation)=1">
2599
+ Element 'ram:SpecifiedTradeSettlementLineMonetarySummation' must occur exactly 1 times.</assert>
2600
+ <assert test="count(ram:AdditionalReferencedDocument)&lt;=1">
2601
+ Element 'ram:AdditionalReferencedDocument' may occur at maximum 1 times.</assert>
2602
+ <assert test="count(ram:ReceivableSpecifiedTradeAccountingAccount)&lt;=1">
2603
+ Element 'ram:ReceivableSpecifiedTradeAccountingAccount' may occur at maximum 1 times.</assert>
2604
+ </rule>
2605
+ </pattern>
2606
+ <pattern>
2607
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument">
2608
+ <assert test="count(ram:IssuerAssignedID)=1">
2609
+ Element 'ram:IssuerAssignedID' must occur exactly 1 times.</assert>
2610
+ <assert test="count(ram:TypeCode)=1">
2611
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
2612
+ </rule>
2613
+ </pattern>
2614
+ <pattern>
2615
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:AttachmentBinaryObject">
2616
+ <report test="true()">
2617
+ Element 'ram:AttachmentBinaryObject' is marked as not used in the given context.</report>
2618
+ </rule>
2619
+ </pattern>
2620
+ <pattern>
2621
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:FormattedIssueDateTime">
2622
+ <report test="true()">
2623
+ Element 'ram:FormattedIssueDateTime' is marked as not used in the given context.</report>
2624
+ </rule>
2625
+ </pattern>
2626
+ <pattern>
2627
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:IssuerAssignedID[@schemeID]">
2628
+ <report test="true()">
2629
+ Attribute @schemeID' marked as not used in the given context.</report>
2630
+ </rule>
2631
+ </pattern>
2632
+ <pattern>
2633
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:LineID">
2634
+ <report test="true()">
2635
+ Element 'ram:LineID' is marked as not used in the given context.</report>
2636
+ </rule>
2637
+ </pattern>
2638
+ <pattern>
2639
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:Name">
2640
+ <report test="true()">
2641
+ Element 'ram:Name' is marked as not used in the given context.</report>
2642
+ </rule>
2643
+ </pattern>
2644
+ <pattern>
2645
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:ReferenceTypeCode">
2646
+ <let name="codeValue14" value="."/>
2647
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=14]/enumeration[@value=$codeValue14]">
2648
+ Value of 'ram:ReferenceTypeCode' is not allowed.</assert>
2649
+ </rule>
2650
+ </pattern>
2651
+ <pattern>
2652
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:TypeCode">
2653
+ <let name="codeValue13" value="."/>
2654
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=13]/enumeration[@value=$codeValue13]">
2655
+ Value of 'ram:TypeCode' is not allowed.</assert>
2656
+ </rule>
2657
+ </pattern>
2658
+ <pattern>
2659
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:AdditionalReferencedDocument/ram:URIID">
2660
+ <report test="true()">
2661
+ Element 'ram:URIID' is marked as not used in the given context.</report>
2662
+ </rule>
2663
+ </pattern>
2664
+ <pattern>
2665
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax">
2666
+ <assert test="count(ram:TypeCode)=1">
2667
+ Element 'ram:TypeCode' must occur exactly 1 times.</assert>
2668
+ <assert test="count(ram:CategoryCode)=1">
2669
+ Element 'ram:CategoryCode' must occur exactly 1 times.</assert>
2670
+ </rule>
2671
+ </pattern>
2672
+ <pattern>
2673
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:BasisAmount">
2674
+ <report test="true()">
2675
+ Element 'ram:BasisAmount' is marked as not used in the given context.</report>
2676
+ </rule>
2677
+ </pattern>
2678
+ <pattern>
2679
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount">
2680
+ <report test="true()">
2681
+ Element 'ram:CalculatedAmount' is marked as not used in the given context.</report>
2682
+ </rule>
2683
+ </pattern>
2684
+ <pattern>
2685
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode">
2686
+ <let name="codeValue10" value="."/>
2687
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=10]/enumeration[@value=$codeValue10]">
2688
+ Value of 'ram:CategoryCode' is not allowed.</assert>
2689
+ </rule>
2690
+ </pattern>
2691
+ <pattern>
2692
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:DueDateTypeCode">
2693
+ <report test="true()">
2694
+ Element 'ram:DueDateTypeCode' is marked as not used in the given context.</report>
2695
+ </rule>
2696
+ </pattern>
2697
+ <pattern>
2698
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReason">
2699
+ <report test="true()">
2700
+ Element 'ram:ExemptionReason' is marked as not used in the given context.</report>
2701
+ </rule>
2702
+ </pattern>
2703
+ <pattern>
2704
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode">
2705
+ <report test="true()">
2706
+ Element 'ram:ExemptionReasonCode' is marked as not used in the given context.</report>
2707
+ </rule>
2708
+ </pattern>
2709
+ <pattern>
2710
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TaxPointDate">
2711
+ <report test="true()">
2712
+ Element 'ram:TaxPointDate' is marked as not used in the given context.</report>
2713
+ </rule>
2714
+ </pattern>
2715
+ <pattern>
2716
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:TypeCode">
2717
+ <let name="codeValue9" value="."/>
2718
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=9]/enumeration[@value=$codeValue9]">
2719
+ Value of 'ram:TypeCode' is not allowed.</assert>
2720
+ </rule>
2721
+ </pattern>
2722
+ <pattern>
2723
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString">
2724
+ <assert test="@format">
2725
+ Attribute '@format' is required in this context.</assert>
2726
+ </rule>
2727
+ </pattern>
2728
+ <pattern>
2729
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString[@format]">
2730
+ <let name="codeValue3" value="@format"/>
2731
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
2732
+ Value of '@format' is not allowed.</assert>
2733
+ </rule>
2734
+ </pattern>
2735
+ <pattern>
2736
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString">
2737
+ <assert test="@format">
2738
+ Attribute '@format' is required in this context.</assert>
2739
+ </rule>
2740
+ </pattern>
2741
+ <pattern>
2742
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString[@format]">
2743
+ <let name="codeValue3" value="@format"/>
2744
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=3]/enumeration[@value=$codeValue3]">
2745
+ Value of '@format' is not allowed.</assert>
2746
+ </rule>
2747
+ </pattern>
2748
+ <pattern>
2749
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:ReceivableSpecifiedTradeAccountingAccount/ram:ID[@schemeID]">
2750
+ <report test="true()">
2751
+ Attribute @schemeID' marked as not used in the given context.</report>
2752
+ </rule>
2753
+ </pattern>
2754
+ <pattern>
2755
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator=&quot;false&quot;) and not(ram:ChargeIndicator/udt:Indicator=&quot;true&quot;)]">
2756
+ <report test="true()">
2757
+ Element variant 'ram:SpecifiedTradeAllowanceCharge[ not(ram:ChargeIndicator/udt:Indicator="false") and not(ram:ChargeIndicator/udt:Indicator="true")]' is marked as not used in the given context.</report>
2758
+ </rule>
2759
+ </pattern>
2760
+ <pattern>
2761
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]">
2762
+ <assert test="count(ram:ChargeIndicator)=1">
2763
+ Element 'ram:ChargeIndicator' must occur exactly 1 times.</assert>
2764
+ <assert test="count(ram:ActualAmount)=1">
2765
+ Element 'ram:ActualAmount' must occur exactly 1 times.</assert>
2766
+ </rule>
2767
+ </pattern>
2768
+ <pattern>
2769
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ActualAmount[@currencyID]">
2770
+ <report test="true()">
2771
+ Attribute @currencyID' marked as not used in the given context.</report>
2772
+ </rule>
2773
+ </pattern>
2774
+ <pattern>
2775
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:BasisAmount[@currencyID]">
2776
+ <report test="true()">
2777
+ Attribute @currencyID' marked as not used in the given context.</report>
2778
+ </rule>
2779
+ </pattern>
2780
+ <pattern>
2781
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:CategoryTradeTax">
2782
+ <report test="true()">
2783
+ Element 'ram:CategoryTradeTax' is marked as not used in the given context.</report>
2784
+ </rule>
2785
+ </pattern>
2786
+ <pattern>
2787
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;false&quot;]/ram:ReasonCode">
2788
+ <let name="codeValue11" value="."/>
2789
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=11]/enumeration[@value=$codeValue11]">
2790
+ Value of 'ram:ReasonCode' is not allowed.</assert>
2791
+ </rule>
2792
+ </pattern>
2793
+ <pattern>
2794
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]">
2795
+ <assert test="count(ram:ChargeIndicator)=1">
2796
+ Element 'ram:ChargeIndicator' must occur exactly 1 times.</assert>
2797
+ <assert test="count(ram:ActualAmount)=1">
2798
+ Element 'ram:ActualAmount' must occur exactly 1 times.</assert>
2799
+ </rule>
2800
+ </pattern>
2801
+ <pattern>
2802
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ActualAmount[@currencyID]">
2803
+ <report test="true()">
2804
+ Attribute @currencyID' marked as not used in the given context.</report>
2805
+ </rule>
2806
+ </pattern>
2807
+ <pattern>
2808
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:BasisAmount[@currencyID]">
2809
+ <report test="true()">
2810
+ Attribute @currencyID' marked as not used in the given context.</report>
2811
+ </rule>
2812
+ </pattern>
2813
+ <pattern>
2814
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:CategoryTradeTax">
2815
+ <report test="true()">
2816
+ Element 'ram:CategoryTradeTax' is marked as not used in the given context.</report>
2817
+ </rule>
2818
+ </pattern>
2819
+ <pattern>
2820
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=&quot;true&quot;]/ram:ReasonCode">
2821
+ <let name="codeValue12" value="."/>
2822
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=12]/enumeration[@value=$codeValue12]">
2823
+ Value of 'ram:ReasonCode' is not allowed.</assert>
2824
+ </rule>
2825
+ </pattern>
2826
+ <pattern>
2827
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation">
2828
+ <assert test="count(ram:LineTotalAmount)=1">
2829
+ Element 'ram:LineTotalAmount' must occur exactly 1 times.</assert>
2830
+ </rule>
2831
+ </pattern>
2832
+ <pattern>
2833
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount[@currencyID]">
2834
+ <report test="true()">
2835
+ Attribute @currencyID' marked as not used in the given context.</report>
2836
+ </rule>
2837
+ </pattern>
2838
+ <pattern>
2839
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct">
2840
+ <assert test="count(ram:Name)=1">
2841
+ Element 'ram:Name' must occur exactly 1 times.</assert>
2842
+ <assert test="count(ram:Description)&lt;=1">
2843
+ Element 'ram:Description' may occur at maximum 1 times.</assert>
2844
+ </rule>
2845
+ </pattern>
2846
+ <pattern>
2847
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:ApplicableProductCharacteristic">
2848
+ <assert test="count(ram:Description)=1">
2849
+ Element 'ram:Description' must occur exactly 1 times.</assert>
2850
+ <assert test="count(ram:Value)=1">
2851
+ Element 'ram:Value' must occur exactly 1 times.</assert>
2852
+ </rule>
2853
+ </pattern>
2854
+ <pattern>
2855
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:BuyerAssignedID[@schemeID]">
2856
+ <report test="true()">
2857
+ Attribute @schemeID' marked as not used in the given context.</report>
2858
+ </rule>
2859
+ </pattern>
2860
+ <pattern>
2861
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode">
2862
+ <assert test="@listID">
2863
+ Attribute '@listID' is required in this context.</assert>
2864
+ </rule>
2865
+ </pattern>
2866
+ <pattern>
2867
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:DesignatedProductClassification/ram:ClassCode[@listID]">
2868
+ <let name="codeValue6" value="@listID"/>
2869
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=6]/enumeration[@value=$codeValue6]">
2870
+ Value of '@listID' is not allowed.</assert>
2871
+ </rule>
2872
+ </pattern>
2873
+ <pattern>
2874
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID">
2875
+ <assert test="@schemeID">
2876
+ Attribute '@schemeID' is required in this context.</assert>
2877
+ </rule>
2878
+ </pattern>
2879
+ <pattern>
2880
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:GlobalID[@schemeID]">
2881
+ <let name="codeValue5" value="@schemeID"/>
2882
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=5]/enumeration[@value=$codeValue5]">
2883
+ Value of '@schemeID' is not allowed.</assert>
2884
+ </rule>
2885
+ </pattern>
2886
+ <pattern>
2887
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry">
2888
+ <assert test="count(ram:ID)=1">
2889
+ Element 'ram:ID' must occur exactly 1 times.</assert>
2890
+ </rule>
2891
+ </pattern>
2892
+ <pattern>
2893
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:OriginTradeCountry/ram:ID">
2894
+ <let name="codeValue7" value="."/>
2895
+ <assert test="document(&apos;Factur-X_1.0.07_EN16931_codedb.xml&apos;)//cl[@id=7]/enumeration[@value=$codeValue7]">
2896
+ Value of 'ram:ID' is not allowed.</assert>
2897
+ </rule>
2898
+ </pattern>
2899
+ <pattern>
2900
+ <rule context="/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedTradeProduct/ram:SellerAssignedID[@schemeID]">
2901
+ <report test="true()">
2902
+ Attribute @schemeID' marked as not used in the given context.</report>
2903
+ </rule>
2904
+ </pattern>
2905
+ </schema>