ETF: Proposed Resolution for Issue #163

Issue 163 [1]

In SOAP Encoding, unqualified attribute named 'id' and of type 'ID' per the
XML 1.0 specification DOES NOT MEAN that it is of type ID !! For details,
please refer to [1].

Analysis

We considered three options,

(a) DTD processing and an <!ATTLIST foo myid ID #REQUIRED>

(b) Schema processing and an <xs:attribute name='myid' type='xs:ID'
use='required' />

(c) SOAP 1.2 spec mandates that all attributes whose local name is ID and
whose namespace name is http://www.w3.org/2001/12/soap-envelope are always
of type ID in the http://www.w3.org/2001/XMLSchema namespace

Option (a) and (b) are obviously ruled out by SOAP specs. (c) is the only
option. But, (c) does not mean that it is of type XML 1.0 ID. 'Cos, type ID
in the http://www.w3.org/2001/XMLSchema namespace is different from the XML
1.0 type ID. This means that implementations must use additional code to
simulate XML 1.0 ID behavior.

This analysis also applies to the unqualified attribute named 'ref' in SOAP
Encoding.

Proposal

Adopt option (c) and issue a health warning that 'id' and 'ref' are not of
the type XML 1.0 ID and IDREF respectively. This involves,

--- Rewrite rule 5 of the 'The rules for serialization are as follows' [2]
section as follows,

FROM

The value of the ref attribute information item MUST conform to the XML
Specification[8] and the XML Schema Specification[4],[5].

TO

The value of the ref attribute information item MUST conform to the XML
Schema Specification[4],[5].

AND

FROM

"A multi-reference simple or compound value is encoded as an element
containing a local, unqualified attribute named id and of type "ID" per the
XML Specification [8]. A referencing accessor to this value is an empty
element having a local, unqualified attribute named ref (see above), with
the value of the corresponding id."

TO

"A multi-reference simple or compound value is encoded as an element
containing a local, unqualified attribute named id and of type "ID" per the
XML Schema Specification [4][5]. A referencing accessor to this value is an
empty element having a local, unqualified attribute named ref (see above),
with the value of the corresponding id."


--- Issue a health warning - unqualified attributes 'id' and 'ref' are NOT
of type XML 1.0 ID and IDREF respectively. This means, the following
applies:

(i) at the infoset level, the attribute information item will not have a
proper value for [attribute type], [3]
(ii) Document.getElementById(in DOMString elementId); will not execute as
expected [4]
(iii) XPath node-set id(object) will not execute as expected [5]
....


[1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x163
[2] http://www.w3.org/2000/xp/Group/1/10/11/soap12-part2.html#encrules
[3] http://www.w3.org/TR/xml-infoset/#infoitem.attribute
[4] http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-getElBId
[5] http://www.w3.org/TR/xpath#function-id

Regards,

Asir S Vedamuthu

webMethods, Inc.
703-460-2513 or asirv@webmethods.com
http://www.webmethods.com/

Received on Tuesday, 12 February 2002 10:15:13 UTC