|
< previous index |
WSDL: about SOAP |
next > |
|
The third file defines the SOAP activities. (Filename in $service). Usually, the portType is defined in the name-space, but as this example shows, that is not required. Also, often the message content (as shown on the first page) is included in the same name-space and file.
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote/service"
xmlns:tns="http://example.com/stockquote/service"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:defs="http://example.com/stockquote/definitions"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<import namespace="http://example.com/stockquote/definitions"
location="http://example.com/stockquote/stockquote.wsdl"/>
<binding name="StockQuoteSoapBinding" type="defs:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
The binding connects the externally visible service name to the portType. As you can see, this is a document soap interaction: well defined. `Literal' means un-encoded: especially in XML-RPC, program data structures are automatically encapsulated via some encoding mechanism. | ||
|
YAPC::EU 2007 Vienna, Presentation of XML::Compile second part, by Mark Overmeer. | ||