The Web Services Description Language (WSDL) is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service (also referred to as a WSDL file) provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. It thus serves a roughly similar purpose as a method signature in a programming language.
Assuming the service provides a single publicly available function, called sayHello
. This function expects a single string parameter and returns a single string greeting. For example if you pass the parameter world
then service function sayHello
returns the greeting, “Hello, world!”.
HelloWorld WSDL file:
<definitions name="HelloService" targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <message name="SayHelloRequest"> <part name="firstName" type="xsd:string"/> </message> <message name="SayHelloResponse"> <part name="greeting" type="xsd:string"/> </message> <portType name="Hello_PortType"> <operation name="sayHello"> <input message="tns:SayHelloRequest"/> <output message="tns:SayHelloResponse"/> </operation> </portType> <binding name="Hello_Binding" type="tns:Hello_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sayHello"> <soap:operation soapAction="sayHello"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:helloservice" use="encoded"/> </output> </operation> </binding> <service name="Hello_Service"> <documentation>WSDL File for HelloService</documentation> <port binding="tns:Hello_Binding" name="Hello_Port"> <soap:address location="http://www.examples.com/SayHello/"> </port> </service> </definitions>
Analysis of the Example:
Definition
: HelloServiceType
: Using built-in data types and they are defined in XML Schema.Message
:- sayHelloRequest : firstName parameter
- sayHelloresponse: greeting return value
Port Type
: sayHello operation that consists of a request and response service.Binding
: Direction to use the SOAP HTTP transport protocol.Service
: Service available at http://www.examples.com/SayHello/.Port
: Associates the binding with the URI http://www.examples.com/SayHello/ where the running service can be accessed.
Here is a post which explains How to Create Sample WSDL in Eclipse. Also, try this tutorial to Create and Deploy Simple Web Service and Web Service Client.