<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">

   <xs:element name="invoiceData" type="invoiceDataXml"/>

   <xs:complexType name="discountXml">

      <xs:sequence>

         <xs:element minOccurs="0" name="discountAmount" type="xs:decimal"/>

         <xs:element minOccurs="0" name="discountTaxCategory" type="taxCategoryCode"/>

         <xs:element minOccurs="0" name="discountTaxRate" type="xs:decimal"/>

         <xs:element minOccurs="0" name="discountReason" type="xs:string"/>

      </xs:sequence>

   </xs:complexType>

   <xs:complexType name="invoiceDataXml">

      <xs:sequence>

         <xs:element minOccurs="0" name="invoiceNumber" type="xs:string"/>

         <xs:element minOccurs="0" name="invoiceDate" type="xs:string"/>

         <xs:element minOccurs="0" name="documentTypeCode" type="documentTypeCode"/>

         <xs:element minOccurs="0" name="currency" type="currencyCode"/>

         <xs:element minOccurs="0" name="dueDate" type="xs:string"/>

         <xs:element minOccurs="0" name="leitwegId" type="xs:string"/>

         <xs:element minOccurs="0" name="purchaseOrderReference" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryNoteReference" type="xs:string"/>

         <xs:element minOccurs="0" name="paymentTerms" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryDate" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerName" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerVatId" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerTaxNumber" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerElectronicAddress" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerStreet" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerPostalCode" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerCity" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerCountryCode" type="countryCode"/>

         <xs:element minOccurs="0" name="sellerContactName" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerContactPhone" type="xs:string"/>

         <xs:element minOccurs="0" name="sellerContactEmail" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerName" type="xs:string"/>

         <xs:element minOccurs="0" name="customerId" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerVATId" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerElectronicAddress" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerStreet" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerPostalCode" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerCity" type="xs:string"/>

         <xs:element minOccurs="0" name="buyerCountryCode" type="countryCode"/>

         <xs:element minOccurs="0" name="buyerContactEmail" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryName" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryStreet" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryPostalCode" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryCity" type="xs:string"/>

         <xs:element minOccurs="0" name="deliveryCountryCode" type="countryCode"/>

         <xs:element minOccurs="0" name="discounts">

            <xs:complexType>

               <xs:sequence>

                  <xs:element maxOccurs="unbounded" minOccurs="0" name="discount" type="discountXml"/>

               </xs:sequence>

            </xs:complexType>

         </xs:element>

         <xs:element minOccurs="0" name="surcharges">

            <xs:complexType>

               <xs:sequence>

                  <xs:element maxOccurs="unbounded" minOccurs="0" name="surcharge" type="surchargeXml"/>

               </xs:sequence>

            </xs:complexType>

         </xs:element>

         <xs:element minOccurs="0" name="paymentMethod" type="paymentMethodCode"/>

         <xs:element minOccurs="0" name="iban" type="xs:string"/>

         <xs:element minOccurs="0" name="bic" type="xs:string"/>

         <xs:element minOccurs="0" name="accountHolder" type="xs:string"/>

         <xs:element minOccurs="0" name="lineItems">

            <xs:complexType>

               <xs:sequence>

                  <xs:element maxOccurs="unbounded" minOccurs="0" name="lineItem" type="lineItemXml"/>

               </xs:sequence>

            </xs:complexType>

         </xs:element>

      </xs:sequence>

   </xs:complexType>

   <xs:complexType name="surchargeXml">

      <xs:sequence>

         <xs:element minOccurs="0" name="surchargeAmount" type="xs:decimal"/>

         <xs:element minOccurs="0" name="surchargeTaxCategory" type="taxCategoryCode"/>

         <xs:element minOccurs="0" name="surchargeTaxRate" type="xs:decimal"/>

         <xs:element minOccurs="0" name="surchargeReason" type="xs:string"/>

      </xs:sequence>

   </xs:complexType>

   <xs:complexType name="lineItemXml">

      <xs:sequence>

         <xs:element minOccurs="0" name="positionNumber" type="xs:string"/>

         <xs:element minOccurs="0" name="quantity" type="xs:decimal"/>

         <xs:element minOccurs="0" name="unit" type="unitCode"/>

         <xs:element minOccurs="0" name="discountAmount" type="xs:decimal"/>

         <xs:element minOccurs="0" name="discountReason" type="xs:string"/>

         <xs:element minOccurs="0" name="surchargeAmount" type="xs:decimal"/>

         <xs:element minOccurs="0" name="surchargeReason" type="xs:string"/>

         <xs:element minOccurs="0" name="netAmountPerUnit" type="xs:decimal"/>

         <xs:element minOccurs="0" name="taxCategory" type="taxCategoryCode"/>

         <xs:element minOccurs="0" name="taxRate" type="xs:decimal"/>

         <xs:element minOccurs="0" name="name" type="xs:string"/>

         <xs:element minOccurs="0" name="description" type="xs:string"/>

      </xs:sequence>

   </xs:complexType>

   <xs:simpleType name="taxCategoryCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="S"/>

         <xs:enumeration value="Z"/>

         <xs:enumeration value="E"/>

         <xs:enumeration value="AE"/>

         <xs:enumeration value="K"/>

         <xs:enumeration value="G"/>

         <xs:enumeration value="O"/>

         <xs:enumeration value="L"/>

         <xs:enumeration value="M"/>

         <xs:enumeration value="AA"/>

         <xs:enumeration value="H"/>

      </xs:restriction>

   </xs:simpleType>

   <xs:simpleType name="documentTypeCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="380"/>

         <xs:enumeration value="381"/>

         <xs:enumeration value="383"/>

         <xs:enumeration value="384"/>

         <xs:enumeration value="386"/>

         <xs:enumeration value="389"/>

         <xs:enumeration value="326"/>

      </xs:restriction>

   </xs:simpleType>

   <xs:simpleType name="currencyCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="AED"/>

         <xs:enumeration value="AUD"/>

         <xs:enumeration value="BGN"/>

         <xs:enumeration value="BRL"/>

         <xs:enumeration value="CAD"/>

         <xs:enumeration value="CHF"/>

         <xs:enumeration value="CNY"/>

         <xs:enumeration value="CZK"/>

         <xs:enumeration value="DKK"/>

         <xs:enumeration value="EUR"/>

         <xs:enumeration value="GBP"/>

         <xs:enumeration value="HKD"/>

         <xs:enumeration value="HUF"/>

         <xs:enumeration value="IDR"/>

         <xs:enumeration value="ILS"/>

         <xs:enumeration value="INR"/>

         <xs:enumeration value="ISK"/>

         <xs:enumeration value="JPY"/>

         <xs:enumeration value="KRW"/>

         <xs:enumeration value="MXN"/>

         <xs:enumeration value="MYR"/>

         <xs:enumeration value="NOK"/>

         <xs:enumeration value="NZD"/>

         <xs:enumeration value="PHP"/>

         <xs:enumeration value="PLN"/>

         <xs:enumeration value="RON"/>

         <xs:enumeration value="SEK"/>

         <xs:enumeration value="SGD"/>

         <xs:enumeration value="THB"/>

         <xs:enumeration value="TRY"/>

         <xs:enumeration value="USD"/>

         <xs:enumeration value="ZAR"/>

      </xs:restriction>

   </xs:simpleType>

   <xs:simpleType name="countryCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="AD"/>

         <xs:enumeration value="AE"/>

         <xs:enumeration value="AF"/>

         <xs:enumeration value="AG"/>

         <xs:enumeration value="AI"/>

         <xs:enumeration value="AL"/>

         <xs:enumeration value="AM"/>

         <xs:enumeration value="AO"/>

         <xs:enumeration value="AQ"/>

         <xs:enumeration value="AR"/>

         <xs:enumeration value="AS"/>

         <xs:enumeration value="AT"/>

         <xs:enumeration value="AU"/>

         <xs:enumeration value="AW"/>

         <xs:enumeration value="AX"/>

         <xs:enumeration value="AZ"/>

         <xs:enumeration value="BA"/>

         <xs:enumeration value="BB"/>

         <xs:enumeration value="BD"/>

         <xs:enumeration value="BE"/>

         <xs:enumeration value="BF"/>

         <xs:enumeration value="BG"/>

         <xs:enumeration value="BH"/>

         <xs:enumeration value="BI"/>

         <xs:enumeration value="BJ"/>

         <xs:enumeration value="BL"/>

         <xs:enumeration value="BM"/>

         <xs:enumeration value="BN"/>

         <xs:enumeration value="BO"/>

         <xs:enumeration value="BQ"/>

         <xs:enumeration value="BR"/>

         <xs:enumeration value="BS"/>

         <xs:enumeration value="BT"/>

         <xs:enumeration value="BV"/>

         <xs:enumeration value="BW"/>

         <xs:enumeration value="BY"/>

         <xs:enumeration value="BZ"/>

         <xs:enumeration value="CA"/>

         <xs:enumeration value="CC"/>

         <xs:enumeration value="CD"/>

         <xs:enumeration value="CF"/>

         <xs:enumeration value="CG"/>

         <xs:enumeration value="CH"/>

         <xs:enumeration value="CI"/>

         <xs:enumeration value="CK"/>

         <xs:enumeration value="CL"/>

         <xs:enumeration value="CM"/>

         <xs:enumeration value="CN"/>

         <xs:enumeration value="CO"/>

         <xs:enumeration value="CR"/>

         <xs:enumeration value="CU"/>

         <xs:enumeration value="CV"/>

         <xs:enumeration value="CW"/>

         <xs:enumeration value="CX"/>

         <xs:enumeration value="CY"/>

         <xs:enumeration value="CZ"/>

         <xs:enumeration value="DE"/>

         <xs:enumeration value="DJ"/>

         <xs:enumeration value="DK"/>

         <xs:enumeration value="DM"/>

         <xs:enumeration value="DO"/>

         <xs:enumeration value="DZ"/>

         <xs:enumeration value="EC"/>

         <xs:enumeration value="EE"/>

         <xs:enumeration value="EG"/>

         <xs:enumeration value="EH"/>

         <xs:enumeration value="ER"/>

         <xs:enumeration value="ES"/>

         <xs:enumeration value="ET"/>

         <xs:enumeration value="FI"/>

         <xs:enumeration value="FJ"/>

         <xs:enumeration value="FK"/>

         <xs:enumeration value="FM"/>

         <xs:enumeration value="FO"/>

         <xs:enumeration value="FR"/>

         <xs:enumeration value="GA"/>

         <xs:enumeration value="GB"/>

         <xs:enumeration value="GD"/>

         <xs:enumeration value="GE"/>

         <xs:enumeration value="GF"/>

         <xs:enumeration value="GG"/>

         <xs:enumeration value="GH"/>

         <xs:enumeration value="GI"/>

         <xs:enumeration value="GL"/>

         <xs:enumeration value="GM"/>

         <xs:enumeration value="GN"/>

         <xs:enumeration value="GP"/>

         <xs:enumeration value="GQ"/>

         <xs:enumeration value="GR"/>

         <xs:enumeration value="GS"/>

         <xs:enumeration value="GT"/>

         <xs:enumeration value="GU"/>

         <xs:enumeration value="GW"/>

         <xs:enumeration value="GY"/>

         <xs:enumeration value="HK"/>

         <xs:enumeration value="HM"/>

         <xs:enumeration value="HN"/>

         <xs:enumeration value="HR"/>

         <xs:enumeration value="HT"/>

         <xs:enumeration value="HU"/>

         <xs:enumeration value="ID"/>

         <xs:enumeration value="IE"/>

         <xs:enumeration value="IL"/>

         <xs:enumeration value="IM"/>

         <xs:enumeration value="IN"/>

         <xs:enumeration value="IO"/>

         <xs:enumeration value="IQ"/>

         <xs:enumeration value="IR"/>

         <xs:enumeration value="IS"/>

         <xs:enumeration value="IT"/>

         <xs:enumeration value="JE"/>

         <xs:enumeration value="JM"/>

         <xs:enumeration value="JO"/>

         <xs:enumeration value="JP"/>

         <xs:enumeration value="KE"/>

         <xs:enumeration value="KG"/>

         <xs:enumeration value="KH"/>

         <xs:enumeration value="KI"/>

         <xs:enumeration value="KM"/>

         <xs:enumeration value="KN"/>

         <xs:enumeration value="KP"/>

         <xs:enumeration value="KR"/>

         <xs:enumeration value="KW"/>

         <xs:enumeration value="KY"/>

         <xs:enumeration value="KZ"/>

         <xs:enumeration value="LA"/>

         <xs:enumeration value="LB"/>

         <xs:enumeration value="LC"/>

         <xs:enumeration value="LI"/>

         <xs:enumeration value="LK"/>

         <xs:enumeration value="LR"/>

         <xs:enumeration value="LS"/>

         <xs:enumeration value="LT"/>

         <xs:enumeration value="LU"/>

         <xs:enumeration value="LV"/>

         <xs:enumeration value="LY"/>

         <xs:enumeration value="MA"/>

         <xs:enumeration value="MC"/>

         <xs:enumeration value="MD"/>

         <xs:enumeration value="ME"/>

         <xs:enumeration value="MF"/>

         <xs:enumeration value="MG"/>

         <xs:enumeration value="MH"/>

         <xs:enumeration value="MK"/>

         <xs:enumeration value="ML"/>

         <xs:enumeration value="MM"/>

         <xs:enumeration value="MN"/>

         <xs:enumeration value="MO"/>

         <xs:enumeration value="MP"/>

         <xs:enumeration value="MQ"/>

         <xs:enumeration value="MR"/>

         <xs:enumeration value="MS"/>

         <xs:enumeration value="MT"/>

         <xs:enumeration value="MU"/>

         <xs:enumeration value="MV"/>

         <xs:enumeration value="MW"/>

         <xs:enumeration value="MX"/>

         <xs:enumeration value="MY"/>

         <xs:enumeration value="MZ"/>

         <xs:enumeration value="NA"/>

         <xs:enumeration value="NC"/>

         <xs:enumeration value="NE"/>

         <xs:enumeration value="NF"/>

         <xs:enumeration value="NG"/>

         <xs:enumeration value="NI"/>

         <xs:enumeration value="NL"/>

         <xs:enumeration value="NO"/>

         <xs:enumeration value="NP"/>

         <xs:enumeration value="NR"/>

         <xs:enumeration value="NU"/>

         <xs:enumeration value="NZ"/>

         <xs:enumeration value="OM"/>

         <xs:enumeration value="PA"/>

         <xs:enumeration value="PE"/>

         <xs:enumeration value="PF"/>

         <xs:enumeration value="PG"/>

         <xs:enumeration value="PH"/>

         <xs:enumeration value="PK"/>

         <xs:enumeration value="PL"/>

         <xs:enumeration value="PM"/>

         <xs:enumeration value="PN"/>

         <xs:enumeration value="PR"/>

         <xs:enumeration value="PS"/>

         <xs:enumeration value="PT"/>

         <xs:enumeration value="PW"/>

         <xs:enumeration value="PY"/>

         <xs:enumeration value="QA"/>

         <xs:enumeration value="RE"/>

         <xs:enumeration value="RO"/>

         <xs:enumeration value="RS"/>

         <xs:enumeration value="RU"/>

         <xs:enumeration value="RW"/>

         <xs:enumeration value="SA"/>

         <xs:enumeration value="SB"/>

         <xs:enumeration value="SC"/>

         <xs:enumeration value="SD"/>

         <xs:enumeration value="SE"/>

         <xs:enumeration value="SG"/>

         <xs:enumeration value="SH"/>

         <xs:enumeration value="SI"/>

         <xs:enumeration value="SJ"/>

         <xs:enumeration value="SK"/>

         <xs:enumeration value="SL"/>

         <xs:enumeration value="SM"/>

         <xs:enumeration value="SN"/>

         <xs:enumeration value="SO"/>

         <xs:enumeration value="SR"/>

         <xs:enumeration value="SS"/>

         <xs:enumeration value="ST"/>

         <xs:enumeration value="SV"/>

         <xs:enumeration value="SX"/>

         <xs:enumeration value="SY"/>

         <xs:enumeration value="SZ"/>

         <xs:enumeration value="TC"/>

         <xs:enumeration value="TD"/>

         <xs:enumeration value="TF"/>

         <xs:enumeration value="TG"/>

         <xs:enumeration value="TH"/>

         <xs:enumeration value="TJ"/>

         <xs:enumeration value="TK"/>

         <xs:enumeration value="TL"/>

         <xs:enumeration value="TM"/>

         <xs:enumeration value="TN"/>

         <xs:enumeration value="TO"/>

         <xs:enumeration value="TR"/>

         <xs:enumeration value="TT"/>

         <xs:enumeration value="TV"/>

         <xs:enumeration value="TW"/>

         <xs:enumeration value="TZ"/>

         <xs:enumeration value="UA"/>

         <xs:enumeration value="UG"/>

         <xs:enumeration value="UM"/>

         <xs:enumeration value="US"/>

         <xs:enumeration value="UY"/>

         <xs:enumeration value="UZ"/>

         <xs:enumeration value="VA"/>

         <xs:enumeration value="VC"/>

         <xs:enumeration value="VE"/>

         <xs:enumeration value="VG"/>

         <xs:enumeration value="VI"/>

         <xs:enumeration value="VN"/>

         <xs:enumeration value="VU"/>

         <xs:enumeration value="WF"/>

         <xs:enumeration value="WS"/>

         <xs:enumeration value="YE"/>

         <xs:enumeration value="YT"/>

         <xs:enumeration value="ZA"/>

         <xs:enumeration value="ZM"/>

         <xs:enumeration value="ZW"/>

      </xs:restriction>

   </xs:simpleType>

   <xs:simpleType name="paymentMethodCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="10"/>

         <xs:enumeration value="20"/>

         <xs:enumeration value="30"/>

         <xs:enumeration value="31"/>

         <xs:enumeration value="42"/>

         <xs:enumeration value="48"/>

         <xs:enumeration value="49"/>

         <xs:enumeration value="58"/>

         <xs:enumeration value="59"/>

      </xs:restriction>

   </xs:simpleType>

   <xs:simpleType name="unitCode">

      <xs:restriction base="xs:string">

         <xs:enumeration value="C62"/>

         <xs:enumeration value="H87"/>

         <xs:enumeration value="PCE"/>

         <xs:enumeration value="HUR"/>

         <xs:enumeration value="KGM"/>

         <xs:enumeration value="LTR"/>

         <xs:enumeration value="MTR"/>

         <xs:enumeration value="MTK"/>

         <xs:enumeration value="MTQ"/>

         <xs:enumeration value="DAY"/>

      </xs:restriction>

   </xs:simpleType>

</xs:schema>
