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.