Pleaserefertotheerrataforthisdocument,whichmayincludesomenormativeThe English version of this specification is the only normative version. Non-normative translations may also be available.corrections.
Copyright ©2006 W3C © 2003 ®(MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark ®and document use ,,andsoftwarerules apply.licensing
This document draws on assertions
found in the SOAP Version 1.2 specifications [SOAP Part 1],
[SOAP Part1]Part 2], and provides a set of tests in
order to show whether the assertions are implemented in a SOAP
processor.Part2]
A SOAP 1.2 implementation that passes all of the tests specified in
this document may claim to conform to the SOAP 1.2 Test Suite,
2003062006 12 19. It is incorrect to claim
to be compliant with the SOAP Version 1.2 specifications merely by
passing successfully all the tests provided in this test suite.
It is also incorrect to claim that an implementation is non compliant
with the SOAP Version 1.2 specifications based on its failure
to pass one or more of the tests in this test suite. 24.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest Therevision of this statusdocumentseriesismaintainedtechnical report can be found in the atW3C technical reports index at http://www.w3.org/TR/.W3C.
This document is a Proposed Edited Recommendation of the W3C. It updates the original Recommendation by the inclusion of the errata. Changes between these two versions are described in a diff document.
This document has been produced by the XML Protocol Working Group, which is part of the Web Services Activity.
IthasbeenreviewedbyW3CMembersandotherinterestedparties,andhasbeenendorsedbythePublication as a Proposed Edited Recommendation does not imply endorsement
by the W3C DirectorRecommendation.Membership. This is a Itdraft document and may be stableusedasreferenceupdated, replaced or
materialcitedasanormativereferencefromanotherdocument.W3C'sroleinmakingtheobsoleted by other documents at any time. It is inappropriate to Recommendationdrawcite this
document as other than work in progress.attention
W3C Advisory Committee Representatives are invited to submit their formal review per the specificationandtopromoteitswidespreaddeployment.Thisinstructions in the enhancesfunctionalityandCall for Review. Members of the interoperabilityWeb.Commentsonthispublic
are documentwelcome.also invited to send Pleasecomments on this his Proposed Edited Recommendation to
the public
mailing-list xmlp-comments@w3.org
(archive).
It is inappropriate to send discussion email to this address.them
InformationaboutimplementationsThe review period extends to 2 February 2007.relevant
Members of the W3C Advisory Committee will find the appropriate review form for this document by consulting their list of current WBS questionnaires.specification
SOAP Version 1.2 supercedes all previous versions of SOAP, including SOAP Version 1.1 [soap11]
The SOAP 1.2 Implementation Report can be found intheImplementationat
http://www.w3.org/2000/xp/Group/2/03/soap1.2implementation.html.
ReportPatentdisclosuresrelevanttothisspecificationAdditional implementation experience of the Request
Optional Response MEP can be found mayin the onWorkingWSDL 2.0 implementation testing here:
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/test-suite/Dashboard.html.Group's
This document is governed by the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page disclosurealso includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in ,accordance with section 6 of the W3C conformancePatent Policy. policy.
A list of current W3C Recommendations and
other technical reports can be found at http://www.w3.org/TR.http://www.w3.org/TR.
1. Introduction
2. SOAP 1.2 Assertions
3. SOAP 1.2 Test Collection
4. References
A. Acknowledgements (Non-Normative)
1. Introduction
2. SOAP 1.2 Assertions
2.1 SOAP 1.2, Part 1 Assertions 2.1
2.2 SOAP 1.2, Part 2 Assertions 2.2
3. SOAP 1.2 Test Collection
3.1 Introduction 3.1
3.2 Header Blocks Used by the Test Collection 3.2
3.2.1 echoOk 3.2.1
3.2.2 responseOk 3.2.2
3.2.3 Ignore 3.2.3
3.2.4 requiredHeader 3.2.4
3.2.5 DataHolder 3.2.5
3.2.6 concatAndForwardEchoOk 3.2.6
3.2.7 concatAndForwardEchoOkArg1 3.2.7
3.2.8 concatAndForwardEchoOkArg2 3.2.8
3.2.9 validateCountryCode 3.2.9
3.2.10 validateCountryCodeFault 3.2.10
3.2.11 echoResolvedRef 3.2.11
3.2.12 responseResolvedRef 3.2.12
3.3 Body Blocks Used by the Test Collection 3.3
3.3.1 echoOk 3.3.1
3.3.2 responseOk 3.3.2
3.3.3 echoHeader 3.3.3
3.3.4 echoHeaderResponse 3.3.4
3.4 RPC Methods/Procedures Used by the Test Collection 3.4
3.4.1 returnVoid 3.4.1
3.4.2 echoStruct 3.4.2
3.4.3 echoStructArray 3.4.3
3.4.4 echoStructAsSimpleTypes 3.4.4
3.4.5 echoSimpleTypesAsStruct 3.4.5
3.4.6 echoNestedStruct 3.4.6
3.4.7 echoNestedArray 3.4.7
3.4.8 echoFloatArray 3.4.8
3.4.9 echoStringArray 3.4.9
3.4.10 echoIntegerArray 3.4.10
3.4.11 echoBase64 3.4.11
3.4.12 echoBoolean 3.4.12
3.4.13 echoDate 3.4.13
3.4.14 echoDecimal 3.4.14
3.4.15 echoFloat 3.4.15
3.4.16 echoString 3.4.16
3.4.17 countItems 3.4.17
3.4.18 isNil 3.4.18
3.5 Tests 3.5
4. References
4.1 Normative References 4.1
4.2 Informative References 4.2
A. Acknowledgements (Non-Normative)
This document draws on assertions found in the SOAP Version 1.2 specifications, and provides a set of tests in order to show whether the assertions are implemented in a SOAP processor. The primary goal of this document is to foster interoperability between different SOAP 1.2 implementations. The document is intended to help implementors to write SOAP processors that comply with SOAP 1.2 specification, and interoperate with other SOAP processors that comply with SOAP 1.2 specification.
A SOAP 1.2 implementation that passes all of the tests specified in this
document may claim to conform to the SOAP 1.2 Test Suite $Date
2006/12/19 $.
2003/06/24
Even though the purpose of the SOAP 1.2 Test Suite is to facilitate the creation of interoperable implementations, conformance to the SOAP 1.2 Test Suite does not imply conformance to the SOAP 1.2 specifications; there are mandatory requirements of the specifications that are not tested by the suite (as a simple example, SOAP 1.2 requires that every legal value of a role name is accepted, and all illegal ones rejected). An implementation may be said to be SOAP 1.2 conformant if and only if it it satisfies the conformance requirements specified in SOAP 1.2 specifications. The W3C does not at this time provide for any comprehensive means of testing for such conformance.
Similarly, an implementation may conform to the SOAP 1.2 specifications even if it does not support all capabilities tested by the SOAP 1.2 Test Suite. SOAP 1.2 specifications admits special purpose implementations, such as those in dedicated controllers, which may send and receive only a very limited suite of messages; the requirement is that whatever is done be done correctly. An implementation may conform to the SOAP 1.2 specifications even if it does not support all capabilities tested by the SOAP 1.2 Test Suite. The test suite defines higher level application semantics to enable testing and facilitate interoperable implementations. It is not necessary for a SOAP processor to support these higher level semantics to be SOAP 1.2 compliant.
Assertions for SOAP Version 1.2 Part 1 and Part 2 are numbered sequentially (1..n). "Location of the assertion" points the source of the assertion (section or subsection number) in Part 1 or Part 2. Hyperlinks are used to cross-reference to the original specification section/subsection.
Some of the tests in this document use SOAPBuilders interoperability tests as a started point, but have been modified to conform to the SOAP 1.2 specifications.
For an implementation to claim conformance with the SOAP Version 1.2 specification, it MUST correctly implement all mandatory ("MUST") requirements expressed in Part 1 of the SOAP Version 1.2 specification (this document) that pertain to the activity being performed. Note that an implementation is not mandated to implement all the mandatory requirements.
SOAP does not require that XML Schema processing (assessment or validation) be performed to establish the correctness or 'schema implied' values of element and attribute information items defined by Parts 1 and 2 of this specification. The values associated with element and attribute information items defined in this specification MUST be carried explicitly in the transmitted SOAP message except where stated otherwise (see 5. SOAP Message Construct).
Unless otherwise stated, all lexical forms are supported for each such attribute, and lexical forms representing the same value in the XML Schema value space are considered equivalent for purposes of SOAP processing, e.g. the boolean lexical forms "1" and "true" are interchangeable.
The roles assumed by a node MUST be invariant during the processing of an individual SOAP message.
This assertion cannot be fully tested, as a SOAP node is allowed to process and remove SOAP headers, reinsert them and send them upstream.
Mandatory SOAP header blocks are presumed to somehow modify the semantics of other SOAP header blocks or SOAP body elements. Therefore, for every mandatory SOAP header block targeted to a node, that node MUST either process the header block or not process the SOAP message at all, and instead generate a fault (see 2.6 Processing SOAP Messages and 5.4 SOAP Fault).
Unless otherwise stated, processing of all generated SOAP messages, SOAP faults and application-level side effects MUST be semantically equivalent to performing the following steps separately, and in the order given.
Determine the set of roles in which the node is to act. The contents of the SOAP envelope, including any SOAP header blocks and the SOAP body, MAY be inspected in making such determination.
Identify all header blocks targeted at the node that are mandatory.
If one or more of the SOAP header blocks identified in the preceding step are not understood by the node then generate a single SOAP fault with the
ValueofCodeset to "env:MustUnderstand" (see 5.4.8 SOAP mustUnderstand Faults). If such a fault is generated, any further processing MUST NOT be done. Faults relating to the contents of the SOAP body MUST NOT be generated in this step.Note:
Throughout this document, the term "
ValueofCode" is used as a shorthand for "value of theValuechild element information item of theCodeelement information item" (see 5.4.1 SOAP Code Element).Process all mandatory SOAP header blocks targeted at the node and, in the case of an ultimate SOAP receiver, the SOAP body. A SOAP node MAY also choose to process non-mandatory SOAP header blocks targeted at it.
In the case of a SOAP intermediary, and where the SOAP message exchange pattern and results of processing (e.g. no fault generated) require that the SOAP message be sent further along the SOAP message path, relay the message as described in section 2.7 Relaying SOAP Messages.
The selection of a fault need not be predicated on the application of the "MUST", "SHOULD" or "MAY" keywords to the generation of the fault, with the exception that if one or more of the prescribed faults is qualified with the "MUST" keyword, then any one fault from the set of possible faults MUST be generated.
Forwarding SOAP intermediaries MUST process the message according to the SOAP processing model defined in 2.6 Processing SOAP Messages. In addition, when generating a SOAP message for the purpose of forwarding, they MUST:
Remove all processed SOAP header blocks.
Remove all non-relayable SOAP header blocks that were targeted at the forwarding node but ignored during processing.
Retain all relayable SOAP header blocks that were targeted at the forwarding node but ignored during processing.
All XML infoset properties of a message MUST be preserved with the following exceptions:
The element information item for a header block targeted at an intermediary MAY be removed, by that intermediary, from the [children] property of the SOAP
Headerelement information item as detailed in 2.7.2 SOAP Forwarding Intermediaries.Element information items for additional header blocks MAY be added to the [children] property of the SOAP
Headerelement information item as detailed in 2.7.2 SOAP Forwarding Intermediaries.Whitespace character information items MAY be removed from the [children] property of the SOAP
Envelopeelement information item.Whitespace character information items MAY be added to the [children] property of the SOAP
Envelopeelement information item.Whitespace character information items MAY be removed from the [children] property of the SOAP
Headerelement information item.Whitespace character information items MAY be added to the [children] property of the SOAP
Headerelement information item.Comment information items MAY be added to the [children] property of the SOAP
Envelopeelement information item.Comment information items MAY be removed from the [children] property of the SOAP
Envelopeelement information item.Comment information items MAY be added to the [children] property of the SOAP
Headerelement information item.Comment information items MAY be removed from the [children] property of the SOAP
Headerelement information item.Attribute information items MAY be added to the [attributes] property of the SOAP
Envelopeelement information item.Attribute information items MAY be added to the [attributes] property of the SOAP
Headerelement information item.Attribute information items MAY be added to the [namespace attributes] property of the SOAP
Envelopeelement information item.Attribute information items MAY be added to the [namespace attributes] property of the SOAP
Headerelement information item.SOAP role attribute information items that are present in the [attributes] property of SOAP header block element information items may be transformed as described in 5.2.2 SOAP role Attribute.
SOAP mustUnderstand attribute information items that are present in the [attributes] property of SOAP header block element information items may be transformed as described in 5.2.3 SOAP mustUnderstand Attribute.
SOAP relay attribute information items that are present in the [attributes] property of SOAP header block element information items may be transformed as described in 5.2.4 SOAP relay Attribute.
The [base URI] property of the document information item need not be maintained.
The [base URI] property of element information items MAY be changed or removed.
The [character encoding scheme] property of the document information item MAY be changed or removed.
All namespace information items in the [in-scope namespaces] of element information items MUST be preserved. Additional namespace information items MAY be added.
A SOAP node MAY support multiple envelope versions. However, when processing a message, a SOAP node MUST use the semantics defined by the version of that message.
If a SOAP node receives a message whose version is not supported it MUST generate a fault (see 5.4 SOAP Fault) with a Value of Code set to "env:VersionMismatch". Any other malformation of the message construct MUST result in the generation of a fault with a Value of Code set to "env:Sender".
The specification of a feature MUST include the following:
A URI used to name the feature. This enables the feature to be unambiguously referenced in description languages or during negotiation.
The information (state) required at each node to implement the feature.
The processing required at each node in order to fulfill the obligations of the feature including any handling of communication failures that might occur in the underlying protocol (see also 4.2 Binding Framework).
The information to be transmitted from node to node.
The specification of a message exchange pattern MUST:
As mandated by 3.1.1 Requirements on Features, provide a URI to name the MEP.
Describe the life cycle of a message exchange conforming to the pattern.
Describe the temporal/causal relationships, if any, of multiple messages exchanged in conformance with the pattern (e.g. responses follow requests and are sent to the originator of the request.)
Describe the normal and abnormal termination of a message exchange conforming to the pattern.
A module specification adheres to the following rules. It:
MUST identify itself with a URI. This enables the module to be unambiguously referenced in description languages or during negotiation.
MUST declare the features provided by a module (see 3.1 SOAP Features).
MUST clearly and completely specify the content and semantics of the SOAP header blocks used to implement the behavior in question, including if appropriate any modifications to the SOAP Processing model. The SOAP extensibility model does not limit the extent to which SOAP can be extended. Nor does it prevent extensions from modifying the SOAP processing model from that described in 2. SOAP Processing Model
MAY utilize the property conventions defined in [SOAP
Part 2], section A Convention for Describing Features and Bindings, in describing the functionality that the module provides. If these conventions are followed, the module specification MUST clearly describe the relationship between the abstract properties and their representations in the SOAP envelope. Note that it is possible to write a feature specification purely in terms of abstract properties, and then write a separate module specification which implements that feature, mapping the properties defined in the feature specification to SOAP header blocks in the SOAP module.Part2]MUST clearly specify any known interactions with or changes to the interpretation of the SOAP body. Furthermore, it MUST clearly specify any known interactions with or changes to the interpretation of other SOAP features and SOAP modules For example, we can imagine a module which encrypts and removes the SOAP body, inserting instead a SOAP header block containing a checksum and an indication of the encryption mechanism used. The specification for such a module would indicate that the decryption algorithm on the receiving side is to be run prior to any other modules which rely on the contents of the SOAP body.
A SOAP message is specified as an XML infoset that consists of a document information item with exactly one member in its [children] property, which MUST be the SOAP
Envelopeelement information item (see 5.1 SOAP Envelope). This element information item is also the value of the [document element] property.
The XML infoset of a SOAP message MUST NOT contain a document type declaration information item.
SOAP messages sent by initial SOAP senders MUST NOT contain processing instruction information items. SOAP intermediaries MUST NOT insert processing instruction information items in SOAP messages they relay. SOAP receivers receiving a SOAP message containing a processing instruction information item SHOULD generate a SOAP fault with the
ValueofCodeset to "env:Sender".
The SOAP
Envelopeelement information item has:
A [local name] of
Envelope.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
Zero or more namespace qualified attribute information items amongst its [attributes] property.
One or two element information items in its [children] property in order as follows:
An optional
Headerelement information item (see 5.2 SOAP Header).A mandatory
Bodyelement information item (see 5.3 SOAP Body).
The
encodingStyleattribute information item MAY appear on the following:
A SOAP header block (see 5.2.1 SOAP Header block).
A child element information item of the SOAP
Bodyelement information item (see 5.3.1 SOAP Body child Element) if that child is not a SOAP Fault element information item (see 5.4 SOAP Fault).A child element information item of the SOAP
Detailelement information item (see 5.4.5.1 SOAP detail entry).Any descendent of 1, 2, and 3 above.
The
encodingStyleattribute information item MUST NOT appear on any element other than above in a SOAP message infoset.
The scope of the
encodingStyleattribute information item is that of its owner element information item and that element information item's descendants, unless a descendant itself carries such an attribute information item.
If no
encodingStyleattribute information item is in scope for a particular element information item or the value of such an attribute information item is "http://www.w3.org/2003/05/soap-envelope/encoding/none" then no claims are made regarding the encoding style of that element information item and its descendants.
The
Headerelement information item has:
A [local name] of
Header.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
Zero or more namespace qualified attribute information items in its [attributes] property.
Zero or more namespace qualified element information items in its [children] property.
Each SOAP header block element information item:
MUST have a [namespace name] property which has a value, that is the name of the element MUST be namespace qualified.
MAY have any number of character information item children. Child character information items whose character code is amongst the whitespace characters as defined by [XML 1.0] are considered significant.
MAY have any number of element information item children. Such element information items MAY be namespace qualified.
MAY have zero or more attribute information items in its [attributes] property. Among these MAY be any or all of the following, which have special significance for SOAP processing:
encodingStyleattribute information item (see 5.1.1 SOAP encodingStyle Attribute ).
roleattribute information item (see 5.2.2 SOAP role Attribute).
mustUnderstandattribute information item (see 5.2.3 SOAP mustUnderstand Attribute).
relayattribute information item (see 5.2.4 SOAP relay Attribute ).
The
roleattribute information item has the following XML infoset properties:
A [local name] of
role.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
A [specified] property with a value of "true".
The type of the
roleattribute information item is xs:anyURI. The value of theroleattribute information item is a URI that names a role that a SOAP node can assume.
A SOAP sender generating a SOAP message SHOULD use the
roleattribute information item only on SOAP header blocks. A SOAP receiver MUST ignore this attribute information item if it appears on descendants of a SOAP header block or on a SOAP body child element information item (or its descendents).
The
mustUnderstandattribute information item has the following XML infoset properties:
A [local name] of
mustUnderstand.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
A [specified] property with a value of "true".
The type of the
mustUnderstandattribute information item is xs:boolean.
A SOAP sender generating a SOAP message SHOULD use the
mustUnderstandattribute information item only on SOAP header blocks. A SOAP receiver MUST ignore this attribute information item if it appears on descendants of a SOAP header block or on a SOAP body child element information item (or its descendents).
The
relayattribute information item has the following XML infoset properties:
A [local name] of
relay.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
A [specified] property with a value of "true".
The type of the relay attribute information item is xs:boolean.
A SOAP sender generating a SOAP message SHOULD use the
relayattribute information item only on SOAP header blocks. A SOAP receiver MUST ignore this attribute information item if it appears on descendants of a SOAP header block or on a SOAP body child element information item (or its descendents).
The
Bodyelement information item has:
A [local name] of
Body.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
Zero or more namespace qualified attribute information items in its [attributes] property.
Zero or more namespace qualified element information items in its [children] property.
The
Faultelement information item has:
A [local name] of
Fault.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
Two or more child element information items in its [children] property in order as follows:
A mandatory
Codeelement information item (see 5.4.1 SOAP Code Element ).A mandatory
Reasonelement information item (see 5.4.2 SOAP Reason Element ).An optional
Nodeelement information item (see 5.4.3 SOAP Node Element ).An optional
Roleelement information item (see 5.4.4 SOAP Role Element ).An optional
Detailelement information item (see 5.4.5 SOAP Detail Element). ).
The
Codeelement information item has:
A [local name] of
Code.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.One or two child element information items in its [children] property, in order, as follows:
A mandatory
Valueelement information item as described below (see 5.4.1.1 SOAP Value element (with Code parent))An optional
Subcodeelement information item as described below (see 5.4.1.2 SOAP Subcode element).
The
Subcodeelement information item has:
A [local name] of
Subcode.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.One or two child element information items in its [children] property, in order, as follows:
A mandatory
Valueelement information item as described below (see 5.4.1.3 SOAP Value element (with Subcode parent)).An optional
Subcodeelement information item (see 5.4.1.2 SOAP Subcode element).
The
Reasonelement information item has:
A [local name] of
Reason.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.One or more
Textelement information item children (see 5.4.2.1 SOAP Text Element). Each childTextelement information item SHOULD have a different value for itsxml:langattribute information item.The type of the
Reasonelement information item is env:faultReason.
The
Textelement information item has:
A [local name] of
Text.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.A mandatory attribute information item with a [local name] of
langand [namespace name] of "http://www.w3.org/XML/1998/namespace". Note that the definition in of thelangattribute information item requires that the [prefix] is "xml" or any capitalization thereof (see [XML 1.0], Language Identification).Any number of character information item children. Child character information items whose character code is amongst the whitespace characters as defined by [XML 1.0] are considered significant.
The type of the
Textelement information item is env:reasontext
The
Nodeelement information item has:
A [local name] of
Node.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.The type of the
Nodeelement information item is xs:anyURI.
SOAP nodes that do not act as the ultimate SOAP receiver MUST include this element information item.
The
Roleelement information item has:
A [local name] of
Role.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.The type of the
Roleelement information item is xs:anyURI.The value of the
Roleelement information item MUST be one of the roles assumed by the node during processing of the message (see 2.2 SOAP Roles and SOAP Nodes).
The
Detailelement information item has:
A [local name] of
Detail.A [namespace name] of
http://www.w3.org/2003/05/soap-envelope.Zero or more attribute information items in its [attributes] property.
Zero or more child element information items in its [children] property.
The
Upgradeelement information item has:
A [local name] of
Upgrade.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
One or more
SupportedEnvelopeelement information items in its [children] property in 5.4.7.2 SOAP SupportedEnvelope Element.The
Upgradeelement information item MUST NOT have anencodingStyleattribute information item.
Each
NotUnderstoodheader block element information item has:
A [local name] of
NotUnderstood.A [namespace name] of "http://www.w3.org/2003/05/soap-envelope".
A
qnameattribute information item in its [attributes] property as described in 5.4.8.2 SOAP QName Attribute.The
NotUnderstoodelement information item MUST NOT have anencodingStyleattribute information item.
SOAP does not define a base URI but relies on the mechanisms defined in [XML Base] and [RFC
3986] for establishing a base URI against which relative URIs can be made absolute.2396]
The use of IP addresses in URIs SHOULD be avoided whenever possible (see [RFC 1900]. However, when used, the literal format for IPv6 addresses in URIs as described by [RFC
3986] SHOULD be supported.2732]
Any SOAP node MUST be able to handle the length of any URI that it publishes and both SOAP senders and SOAP receivers SHOULD be able to deal with URIs of at least 2048 characters in length.
If a SOAP node supports versioning from SOAP 1.1 to SOAP 1.2, then the SOAP node MUST implement the rules described in this appendix.
The rules for dealing with the possible SOAP/1.1 and SOAP Version 1.2 interactions are as follows:
A SOAP/1.1 node receiving a SOAP Version 1.2 message will according to SOAP/1.1 generate a version mismatch SOAP fault based on a SOAP/1.1 message construct. That is, the envelope will have a [local name] of
Envelopeand a [namespace name] of "http://schemas.xmlsoap.org/soap/envelope/".A SOAP Version 1.2 node receiving a SOAP/1.1 message either:
MAY process the message as a SOAP/1.1 message (if supported), or
MUST generate a version mismatch SOAP fault based on a SOAP/1.1 message construct following SOAP/1.1 semantics using a SOAP/1.1 binding to the underlying
protocol(see[soap11]protocol. The SOAP fault SHOULD include an).UpgradeSOAP header block as defined in this specification (see 5.4.7 VersionMismatch Faults) indicating support for SOAP Version 1.2. This allows a receiving SOAP/1.1 node to correctly interpret the SOAP fault generated by the SOAP Version 1.2 node.
The requirement on the behavior of SOAP 1.1 compliant SOAP node will not be tested by the test collection.