Web Services Description Language

Template: Infobox file format / Maintenance / Magic number is missing template: Infobox file format / Maintenance / type missing template: Infobox file format / Maintenance / missing site

Template: Infobox file format / Maintenance / Screenshot Format

The Web Services Description Language (WSDL) is a platform -, programming - and protocol-independent language for describing network services ( web services) for exchanging messages based on XML. WSDL is an industrial standard of the World Wide Web Consortium (W3C).


WSDL is a meta language, the functions offered, data, data types, and exchange protocols of a Web service can be described with the help of. Will be substantially the operations defined that can be accessed from the outside, and the parameters and return values ​​of these operations. Specifically, a WSDL document includes functional information on:

  • The interface
  • Access protocol and details for Deployment
  • All information necessary to access the Service, in machine-readable format

However, not included are:

  • Quality-of- Service Information
  • Taxonomies / ontologies for the semantic classification of services

Description elements

Services are defined by six main XML elements:

  • One -way: The service gets an input message from the client.
  • Request Response: The service receives a request ( message input ) from the client and sends a response ( output message ).
  • Solicit - response: The service sends a message and waits for a response from the client.
  • Notification: The service sends an output message.

In addition, these six main elements are divided into the group of abstract and concrete definitions.

Abstract definitions:

  • Types
  • Messages
  • PortTypes (from WSDL 2.0: Interfaces)

Specific definitions:

  • Bindings
  • Ports (from WSDL 2.0: Endpoints )
  • Services

The definition of specific content differs from the existing WSDL interface description languages ​​such as IDL. This had the interfaces described so far only in abstract terms.


WSDL is often used in combination with SOAP and XML Schema to provide Web services on the Internet. A client that invokes a Web service, WSDL can read to determine which features are available on the server. All used special data types are included in the WSDL file in XML form. The source code on the client side is required for assembling the sent items can be automated from the WSDL file is generated. The client can now use SOAP to invoke a function listed in WSDL ultimately.

Example of use

An example will be illustrated in which the individual portions of a WSDL document are linked. In this example, a service is implemented, which returns the current market value of these shares after receiving one shares the name.

< definitions name = " Stock Quote "            targetNamespace = " http://example.com/stockquote.wsdl "            xmlns: tns = " http://example.com/stockquote.wsdl "            xmlns: Xsd1 = " http://example.com/stockquote.xsd "            xmlns: soap = " http://schemas.xmlsoap.org/wsdl/soap/ "            xmlns = " http://schemas.xmlsoap.org/wsdl/ " >                < schema targetNamespace = " http://example.com/stockquote.xsd "                xmlns = " http://www.w3.org/2001/XMLSchema " >                                                                                         < / all >                                                                                                                    < / all >                                         < / types >                      < / message>                      < / message>                                                  < / operation >                                                                                   < / input >                                                  < / operation >                      My first service < / documentation >                               < / port>      < / service>     explanation

Through the element within a function is defined " GetLastTradePrice " that gets an input and an output returns. The input is the name of the share, the output for the value of the stock. The order of - and elements specifies that this operation be a request-response operation. If you change the order (eg first then ) or can be one of the two elements completely gone, then also the " Message Exchange Pattern (MEP) " changes. This allows, for example, also to define operations that emit only a request and not wait for a response.

As a programmer, you must still specify which parameters expect the input and the output. This is done by . In our example, when the operation " GetLastTradePrice " refers to the message " GetLastTradePriceInput " in day.

In individual parameters to a group are combined so that these are available for several operations. In our example, the Message element " GetLastTradePriceInput " has only one parameter , which is of type " Trade Price Request." Therefore, the operation " GetLastTradePrice " only needs one parameter. Would " GetLastTradePriceInput " within Message eg an additional parameter for Exchange defines our operation would accordingly need 2 parameters. As with a function can be forced or "optional" handle with optional use = entry also these parameters with use = "required ".

Now the types ( String, Integer, separate type) must be defined for the parameter. The types are separately < types / > tags defined within the ... This XSD complex and simple data types can be defined according to. " Trade Price Request" is here a complex data type that expects a string. Probably you have here defines a complex type extension aspects, although a simple data type String would have sufficed.

Between .. the message format and protocol is defined. The protocol defines "transport " attribute, which is in our example SOAP. In addition, yet to be determined whether the message in the " rpc style" or "document style" is to be sent, and how the input and output to be encoded. When "document style" only data to the relevant service are sent while transmitting the " rpc style" a particular method along with their parameters, which should be called at the end point.

An endpoint " (port) " is The bindings element bound by a our operations and set the address by which you can reach this port.


On 15 March 2001, the World Wide Web Consortium Web Service Description Language (WSDL) Version 1.1 published score. Since January 6, 2006, version 2 is available in a draft document for the language definition (core language) and the message pattern (message patterns ) on the side of the W3C. On 26 June 2007, version 2.0 was released.

Extensions and differentiation from other developments

WSDL specifies only the syntactical elements of a web service, that is the way how a client can access the corresponding web service. However, beyond this semantic specifications of Web services are often desirable; Information about the response time, cost of services, security requirements as well as detailed specifications of the effects of an operation are needed in particular for automatic discovery ( Discovery ) and orchestration of services. For a description of these parameters is available with an extension of WSDL as WSDL -S or WSLA, for other developments such as OWL -S or WSMO that define ontologies for the semantic description of web services. These ontologies are much more powerful in the description of Web services, but bring a corresponding complexity. In the OGSA ( Open Grid Services Architecture ), a standard description for grid services, with GWSDL ( Grid -extended WSDL), an extension defined, which allows formalized service status (ie status of service instances ) to the interface definition to add.