Project

General

Profile

Docura XML INVOICE » Docura_XML_INVOICE.xsd

Roman Startsev, 2026-09-02 13:13

 
1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3
           elementFormDefault="qualified"
4
           attributeFormDefault="unqualified">
5

    
6
	<xs:annotation>
7
		<xs:documentation>
8
			Docura XML — INVOICE. Sent by the supplier to the buyer.
9
			UTF-8, one invoice per file. Dates CCYY-MM-DD, decimal separator ".".
10
			See wiki page Docura_XML_INVOICE for field descriptions.
11
		</xs:documentation>
12
	</xs:annotation>
13

    
14
	<!-- ============ Common types ============ -->
15

    
16
	<xs:simpleType name="ILNType">
17
		<xs:restriction base="xs:string">
18
			<xs:pattern value="[0-9]{13}"/>
19
		</xs:restriction>
20
	</xs:simpleType>
21

    
22
	<xs:simpleType name="EANType">
23
		<xs:restriction base="xs:string">
24
			<xs:pattern value="[0-9]{13,14}"/>
25
		</xs:restriction>
26
	</xs:simpleType>
27

    
28
	<xs:simpleType name="CountryType">
29
		<xs:restriction base="xs:string">
30
			<xs:pattern value="[A-Z]{2}"/>
31
		</xs:restriction>
32
	</xs:simpleType>
33

    
34
	<xs:simpleType name="DocumentFunctionCodeType">
35
		<xs:restriction base="xs:string">
36
			<xs:enumeration value="9"/>
37
			<xs:enumeration value="4"/>
38
			<xs:enumeration value="3"/>
39
		</xs:restriction>
40
	</xs:simpleType>
41

    
42
	<xs:simpleType name="TaxCategoryCodeType">
43
		<xs:restriction base="xs:string">
44
			<xs:enumeration value="S"/>
45
			<xs:enumeration value="Z"/>
46
			<xs:enumeration value="E"/>
47
			<xs:enumeration value="O"/>
48
		</xs:restriction>
49
	</xs:simpleType>
50

    
51
	<xs:complexType name="BankInfoType">
52
		<xs:sequence>
53
			<xs:element name="BankName" type="xs:string" minOccurs="0"/>
54
			<xs:element name="Swift" type="xs:string" minOccurs="0"/>
55
			<xs:element name="BankAccNumber" type="xs:string" minOccurs="0"/>
56
		</xs:sequence>
57
	</xs:complexType>
58

    
59
	<!-- Full party (Buyer, Seller) -->
60
	<xs:complexType name="PartyType">
61
		<xs:sequence>
62
			<xs:element name="ILN" type="ILNType"/>
63
			<xs:element name="TaxID" type="xs:string" minOccurs="0"/>
64
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
65
			<xs:element name="StreetAndNumber" type="xs:string" minOccurs="0"/>
66
			<xs:element name="CityName" type="xs:string" minOccurs="0"/>
67
			<xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
68
			<xs:element name="Country" type="CountryType" minOccurs="0"/>
69
			<xs:element name="BankInfo" type="BankInfoType" minOccurs="0"/>
70
		</xs:sequence>
71
	</xs:complexType>
72

    
73
	<!-- ============ Root ============ -->
74

    
75
	<xs:element name="Document-Invoice">
76
		<xs:complexType>
77
			<xs:sequence>
78

    
79
				<xs:element name="Invoice-Header">
80
					<xs:complexType>
81
						<xs:sequence>
82
							<xs:element name="InvoiceNumber" type="xs:string"/>
83
							<xs:element name="InvoiceDate" type="xs:date"/>
84
							<xs:element name="InvoiceCurrency" type="xs:string"/>
85
							<xs:element name="InvoicePaymentDueDate" type="xs:date" minOccurs="0"/>
86
							<xs:element name="DocumentFunctionCode" type="DocumentFunctionCodeType"/>
87
							<xs:element name="Remarks" type="xs:string" minOccurs="0"/>
88
							<xs:element name="Order" minOccurs="0">
89
								<xs:complexType>
90
									<xs:sequence>
91
										<xs:element name="BuyerOrderNumber" type="xs:string" minOccurs="0"/>
92
									</xs:sequence>
93
								</xs:complexType>
94
							</xs:element>
95
							<xs:element name="Reference" minOccurs="0">
96
								<xs:complexType>
97
									<xs:sequence>
98
										<xs:element name="ContractNumber" type="xs:string" minOccurs="0"/>
99
									</xs:sequence>
100
								</xs:complexType>
101
							</xs:element>
102
							<xs:element name="Delivery" minOccurs="0">
103
								<xs:complexType>
104
									<xs:sequence>
105
										<xs:element name="DeliveryLocationNumber" type="ILNType" minOccurs="0"/>
106
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
107
										<xs:element name="StreetAndNumber" type="xs:string" minOccurs="0"/>
108
										<xs:element name="CityName" type="xs:string" minOccurs="0"/>
109
										<xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
110
										<xs:element name="Country" type="CountryType" minOccurs="0"/>
