﻿<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:epagestypes="urn://epages.de/WebService/EpagesTypes/2005/01"
           xmlns:shoptypes="urn://epages.de/WebService/ShopTypes/2011/01"
           xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
           xmlns:tns="urn://epages.de/WebService/OrderDocumentTypes/2011/08"
           targetNamespace="urn://epages.de/WebService/OrderDocumentTypes/2011/08">
  <xs:import namespace="urn://epages.de/WebService/EpagesTypes/2005/01"
             schemaLocation="EpagesTypes.xsd" />
  <xs:import namespace="urn://epages.de/WebService/ShopTypes/2011/08"
             schemaLocation="ShopTypes3.xsd" />
  <!-- GetInfo -->
  <xs:complexType name="TGetInfo_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getInfo() call.
        the path will be always returned.
        the error element will be returned in case of error.
        all other elements will be returned if no error has occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Path"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>order document object path</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Alias"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>order document alias</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>path to order document's class</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Order"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>order document's order (object path to order)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Issued"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>document issued or not</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IssueDate"
                  type="xs:dateTime"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>order document's issue date</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address"
                  type="shoptypes:TAddressNamed"
                  minOccurs="0" />
      <xs:element name="ShopAddress"
                  type="shoptypes:TAddressNamed"
                  minOccurs="0" />
      <xs:element name="LineItemContainer"
                  type="tns:TLineItemContainerOut"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the products, payments, shipping etc. of this order document (see orderdocumenttypes:TLineItemContainerOut)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- Exists -->
  <xs:complexType name="TExists_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of an exists() call.
        the path will be always returned.
        the error element will be returned in case of error.
        the exists flag will be returned if no error has occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Path"
                  type="xs:string" />
      <xs:element name="exists"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating whether or not this order document exists</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- Delete -->
  <xs:complexType name="TDelete_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a delete() call.
        the path will be always returned.
        the error element will be returned in case of error.
        the deleted flag will be returned if no error has occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Path"
                  type="xs:string" />
      <xs:element name="deleted"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating whether or not this order document has been deleted</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- Create -->
  <xs:complexType name="TCreate_Input">
    <xs:annotation>
      <xs:documentation>
        input arguments of a create() call.
        a set of order document specific attributes that will be used to create an order document.
        the alias element is optional, a new alias will be created if omitted.
        all others are optional.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Alias"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>order alias</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Order"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>order document's order (object path to order)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>order document's class (object path to order document class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Issued"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>indicates whether or not the order document has been issued</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="IssueDate"
                  type="xs:dateTime"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>order document's issue date. will be ignored if Issued indicates false. if Issued indicates true and IssueDate is omitted the current date will be used.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TCreate_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a create() call.
        Alias, Class, and Order will be always returned.
        the error element will be returned in case of error.
        the created flag and path will be returned if no error has occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Alias"
                  type="xs:string" />
      <xs:element name="Class"
                  type="xs:string" />
      <xs:element name="Order"
                  type="xs:string" />
      <xs:element name="Path"
                  type="xs:string"
                  minOccurs="0" />
      <xs:element name="created"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating that this order document was created</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TUpdate_Input">
    <xs:annotation>
      <xs:documentation>
        input arguments of a single update() order call.
        a set of optional order specific attributes that will be updated.
        the path element is mandatory.
        all others are optional.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Path"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>order document object path</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemContainer"
                  type="tns:TLineItemContainerIn"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>update order document (see ordertypes:TLineItemContainerIn)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BillingAddress"
                  type="shoptypes:TAddressNamed"
                  minOccurs="0" />
      <xs:element name="ShippingAddress"
                  type="shoptypes:TAddressNamed"
                  minOccurs="0" />
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of to update additional attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TUpdate_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a update() order call.
        the path will be always returned.
        the error element will be returned in case of error.
        the updated flag will be returned if no error has occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Path"
                  type="xs:string" />
      <xs:element name="updated"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating that this order was updated</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TGetInvoices_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getInvoices() call.
        The Order will be always returned.
        The error element will be returned in case of error.
        The Invoices element will be returned if no error occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Order"
                  type="xs:string" />
      <xs:element name="Invoices"
                  type="tns:ListOfPaths"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>paths of all invoices of the order</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TGetPackingSlips_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getPackingSlips() call.
        The Order will be always returned.
        The error element will be returned in case of error.
        The PackingSlips element will be returned if no error occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Order"
                  type="xs:string" />
      <xs:element name="PackingSlips"
                  type="tns:ListOfPaths"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>paths of all packing slips of the order</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TGetCreditNotes_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getCreditNotes() call.
        The Order will be always returned.
        The error element will be returned in case of error.
        The CreditNotes element will be returned if no error occured.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Order"
                  type="xs:string" />
      <xs:element name="CreditNotes"
                  type="tns:ListOfPaths"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>paths of all credit notes of the order</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Error"
                  type="epagestypes:TError"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>error object (see epagestypes:TError)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ListOfPaths">
    <xs:annotation>
      <xs:documentation>
        A list of object paths.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="xs:string[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <!-- LineItemContainer -->
  <xs:complexType name="TLineItemContainerOut">
    <xs:annotation>
      <xs:documentation>
        return object of an line item container.
        contains information about products, payments, shippings etc. of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="LocaleID"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the locale id of the container (e.g. 'en_US')</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LanguageCode"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the language of the container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CurrencyID"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the currency of the container (e.g. 'EUR' or 'USD')</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxArea"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax area of the container (path to tax area object)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAreaName"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the name of the tax area of the container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxModel"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax model of the container (net or gross)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GrandTotal"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TotalBeforeTax"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the container (without tax)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TotalTax"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total tax of the container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProductLineItems"
                  type="tns:TListOfProductLineItemsOut">
        <xs:annotation>
          <xs:documentation>the container's product line items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxLineItems"
                  type="tns:TListOfTaxLineItems">
        <xs:annotation>
          <xs:documentation>the container's tax line items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PaymentLineItem"
                  type="tns:TPaymentLineItem"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ShippingLineItem"
                  type="tns:TShippingLineItem"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CouponLineItems"
                  type="tns:TListOfCouponLineItemsOut"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's coupon line items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ShippingOptionLineItems"
                  type="tns:TListOfShippingOptionLineItemsOut"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's shipping option line items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GlobalValueDiscountLineItems"
                  type="tns:TListOfGlobalValueDiscountLineItemsOut"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's basket discount line items</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

<xs:complexType name="TLineItemContainerIn">
    <xs:annotation>
      <xs:documentation>
        input object of an line item container.
        contains information about products, payments, shippings etc. of this order.
        tax area, product line items, payment and shipping are mandatory.
        all others are optional.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="LocaleID"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the locale id of the container (e.g. 'en_US')</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LanguageCode"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the language of the container</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CurrencyID"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the currency of the container (e.g. 'EUR' or 'USD')</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxArea"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax area of the container (path to tax area object)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxModel"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the tax model of the container (net or gross)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ProductLineItems"
                  type="tns:TListOfProductLineItemsIn">
        <xs:annotation>
          <xs:documentation>the container's product line items</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PaymentMethod"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's payment method (object path to payment method)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ShippingMethod"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>the container's shipping method (object path to shipping method)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>


  <xs:complexType name="TListOfProductLineItemsOut">
    <xs:annotation>
      <xs:documentation>
        list of product line items.
        see ordertypes:TProductLineItemOut
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TProductLineItemOut[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <!-- ProductLineItem -->
  <xs:complexType name="TProductLineItemIn">
    <xs:annotation>
      <xs:documentation>
        input object of an product line item.
        contains information about a single product of this order.
        product path is mandatory, the quantity is optional (1 is default).
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the product object path of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>quantity of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="TListOfTaxLineItems">
    <xs:annotation>
      <xs:documentation>
        list of tax line items.
        see ordertypes:TTaxLineItem
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TTaxLineItem[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TListOfCouponLineItemsOut">
    <xs:annotation>
      <xs:documentation>
        list of coupon line items.
        see ordertypes:TCouponLineItem
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TCouponLineItem[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TListOfShippingOptionLineItemsOut">
    <xs:annotation>
      <xs:documentation>
        list of shipping option line items.
        see ordertypes:TShippingOptionLineItem
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TShippingOptionLineItem[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TListOfGlobalValueDiscountLineItemsOut">
    <xs:annotation>
      <xs:documentation>
        list of basket dicount line items.
        see ordertypes:TGlobalValueDiscountLineItem
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TGlobalValueDiscountLineItem[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <!-- ProductLineItem -->
  <xs:complexType name="TProductLineItemOut">
    <xs:annotation>
      <xs:documentation>
        return object of an product line item.
        contains information about a single product of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the product object path of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the product line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the price a single product</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the product line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- ShippingLineItem -->
  <xs:complexType name="TShippingLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an shipping line item.
        contains information about a the shipping of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ShippingMethod"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the shipping method of the shipping line item (object path to shipping method)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the shipping line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the shipping line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- PaymentLineItem -->
  <xs:complexType name="TPaymentLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an payment line item.
        contains information about a the payment of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PaymentMethod"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the payment method of the payment line item (object path to payment method)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PaymentType"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the payment type of the payment line item (object path to payment type)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the payment line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the payment line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- TaxLineItem -->
  <xs:complexType name="TTaxLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an tax line item.
        contains information about a single tax class of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxArea"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax area of the tax line item (object path to tax area)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxMatrix"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax matrix of the tax line item (object path to tax matrix)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the tax line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the tax line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- CouponLineItem -->
  <xs:complexType name="TCouponLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an coupon line item.
        contains information about a the coupon of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the coupon line item (couponcode short)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the coupon line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CouponCode"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the CouponCode (path) of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- ShippingOptionLineItem -->
  <xs:complexType name="TShippingOptionLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an shipping option line item.
        contains information about a the shipping option of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the shipping option line item (couponcode short)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the shipping option line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the coupon line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Choice"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the Choice (path) of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ChoiceName"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the Choice (name) of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Comment"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the Comment of the shipping option line item</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- GlobalValueDiscountLineItem -->
  <xs:complexType name="TGlobalValueDiscountLineItem">
    <xs:annotation>
      <xs:documentation>
        return object of an basket dicount line item.
        contains information about a the basket discount of this order.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Class"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the class of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Name"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>name of the basket discountn line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SKU"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>sku of the basket discount line item (couponcode short)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxClass"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the tax class of the basket discount line item (object path to tax class)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>quantity of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BasePrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the baseprice of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LineItemPrice"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the total price of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>possible discount of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxRate"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax rate of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TaxAmount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>the tax amount of the basket discount line item</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Attributes"
                  type="epagestypes:ListOfAttributes"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested attributes (see epagestypes:ListOfAttributes)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

</xs:schema>
