Re: Untargetted blocks (was Re: Must understand mustUnderstand proposal)

	> To: "Jean-Jacques Moreau" <moreau@crf.canon.fr>
	> Cc: xml-dist-app@w3.org, hugo@w3.org
	> From: "Doug Davis" <dug@us.ibm.com>
	> Date: Wed, 9 May 2001 17:01:17 -0700
	> Subject: Re: Untargetted blocks (was Re: Must understand mustUnderstand proposal)

	> So "None" headers are meant to be skipped in terms of gathering the list
	> of headers to process since its not supposed to contain "primary" data
	> but rather "auxiliary" data that is to be used while processing some other
	> block in the envelope?  Well, I guess they wouldn't be picked up anyway
	> since we're assuming there won't be any actors named "None".

The tokens 'None', 'Next', etc. in the Abstract Model are meant to
represent abstract values, not concrete syntax.  The actual values
would be URI's presumably.

	> OK, so, why wouldn't someone place this auxilary data in the header that
	> does actually use it or even in the body (if its used by lots of href's) ?

If it is used by multiple headers, then placing it in a particular
header raises the issue of ensuring that it survives long enough
for the other headers that are sharing it.

Placing it in the body is (roughly) semantically equivalent to putting
it in a header targeted at the final destination.  This again suffers
from the issue that the final destination actually may not be one of
the processors that happens to know/care about this information.  The
body also appears to be a worse choice from the standpoint of such
'None' blocks being introduced by an intermediary for multiple use
downstream -- the SOAP extensibility model uses the header blocks,
not the body.

	> Using headers as placeholders, while probably not disallowed by
	> the SOAP spec, seems a bit odd to me - but ok - thanks for the
	> clarification.

Semantically, there is information and there are processing directives
in XMLP/SOAP messages.  There are cases where multiple processing
directives want to share the same information.  The processing
directives are represented by blocks that are implicitly or explicitly
targeted at some processor.  The informational blocks can be clearly
called out as such by using 'None'.

I would argue that eventually we will also want control structure or
manifest types of blocks that coordinate the processing directives.
There may be various dependencies (e.g., some blocks must be or must
not be processed before others).  These "manifest" blocks would
reference targeted headers, throwing faults if violations were
detected.  This is related to the kind of issues that Noah has
been raising and the mustHappen exercise that Gudge has been doing.

	> -Dug

--mark

Mark A. Jones
AT&T Labs - Research
Shannon Laboratory
Room A201
180 Park Ave.
Florham Park, NJ  07932-0971

email: jones@research.att.com
phone: (973) 360-8326
  fax: (973) 360-8970

Received on Thursday, 10 May 2001 11:01:23 UTC