WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
encodingStyle="uri" for use="encoded"
This section provides a tutorial example on how to write a WSDL 1.1 example that uses SOAP 1.1 over HTTP with style='rpc', use='encoded' and encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
When I use SOAP Extension included in PHP 5.3.1 to test RPC method based Web services, I noticed that my program failed on WSDL document that includes use="encoded" without encodingStyle="uri". SOAP Extension does not provide any default encodingStyle value.
To help testing SOAP Extension programs, I wrote another WSDL example with:
In this WSDL example, I defined a GetStockPrice Web service, which allows you to get a stock price with 3 inputs: stock, market, and date. Here is the WSDL document, GetStockPrice_WSDL_11_SOAP_11_RPC.wsdl:
<?xml version="1.0"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:hy="https://www.herongyang.com/Service/"
targetNamespace="https://www.herongyang.com/Service/">
<wsdl:documentation>
GetStockPrice_WSDL_11_SOAP_11_RPC.wsdl
Copyright (c) 2007 HerongYang.com. All Rights Reserved.
</wsdl:documentation>
<wsdl:message name="getStockPriceInputMessage">
<wsdl:part name="datePart" type="xsd:date"/>
<wsdl:part name="stockPart" type="xsd:string"/>
<wsdl:part name="marketPart" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getStockPriceOutputMessage">
<wsdl:part name="pricePart" type="xsd:decimal"/>
</wsdl:message>
<wsdl:portType name="getStockPricePortType">
<wsdl:operation name="GetStockPrice">
<wsdl:input name="getStockPriceInput"
message="hy:getStockPriceInputMessage"/>
<wsdl:output name="getStockPriceOutput"
message="hy:getStockPriceOutputMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="getStockPriceBinding"
type="hy:getStockPricePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="GetStockPrice">
<soap:operation style="rpc"
soapAction="https://www.herongyang.com/Service/getStockPrice"/>
<wsdl:input name="getStockPriceInput">
<soap:body use="encoded"
parts="stockPart marketPart datePart"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output name="getStockPriceOutput">
<soap:body use="encoded" parts="pricePart"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="getStockPriceService">
<wsdl:port name="getStockPricePort"
binding="hy:getStockPriceBinding">
<soap:address location=
"https://www.herongyang.com/Service/GetStockPrice.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
See the next tutorial for testing requests and responses.
Table of Contents
WSDL 2.0 Document Structure and Syntax
WSDL Version 2.0 Part 2: Adjuncts
WSDL 2.0 Document Examples with SOAP Binding
Using WSDL Document in Java Apache Axis2/Java for WSDL
Apache Woden for WSDL Documents in Java
SoapUI - Web Service Testing Tool
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
SoapUI as WSDL 1.1 Testing Tool
►WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
SOAP 1.1 Message Styles and Encoding Options
document/literal Example - Guest Registration
Request and Response - Guest Registration
rpc/encoded Example - Get Exchange Rate
Request and Response - Get Exchange Rate
SOAP Body and Operation Name - Book Reservation
Request and Response - Book Reservation
elementFormDefault="qualified" - Refill Order
Request and Response - Refill Order
►encodingStyle="uri" for use="encoded"
Request and Response - Get Stock Price
PHP SOAP Extension for WSDL 1.1
Apache Axis2/Java for WSDL 1.1
Using WSDL2Java to Generate Web Service Stub Classes
WSDL 1.1 Binding Extension for SOAP 1.2
WSDL 1.1 and SOAP 1.2 Examples - Document and RPC Styles