<?xml version="1.0" encoding="UTF-8"?>
<!--
    July 2003

    (c) Copyright 2003, The Web Services-Interoperability Organization (WS-I)
    Download or use of this file is governed by the Policies and Bylaws of WS-I.

    For more information, send email info@ws-i.org.
-->

<wsdl:definitions
    targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:cat="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    This WSDL document describes the Catalog service for the WS-I Basic Sample Application 1.1.
  </wsdl:documentation>

  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:import namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"
schemaLocation="Catalog.xsd"/>
    </xs:schema>
  </wsdl:types>

  <wsdl:message name="getCatalogWithImagesResponse">
    <wsdl:part name="response" type="cat:productCatalogType"/>
  </wsdl:message>

  <wsdl:message name="getProductDetailsRequest">
    <wsdl:part name="request" type="cat:getProductDetailsType"/>
  </wsdl:message>

  <wsdl:message name="getCatalogWithImagesRequest">
    <wsdl:part name="request" type="cat:getCatalogWithImagesType"/>
  </wsdl:message>

  <wsdl:message name="getProductDetailsResponse">
    <wsdl:part name="Body" type="cat:productDetailsType"/>
    <wsdl:part name="Pic" type="xs:base64Binary"/>
    <wsdl:part name="Specs" type="xs:string"/>
  </wsdl:message>

  <wsdl:message name="voidTestRequest">
        <wsdl:part name="attach1" type="xs:base64Binary"/>
  </wsdl:message>

  <wsdl:message name="voidTestResponse">
        <wsdl:part name="attach2" type="xs:base64Binary"/>
  </wsdl:message>

  <wsdl:message name="echoStringRequest">
        <wsdl:part name="input" type="xs:string"/>
  </wsdl:message>

  <wsdl:message name = "defaultTypeTestRequest">
      <wsdl:part name="order" type="xs:string"/>
      <wsdl:part name="prodDetails" element="cat:ProductDetails"/>
  </wsdl:message>

    <wsdl:message name = "defaultTypeTestResponse">
      <wsdl:part name="prodNum" element="cat:ProductNumber"/>
      <wsdl:part name="status" type="xs:string"/>
    </wsdl:message>

    <wsdl:message name="echoStringResponse">
        <wsdl:part name="output" type="xs:string"/>
    </wsdl:message>
    <wsdl:message name="testDataHandlerRequest">
        <wsdl:part name="body" type="xs:string"/>
        <wsdl:part name="attachIn" type="xs:string"/>
    </wsdl:message>

    <wsdl:message name="testDataHandlerResponse">
        <wsdl:part name="attachOut" type="xs:string"/>
    </wsdl:message>

    <message name="testNormalReq">
        <part name="in_body" type="xs:string"/>
        <part name="header" element="cat:int"/>
    </message>

    <message name="testNormalResp">
        <part name="out_body" type="xs:string"/>
        <part name="header" element="cat:int"/>
    </message>

    <message name="getFooWithMimeDisabled">
        <part name="param" type="xs:boolean"/>
        <part name="foo" element="cat:foo"/>
    </message>
    <message name="getFooWithMimeDisabledResp">
        <part name="fooAsAttach" element="cat:fooAsAttach"/>
    </message>

    <message name="messageInputAllAttachmentTypes">
    <part name="request" type="cat:VoidRequest"/>
    <!--part name="attach1" type="xs:string"/>
    <part name="attach2" type="xs:string"/>
    <part name="attach3" type="xs:string"/>
    <part name="attach4" type="xs:base64Binary"/>
    <part name="attach5" type="xs:base64Binary"/>
    <part name="attach6" type="xs:base64Binary"/>
    <part name="attach7" type="xs:base64Binary"/>
    <part name="attach8" type="xs:base64Binary"/>
    <part name="attach9" type="xs:string"/-->
    <part name="attach10" type="xs:base64Binary"/>
  </message>

  <message name="messageOutputAllAttachmentTypes">
    <part name="response" type="cat:OutputResponseAll"/>
    <!--part name="attach1" type="xsd:string"/>
    <part name="attach2" type="xsd:string"/>
    <part name="attach3" type="xsd:string"/>
    <part name="attach4" type="xsd:base64Binary"/>
    <part name="attach5" type="xsd:base64Binary"/>
    <part name="attach6" type="xsd:base64Binary"/>
    <part name="attach7" type="xsd:base64Binary"/>
    <part name="attach8" type="xsd:base64Binary"/>
    <part name="attach9" type="xsd:string"/-->
    <part name="attach10" type="xs:base64Binary"/>
  </message>

  <wsdl:portType name="CatalogPortType">
    <operation name="echoAllAttachmentTypes">
      <input message="tns:messageInputAllAttachmentTypes"/>
      <output message="tns:messageOutputAllAttachmentTypes"/>
    </operation>

    <operation name="getFooWithMimeDisabled">
        <input message="tns:getFooWithMimeDisabled"/>
        <output message="tns:getFooWithMimeDisabledResp"/>
    </operation>
    <operation name="testNormalWithMimeBinding">
        <input message="tns:testNormalReq"/>
        <output message="tns:testNormalResp"/>
    </operation>
    <wsdl:operation name="defaultTypeTest">
          <wsdl:input name="defaultTypeTestRequest" message="tns:defaultTypeTestRequest"/>
          <wsdl:output name="defaultTypeTestResponse" message="tns:defaultTypeTestResponse"/>
    </wsdl:operation>
    <wsdl:operation name="echoString">
          <wsdl:input name="echoStringRequest" message="tns:echoStringRequest"/>
          <wsdl:output name="echoStringResponse" message="tns:echoStringResponse"/>
    </wsdl:operation>
    <wsdl:operation name="voidTest">
      <wsdl:input name="voidTestRequest" message="tns:voidTestRequest"/>
      <wsdl:output name="voidTestResponse" message="tns:voidTestResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getCatalogWithImages">
      <wsdl:input name="getCatalogWithImagesRequest" message="tns:getCatalogWithImagesRequest"/>
      <wsdl:output name="getCatalogWithImagesResponse" message="tns:getCatalogWithImagesResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getProductDetails">
      <wsdl:input name="getDetailsRequest" message="tns:getProductDetailsRequest"/>
      <wsdl:output name="getDetailsResponse" message="tns:getProductDetailsResponse"/>
    </wsdl:operation>
    <wsdl:operation name="testDataHandler">
      <wsdl:input name="testDataHandlerRequest" message="tns:testDataHandlerRequest"/>
      <wsdl:output name="testDataHandlerResponse" message="tns:testDataHandlerResponse"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="CatalogSoapBinding" type="tns:CatalogPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="echoAllAttachmentTypes">
      <soap:operation/>
        <input>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="request" use="literal" namespace="http://SwaTestService.org/wsdl"/>
            </mime:part>
            <!--mime:part>
              <mime:content part="attach1" type="text/plain"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach2" type="text/html"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach3" type="text/xml"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach4" type="image/jpeg"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach5" type="image/jpeg"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach6" type="multipart/*"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach7" type="multipart/related"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach8" type="application/*"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach9" type="application/xml"/>
            </mime:part-->
            <mime:part>
              <mime:content part="attach10" type="application/xml"/>
            </mime:part>
          </mime:multipartRelated>
        </input>
        <output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="response" use="literal" namespace="http://SwaTestService.org/wsdl"/>
            </mime:part>
            <!--mime:part>
              <mime:content part="attach1" type="text/plain"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach2" type="text/html"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach3" type="text/xml"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach4" type="image/jpeg"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach5" type="image/jpeg"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach6" type="multipart/*"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach7" type="multipart/related"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach8" type="application/*"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach9" type="application/xml"/>
            </mime:part-->
            <mime:part>
              <mime:content part="attach10" type="application/xml"/>
            </mime:part>
          </mime:multipartRelated>
        </output>
    </operation>
      <operation name="getFooWithMimeDisabled">
            <soap:operation soapAction=""/>
            <input>
                <mime:multipartRelated>
                    <mime:part>
                        <soap:body parts="param" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                    </mime:part>
                    <mime:part>
                        <mime:content part="foo" type="text/xml"/>
                    </mime:part>
                </mime:multipartRelated>
            </input>
            <output>
                <mime:multipartRelated>
                    <mime:part>
                        <soap:body parts="" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                    </mime:part>
                    <mime:part>
                        <mime:content part="fooAsAttach" type="text/xml"/>
                    </mime:part>
                </mime:multipartRelated>
            </output>
        </operation>

      <operation name="testNormalWithMimeBinding">
            <soap:operation/>
            <input>
                <mime:multipartRelated>
                    <mime:part>
                        <soap:body parts="in_body" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                        <soap:header message="tns:testNormalReq" part="header" use="literal"/>
                    </mime:part>
                </mime:multipartRelated>
            </input>
            <output>
                <mime:multipartRelated>
                    <mime:part>
                        <soap:body parts="out_body" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                        <soap:header message="tns:testNormalResp" part="header" use="literal" />
                    </mime:part>
                </mime:multipartRelated>
            </output>
        </operation>

      <wsdl:operation name="defaultTypeTest">
        <soap:operation/>
        <wsdl:input>
            <mime:multipartRelated>
                <mime:part>
                      <mime:content part="prodDetails" type="application/xml"/>
                </mime:part>
                 <mime:part>
                  <soap:body parts="order" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                </mime:part>
            </mime:multipartRelated>
        </wsdl:input>

        <wsdl:output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="status" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
            </mime:part>
            <mime:part>
              <mime:content part="prodNum" type="text/xml"/>
            </mime:part>
          </mime:multipartRelated>
        </wsdl:output>
      </wsdl:operation>

      <wsdl:operation name="testDataHandler">
        <soap:operation/>
        <wsdl:input>
            <mime:multipartRelated>
                <mime:part>
                      <mime:content part="attachIn" type="application/xml"/>
                      <mime:content part="attachIn" type="text/xml"/>
                </mime:part>
                 <mime:part>
                  <soap:body parts="body" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                </mime:part>
            </mime:multipartRelated>
        </wsdl:input>

        <wsdl:output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
            </mime:part>
            <mime:part>
              <mime:content part="attachOut" type="text/xml"/>
              <mime:content part="attachOut" type="application/xml"/>
            </mime:part>
          </mime:multipartRelated>
        </wsdl:output>
      </wsdl:operation>

      <wsdl:operation name="echoString">
        <soap:operation/>
        <wsdl:input>
          <soap:body parts="input" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
        </wsdl:input>
        <wsdl:output>
              <soap:body parts="output" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
        </wsdl:output>
      </wsdl:operation>

    <wsdl:operation name="voidTest">
        <soap:operation/>
        <wsdl:input>
        <mime:multipartRelated>
        <mime:part>
              <mime:content part="attach1" type="image/jpeg"/>
        </mime:part>
         <mime:part>
          <soap:body parts="" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
        </mime:part>

          </mime:multipartRelated>
        </wsdl:input>

        <wsdl:output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
            </mime:part>
            <mime:part>
              <mime:content part="attach2" type="image/jpeg"/>
            </mime:part>
          </mime:multipartRelated>
        </wsdl:output>
      </wsdl:operation>

      <wsdl:operation name="getCatalogWithImages">
        <soap:operation/>
        <wsdl:input>
            <mime:multipartRelated>
                <mime:part>
                  <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
                </mime:part>
            </mime:multipartRelated>
        </wsdl:input>
        <wsdl:output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
            </mime:part>
          </mime:multipartRelated>
        </wsdl:output>
      </wsdl:operation>

      <wsdl:operation name="getProductDetails">
        <soap:operation/>
        <wsdl:input>
          <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
        </wsdl:input>
        <wsdl:output>
          <mime:multipartRelated>
            <mime:part>
              <soap:body parts="Body" use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"/>
            </mime:part>
            <mime:part>
              <mime:content part="Pic" type="image/jpeg"/>
            </mime:part>
            <mime:part>
              <mime:content part="Specs" type="text/xml"/>
            </mime:part>
          </mime:multipartRelated>
        </wsdl:output>
      </wsdl:operation>

  </wsdl:binding>
  <service name="CatalogService">
    <port name="CatalogPort" binding="tns:CatalogSoapBinding">
      <soap:address location="http://localhost/rpcendpoint/TestService"/>
    </port>
  </service>
</wsdl:definitions>
