Core Elements of a WSDL 1.1 Document Explained
A Web Services Description Language (WSDL) 1.1 document serves as an XML-based contract that defines how to interact with a web service. It standardizes service communication by detailing the data formats, operations, transport protocols, and network locations required for clients to interact with the service. The document is divided into abstract definitions, which describe the data and operations independently of transport mechanisms, and concrete definitions, which bind those operations to specific protocols and network addresses.
1. <definitions>
(Root Element)
The <definitions> element is the root tag of every
WSDL 1.1 document. It encapsulates the entire service contract, defines
the name of the web service, and declares the XML namespaces
(xmlns) used throughout the document to avoid naming
conflicts.
2. <types>
The <types> element defines the data types used in
the messages transmitted between the client and the server. It acts as a
data dictionary and typically relies on W3C XML Schema (XSD) to define
complex data structures, elements, and basic types (such as strings,
integers, and booleans).
3. <message>
The <message> element describes an abstract, typed
definition of the data being communicated. A single message consists of
one or more <part> elements, where each part
represents a parameter or return value mapped to a specific data type
defined in the <types> section. Messages are used to
construct input, output, and fault payloads.
4. <portType>
The <portType> element defines the abstract
interface of the web service. It groups a collection of
<operation> elements, which represent individual
actions or methods exposed by the service. Each operation defines the
expected flow of data using three primary sub-elements: *
<input>: The message the service expects to receive.
* <output>: The message the service returns in
response. * <fault>: The message returned when an
error occurs during processing.
5. <binding>
The <binding> element links an abstract
<portType> to concrete transport protocols and data
formats. It specifies details such as: * The communication protocol
(typically SOAP over HTTP). * The messaging style (RPC or Document). *
The encoding used (Literal or Encoded). * Protocol-specific headers and
actions (such as SOAPAction).
6. <port>
The <port> (sometimes referred to as an endpoint)
defines a single concrete endpoint by associating a
<binding> with a physical network address (such as a
URL). A port indicates exactly where a client must send requests to
invoke the operations defined by that binding.
7. <service>
The <service> element is the aggregate container
for the web service. It contains a collection of related
<port> elements, effectively telling the client where
to access the service and through which protocols.