<?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/PriceAndAvailabilityQueryResponse"
    xmlns="http://www.egis-online.de/EBC/schema/PriceAndAvailabilityQueryResponse"
    elementFormDefault="qualified">
    <xs:element name="PriceAndAvailabilityQueryResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionHeader"/>
                <xs:element ref="PriceAndAvailability" 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" default="No description available."/>
    <xs:element name="PriceAndAvailability">
        <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="ProductReference"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProductReference">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryProductIdentifier"/>
                <xs:element ref="ManufacturerProductIdentifier"/>
                <xs:element ref="GlobalProductIdentifier"/>
                <xs:element ref="ProprietaryProductDescription"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryProductIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProprietaryProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProprietaryProductNumber" type="xs:string"/>
    <xs:element name="ManufacturerProductIdentifier" nillable="true">
        <xs:complexType>
            <xs:sequence>
				<xs:element ref="ManufacturerName"/>
                <xs:element ref="ManufacturerProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
	<xs:element name="ManufacturerName">
        <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="GlobalProductIdentifier" nillable="true">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="GlobalProductNumber"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="GlobalProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="ProprietaryProductDescription" type="xs:string"/>
    <xs:element name="Body">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="DistributorProductItem" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorProductItem">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorDescription"/>
                <xs:element ref="ProductIdentification"/>
                <xs:element ref="Quantity"/>
                <xs:element ref="UnitPrice"/>
                <xs:element ref="EOL"/>
                <xs:element ref="ProductTypes" minOccurs="0"/>
				<xs:element ref="DeliveryInformation"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <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" type="xs:string"/>
    <xs:element name="ProprietaryDistributorIdentifier" type="xs:string"/>
    <xs:element name="ProductIdentification">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorProductNumber"/>
                <xs:element ref="ProductDescription"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorProductNumber" type="xs:string" nillable="true"/>
    <xs:element name="ProductDescription" type="xs:string" nillable="true"/>
    <xs:element name="Quantity">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="AvailableQuantity"/>
                <xs:element ref="DateTime"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="AvailableQuantity" type="xs:int"/>
    <xs:element name="UnitPrice">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="PurchasePrice"/>
                <xs:element ref="RecommendSellingPrice"/>
                <xs:element ref="NetSalesPrice"/>
                <xs:element ref="RetailPrice"/>
                <xs:element ref="CurrencyCode"/>
                <xs:element ref="DateTime"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="PurchasePrice" type="xs:decimal" nillable="true" default="0"/>
    <xs:element name="RecommendSellingPrice" type="xs:decimal" nillable="true"/>
    <xs:element name="NetSalesPrice" type="xs:decimal" nillable="true"/>
    <xs:element name="RetailPrice" type="xs:decimal" nillable="true"/>
    <xs:element name="CurrencyCode" type="xs:string" nillable="true"/>
    <xs:element name="DateTime" type="xs:dateTime" nillable="true"/>
    <xs:element name="EOL" type="xs:string"/>
    <xs:element name="ProductTypes">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ProductType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProductType">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="code" type="xs:string"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
	<xs:element name="DeliveryInformation">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="StandardDeliveryTime"/>
				<xs:element ref="CutOffTime" minOccurs="6" maxOccurs="6"/>
				<xs:element ref="DistributorDeliveryStatus"/>
				<!-- the following 4 elements (ExpectedDeliveryDate, ExpectedGoodsReceipt, DeliveryDateText, StatusText) are used in DE only -->
				<xs:element ref="ExpectedDeliveryDate" minOccurs="0"/>
				<xs:element ref="ExpectedGoodsReceipt" minOccurs="0"/>
				<xs:element ref="DeliveryDateText" minOccurs="0"/>
				<xs:element ref="StatusText" minOccurs="0"/>
				<!-- up to here -->
				<xs:element ref="FreightCharges"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="StandardDeliveryTime" type="xs:positiveInteger" nillable="true"/>
	<xs:element name="CutOffTime" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="day">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="Monday"/>
								<xs:enumeration value="Tuesday"/>
								<xs:enumeration value="Wednesday"/>
								<xs:enumeration value="Thursday"/>
								<xs:enumeration value="Friday"/>
								<xs:enumeration value="Saturday"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="DistributorDeliveryStatus" type="xs:string" nillable="true"/>
	<xs:element name="ExpectedDeliveryDate" type="xs:date" nillable="true"/>
	<xs:element name="ExpectedGoodsReceipt" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:date">
					<xs:attribute name="quantity" type="xs:positiveInteger"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="DeliveryDateText" type="xs:string" nillable="true"/>
	<xs:element name="StatusText" type="xs:string" nillable="true"/>
	<xs:element name="FreightCharges" type="xs:decimal" nillable="true"/>
</xs:schema>