LC Issue 229

On last nights WG telcon I took an action to try to clarify LC 
Issue 229[1]:

"Section 2.6 Processing SOAP Messages of SOAP Version 1.2 Part 1:
Messaging Framework reads:

|    4. Process all header blocks targeted at the node and, in the 
case of
|       an ultimate SOAP receiver, the SOAP body. A SOAP node MUST 
process
|       all SOAP header blocks targeted at it. A SOAP node MAY choose to
|       ignore the application level processing specified by 
non-mandatory
|       SOAP header blocks targeted at it.

The last two sentences seem contradictory. A SOAP node:
- MUST process all SOAP header blocks targeted at it.
- MAY choose to ignore the application level processing specified by
   non-mandatory SOAP header blocks targeted at it."

I think this issue originates in a dual meaning of 'process' in the 
above text:

(i) "A SOAP node MUST process all SOAP header blocks targeted at it."
I think this means that a node must follow the SOAP processing 
rules for all header blocks targetted at it (whether they are acted 
upon or not). I.e. remove those blocks if the message is forwarded.

(ii) "A SOAP node MAY choose to ignore the application level 
processing specified by non-mandatory SOAP header blocks targeted 
at it."
I think this means that a node can choose not to perform the 
processing requested by the presence of non-mandatory header blocks.


Proposal
========

I agree with the issue originator that the above wording is 
confusing and would like to offer the following proposed 
replacement (which is a reworded version of that provided by the 
issue originator).

"4. Process all mandatory 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."

Note that Section 2.7.1 contains the following paragraph:

"Forwarding intermediaries MUST process the message according to 
the SOAP processing model defined in 2.6 Processing SOAP Messages. 
They MUST also remove from the message all SOAP header blocks 
targeted at themselves, prior to forwarding, regardless of whether 
these header blocks were processed or ignored."

This seems to cover the implications of (i) above nicely.

Regards,
Marc.

[1] http://www.w3.org/2000/xp/Group/xmlp-lc-issues.html#x229
--
Marc Hadley <marc.hadley@sun.com>
XML Technology Center, Sun Microsystems.

Received on Thursday, 11 July 2002 10:15:53 UTC