<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
  targetNamespace="http://sample"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:impl="http://sample"
  xmlns:intf="http://sample"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <wsdl:types>
    <schema
      elementFormDefault="qualified"
      targetNamespace="http://sample"
      xmlns="http://www.w3.org/2001/XMLSchema">
      <element name="ticker">
        <complexType>
          <sequence>
            <element name="item" type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
      <element name="price">
        <complexType>
          <sequence>
            <element name="item" type="xsd:float"/>
          </sequence>
        </complexType>
      </element>
      <element name="purchaseOrder">
        <complexType>
          <sequence>
          </sequence>
        </complexType>
      </element>
      <element name="currencies">
        <complexType>
          <sequence>
            <element name="from" type="xsd:string"/>
            <element name="to" type="xsd:string"/>
          </sequence>
        </complexType>
      </element>
    </schema>
  </wsdl:types>

  <wsdl:message name="getQuoteRequest">
    <wsdl:part element="intf:ticker" name="parameter"/>
  </wsdl:message>
  <wsdl:message name="getQuoteResponse">
    <wsdl:part element="intf:price" name="parameter"/>
  </wsdl:message>
  <wsdl:message name="purchaseRequest">
    <wsdl:part element="intf:purchaseOrder" name="parameter"/>
  </wsdl:message>
  <wsdl:message name="purchaseResponse">
  </wsdl:message>
  <wsdl:message name="getRateRequest">
    <wsdl:part element="intf:currencies" name="parameter"/>
  </wsdl:message>
  <wsdl:message name="getRateResponse">
    <wsdl:part element="intf:price" name="parameter"/>
  </wsdl:message>

  <wsdl:portType name="GetQuotePortType">
    <wsdl:operation name="getQuote">
      <wsdl:input message="intf:getQuoteRequest" name="getQuoteRequest"/>
      <wsdl:output message="intf:getQuoteResponse" name="getQuoteResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="PurchasePortType">
    <wsdl:operation name="purchase">
      <wsdl:input message="intf:purchaseRequest" name="purchaseRequest"/>
      <wsdl:output message="intf:purchaseResponse" name="purchaseResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:portType name="ExchangeRatePortType">
    <wsdl:operation name="getRate">
      <wsdl:input message="intf:getRateRequest" name="getRateRequest"/>
      <wsdl:output message="intf:getRateResponse" name="getRateResponse"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="GetQuoteBinding" type="intf:GetQuotePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getQuote">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="getQuoteRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="getQuoteResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="PurchaseBinding" type="intf:PurchasePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="purchase">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="purchaseRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="purchaseResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="ExchangeRateBinding" type="intf:ExchangeRatePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getRate">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="getRateRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="getRateResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="StockQuoteService">
    <wsdl:port binding="intf:GetQuoteBinding" name="GetQuote">
      <wsdlsoap:address location="http://www.example.com/stockquote/services/getquote"/>
    </wsdl:port>
    <wsdl:port binding="intf:PurchaseBinding" name="Purchase">
      <wsdlsoap:address location="http://www.example.com/stockquote/services/purchase"/>
    </wsdl:port>
  </wsdl:service>
  <wsdl:service name="ExchangeRateService">
    <wsdl:port binding="intf:ExchangeRateBinding" name="ExchangeRate">
      <wsdlsoap:address location="http://www.example.com/exchangerate/services/getrate"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>