Red Hat Training
A Red Hat training course is available for Red Hat Fuse
Chapter 1. Introducing WSDL Contracts
WSDL documents define services using Web Service Description Language and a number of possible extensions. The documents have a logical part and a concrete part. The abstract part of the contract defines the service in terms of implementation neutral data types and messages. The concrete part of the document defines how an endpoint implementing a service will interact with the outside world.
The recommended approach to design services is to define your services in WSDL and XML Schema before writing any code. When hand-editing WSDL documents you must make sure that the document is valid, as well as correct. To do this you must have some familiarity with WSDL. You can find the standard on the W3C web site, www.w3.org.
1.1. Structure of a WSDL document
A WSDL document is, at its simplest, a collection of elements contained within a root
definitionelement. These elements describe a service and how an endpoint implementing that service is accessed.
A WSDL document has two distinct parts:
- A logical part that defines the service in implementation neutral terms
- A concrete part that defines how an endpoint implementing the service is exposed on a network
The logical part
The logical part of a WSDL document contains the
message, and the
portTypeelements. It describes the service’s interface and the messages exchanged by the service. Within the
typeselement, XML Schema is used to define the structure of the data that makes up the messages. A number of
messageelements are used to define the structure of the messages used by the service. The
portTypeelement contains one or more
operationelements that define the messages sent by the operations exposed by the service.
The concrete part
The concrete part of a WSDL document contains the
serviceelements. It describes how an endpoint that implements the service connects to the outside world. The
bindingelements describe how the data units described by the
messageelements are mapped into a concrete, on-the-wire data format, such as SOAP. The
serviceelements contain one or more
portelements which define the endpoints implementing the service.