SOAP originally stood for Simple Object Access Protocol, but it is no longer restricted in any way to object access or object-oriented use. Starting with version 1.2, the acronym is no longer officially spelled out; that is, "SOAP" is just a name. Although it originated from an industrial consortium, the XML Protocol Working Group of the W3C now has change control for new versions of SOAP. Here we give an overview of the features that SOAP includes and excludes, examine its relationship to XML, and list the basic SOAP namespaces.
8.1.1 Features Included and Excluded
Draft Version 1.2 [SOAP] includes the following:
To achieve its goals of simplicity and extensibility, SOAP excludes the following features (and some others not listed here):
An application based on SOAP can add features through SOAP Headers.
8.1.2 Relation of SOAP to XML
SOAP imposes substantial restrictions on the XML it uses. In particular, SOAP messages (i.e., documents) must obey the following restrictions:
Also, note that SOAP defines some global attributes that you can use in any SOAP namespace element. In particular, you can use "id" of type ID, and "href" of schema type anyURI. The "id" attribute uniquely identifies an encoded element and the "href" attribute references a value.
8.1.3 Basic SOAP Namespaces
The following namespaces are part of the basic mechanisms of the SOAP version 1.2 draft. Additional namespaces are used in connection with encoding and remote procedure calls.
The SOAP envelope syntax, discussed in Section 8.2, has the namespace identifier
The SOAP MustUnderstand Fault has the namespace identifier
The SOAP Upgrade element that you use in connection with version negotiation has the namespace identifier
Do not confuse the "MustUnderstand" fault and the "mustUnderstand" attribute that differ in terms of the capitalization of their names.