WSDL breaks down web services into three specific, identifiable elements that can be combined or reused once defined.
The three major elements of WSDL that can be defined separately are:
A WSDL document has various elements, but they are contained within these three main elements, which can be developed as separate documents and then they can be combined or reused to form complete WSDL files.
A WSDL document contains the following elements:
- Definition : It is the root element of all WSDL documents. It defines the name of the web service, declares multiple namespaces used throughout the remainder of the document, and contains all the service elements described here.
- Data types : The data types to be used in the messages are in the form of XML schemas.
- Message : It is an abstract definition of the data, in the form of a message presented either as an entire document or as arguments to be mapped to a method invocation.
- Operation : It is the abstract definition of the operation for a message, such as naming a method, message queue, or business process, that will accept and process the message.
- Port type : It is an abstract set of operations mapped to one or more end-points, defining the collection of operations for a binding; the collection of operations, as it is abstract, can be mapped to multiple transports through various bindings.
- Binding : It is the concrete protocol and data formats for the operations and messages defined for a particular port type.
- Port : It is a combination of a binding and a network address, providing the target address of the service communication.
- Service : It is a collection of related end-points encompassing the service definitions in the file; the services map the binding to the port and include any extensibility definitions.
In addition to these major elements, the WSDL specification also defines the following utility elements:
- Documentation: This element is used to provide human-readable documentation and can be included inside any other WSDL element.
- Import : This element is used to import other WSDL documents or XML Schemas.
NOTE: WSDL parts are usually generated automatically using web services-aware tools.
The WSDL Document Structure
The main structure of a WSDL document looks like this: