W3C home > Mailing lists > Public > xml-dist-app@w3.org > July 2002

Re: Changing the default value of mustUnderstand to "true"

From: Jean-Jacques Moreau <moreau@crf.canon.fr>
Date: Wed, 03 Jul 2002 10:08:45 +0200
Message-ID: <3D22B10D.584CEF1E@crf.canon.fr>
To: Hugo Haas <hugo@w3.org>
CC: "xml-dist-app@w3.org" <xml-dist-app@w3.org>

Personally, I disagree. I think the general expectation is that all header blocks will be processed,
where mU or not. However, some may be ignored, for a variety of reasons. mU signals blocks that, if not
processed, would significantly alter the processing of the entire message.

IMO, this is very similar to XML processing. An XML processor may (in certain circumstances) decide to
ignore certain elements, such as the ones it does not understand. So I see the default for XML as
mU="false", although formally XML does not have any such element (unless you count DTDs or Schemas;
YMMV).

Jean-Jacques.

> Date: Mon, 1 Jul 2002 15:52:50 -0400
> From: Hugo Haas <hugo@w3.org>
> To: xmlp-comments@w3.org
> Subject: Changing the default value of mustUnderstand to "true"
>
> Hi.
>
> The default value of the mustUnderstand Attribute is "false"[1]:
>
> |   The type of the mustUnderstand attribute information item is boolean
> |   in the namespace "http://www.w3.org/2001/XMLSchema".
> |
> |   Omitting this attribute information item is defined as being
> |   semantically equivalent to including it with a value of "false" or
> |   "0".
>
> Having a header block without mustUnderstand set to "true" allows the
> SOAP node supposed to process this block to ignore it as shown in
> 2.7.1 Forwarding Intermediaries[2]:
>
> |   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.
>
> and in 2.6 Processing SOAP Messages[3]:
>
> |    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 probability that somebody included a header and really wants
> something to happen as a result of its processing is high. The
> probability that the person doesn't care if the header is ignored is
> low.
>
> For example, every header block used as examples in the primer[4]
> (that I saw) uses env:mustUnderstand="true".
>
> It therefore seems natural to make "true" the default value for
> mustUnderstand.
>
> Regards,
>
> Hugo
>
>   1. http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#soapmu
>   2. http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#forwardinter
>   3. http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#procsoapmsgs
>   4. http://www.w3.org/TR/2002/WD-soap12-part0-20020626/
> --
> Hugo Haas - W3C
> mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092
>
Received on Wednesday, 3 July 2002 04:09:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:10 GMT