Rationale for Dropping the <soap:body use=...> Attribute

This issue came up at the f2f.

The WSDL 1.1 SOAP binding currently has a use attribute which can take
the values literal and encoded. The use attribute interacts with the
encodingStyle attribute. The cases are as follows:

1. use="literal", encodingStyle="". The SOAP message is exactly as
described by its XML schema, but nothing is claimed about how the schema
was derived.

2. use="literal", encodingStyle="some-URI". The SOAP message is exactly
as described by its XML schema and the schema was derived using the
encoding algorithm identified by some-URI. The writer of the message is
required to create it exactly as described by the schema. The knowledge
of the encoding algorithm can be exploited by tools that might generate
a data structure from the schema. The main example here is SOAP
encoding. WS-I.org is defining a new algorithm for object graphs.

3. use="encoded", encodingStyle="some-URI". The SOAP message is not
necessarily as described by the XML schema which was derived using the
encoding algorithm identified by some-URI. There may be variants in the
message not described in the schema. The reader of the message is
required to understand all variants. For example, in SOAP encoding,
element content can appear inline or via reference (e.g. for
multi-reference objects).

4. use="encoded", encodingStyle="". This case is not allowed. If the
SOAP message is encoded then there must be an encoding style.

WS-I.org has studied interoperability problems and has come to the
conclusion that only use="literal" should be used where interoperability
is required. Since interoperability is one of the main features of Web
services, it seems reasonable to follow this recommendation in WSDL 1.2.
This recommendation does not really restrict the message content. It
only restricts how the message is described in WSDL. Case #3 is
disallowed. This places the burden on the Web service implementor to
describe the messages exactly.

In many cases, SOAP encoding can be described by an accurate schema,
e.g. if the data is tree like. Also, the new WS-I.org proposal for
encoding object graphs does have accurate schemas. It is therefore not
necessary to remove the encodingStyle attribute since this is a valuable
hint to tools. However, if only use="literal" is supported, then the use
attribute can be safely dropped.

-- Arthur Ryman

Received on Tuesday, 17 September 2002 16:49:14 UTC