<wsdl:definitions name="CrossSellingService"
                  targetNamespace="urn://epages.de/WebService/CrossSellingService/2006/05"
                  xmlns:tns="urn://epages.de/WebService/CrossSellingService/2006/05"
                  xmlns:crosssellingtypes="urn://epages.de/WebService/CrossSellingTypes/2006/05"
                  xmlns:epagestypes="urn://epages.de/WebService/EpagesTypes/2005/01"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns="http://schemas.xmlsoap.org/wsdl/">
  <documentation>
    this is a web service for an epages e-commerce system.
    this service is a container for all methods in the cross selling context.
    needs ePages 5.04 or higher
  </documentation>
  <wsdl:types>
    <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
               targetNamespace="urn://epages.de/WebService/CrossSellingService/2006/05">
      <xs:import namespace="urn://epages.de/WebService/crosssellingtypes/2006/05"
                 schemaLocation="CrossSellingTypes.xsd"/>

      <!-- insert -->
      <xs:complexType name="type_InsertCrossSelling_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an insert() call. see crosssellingtypes:TInsertCrossSelling_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TInsertCrossSelling_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_InsertCrossSelling_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an insert() call. see crosssellingtypes:TInsertCrossSelling_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TInsertCrossSelling_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- delete -->
      <xs:complexType name="type_DeleteCrossSelling_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an delete() call. see crosssellingtypes:TDeleteCrossSelling_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TDeleteCrossSelling_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_DeleteCrossSelling_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an delete() call. see crosssellingtypes:TDeleteCrossSelling_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TDeleteCrossSelling_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- exists -->
      <xs:complexType name="type_ExistsCrossSelling_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an exists() call. see crosssellingtypes:TExistsCrossSelling_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TExistsCrossSelling_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_ExistsCrossSelling_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an exists() call. see crosssellingtypes:TExistsCrossSelling_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TExistsCrossSelling_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- get -->
      <xs:complexType name="type_GetCrossSelling_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an get() call. see crosssellingtypes:TGetCrossSelling_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TGetCrossSelling_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_GetCrossSelling_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an get() call. see crosssellingtypes:TGetCrossSelling_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType" wsdl:arrayType="crosssellingtypes:TGetCrossSelling_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

    </xs:schema>
  </wsdl:types>

  <message name="msg_InsertCrossSelling_Input">
    <part name="CrossSellings" type="tns:type_InsertCrossSelling_In" />
  </message>
  <message name="msg_InsertCrossSelling_Output">
    <part name="CrossSellings" type="tns:type_InsertCrossSelling_Out" />
  </message>
  <message name="msg_DeleteCrossSelling_Input">
    <part name="CrossSellings" type="tns:type_DeleteCrossSelling_In" />
  </message>
  <message name="msg_DeleteCrossSelling_Output">
    <part name="CrossSellings" type="tns:type_DeleteCrossSelling_Out" />
  </message>
  <message name="msg_ExistsCrossSelling_Input">
    <part name="CrossSellings" type="tns:type_ExistsCrossSelling_In" />
  </message>
  <message name="msg_ExistsCrossSelling_Output">
    <part name="CrossSellings" type="tns:type_ExistsCrossSelling_Out" />
  </message>
  <message name="msg_GetCrossSelling_Input">
    <part name="CrossSellings" type="tns:type_GetCrossSelling_In" />
  </message>
  <message name="msg_GetCrossSelling_Output">
    <part name="CrossSellings" type="tns:type_GetCrossSelling_Out" />
  </message>

  <portType name="port_CrossSelling">
    <operation name="insert">
      <documentation>insert a cross selling (assign target product to product)</documentation>
      <input  message="tns:msg_InsertCrossSelling_Input" />
      <output message="tns:msg_InsertCrossSelling_Output" />
    </operation>
    <operation name="delete">
      <documentation>delete a cross selling (delete assignment of target product to product)</documentation>
      <input  message="tns:msg_DeleteCrossSelling_Input" />
      <output message="tns:msg_DeleteCrossSelling_Output" />
    </operation>
    <operation name="exists">
      <documentation>check if exists a cross selling (if target product assigned to product)</documentation>
      <input  message="tns:msg_ExistsCrossSelling_Input" />
      <output message="tns:msg_ExistsCrossSelling_Output" />
    </operation>
    <operation name="get">
      <documentation>get a cross selling (target products assigned to product)</documentation>
      <input  message="tns:msg_GetCrossSelling_Input" />
      <output message="tns:msg_GetCrossSelling_Output" />
    </operation>
  </portType>

  <binding name="bind_CrossSelling_SOAP" type="tns:port_CrossSelling">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="insert">
      <soap:operation soapAction="urn://epages.de/WebService/CrossSellingService/2006/05#insert" />
      <input>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="delete">
      <soap:operation soapAction="urn://epages.de/WebService/CrossSellingService/2006/05#delete" />
      <input>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="exists">
      <soap:operation soapAction="urn://epages.de/WebService/CrossSellingService/2006/05#exists" />
      <input>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="get">
      <soap:operation soapAction="urn://epages.de/WebService/CrossSellingService/2006/05#get" />
      <input>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded" namespace="urn://epages.de/WebService/CrossSellingService/2006/05" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
  </binding>

  <service name="CrossSellingService">
    <documentation>epages Cross Selling Service</documentation>
    <port name="port_CrossSelling" binding="tns:bind_CrossSelling_SOAP">
      <soap:address location="http://localhost/epages/Store.soap" />
    </port>
  </service>

</wsdl:definitions>
