by Martyn Butterworth
What is WSDL
Web services description language (WSDL) is an XML document that describes a web service. WSDL is often pronounced “wizdul”. It describes what operations a web service provides, the structure of the messages it sends and receives, and how to send those messages. This article is a very brief overview of the common WSDL elements. If you are new to WSDL, you may prefer to read Understanding WSDL.
Core WSDL Elements
A message is an XML document that can be sent or recieved by the web service. A message is usually associated with one or more operation. For example, an operation to “createNewOrder” might have an input message “newOrder” and an output message “orderStatus”.
The portType element is best thought of as an interface, and will be renamed as such in version 1.2 of the WSDL specification. It contains one or more
An operation element defines an operation with the web service. It groups together the message elements that can be passed to or from the web service. An operation can have an input and output message (request-response), or it can just define an input message (one-way), send an output message only (notification) or send an output message to ask for an input message (solicit-response). The operation may also define a fault message too.
A binding element is a collection of one or more operations. It describes how an operation is implemented. It defines the communication protocol (e.g. http), style of service (document or rpc), and the SOAPAction HTTP header for the defined operations.
Document & RPC
The document style indicates that the SOAP body will contain an XML document (and is able to be validated by the previously defined xsd’s). An RPC style indicates that the SOAP body will contain an XML representation of a method call. It includes the method name and parameters of the method to generate the XML structure. Follow this link for a more in-depth discussion on Document and RPC style web services
The service element defines the endpoint (port) that exposes a particular binding. Ie. the URL to use to call an operation within the binding