Proposal for SOAP 1.2 LC-Issue 371: Multiple Choice Assertions

Hi Kirill,

Looking at issue 371 [0], I think we may have an answer for this
particular case. Whether we have answers for all possible cases in the
spec is hard to say but hopefully we do cover them all.

The short answer is that the processing of individual header blocks does
not have to be consistent, i.e. result in the same outcome, as long as
the basic SOAP processing model is followed.

The slightly longer explanation is based on the processing model
description in section 2.6 [1] which states that before a SOAP node
starts processing a message then it must check that it understands all
instances of header blocks with mU=true. In addition, the term
"understanding" is defined in section 2.4 as [2]:

"A SOAP header block is said to be understood by a SOAP node if the
software at that SOAP node has been written to fully conform to and
implement the semantics conveyed by the combination of [local name] and
[namespace name] of the outer-most element information item of that
header block"

The description in section 2.4 [2] is only intended to define the impact
of the mustUnderstand attribute on a single header block, not on the
processing of the overall message.

While the mU check ensures that a header block is understood, it does
not guarantee that the processing of the header block will succeed. This
depends on the specific semantics of the individual header block, or
potentially on the presence or lack thereof of multiple header blocks in
the same message. For example, one could imagine a SOAP module that only
allowed one instance of a header block in a particular message.

Proposal: We could clarify this in section 2.6 by adding a sentence to
the paragraph:

"In all cases where a SOAP header block is processed, the SOAP node MUST
understand the SOAP header block and MUST do such processing in a manner
fully conformant with the specification for that header block."

with a sentence along the lines of 

"In all cases where a SOAP header block is processed, the SOAP node MUST
understand the SOAP header block and MUST do such processing in a manner
fully conformant with the specification for that header block.
Successful processing of one header block does not guarantee successful
processing of another block with the same fully qualified name within
the same message."

Comments?

Henrik Frystyk Nielsen
mailto:henrikn@microsoft.com

[0] http://www.w3.org/2000/xp/Group/xmlp-lc-issues.html#x371
[1]
http://www.w3.org/2000/xp/Group/2/10/LC/soap12-part1.html#procsoapmsgs
[2]
http://www.w3.org/2000/xp/Group/2/10/LC/soap12-part1.html#muprocessing

Received on Monday, 21 October 2002 13:43:31 UTC