Both SOAP Version 1.1 and SOAP Version 1.2 are World Wide Web Consortium
(W3C) standards. Web services can be deployed that support not only SOAP 1.1
but also support SOAP 1.2. Some changes from SOAP 1.1 that were made to the
SOAP 1.2 specification are significant, while other changes are minor.
The SOAP 1.2 specification introduces several changes to SOAP 1.1. This
information is not intended to be an in-depth description of all the new or
changed features for SOAP 1.1 and SOAP 1.2. Instead, this information highlights
some of the more important differences between the current versions of SOAP.
The changes to the SOAP 1.2 specification that are significant include
the following updates:
- SOAP 1.1 is based on XML 1.0. SOAP 1.2 is based on XML Information Set
(XML Infoset).
The XML information set (infoset) provides a way to describe
the XML document with XSD schema. However, the infoset does not necessarily
serialize the document with XML 1.0 serialization on which SOAP 1.1 is based..
This new way to describe the XML document helps reveal other serialization
formats, such as a binary protocol format. You can use the binary protocol
format to compact the message into a compact format, where some of the verbose
tagging information might not be required.
In SOAP 1.2 , you can use
the specification of a binding to an underlying protocol to determine which
XML serialization is used in the underlying protocol data units. The HTTP
binding that is specified in SOAP 1.2 - Part 2 uses XML 1.0 as the serialization
of the SOAP message infoset.
- SOAP 1.2 provides the ability to officially define transport protocols,
other than using HTTP, as long as the vendor conforms to the binding framework
that is defined in SOAP 1.2. While HTTP is ubiquitous, it is not as reliable
as other transports including TCP/IP and MQ.
- SOAP 1.2 provides a more specific definition of the SOAP processing model
that removes many of the ambiguities that might lead to interoperability errors
in the absence of the Web Services-Interoperability (WS-I) profiles. The goal
is to significantly reduce the chances of interoperability issues between
different vendors that use SOAP 1.2 implementations.
- SOAP with Attachments API for Java™ (SAAJ) can also stand alone as a simple
mechanism to issue SOAP requests. A major change to the SAAJ specification
is the ability to represent SOAP 1.1 messages and the additional SOAP 1.2
formatted messages. For example, SAAJ Version 1.3 introduces a new set of
constants and methods that are more conducive to SOAP 1.2 (such as getRole(),
getRelay()) on SOAP header elements. There are also additional methods on
the factories for SAAJ to create appropriate SOAP 1.1 or SOAP 1.2 messages.
- The XML namespaces for the envelope and encoding schemas have changed
for SOAP 1.2. These changes distinguish SOAP processors from SOAP 1.1 and
SOAP 1.2 messages and supports changes in the SOAP schema, without affecting
existing implementations.
- Java Architecture
for XML Web Services (JAX-WS) introduces the ability to support both SOAP
1.1 and SOAP 1.2. Because JAX-RPC introduced a requirement to manipulate a
SOAP message as it traversed through the run time, there became a need to
represent this message in its appropriate SOAP context. In JAX-WS, a number
of additional enhancements result from the support for SAAJ 1.3.
- The Web Services Description Language (WSDL) Version 1.1 specification
does not discuss SOAP 1.2. SOAP 1.2 is discussed in the draft versions of
WSDL 2.0. WSDL Version 1.1 only defines how to render a SOAP 1.1 payload in
a WSDL 1.1 document. To resolve how to represent SOAP 1.2-based services,
there is another W3C document that defines how to define a SOAP 1.2 payload
within a WSDL 1.1 document. Read about WSDL 1.1 binding extensions for SOAP
1.2.
- SOAP 1.1 is a single document. The SOAP 1.2 specification is organized
in the following parts:
- Part 0 is a non-normative introduction to SOAP.
- Part 1 describes the structure of SOAP messages, the SOAP processing model
and a framework for binding SOAP to underlying protocols. Conformant SOAP
implementations must implement everything in Part 1.
- Part 2 describes optional add-ins to the core of SOAP including a data
model and encoding, an RPC convention and a binding to HTTP. Conformant SOAP
implementations might implement any of the add-ins in Part 2. However, if
add-ins are implemented, they must conform to the relevant parts of the specification.
A fourth document is the Specification Assertions and Test Collection
SOAP 1.2 has a number of changes in syntax and provides additional, clarified
semantics from those that are described in SOAP 1.1. The SOAP 1.2 Primer document
lists and describes these syntax changes.