Herong's Tutorial Notes on Web Service and SOAP
Dr. Herong Yang, Version 4.00

Whis Is WSDL (Web Services Definition Language)?

This section describes what is WSDL (Web Services Definition Language).

WSDL (Web Services Definition Language): An XML based standard designed to describes protocol bindings and message formats of Web services. WSDL is often pronounced as "Whiz-Dull".

A WSDL document is an XML document written in WSDL to describe Web service. Here is a copy of the WSDL document for the demonstration Web service used in previous sections. You can download one yourself by going to http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl with your Web browser:

<?xml version="1.0"?>
<definitions name="TemperatureService" 
 targetNamespace="http://www.xmethods.net/sd/TemperatureService.wsdl"
 xmlns:tns="http://www.xmethods.net/sd/TemperatureService.wsdl"   
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
 xmlns="http://schemas.xmlsoap.org/wsdl/">
 <message name="getTempRequest">
  <part name="zipcode" type="xsd:string"/>
 </message>
 <message name="getTempResponse">
  <part name="return" type="xsd:float"/>
 </message>
 <portType name="TemperaturePortType">
  <operation name="getTemp">
   <input message="tns:getTempRequest"/>
   <output message="tns:getTempResponse"/>
  </operation>
 </portType>
 <binding name="TemperatureBinding" type="tns:TemperaturePortType">
  <soap:binding style="rpc"
   transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="getTemp">
   <soap:operation soapAction=""/>
   <input>
    <soap:body use="encoded"
     namespace="urn:xmethods-Temperature-Demo"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   </input>
   <output>
    <soap:body use="encoded"
     namespace="urn:xmethods-Temperature-Demo"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   </output>
  </operation>
 </binding>
 <service name="TemperatureService">
  <documentation>Returns current temperature in a given U.S. zipcode
  </documentation>
  <port name="TemperaturePort" binding="tns:TemperatureBinding">
   <soap:address
  location="http://services.xmethods.net:80/soap/servlet/rpcrouter"/>
  </port>
 </service>
</definitions>

I cannot read this document well before learning the WSDL specifications. But it seems to be describing precisely how this Web service should be used.

Last update: 2007.

Sections in This Chapter

What Is PHP SOAP Extension?

GetTemp.php - First Example with SOAP

PHP SOAP Extension Functions for Client Programs

GetTempDump.php - Dumping Debugging Information

Whis Is WSDL (Web Services Definition Language)?

Using SOAP Extension in non-WDSL Mode

Dr. Herong Yang, updated in 2009
Whis Is WSDL (Web Services Definition Language)?