Confusing step (#4) in the SOAP processing model

Hi.

Section 2.6 Processing SOAP Messages[1] of SOAP Version 1.2 Part 1:
Messaging Framework[2] 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.

An old version of this text used to say[3]:

|    2. Process SOAP blocks targeted at the SOAP node, generating SOAP
|       faults (see 4.4 SOAP Fault) if necessary. A SOAP node MUST process
|       SOAP blocks identified as mandatory. A SOAP node MAY process or
|       ignore SOAP blocks not so identified.

This seemed to make more sense; a SOAP node:
- MUST process all SOAP header blocks targeted at it that are
  identified as mandatory.
- MAY process or ignore SOAP blocks targeted at it that are not marked
  as mandatory.

Or maybe there is a subtle difference between "application level
processing" and "processing" that I missed.

Regards,

Hugo

  1. http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#procsoapmsgs
  2. http://www.w3.org/TR/2002/WD-soap12-part1-20020626/
  3. http://www.w3.org/TR/2001/WD-soap12-part1-20011002/#procsoapmsgs
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092

Received on Monday, 1 July 2002 15:35:21 UTC