﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="document" nillable="true" type="XMLDocument" />
  <xs:complexType name="XMLDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="variable" type="XMLVariable" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentdate" type="xs:dateTime" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="documentno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="version" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="costsum" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="discountsum" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="pricesum" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="taxsum" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="pricegross" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="documenttype" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="addresscustomer" type="XMLAddress" />
      <xs:element minOccurs="0" maxOccurs="1" name="addressdelivery" type="XMLAddress" />
      <xs:element minOccurs="0" maxOccurs="1" name="addressinvoice" type="XMLAddress" />
      <xs:element minOccurs="0" maxOccurs="1" name="addresssupplier" type="XMLAddress" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="position" type="XMLPositions" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="paymentcondition" type="XMLPaymentCondition" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="cost" type="XMLCost" />
    </xs:sequence>
    <xs:attribute name="type" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="XMLVariable">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="value" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="isuserfield" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLAddress">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="firstname" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="lastname" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="company" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="street" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="zipcode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="city" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="salutation" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="phone1" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="phone2" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="fax" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="email" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="website" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="vattaxno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="addresscontact" type="XMLAddressContact" />
      <xs:element minOccurs="0" maxOccurs="1" name="Id" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLAddressContact">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="address" type="XMLAddress" />
    </xs:sequence>
    <xs:attribute name="type" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="XMLPositions">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="variable" type="XMLVariable" />
      <xs:element minOccurs="0" maxOccurs="1" name="positionno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="commission" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="amount" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="articleno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="gtin" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="unit" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="len" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="wid" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="thk" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="cost" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="price" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="tax" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="pricegross" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="deliverycondition" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="deliverydate" type="xs:dateTime" />
      <xs:element minOccurs="0" maxOccurs="1" name="orderdocumentno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="article" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="orderno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="orderdate" type="xs:dateTime" />
      <xs:element minOccurs="0" maxOccurs="unbounded" name="discount" type="XMLDiscount" />
      <xs:element minOccurs="0" maxOccurs="1" name="costs" type="XMLCost" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLDiscount">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="valuecurrency" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="valuepercent" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="sequence" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="uselastsum" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLCost">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="value" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLPaymentCondition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="conditionno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="valuetopay" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="payduedate" type="xs:dateTime" />
      <xs:element minOccurs="0" maxOccurs="1" name="bank" type="XMLBank" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XMLBank">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="bankno" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="iban" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="swiftcode" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>