<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.egis-online.de/EBC/schema/DeliveryNoteQueryResponse"
    xmlns="http://www.egis-online.de/EBC/schema/DeliveryNoteQueryResponse"
    elementFormDefault="qualified">
    <xs:element name="DeliveryNoteQueryResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionHeader"/>
                <xs:element ref="DeliveryNote" maxOccurs="unbounded" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="TransactionHeader">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="VersionId"/>
                <xs:element ref="GenerationDateTime"/>
                <xs:element ref="Exception" maxOccurs="1" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="VersionId" type="xs:decimal"/>
    <xs:element name="GenerationDateTime" type="xs:dateTime"/>
    <xs:element name="Exception">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ErrorNumber"/>
                <xs:element ref="ErrorMessage"/>
                <xs:element ref="ErrorDescription"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ErrorNumber" type="xs:int"/>
    <xs:element name="ErrorMessage" type="xs:string"/>
    <xs:element name="ErrorDescription" type="xs:string" nillable="true"/>
    <xs:element name="DeliveryNote">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Header"/>
                <xs:element ref="Body"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Header">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DeliveryNoteReference"/>
                <xs:element ref="DocumentReference"/>
                <xs:element ref="ShipTo"/>
                <xs:element ref="ShipmentInformation"/>
				<xs:element ref="DistributorDescription"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DocumentDate">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DeliveryNoteDate"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DeliveryNoteDate">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorDeliveryNoteDate"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorDeliveryNoteDate" type="xs:date"/>
    <xs:element name="ShipTo">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Address"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Address">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Name1"/>
                <xs:element ref="Name2"/>
                <xs:element ref="Name3"/>
                <xs:element ref="Street"/>
                <xs:element ref="City"/>
                <xs:element ref="PostalCode"/>
                <xs:element ref="GlobalCountryCode"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Name1" type="xs:string"/>
    <xs:element name="Name2" type="xs:string" nillable="true"/>
    <xs:element name="Name3" type="xs:string" nillable="true"/>
    <xs:element name="Street" type="xs:string"/>
    <xs:element name="City" type="xs:string"/>
    <xs:element name="PostalCode" type="xs:string"/>
    <xs:element name="GlobalCountryCode" type="xs:string"/>
    <xs:element name="Body">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="LineItem"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="LineItem">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryLineNumber"/>
                <xs:element ref="DocumentReference" minOccurs="0"/>
                <xs:element ref="ProductIdentification"/>
                <xs:element ref="Quantity"/>
                <xs:element ref="UnitOfMeasure"/>
                <xs:element ref="SerialNumbers" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryLineNumber" type="xs:positiveInteger"/>
    <xs:element name="ProductIdentification">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryProductNumber" minOccurs="0"/>
                <xs:element ref="ProprietaryProductDescription" minOccurs="0"/>
                <xs:element ref="DistributorProductNumber"/>
                <xs:element ref="DistributorProductDescription"/>
                <xs:element ref="ManufacturerName" minOccurs="0"/>
                <xs:element ref="ManufacturerProductNumber"/>
                <xs:element ref="GlobalProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="ProprietaryProductDescription" type="xs:string" nillable="true"/>
    <xs:element name="DistributorProductNumber" type="xs:string"/>
    <xs:element name="DistributorProductDescription" type="xs:string" nillable="true"/>
    <xs:element name="ManufacturerName" nillable="true">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="id" type="xs:positiveInteger"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ManufacturerProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="GlobalProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="Quantity">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DeliveredQuantity"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DeliveredQuantity" type="xs:integer"/>
    <xs:element name="UnitOfMeasure" type="xs:string" nillable="true"/>
    <xs:element name="DocumentReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PurchaseOrderReference" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DeliveryNoteReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorDeliveryNoteIdentifier"/>
                <xs:element ref="ProprietaryDeliveryNoteIdentifier"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorDeliveryNoteIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorDeliveryNoteNumber"/>
                <xs:element ref="DistributorDeliveryNoteDate"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorDeliveryNoteNumber" nillable="true">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="20"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="ProprietaryDeliveryNoteIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryDeliveryNoteNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryDeliveryNoteNumber" type="xs:string"/>
    <xs:element name="PurchaseOrderReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryPurchaseOrderIdentifier"/>
                <xs:element ref="PartnerPurchaseOrderIdentifier" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="PurchaseOrderLineItemReference" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryPurchaseOrderIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryPurchaseOrderNumber"/>
                <xs:element ref="ProprietaryPurchaseOrderDate"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryPurchaseOrderNumber" nillable="true">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="10"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="ProprietaryPurchaseOrderDate" type="xs:date" nillable="true"/>
    <xs:element name="PartnerPurchaseOrderIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PartnerPurchaseOrderNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PartnerPurchaseOrderNumber" type="xs:string" nillable="true"/>
    <xs:element name="PurchaseOrderLineItemReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryPurchaseOrderLineNumber"/>
				<xs:element ref="ProductIdentification"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryPurchaseOrderLineNumber" type="xs:positiveInteger" nillable="true"/>
    <xs:element name="ShipmentInformation">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Shipper"/>
                <xs:element ref="PackageQuantity"/>
                <xs:element ref="Package"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Shipper">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShipperName"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ShipperName" type="xs:string" nillable="true"/>
    <xs:element name="PackageQuantity" type="xs:nonNegativeInteger" nillable="true"/>
    <xs:element name="Package">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PackageNumber" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PackageNumber">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="trackingUrl" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
	</xs:element>
    <xs:element name="SerialNumbers">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="SerialNumber" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="SerialNumber" type="xs:string"/>
	<xs:element name="DistributorDescription">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorName"/>
                <xs:element ref="ProprietaryDistributorIdentifier"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorName">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="35"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="ProprietaryDistributorIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryDistributorNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryDistributorNumber">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="10"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
</xs:schema>
