What's New in WSDL 2.0
The W3C's Web Services Description Working Group, part of the Web Services Activity, has defined a language for describing web services and the possible ways to interact with them. The WG published its WSDL 2.0 working drafts on 26 March 2004. This is a significant milestone in the progress of WSDL. In this article, I discuss the changes that were made to the WSDL 1.1 specification and other major improvements to the service description language.
W3C WSDL 2.0 Working Drafts
W3C has published the following core working drafts as part of its working group deliverables:
Other related working drafts include requirements and usage scenarios.
The W3C XML Schema definition for WSDL 2.0 specification can be found at http://www.w3.org/2003/11/wsdl/.
The editor's copies of these documents provide updated information about the progress of these specifications.
Changes from the WSDL 1.1 Specification
WSDL 1.2 was renamed WSDL 2.0 because of its substantial differences from WSDL 1.1. Some of these changes include:
Adding further semantics to the description language. This is one of the reasons for making
targetNamespacea required attribute of the
definitionselement in WSDL 2.0.
Removal of message constructs. These are specified using the XML schema type system in the
No support for operator overloading.
interfaces. Support for interface inheritance is achieved by using the
extendsattribute in the
WSDL 2.0 Conceptual Model
The description of a web service can be modeled in two parts. In
the abstract part, WSDL describes a web service in terms of messages
it sends and receives through a type system, typically W3C XML
Schema. Message exchange patterns define the sequence and cardinality
of messages. An
operation associates message exchange patterns
with one or more messages. An
interface groups these operations
in a transport and wire independent manner.
In the concrete part of the description,
the transport and wire format for interfaces. A service
endpoint associates network address with a binding. Finally,
service groups the endpoints that implement a common
interface. Figure 1 shows the conceptual WSDL component model.
Figure 1: WSDL Conceptual model
WSDL provides a set of components and their associated properties for describing web services. Listing 2 shows the skeleton of the WSDL 2.0 description. The following section gives a brief overview about each of these components.
<definitions targetNamespace="xs:anyURI"> <documentation /> ? [<import /> | <include /> ] * <types /> ? [<interface /> | <binding /> | <service /> ] * </definitions>
Listing 2: WSDL 2.0 Skeleton
definitions element is the root of any WSDL document.
It serves as a container which holds all the necessary information
about the service and its attributes. Figure 2 shows the schema for
definitions element. The
targetNamespace attribute of the
definitions element is
a required attribute of type
anyURI. The namespace can directly or indirectly define the
semantics of the WSDL. Also, the
definitions element can have other optional attributes which
correspond to various namespaces that may be used with in the WSDL
include element helps to modularize the web service
descriptions so that separation of various service definition
components from the same target namespace can be allowed to exist in
another WSDL document which can be used or shared across web service
location attribute is mandatory and specifies
the location of these WSDL documents. The actual value of the target
namespace of the included WSDL must match the target namespace of
definitions element in the including WSDL. Figure 3 shows
the XML schema for the