- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 8 Jan 2003 20:40:27 -0500
- To: "Bullard, Claude L (Len)" <clbullar@ingr.com>
- Cc: "'Elliotte Rusty Harold'" <elharo@metalab.unc.edu>, www-tag@w3.org
I'm somewhat nervous about option 6, and perhaps some of the others, as
they relate to XML Schema.
I think we have roughly the following situation. XML Schema takes an
Infoset as its input. That Infoset may be produced by a non-validating
XML processor, a DTD-validating XML processor, or might be a synthetic
Infoset. XML schema provides a built in datatype xsd:ID [1]. When used
in an XML schema as the type of an attribute XML Schema structures
provides constraint checking analgous to what would happen with DTDs [2].
As far as I know, this schema-level checking is independent of any that
might have been done per a DTD. As a result of such a validation episode,
the processor can report in the PSVI that a given attribute has been
determined to be of type xsd:ID or xsd:IDREF. Furthermore, Schema
introduces the so-called identity constraint mechanism [3] (key/keyref)
which is more general than ID/IDREF; I think it's fair to say that
xsd:ID/xsd:IDREF is provided primarily for backwards compatibility, in the
sense of allowing reasonably straightforward conversion of DTDs to
schemas.
So, schema largely reproduces XML 1.0 ID/IDREF, but it does so using an
Infoset (which may have already been the result of DTD-validation) as
input. Thus the notions of ID in XML 1.0 and ID in Schema are
intentionally similar, but in some sense duplicate each other.
Option 6 introduces:
xml:idAttr="name"
(where name is a sample value.) Question: how should this interact with
the mechanisms of XML schema. What if a name attribute is declared as
being of type xsd:Integer. Keep in mind that schema takes Infoset as
input. Does the assigned ID type now show up in that input infoset? What
are the right rules for schema processing? Should the type reported in
the PSVI be xsd:ID (or is there a separate xml:IDtype?) for the name
attribute?
This all strikes me as a mess. Whatever the other pros and cons of option
6, I think these anomalies result in part from the fact that XML does not
really offer the pluggability that would allow schema to participate as a
first class replacement for DTDs. Accordingly, schema does the best it
can running at a separate layer, but when we try to re-introduce typing at
the XML level as well we run the risk of complexity creeping in. I could
be wrong, but if we go with option 6 I suspect we would probably want to
rev XML schema to take account of it (and there are all sorts of
deployement issues in reving XML schema, I would think.)
[1] http://www.w3.org/TR/xmlschema-2/#ID
[2] http://www.w3.org/TR/xmlschema-1/#cvc-id
[3] http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions
------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
IBM Corporation Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------
Received on Thursday, 9 January 2003 12:31:21 UTC