- From: Christopher Ferris <chris.ferris@sun.com>
- Date: Fri, 29 Mar 2002 07:06:31 -0500
- To: xml-dist-app@w3.org
Mark, Unless there's been a drastic change to SOAP in the last couple of days, the contents of the SOAP Body element are targetted implicitly at the ultimate SOAP receiver node, not at intermediaries. An intermediary can peek at the contents, but it is NOT supposed to "process" the contents in the SOAP sense. An intermediary SOAP node by definition MUST NOT assume the role of http://www.w3.org/.../role/ultimateReceiver. From section 2.2 of SOAP 1.2 Part 1[1]: "http://www.w3.org/2001/12/soap-envelope/role/ultimateReceiver" To establish itself as an ultimate SOAP receiver a SOAP node MUST act in this role. SOAP intermediaries MUST NOT act in this role. From section 2.3 of SOAP 1.2 Part 1: The ultimate SOAP receiver MUST process the message body. The SOAP message path for that message ends at its ultimate SOAP receiver. From section 2.4 of SOAP 1.2 Part 1: Mandatory blocks MUST be presumed to somehow modify the semantics of other headers or body elements. Therefore, for every mandatory SOAP header block targeted to a node, that node MUST either process the 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). From section 2.5 of SOAP 1.2 Part 1: An ultimate SOAP receiver MUST correctly process the immediate children of the SOAP body (see 5.3 SOAP Body). Thus, if you want to modify the semantics of SOAP Fault EII as child of the SOAP Body EII, you must then include a SOAP Header extension (block) that changes its semantic meaning to be something other than a SOAP Fault and target that SOAP Header extension at the SOAP node operating in the .../ultimateReceiver role. e.g. SOAP Fault as data extension module [namespace name] http://example.com/my/extensions [local name] ThisFaultIsNotReallyAFault [attributes] [namespace name] http://www.w3.org/.../soap-envelope [local name] mustUnderstand [normalized value] true [attribute type] xsi:boolean [specified] true Including this SOAP Header extension in a SOAP message changes the semantic meaning of a SOAP Fault EII carried as a child of the SOAP Body EII in a SOAP message such that the SOAP node operating in the role of .../ultimateReceiver MUST not treat it as a SOAP Fault, but as application data. I honestly don't understand how you can claim that the semantics of a SOAP Fault EII as child of the SOAP Body EII is somehow a violation of R803. To restate R803: "XMLP must not preclude the use of transport bindings that define transport intermediary roles such as store-and-forward, proxy and gateway." As I have pointed out, a SOAP intermediary doesn't "process" in the SOAP sense the contents of the SOAP Body EII. An intermediary that processes the SOAP message (in the SOAP sense) is by definition a SOAP node and MUST abide by the SOAP processing rules as defined in section 2.6 of SOAP 1.2 Part 1. Anything else is simply not a SOAP intermediary, but that doesn't preclude a non SOAP intermediary at the transport level (routers, switches, proxies, etc.) Additionally, in a side thread on this list[2], you are arguing that HTTP is NOT a 'transport' and R803 is about 'transport' intermediaries;) (couldn't resist that:) Cheers, Chris [1] http://www.w3.org/2000/xp/Group/1/10/11/soap12-part1.html [2] http://lists.w3.org/Archives/Public/xml-dist-app/2002Mar/0322.html Mark Baker wrote: >>Chapter 2 of the soap framework makes >>clear that a fault in such a successfully received message will be treated >>as a fault. >> > > I just re-read section 2, and didn't notice anything like that. But if > there was something in there that said what you claim, it would be a > violation of R803. > > >>So, I think it's quite legitimate for you to argue that my proposal would >>be the wrong one on the merits. I don't see how it could be an R803 >>violation. Thank you. >> > > That's fair (modulo the above concern). But I'd ask that we clearly > label this binding as being one that will prevent some HTTP > intermediaries from being used in the chain. > > MB >
Received on Friday, 29 March 2002 07:07:29 UTC