<wsdl:definitions name="AssignmentService"
                  targetNamespace="urn://epages.de/WebService/AssignmentService/2005/01"
                  xmlns:tns="urn://epages.de/WebService/AssignmentService/2005/01"
                  xmlns:assignmenttypes="urn://epages.de/WebService/AssignmentTypes/2005/01"
                  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 catalogassignment context.
    needs ePages 5.04 or higher
  </documentation>
  <wsdl:types>
    <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
               targetNamespace="urn://epages.de/WebService/AssignmentService/2005/01">
      <xs:import namespace="urn://epages.de/WebService/assignmenttypes/2005/01"  schemaLocation="AssignmentTypes.xsd"/>
      <!-- assignProductToCatalog -->
      <xs:complexType name="type_AssignProductToCatalog_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an assignProductToCatalog() call.
            see assignmenttypes:TAssignProductToCatalog_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TAssignProductToCatalog_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_AssignProductToCatalog_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an assignProductToCatalog() call.
            see assignmenttypes:TAssignProductToCatalog_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TAssignProductToCatalog_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- removeProductFromCatalog -->
      <xs:complexType name="type_RemoveProductFromCatalog_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an removeProductFromCatalog() call.
            see assignmenttypes:TRemoveProductFromCatalog_Input
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TRemoveProductFromCatalog_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_RemoveProductFromCatalog_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an removeProductFromCatalog() call.
            see assignmenttypes:TRemoveProductFromCatalog_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TRemoveProductFromCatalog_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- isProductAssignedToCatalog -->
      <xs:complexType name="type_IsProductAssignedToCatalog_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an isProductAssignedToCatalog() call.
            see assignmenttypes:TIsProductAssignedToCatalog_Input.
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TIsProductAssignedToCatalog_Input[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="type_IsProductAssignedToCatalog_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an isProductAssignedToCatalog() call.
            see assignmenttypes:TIsProductAssignedToCatalog_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TIsProductAssignedToCatalog_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- getProductsAssignedToCatalog -->
      <xs:complexType name="type_GetProductsAssignedToCatalog_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an getProductsAssignedToCatalog() call.
          </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>
      <xs:complexType name="type_GetProductsAssignedToCatalog_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an getProductsAssignedToCatalog() call.
            see assignmenttypes:TGetProductsAssignedToCatalog_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TGetProductsAssignedToCatalog_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

      <!-- getCatalogsAssignedToProduct -->
      <xs:complexType name="type_GetCatalogsAssignedToProduct_In">
        <xs:annotation>
          <xs:documentation>
            input structure of an getCatalogsAssignedToProduct() call.
          </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>
      <xs:complexType name="type_GetCatalogsAssignedToProduct_Out">
        <xs:annotation>
          <xs:documentation>
            output structure of an getCatalogsAssignedToProduct() call.
            see assignmenttypes:TGetCatalogsAssignedToProduct_Return
          </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
          <xs:restriction base="soapenc:Array">
            <xs:attribute ref="soapenc:arrayType"
                          wsdl:arrayType="assignmenttypes:TGetCatalogsAssignedToProduct_Return[]" />
          </xs:restriction>
        </xs:complexContent>
      </xs:complexType>

    </xs:schema>
  </wsdl:types>
  <message name="msg_AssignProductToCatalog_Input">
    <part name="Assignments"
          type="tns:type_AssignProductToCatalog_In" />
  </message>
  <message name="msg_AssignProductToCatalog_Output">
    <part name="Assignments"
          type="tns:type_AssignProductToCatalog_Out" />
  </message>
  <message name="msg_RemoveProductFromCatalog_Input">
    <part name="Assignments"
          type="tns:type_RemoveProductFromCatalog_In" />
  </message>
  <message name="msg_RemoveProductFromCatalog_Output">
    <part name="Assignments"
          type="tns:type_RemoveProductFromCatalog_Out" />
  </message>
  <message name="msg_IsProductAssignedToCatalog_Input">
    <part name="Assignments"
          type="tns:type_IsProductAssignedToCatalog_In" />
  </message>
  <message name="msg_IsProductAssignedToCatalog_Output">
    <part name="Assignments"
          type="tns:type_IsProductAssignedToCatalog_Out" />
  </message>
  <message name="msg_GetProductsAssignedToCatalog_Input">
    <part name="Catalogs"
          type="tns:type_GetProductsAssignedToCatalog_In" />
  </message>
  <message name="msg_GetProductsAssignedToCatalog_Output">
    <part name="Assignments"
          type="tns:type_GetProductsAssignedToCatalog_Out" />
  </message>
  <message name="msg_GetCatalogsAssignedToProduct_Input">
    <part name="Products"
          type="tns:type_GetCatalogsAssignedToProduct_In" />
  </message>
  <message name="msg_GetCatalogsAssignedToProduct_Output">
    <part name="Assignments"
          type="tns:type_GetCatalogsAssignedToProduct_Out" />
  </message>
  <portType name="port_Assignment">
    <operation name="assignProductToCatalog">
      <documentation>assign products to catalogs</documentation>
      <input message="tns:msg_AssignProductToCatalog_Input" />
      <output message="tns:msg_AssignProductToCatalog_Output" />
    </operation>
    <operation name="removeProductFromCatalog">
      <documentation>unassign a product from a catalog</documentation>
      <input message="tns:msg_RemoveProductFromCatalog_Input" />
      <output message="tns:msg_RemoveProductFromCatalog_Output" />
    </operation>
    <operation name="isProductAssignedToCatalog">
      <documentation>check if a product is assigned to a catalog</documentation>
      <input message="tns:msg_IsProductAssignedToCatalog_Input" />
      <output message="tns:msg_IsProductAssignedToCatalog_Output" />
    </operation>
    <operation name="getProductsAssignedToCatalog">
      <documentation>get products assigned to a catalog</documentation>
      <input message="tns:msg_GetProductsAssignedToCatalog_Input" />
      <output message="tns:msg_GetProductsAssignedToCatalog_Output" />
    </operation>
    <operation name="getCatalogsAssignedToProduct">
      <documentation>get catalogs the product is assigned to</documentation>
      <input message="tns:msg_GetCatalogsAssignedToProduct_Input" />
      <output message="tns:msg_GetCatalogsAssignedToProduct_Output" />
    </operation>
  </portType>
  <binding name="bind_Assignment_SOAP"
           type="tns:port_Assignment">
    <soap:binding style="rpc"
                  transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="assignProductToCatalog">
      <soap:operation soapAction="urn://epages.de/WebService/AssignmentService/2005/01#assignProductToCatalog" />
      <input>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="removeProductFromCatalog">
      <soap:operation soapAction="urn://epages.de/WebService/AssignmentService/2005/01#removeProductFromCatalog" />
      <input>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="isProductAssignedToCatalog">
      <soap:operation soapAction="urn://epages.de/WebService/AssignmentService/2005/01#isProductAssignedToCatalog" />
      <input>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="getProductsAssignedToCatalog">
      <soap:operation soapAction="urn://epages.de/WebService/AssignmentService/2005/01#getProductsAssignedToCatalog" />
      <input>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
    <operation name="getCatalogsAssignedToProduct">
      <soap:operation soapAction="urn://epages.de/WebService/AssignmentService/2005/01#getCatalogsAssignedToProduct" />
      <input>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn://epages.de/WebService/AssignmentService/2005/01"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
    </operation>
  </binding>
  <service name="AssignmentService">
    <documentation>epages Catalog Assignment Service</documentation>
    <port name="port_Assignment"
          binding="tns:bind_Assignment_SOAP">
      <soap:address location="http://localhost/epages/Store.soap" />
    </port>
  </service>
</wsdl:definitions>
