Missing option in xmlIDSemantics-32

I notice that an option seems to be missing from Chris Lilley's draft
TAG finding on IDs in XML [1]. This option was first presented in a
message sent to the TAG list back in Feb [2].

The option described there is similar to the option "Require W3C XML
Schema validation of all instances" but that option does not distinguish
minimally conforming schema processors as a much lighter-weight process
than full schema validation.

To make this option concrete, I'll give some sample text as I would
explain it.  The following would augment and replace the section
"Require W3C XML Schema validation of all instances".

-------------------------------------------------------------------
Require W3C XML Schema validation of all instances

A fully validating XML processor will, almost as a side effect, result
in all attributes of type ID being so noted in the Post Schema
Validation Infoset.

This solution does get around the need for a DTD. It also uses an
existing mechanism that is starting to see deployment.

However, full schema validation is a somewhat heavyweight solution just
to get IDs and is thus unlikely to see significant uptake in areas such
as mobile devices, or xml messaging. It thus risks further severing
those application areas from the 'desktop Web'. Essentially, precisely
those areas that are looking for IDnness without DTDs are the ones least
likely to find full Schema validation an acceptable solution.

Note: Is it true that Schema processing is always validation as well? 

XML Schema also provides for a "Minimally conformant Schema processor"
which might provide a lightweight option.  Such a schema processor need
not accept arbitrary schemas as input, instead it may be hardwired to
apply a single schema such as this one:

  <xs:schema targetNamespace=http://www.w3.org/XML/1998/namespace
             xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:attribute name="id" type="xs:ID"/>
  </xs:schema>

An application applying this mechanism would likely be indistinguishable
in its effects from an application just looking for xml:id attributes
and applying IDness to them.  To enable applications to share a
"built-in schema" such as this one, a common (standard) spelling for the
ID attribute is necessary.  xml:id is one way to spell this attribute.

An advantage of this approach is that it does not conflict with existing
validation-based ID detection.  If a DTD is present, the application may
recognize IDs declared therein, and the author of the DTD should control
whether ID attributes are spelled "xml:id" or some other way.  If a
Schema is present, the application need not apply the built-in xml:id
schema, and the author of the Schema can control whether ID attributes
are spelled "xml:id" or some other way.  Since the ID-consuming
application is responsible for applying the xml:id schema when no other
validation mechanism exists, a new version of XML is unncessary.  The
option, in sum, unreserves the xml:id attribute name, while encouraging
DTD and Schema authors to use this spelling in their schemas, and
encouraging applications to apply a minimal built-in schema when full
validation is not performed.

-------------------------------------------------------------------

I have been promoting this option in the XML Core WG, which has
expressed a desire to base its discussions on the options presented in
the TAG finding.  Adding this option (whether or not it eventually
passes muster) would benefit this discussion.  I hope we can add
something along this line to the next draft of the finding.

Thanks,
- Jonathan

[1] http://www.w3.org/2001/tag/doc/xmlIDsemantics-32.html
[2] http://lists.w3.org/Archives/Public/www-tag/2003Feb/0087.html

Received on Friday, 13 June 2003 17:42:32 UTC