<?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/DistributorListQueryResponse"
    xmlns="http://www.egis-online.de/EBC/schema/DistributorListQueryResponse"
    elementFormDefault="qualified">
    <xs:element name="DistributorListQueryResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionHeader"/>
                <xs:element ref="DistributorList" 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="DistributorList">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorDescription" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorDescription">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DistributorName"/>
                <xs:element ref="ProprietaryDistributorIdentifier"/>
                <xs:element ref="Address"/>
                <xs:element ref="Homepage"/>
				<xs:element ref="Options"/>
				<xs:element ref="DistributorCustomerNumber"/>
				<xs:element ref="TaxId"/>
				<xs:element ref="ManagingDirector" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="BankAccounts"/>
				<xs:element ref="PaymentTerms"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="DistributorName" type="xs:string" />
    <xs:element name="ProprietaryDistributorIdentifier" type="xs:string" />
    <xs:element name="Homepage" type="xs:string" nillable="true" />
    <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:element ref="Locality" minOccurs="0"/>
				<xs:element ref="County" minOccurs="0"/>
            </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="Locality" type="xs:string"/>
	<xs:element name="County" type="xs:string"/>
	<xs:element name="Options">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="PriceAndAvailabilityQuery"/>
				<xs:element ref="DeviatingDeliveryAddress"/>
				<xs:element ref="ProprietaryPartnerNumberAsAccountNumber"/>
				<xs:element ref="PartnerPurchaseOrderNumber"/>
				<xs:element ref="RequestedDeliveryDate" minOccurs="2" maxOccurs="2"/>
				<xs:element ref="AdditionalTextLength" minOccurs="2" maxOccurs="2"/>
				<xs:element ref="CompleteShipment"/>
				<xs:element ref="Fulfillment"/>
				<xs:element ref="DispatchNotifications"/>
				<xs:element ref="Tracking"/>
				<xs:element ref="SerialNumbers"/>
				<xs:element ref="Invoices"/>
				<xs:element ref="RMA"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="PriceAndAvailabilityQuery" type="xs:boolean"/>
	<xs:element name="DeviatingDeliveryAddress" type="xs:boolean"/>
	<xs:element name="ProprietaryPartnerNumberAsAccountNumber" type="xs:boolean"/>
	<xs:element name="PartnerPurchaseOrderNumber" type="xs:boolean"/>
	<xs:simpleType name="locationAttrType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Header"/>
			<xs:enumeration value="LineItem"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="RequestedDeliveryDate">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:boolean">
					<xs:attribute name="location" type="locationAttrType"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="AdditionalTextLength" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:positiveInteger">
					<xs:attribute name="location" type="locationAttrType"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="CompleteShipment" type="xs:boolean"/>
	<xs:element name="Fulfillment" type="xs:boolean"/>
	<xs:element name="DispatchNotifications" type="xs:boolean"/>
	<xs:element name="Tracking" type="xs:boolean"/>
	<xs:element name="SerialNumbers" type="xs:boolean"/>
	<xs:element name="Invoices" type="xs:boolean"/>
	<xs:element name="RMA" type="xs:boolean"/>
	<xs:element name="DistributorCustomerNumber" type="xs:string" nillable="true"/>
	<xs:element name="TaxId" type="xs:string" nillable="true"/>
	<xs:element name="ManagingDirector" type="xs:string"/>
	<xs:element name="BankAccounts" nillable="true">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="BankAccount" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="BankAccount">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="BankName"/>
				<xs:element ref="BankCode"/>
				<xs:element ref="AccountNumber"/>
				<xs:element ref="IBAN"/>
				<xs:element ref="BIC"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="BankName" type="xs:string" nillable="true"/>
	<xs:element name="BankCode" type="xs:string" nillable="true"/>
	<xs:element name="AccountNumber" type="xs:string" nillable="true"/>
	<xs:element name="IBAN" type="xs:string" nillable="true"/>
	<xs:element name="BIC" type="xs:string" nillable="true"/>
	<xs:element name="PaymentTerms" nillable="true">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="PaymentTerm" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="PaymentTerm">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="PaymentMethod"/>
				<xs:element ref="PaymentTarget"/>
				<xs:element ref="DiscountPercent"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="PaymentMethod" type="xs:string"/>
	<xs:element name="PaymentTarget" type="xs:integer"/>
	<xs:element name="DiscountPercent" type="xs:decimal" nillable="true"/>
</xs:schema>
