<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://www.wstf.org/docs/scenarios/sc009"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:tns="http://www.wstf.org/docs/scenarios/sc009"
                  xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
                  xmlns:wsp="http://www.w3.org/ns/ws-policy">

  <wsdl:types>
    <xs:schema xmlns:sc009="http://www.wstf.org/docs/scenarios/sc009"
               targetNamespace="http://www.wstf.org/docs/scenarios/sc009">
      <xs:include schemaLocation="http://www.wstf.org/docs/scenarios/sc009/sc009.xsd"/>
      <xs:element name="POReq" type="sc009:OrderReqType"/>
      <xs:element name="GetPOStatusReq" type="sc009:OrderStatusReqType"/>
      <xs:element name="UpdatePOReq" type="sc009:UpdateOrderType"/>
      <xs:element name="CancelPOReq" type="sc009:CancelOrderType"/>
      <xs:element name="POFault" type="sc009:OrderFaultType"/>
    </xs:schema>
  </wsdl:types>

  <wsdl:message name="CreatePORequest">
    <wsdl:part name="part1" element="tns:POReq"/>
  </wsdl:message>

  <wsdl:message name="CreatePOResponse">
    <wsdl:part name="part1" element="tns:OrderInfo"/>
  </wsdl:message>

  <wsdl:message name="GetPOStatusRequest">
    <wsdl:part name="part1" element="tns:GetPOStatusReq"/>
  </wsdl:message>

  <wsdl:message name="GetPOStatusResponse">
    <wsdl:part name="part1" element="tns:OrderInfo"/>
  </wsdl:message>

  <wsdl:message name="UpdatePORequest">
    <wsdl:part name="part1" element="tns:UpdatePOReq"/>
  </wsdl:message>

  <wsdl:message name="UpdatePOResponse">
    <wsdl:part name="part1" element="tns:OrderInfo"/>
  </wsdl:message>

  <wsdl:message name="CancelPORequest">
    <wsdl:part name="part1" element="tns:CancelPOReq"/>
  </wsdl:message>

  <wsdl:message name="CancelPOResponse">
    <wsdl:part name="part1" element="tns:OrderInfo"/>
  </wsdl:message>

  <wsdl:message name="NotifyPOStatus">
    <wsdl:part name="part1" element="tns:OrderInfo"/>
  </wsdl:message>

  <wsdl:message name="POFault">
    <wsdl:part name="part1" element="tns:POFault"/>
  </wsdl:message>

  <wsdl:portType name="sc009PortType">
    <wsdl:operation name="CreatePO">
      <wsdl:documentation>
        This operation must be called asynchronously.
      </wsdl:documentation>
      <wsdl:input wsam:Action="http://www.wstf.org/docs/scenarios/sc009/CreatePO"
                  message="tns:CreatePORequest"/>
      <wsdl:output wsam:Action="http://www.wstf.org/docs/scenarios/sc009/CreatePOResponse"
                   message="tns:CreatePOResponse"/>
      <wsdl:fault name="POFault" message="tns:POFault"/>
    </wsdl:operation>
    <wsdl:operation name="GetPOStatus">
      <wsdl:documentation>
        This operation may be called either synchronously or asynchronously.
      </wsdl:documentation>
      <wsdl:input wsam:Action="http://www.wstf.org/docs/scenarios/sc009/GetPOStatus"
                  message="tns:GetPOStatusRequest"/>
      <wsdl:output wsam:Action="http://www.wstf.org/docs/scenarios/sc009/GetPOStatusResponse"
                   message="tns:GetPOStatusResponse"/>
      <wsdl:fault name="POFault" message="tns:POFault"/>
    </wsdl:operation>
    <wsdl:operation name="UpdatePO">
      <wsdl:documentation>
        This operation must be called asynchronously.
      </wsdl:documentation>
      <wsdl:input wsam:Action="http://www.wstf.org/docs/scenarios/sc009/UpdatePO"
                  message="tns:UpdatePORequest"/>
      <wsdl:output wsam:Action="http://www.wstf.org/docs/scenarios/sc009/UpdatePOResponse"
                   message="tns:UpdatePOResponse"/>
      <wsdl:fault name="POFault" message="tns:POFault"/>
    </wsdl:operation>
    <wsdl:operation name="CancelPO">
      <wsdl:documentation>
        This operation may be called either synchronously or asynchronously.
      </wsdl:documentation>
      <wsdl:input wsam:Action="http://www.wstf.org/docs/scenarios/sc009/CancelPO"
                  message="tns:CancelPORequest"/>
      <wsdl:output wsam:Action="http://www.wstf.org/docs/scenarios/sc009/CancelPOResponse"
                   message="tns:CancelPOResponse"/>
      <wsdl:fault name="POFault" message="tns:POFault"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:portType name="PONotifyPortType">
    <wsdl:documentation>
      A document/literal binding of this portType should be implemented by
      clients that elect to recieve asynchronous notification of PO status
      changes. The SOAP version of that binding should correspond to the
      version of SOAP used for the initial CreatPO operation.
    </wsdl:documentation>
    <wsdl:operation name="PONotify">
      <wsdl:input wsam:Action="http://www.wstf.org/docs/scenarios/sc009/NotifyPOStatus"
                  message="tns:NotifyPOStatus"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="sc009SOAP11Binding" type="tns:sc009PortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="CreatePO">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="POFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="GetPOStatus">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="POFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="UpdatePO">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="POFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="CancelPO">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="POFault">
        <soap:body use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:binding name="PONotifySOAP11Binding" type="tns:PONotifyPortType">
    <wsdl:documentation>
      Note this binding is intended to be used to implement the client-side
      notification endpoint.
    </wsdl:documentation>
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="PONotify">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="sc009Service">
    <wsdl:port name="soap11port" binding="tns:sc009SOAP11Binding">
      <soap:address location="http://www.wstf.org/sc009/soap11port"/>
      <wsp:Policy wsdl:required="false">
        <wsam:Addressing wsp:Optional="true">  <!-- WS-Addressing non-anon is required for some operations.-->
          <wsp:Policy/>
        </wsam:Addressing>
      </wsp:Policy>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>
