Volume 2 Issue 5
Web Services Description Language, by Simeon Simeonov

LISTING 1
<definitions>
 

        <!-- All types are defined here -->
        <types> ...     </types>
 

        <!-- Messages and their parts -->
        <message> ... </message>
        ...
 

        <!-- Abstract endpoints and operations -->
        <portType> ... </portType>
        ...
 

        <!-- Bindings, one per endpoint -->
        <binding> ... </binding>
        ...
 

        <!-- Endpoints at specific addresses -->
        <service> ... </service>
        ...
 

</definitions>
 

LISTING 2
 

<types>
    <schema targetNamespace="{example}/stockquote.xsd"
        xmlns="http://www.w3.org/1999/XMLSchema">
        <element name="TradePriceRequest">
           <complexType>
               <all>
                   <element name="symbol"
                       type="string"/>
                </all>
           </complexType>
        </element>
        <element name="TradePriceResponse">
           <complexType>
               <all>
                   <element name="price"
                       type="float"/>
               </all>
           </complexType>
        </element>
    </schema>
</types>
 
 

LISTING 3
    <binding name="StockQuoteSoapBinding"
                                   type="tns:StockQuotePortType">
        <soap:binding style="document"
           transport="{soaporg}/soap/http"/>
        <operation name="GetLastTradePrice">
           <soap:operation
              soapAction="{example}/GetLastTradePrice"/>
           <input>
               <soap:body use="literal"
                namespace="{example}/stockquote.xsd"
                encodingStyle="{soaporg}/soap/encoding/"/>
           </input>
           <output>
               <soap:body use="literal"
                namespace="{example}/stockquote.xsd"
                encodingStyle="{soaporg}/soap/encoding/"/>
           </output>
        </operation>
    </binding>
 
 
 

LISTING 4
<bindingŠ>
     <soap:binding style="rpc|document" transport="uri">
     <operationŠ>
        <soap:operation soapAction="uri"?
                style="rpc|document"?>?
        <input>
            <soap:body parts="nmtokens"?
                use="literal|encoded"
                       encodingStyle="uri-list"?
                          namespace="uri"?>
            <soap:header element="qname" fault="qname"?>*
        </input>
        <output>
            <soap:body parts="nmtokens"?
               use="literal|encoded"
                       encodingStyle="uri-list"?
                          namespace="uri"?>
            <soap:header element="qname" fault="qname"?>*
        </output>
        <fault>*
            <soap:fault name="nmtoken" use="literal|
               encoded"
                        encodingStyle="uri-list"?
                           namespace="uri"?>
        </fault>
     </operation>
    </binding>
 

LISTING 5
<!-- This is how the abstract input message is defined -->
 <message name="GetCompanyInfoInput">
     <!-- Company ticker symbol is a string -->
     <part name="symbol" type="xsd:string"/>
 </message>
 

 Š
 

 <binding name="b1" type="GetCompanyInfoPortType">
     <http:binding verb="GET"/>
     <operation name="GetCompanyInfo">
        <http:operation location="GetCompanyInfo"/>
        <input>
            <http:urlEncoded/>
        </input>
        <output> Š </output>
     </operation>
 </binding>
 

 <binding name="b2" type="GetCompanyInfoPortType">
     <http:binding verb="GET"/>
     <operation name="GetCompanyInfo">
        <http:operation location="GetCompanyInfo/
           (symbol)"/>
        <input>
            <http:urlReplacement/>
        </input>
        <output> Š </output>
     </operation>
 </binding>
 

 <binding name="b3" type="GetCompanyInfoPortType">
     <http:binding verb="POST"/>
     <operation name="GetCompanyInfo">
        <http:operation location="GetCompanyInfo"/>
        <input>
            <mime:content type="application/
                x-www-form-urlencoded"/>
        </input>
        <output> Š </output>
     </operation>
 </binding>