<?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/ShoppingCartOptimisationRequest" xmlns="http://www.egis-online.de/EBC/schema/ShoppingCartOptimisationRequest" elementFormDefault="qualified">

    <xs:element name="ShoppingCartOptimisationRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="TransactionHeader"/>
                <xs:element ref="Request" />
            </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: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="Request">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShoppingCartIdentification"/>
                <xs:element ref="ShoppingCartActionIdentification" minOccurs="0"/>
                <xs:element ref="TargetShoppingCart" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ShoppingCartIdentification">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShoppingCartIdentifier"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="TargetShoppingCart">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShoppingCartIdentifier"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ShoppingCartIdentifier">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShoppingCartName"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ShoppingCartName">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:maxLength value="35"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>

    <xs:element name="ShoppingCartActionIdentification">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="ShoppingCartCreateAction" minOccurs="0"/>
                <xs:element ref="ShoppingCartUpdateAction" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element default="false" name="ShoppingCartCreateAction" type="xs:boolean"/>
    <xs:element default="true" name="ShoppingCartUpdateAction" type="xs:boolean"/>

</xs:schema>
