<?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/CustomerQuery"
    xmlns="http://www.egis-online.de/EBC/schema/CustomerQuery"
    elementFormDefault="qualified">

	<xs:element name="CustomerQuery">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="TransactionHeader"/>
				<xs:element ref="Query"/>
			</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="ERP"/>
                <xs:element ref="Login"/>
                <xs:element ref="Password"/>
                <xs:element ref="User" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="VersionId" type="xs:decimal"/>
    <xs:element name="GenerationDateTime" type="xs:dateTime"/>
    <xs:element name="ERP" type="xs:string"/>
    <xs:element name="Login">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="40"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="Password">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="40"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
    <xs:element name="User" type="xs:string"/>
	<xs:element name="Query">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="SortBy" minOccurs="0"/>
				<xs:element ref="Search" minOccurs="0"/>
				<xs:element ref="Pagination" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="sortByType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="CustomerNo"/>
			<xs:enumeration value="Name1"/>
			<xs:enumeration value="Name2"/>
			<xs:enumeration value="Name3"/>
			<xs:enumeration value="Street"/>
			<xs:enumeration value="PostalCode"/>
			<xs:enumeration value="City"/>
			<xs:enumeration value="Phone"/>
			<xs:enumeration value="EMail"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="SortBy">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="sortByType">
					<xs:attribute name="order">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="asc"/>
								<xs:enumeration value="desc"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="Search" type="xs:string"/>
	<xs:element name="Pagination">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Page"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Page" type="xs:positiveInteger"/>
</xs:schema>