This specification defines the .NET Binary Format: SOAP Data Structure, which is a new format built by extending the format described in the .NET Binary Format: XML Data Structure, as specified in [MC-NBFX]. While the SOAP data structure is structurally identical to the XML data structure, should not be used where an XML data structure document is expected.
The XML Data Structure specifies a binary XML format to efficiently encode the structures that are common to any XML document. The SOAP protocol specifies an XML document with specific structures that are common to many SOAP messages. While using XML Data Structure alone to encode SOAP messages provides efficiencies for the structures of XML, one can observe that strings common to many SOAP messages are still encoded in their entirety. Furthermore, the XML data structure does not specify how a producer and a consumer of a document agree on the strings referenced within a document.
The purpose of the SOAP data structure is to extend the XML data structure format to further reduce the cost of generating SOAP documents by defining a shortened structure of strings to which a producer and a consumer can refer.
Sections 1.7 and 2 of this specification are normative and can contain the terms MAY, SHOULD, MUST, MUST NOT, and SHOULD NOT as defined in [RFC2119]. All other sections and examples in this specification are informative.