<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:epagestypes="urn://epages.de/WebService/EpagesTypes/2005/01"
           xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
           xmlns:tns="urn://epages.de/WebService/PriceListAssignmentTypes/2005/01"
           targetNamespace="urn://epages.de/WebService/PriceListAssignmentTypes/2005/01">
  <xs:import namespace="urn://epages.de/WebService/EpagesTypes/2005/01"
             schemaLocation="EpagesTypes.xsd" />
  <!-- getScalePrices -->
  <xs:complexType name="TGetScalePrices_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getScalePrices() 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="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product path</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceLists"
                  type="tns:ListOfPriceListScalePrice"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested pricelists (see pricelistassignmenttypes:TPriceListScalePrice)</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>

  <!-- setScalePrices -->
  <xs:complexType name="TSetScalePrices_Input">
    <xs:annotation>
      <xs:documentation>
        input arguments of a single setScalePrices() call.
        all elements are mandatory.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceList"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>price list (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ScalePrices"
                  type="tns:ListOfScalePrices"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of scale prices to set (see pricelistassignmenttypes:TScalePrice)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TSetScalePrices_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a setScalePrices() call.
        the product and pricelist 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="Product"
                  type="xs:string" />
      <xs:element name="PriceList"
                  type="xs:string" />
      <xs:element name="updated"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating that this product 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>

  <!-- getQuantityDiscounts -->
  <xs:complexType name="TGetQuantityDiscounts_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getQuantityDiscounts() 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="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product path</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceLists"
                  type="tns:ListOfPriceListQuantityDiscount"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested pricelists (see pricelistassignmenttypes:TPriceListQuantityDiscount)</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>

  <!-- setQuantityDiscounts -->
  <xs:complexType name="TSetQuantityDiscounts_Input">
    <xs:annotation>
      <xs:documentation>
        input arguments of a single setQuantityDiscounts() call.
        all elements are mandatory.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceList"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>price list (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuantityDiscounts"
                  type="tns:ListOfQuantityDiscounts"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of quantity discounts to set (see pricelistassignmenttypes:TQuantityDiscount)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TSetQuantityDiscounts_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a setQuantityDiscounts() call.
        the product and pricelist 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="Product"
                  type="xs:string" />
      <xs:element name="PriceList"
                  type="xs:string" />
      <xs:element name="updated"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating that this product 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>

  <!-- getValueDiscounts -->
  <xs:complexType name="TGetValueDiscounts_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a getValueDiscounts() 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="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product path</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceLists"
                  type="tns:ListOfPriceListValueDiscount"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of requested pricelists (see pricelistassignmenttypes:TPriceListValueDiscount)</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>

  <!-- setValueDiscounts -->
  <xs:complexType name="TSetValueDiscounts_Input">
    <xs:annotation>
      <xs:documentation>
        input arguments of a single setValueDiscounts() call.
        all elements are mandatory.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Product"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>product (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PriceList"
                  type="xs:string"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>price list (object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ValueDiscounts"
                  type="tns:ListOfValueDiscounts"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>list of value discounts to set (see pricelistassignmenttypes:TValueDiscount)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="TSetValueDiscounts_Return">
    <xs:annotation>
      <xs:documentation>
        a single return value of a setValueDiscounts() call.
        the product and pricelist 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="Product"
                  type="xs:string" />
      <xs:element name="PriceList"
                  type="xs:string" />
      <xs:element name="updated"
                  type="xs:boolean"
                  minOccurs="0">
        <xs:annotation>
          <xs:documentation>a boolean flag indicating that this product 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>

  <!-- Additional -->
  <!-- SCALE PRICE -->
  <xs:complexType name="ListOfPriceListScalePrice">
    <xs:annotation>
      <xs:documentation>
        list of pricelists with scale price information.
        each element is a TPriceListScalePrice.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TPriceListScalePrice[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TPriceListScalePrice">
    <xs:annotation>
      <xs:documentation>
        a single pricelists with scale price information.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="PriceList"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the pricelist (a object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ScalePrices"
                  type="tns:ListOfScalePrices">
        <xs:annotation>
          <xs:documentation>list of scale prices for this product and this pricelist (see pricelistassignmenttypes:TScalePrice)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="ListOfScalePrices">
    <xs:annotation>
      <xs:documentation>
        list of scale prices.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TScalePrice[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TScalePrice">
    <xs:annotation>
      <xs:documentation>
        a single scale price.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>scale price's quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Price"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>price for this quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- QUANTITY DISCOUNT -->
  <xs:complexType name="ListOfPriceListQuantityDiscount">
    <xs:annotation>
      <xs:documentation>
        list of pricelists with quantity discount information.
        each element is a TPriceListQuantityDiscount.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TPriceListQuantityDiscount[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TPriceListQuantityDiscount">
    <xs:annotation>
      <xs:documentation>
        a single pricelists with quantity discount information.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="PriceList"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the pricelist (a object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="QuantityDiscounts"
                  type="tns:ListOfQuantityDiscounts">
        <xs:annotation>
          <xs:documentation>list of quantity discount for this product and this pricelist (see pricelistassignmenttypes:TQuantityDiscount)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="ListOfQuantityDiscounts">
    <xs:annotation>
      <xs:documentation>
        list of quantity discounts.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TQuantityDiscount[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TQuantityDiscount">
    <xs:annotation>
      <xs:documentation>
        a single quantity discount.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Quantity"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>discount's quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>discount for this quantity</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <!-- VALUE DISCOUNT -->
  <xs:complexType name="ListOfPriceListValueDiscount">
    <xs:annotation>
      <xs:documentation>
        list of pricelists with value discount information.
        each element is a TPriceListValueDiscount.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TPriceListValueDiscount[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TPriceListValueDiscount">
    <xs:annotation>
      <xs:documentation>
        a single pricelists with value discount information.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="PriceList"
                  type="xs:string">
        <xs:annotation>
          <xs:documentation>the pricelist (a object path)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ValueDiscounts"
                  type="tns:ListOfValueDiscounts">
        <xs:annotation>
          <xs:documentation>list of value discount for this product and this pricelist (see pricelistassignmenttypes:TValueDiscount)</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="ListOfValueDiscounts">
    <xs:annotation>
      <xs:documentation>
        list of value discounts.
      </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="soapenc:Array">
        <xs:attribute ref="soapenc:arrayType"
                      wsdl:arrayType="tns:TValueDiscount[]" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TValueDiscount">
    <xs:annotation>
      <xs:documentation>
        a single value discount.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name="Value"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>discount's value</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Discount"
                  type="xs:float">
        <xs:annotation>
          <xs:documentation>discount for this value</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>

</xs:schema>
