Positions on issue 19

The following is what I believe is a summary of the discussion we have
had on issue 19 [1] that says:

	The SOAP spec currently does not require any namespace
	for the children elements of the Fault element; namely,
	faultcode, faultstring, detail, and faultactor. These
	elements are therefore in the default namespace.

It continues with some discussion on the mailing list (see refs from
[1]). The fault structure is defined as follows (the latest Rec schema
for the envelope [2]) where the fault sub-elements "faultcode",
"faultactor", and "faultstring" are declared as unqualified local
elements.

  <!-- XMLP/SOAP fault reporting structure -->
  <complexType name="Fault" final="extension">
    <sequence>
   <element name="faultcode" type="qname"/>
    <element name="faultstring" type="string"/>
    <element name="faultactor" type="uri-reference" minOccurs="0"/>
    <element name="detail" type="tns:detail" minOccurs="0"/>
  </sequence>
  </complexType>

  <complexType name="detail">
    <sequence>
   <any minOccurs="0" maxOccurs="unbounded"/>
  </sequence>
    <anyAttribute/> 
  </complexType>

Note that there are different ways of assigning namespaces and so we
have to differentiate between "having a prefix" and "being qualified".
Howeveer, it is not entirely correct to say that these elements are in
the default namespace. They are unqualified local names and as such
should not be qualified by a default namespace or otherwise. That is, if
there is a default namespace then that would have to be unset.

Anyway, the two positions are as far as I gather:

1) The SOAP fault elements should be qualified (local names?)
2) The SOAP fault elements should be unqualified local names

It is not clear whether 1) calls for global names or whether it calls
for qualified local names but the intent seems to be to use default
namespaces.

Without taking too strong a position I wonder whether it ever makes
sense to use default namespaces in SOAP. Almost by definition a SOAP
message will contain multiple namespaces with independent schema
definitions and without intimate knowledge about the complete message it
seems likely that a default namespace would step on local elements
unless being very careful. This is certainly the case if using the SOAP
section 5 encoding. Also, intermediaries would have to be extremely
careful if inserting blocks into messages with default namespaces.

If this is true then it would seem a weak argument for changing things
from what they are now. In fact, should we discourage the use of default
namespaces?

Thoughts?

Henrik Frystyk Nielsen 
mailto:henrikn@microsoft.com 

[1] http://www.w3.org/2000/xp/Group/xmlp-issues#x19
[2] http://www.w3.org/2000/xp/Group/1/04/17/xmlp-soap-01#_Toc478384001

Received on Sunday, 27 May 2001 20:10:00 UTC