111
										<xs:element name="DeliveryDate" type="xs:date" minOccurs="0"/>
112
									</xs:sequence>
113
								</xs:complexType>
114
							</xs:element>
115
						</xs:sequence>
116
					</xs:complexType>
117
				</xs:element>
118

    
119
				<xs:element name="Document-Parties">
120
					<xs:complexType>
121
						<xs:sequence>
122
							<xs:element name="Sender">
123
								<xs:complexType>
124
									<xs:sequence>
125
										<xs:element name="ILN" type="ILNType"/>
126
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
127
									</xs:sequence>
128
								</xs:complexType>
129
							</xs:element>
130
							<xs:element name="Receiver">
131
								<xs:complexType>
132
									<xs:sequence>
133
										<xs:element name="ILN" type="ILNType"/>
134
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
135
									</xs:sequence>
136
								</xs:complexType>
137
							</xs:element>
138
							<xs:element name="Creator" minOccurs="0">
139
								<xs:complexType>
140
									<xs:sequence>
141
										<xs:element name="Name" type="xs:string" minOccurs="0"/>
142
										<xs:element name="TelephoneNumber" type="xs:string" minOccurs="0"/>
143
										<xs:element name="E-mail" type="xs:string" minOccurs="0"/>
144
									</xs:sequence>
145
								</xs:complexType>
146
							</xs:element>
147
						</xs:sequence>
148
					</xs:complexType>
149
				</xs:element>
150

    
151
				<xs:element name="Invoice-Parties">
152
					<xs:complexType>
153
						<xs:sequence>
154
							<xs:element name="Buyer" type="PartyType"/>
155
							<xs:element name="Seller" type="PartyType"/>
156
						</xs:sequence>
157
					</xs:complexType>
158
				</xs:element>
159

    
160
				<xs:element name="Invoice-Lines">
161
					<xs:complexType>
162
						<xs:sequence>
163
							<xs:element name="Line" maxOccurs="unbounded">
164
								<xs:complexType>
165
									<xs:sequence>
166
										<xs:element name="Line-Item">
167
											<xs:complexType>
168
												<xs:sequence>
169
													<xs:element name="LineNumber" type="xs:string"/>
170
													<xs:element name="EAN" type="EANType" minOccurs="0"/>
171
													<xs:element name="SupplierItemCode" type="xs:string" minOccurs="0"/>
172
													<xs:element name="ItemDescription" type="xs:string" minOccurs="0"/>
173
													<xs:element name="ItemType" type="xs:string" minOccurs="0"/>
174
													<xs:element name="InvoiceQuantity" type="xs:decimal"/>
175
													<xs:element name="InvoiceUnitNetPrice" type="xs:decimal" minOccurs="0"/>
176
													<xs:element name="UnitOfMeasure" type="xs:string" minOccurs="0"/>
177
													<xs:element name="TaxRate" type="xs:decimal" minOccurs="0"/>
178
													<xs:element name="TaxCategoryCode" type="TaxCategoryCodeType" minOccurs="0"/>
179
													<xs:element name="TaxAmount" type="xs:decimal" minOccurs="0"/>
180
													<xs:element name="NetAmount" type="xs:decimal" minOccurs="0"/>
181
													<xs:element name="GrossAmount" type="xs:decimal" minOccurs="0"/>
182
													<xs:element name="ExpirationDate" type="xs:date" minOccurs="0"/>
183
												</xs:sequence>
184
											</xs:complexType>
185
										</xs:element>
186
									</xs:sequence>
187
								</xs:complexType>
188
							</xs:element>
189
						</xs:sequence>
190
					</xs:complexType>
191
				</xs:element>
192

    
193
				<xs:element name="Invoice-Summary">
194
					<xs:complexType>
195
						<xs:sequence>
196
							<xs:element name="TotalLines" type="xs:nonNegativeInteger"/>
197
							<xs:element name="TotalNetAmount" type="xs:decimal"/>
198
							<xs:element name="TotalTaxAmount" type="xs:decimal" minOccurs="0"/>
199
							<xs:element name="TotalGrossAmount" type="xs:decimal" minOccurs="0"/>
200
							<xs:element name="Tax-Summary" minOccurs="0">
201
								<xs:complexType>
202
									<xs:sequence>
203
										<xs:element name="Tax-Summary-Line" maxOccurs="unbounded">
204
											<xs:complexType>
205
												<xs:sequence>
206
													<xs:element name="TaxRate" type="xs:decimal"/>
207
													<xs:element name="TaxCategoryCode" type="TaxCategoryCodeType"/>
208
													<xs:element name="TaxAmount" type="xs:decimal"/>
209
													<xs:element name="TaxableAmount" type="xs:decimal"/>
210
												</xs:sequence>
211
											</xs:complexType>
212
										</xs:element>
213
									</xs:sequence>
214
								</xs:complexType>
215
							</xs:element>
216
						</xs:sequence>
217
					</xs:complexType>
218
				</xs:element>
219

    
220
			</xs:sequence>
221
		</xs:complexType>
222
	</xs:element>
223

    
224
</xs:schema>
(2-2/2)