<?xml version="1.0" encoding="UTF-8"?>
<definitions name="calc"
  targetNamespace="http://websrv.cs.fsu.edu/~engelen/calc.wsdl"
  xmlns:tns="http://websrv.cs.fsu.edu/~engelen/calc.wsdl"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:ns="urn:calc"
  xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:HTTP="http://schemas.xmlsoap.org/wsdl/http/"
  xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
  xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
  xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
  xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>

  <schema targetNamespace="urn:calc"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns="urn:calc"
    xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="unqualified"
    attributeFormDefault="unqualified">
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
  </schema>

</types>

<message name="addRequest">
  <part name="a" type="xsd:double"/><!-- ns__add::a -->
  <part name="b" type="xsd:double"/><!-- ns__add::b -->
</message>

<message name="addResponse">
  <part name="result" type="xsd:double"/><!-- ns__add::result -->
</message>

<message name="subRequest">
  <part name="a" type="xsd:double"/><!-- ns__sub::a -->
  <part name="b" type="xsd:double"/><!-- ns__sub::b -->
</message>

<message name="subResponse">
  <part name="result" type="xsd:double"/><!-- ns__sub::result -->
</message>

<message name="mulRequest">
  <part name="a" type="xsd:double"/><!-- ns__mul::a -->
  <part name="b" type="xsd:double"/><!-- ns__mul::b -->
</message>

<message name="mulResponse">
  <part name="result" type="xsd:double"/><!-- ns__mul::result -->
</message>

<message name="divRequest">
  <part name="a" type="xsd:double"/><!-- ns__div::a -->
  <part name="b" type="xsd:double"/><!-- ns__div::b -->
</message>

<message name="divResponse">
  <part name="result" type="xsd:double"/><!-- ns__div::result -->
</message>

<message name="powRequest">
  <part name="a" type="xsd:double"/><!-- ns__pow::a -->
  <part name="b" type="xsd:double"/><!-- ns__pow::b -->
</message>

<message name="powResponse">
  <part name="result" type="xsd:double"/><!-- ns__pow::result -->
</message>

<portType name="calcPortType">
  <operation name="add">
    <documentation>
      Sums two values
    </documentation>
    <input message="tns:addRequest"/>
    <output message="tns:addResponse"/>
  </operation>
  <operation name="sub">
    <documentation>
      Subtracts two values
    </documentation>
    <input message="tns:subRequest"/>
    <output message="tns:subResponse"/>
  </operation>
  <operation name="mul">
    <documentation>
      Multiplies two values
    </documentation>
    <input message="tns:mulRequest"/>
    <output message="tns:mulResponse"/>
  </operation>
  <operation name="div">
    <documentation>
      Divides two values
    </documentation>
    <input message="tns:divRequest"/>
    <output message="tns:divResponse"/>
  </operation>
  <operation name="pow">
    <documentation>
      Raises a to b
    </documentation>
    <input message="tns:powRequest"/>
    <output message="tns:powResponse"/>
  </operation>
</portType>

<binding name="calc" type="tns:calcPortType">
  <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="add">
    <SOAP:operation style="rpc" soapAction=""/>
    <input>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </input>
    <output>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </output>
  </operation>
  <operation name="sub">
    <SOAP:operation style="rpc" soapAction=""/>
    <input>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </input>
    <output>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </output>
  </operation>
  <operation name="mul">
    <SOAP:operation style="rpc" soapAction=""/>
    <input>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </input>
    <output>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </output>
  </operation>
  <operation name="div">
    <SOAP:operation style="rpc" soapAction=""/>
    <input>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </input>
    <output>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </output>
  </operation>
  <operation name="pow">
    <SOAP:operation style="rpc" soapAction=""/>
    <input>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </input>
    <output>
          <SOAP:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:calc"/>
    </output>
  </operation>
</binding>

<service name="calc">
  <documentation>
    Simple calculator service described at https://www.genivia.com/dev.html
  </documentation>
  <port name="calc" binding="tns:calc">
    <SOAP:address location="http://websrv.cs.fsu.edu/~engelen/calcserver.cgi"/>
  </port>
</service>

</definitions>
