- From: Hugo Haas <hugo@w3.org>
- Date: Thu, 3 May 2001 18:23:53 +0800
- To: XML Protocol Comments <xml-dist-app@w3.org>
* Martin Gudgin <marting@develop.com> [2001-05-03 15:49+0800] > Suggestion: Define an XMLP Module ( essentially an extension header, as > defined in the XMLP Requirements document[1] ) that is processed by the > ultimate destination whose semantics are; examine the XMLP/SOAP message and > ensure that; a) no header elements exist that have mustUnderstand='1' *and* > should have been processed by an intermediary b) no header elements exist > that have mustUnderstand='1' that the ultimate destination does not > understand. If either a) or b) is not true then a fault will be generated. > > Observations/Open Questions: > > 1. How do we make sure that the ultimate destination has processed/can > process all of the mustUnderstand='1' headers targeted at it? Or do we even > need to bother? Will knowing that intermediaries have processed their > headers, because there are no headers left in the message that are not > targeted at the ultimate destination, be enough? If the XMLP message has reached the ultimate destination, I think that we should trust the final implementation to do the right thing. The problem was more about blocks that were supposed to be processed by someone before this ultimate step and this someone never was contacted. > 2. Do we want to deal with the 'badly written' XMLP/SOAP implementations > that claims to have processed a header but in fact has not? See mail from > Frank DeRose[2] for more detail on this question. Checking that implementations behave correctly might prove to be complex and expensive. I think that we should assume that they behave correctly. > 3. Does an intermediary *always* remove the headers targeted at it? If > not then I think we need some way of annotating them as 'processed'. From the abstract model[3]: 5. When a block is selected for processing at an intermediary, the block is removed from the envelope. A handler may add zero or more blocks. Blocks which are merely referenced are not removed. SOAP: SOAP doesn't allow body entries to be processed at intermediaries and hence they are never removed. So yes, blocks are always removed. [..] > 7. Is processing this at the ultimate destination enough? Or do we need > to have evaluate this at every intermediary? <gulp> My understanding is that the problem we are solving is to know whether an XMLP processor can process the body safely. Therefore, I would say that only the final recipient cares about this test. Some more thoughts about that: if an intermediary along the way wanted to do a similar check, it would need to know what intermediaries had their hands on the message before it and left mandatory blocks unprocessed, which requires some routing audit. 3. http://www.w3.org/2000/xp/Group/1/03/30/XMLProtocolAbstractModel.html#Sec4.2 -- Hugo Haas - W3C mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092
Received on Thursday, 3 May 2001 06:24:03 UTC