Proposed resolution on using schemas to default itemType and nodeClass (subissue of 231)

This note is in fulfillment of an action that I took on todays WG call.

During the WG discussion of issue 231 [1], some members of the workgroup
expressed a concern that SOAP should allow schemas to be used to provide
defaults for attributes such as itemType, and for the new nodeClass
attribute (which is being proposed as the means of allowing a message to
explicitly distinguish struct/array/simple values.)  This note is ONLY on
the subissue of whether schemas can be used to provide defaults for these
values.

Background:

We have had a general principle, going back to SOAP 1.1, that normative
SOAP processing does not depend on any particular schema or validation
language, or especially on any defaults supplied by a schema or DTD.  Our
last working draft [2] and current editors' drafts thus both require that
itemType have a "specified" infoset property with a value of "true".  The
editors draft also suggests the same for the new attribute that we've just
decided to call nodeClass (which will take the values
"simple/struct/array", I think -- someone else will be sending the formal
proposal on that.)  Thus, our normative specification is saying:  "if these
attributes are explicitly present in the message, we describe the effect on
the graph;  they may be missing, in which case their values are assumed
unspecified.  We provide no normative interpretation for any default values
supplied from a schema."

Appendix B of part 2 [3], which is now appendix C in the editors' copy[4],
already explains the non-normative use of schemas to supply typing
information to augment the encoded graphs.  I propose to use a similar
approach for attribute defaults.

Proposal:

Anyone reviewing this proposal is encouraged to first read all of that
Appendix (it's short).  The proposal is as follows.  The first part goes
beyond what I think was explicitly requested of me on today's telcon, but I
think it's an appropriate clarification:

Change Part 1 section 1.2 [5]

<original>
"SOAP does not require that XML Schema processing (assessment or
validation) be performed to establish the correctness or 'schema implied'
values of element and attribute information items defined by this
specification. The values associated with element and attribute information
items defined in this specification MUST be carried explicitly in the
transmitted SOAP message except where stated otherwise (see 5. SOAP Message
Construct)."
</original>
<proposed change="explicitly reference part 1 and 2">
"SOAP does not require that XML Schema processing (assessment or
validation) be performed to establish the correctness or 'schema implied'
values of element and attribute information items defined by Parts 1 and 2
of this specification. The values associated with element and attribute
information items defined in this specification MUST be carried explicitly
in the transmitted SOAP message except where stated otherwise (see 5. SOAP
Message Construct)."
</proposed>

The above change is suggested because, in our discussion, it was clear that
some members of the WG took this to refer only to part 1.  Since it's
arguable ambiguous, I'm proposing the clarification.    The principle
change is to Appendix B.3/C.3:

<original>
It may be that schemas could be constructed to describe the encoding of
certain graphs. Validation of the encoded graph against such a schema would
result in the type name property of the graph nodes being assigned the
relevant type name.
</original>
<proposed>
It may be that schemas could be constructed to describe the encoding of
certain graphs. Validation of the encoded graph against such a schema would
result in the type name property of the graph nodes being assigned the
relevant type name.   Such a schema can also supply default or fixed values
for one or more of the itemType, arraySize or nodeClass attribute
information items;  the values of such defaulted attributes affect the
deserialized graph in the same manner as if the attributes had been
explicitly supplied in the message.  Errors or inconsistencies thus
introduced (e.g. if the value of the attribute is erroneous inappropriate)
should be reported as application-level errors; faults from the soap
encoding namespace should be reported only if the normative parts of this
specification are violated.
</proposed>

Does this seem like an acceptable approach?  I think it is appropriately
symmetric with the way we've been applying schema to other aspects of the
encoding, and it provides a standard interpretation for attribute defaults
in situations where schema validation is desired.  Thanks.

Noah

[1] http://www.w3.org/2000/xp/Group/xmlp-lc-issues#x231
[2] http://www.w3.org/TR/2002/WD-soap12-part2-20020626/#itemtypeattr
[3] http://www.w3.org/TR/2002/WD-soap12-part2-20020626/#encschema
[4] http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part2.xml#encschema
[5] http://www.w3.org/TR/2002/WD-soap12-part1-20020626/#reltoxml


------------------------------------------------------------------
Noah Mendelsohn                              Voice: 1-617-693-4036
IBM Corporation                                Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------

Received on Wednesday, 25 September 2002 20:44:30 UTC