Lists Home |
Date Index |
- From: Rick JELLIFFE <email@example.com>
- Date: Wed, 09 Aug 2000 20:44:43 +0800
Norman Walsh wrote:
> But to say that you can mix them "willy nilly" violates the principals
> of validity at their core.
That's a key point, I think. Roger Costello has argued very strongly
that namespaced-vocabularies should have schema languages which are open
by default rather than closed.
The utility of the idea of "content model" almost disappears with open,
namespaced schemas. What is important is not that a follows b*, but that
information items which have a strong semantic cohesiveness should not
get decoupled. In XML Schemas this is recognised by the availability of
the different wildcards and the <any/> conplex type container (a bag
operator, allowing some of the simplest functions of SGML's DTD's &
operator). In Schematron, we throw away content models entirely.
I would go further, and suggest that content models are actually bad in
XML (in SGML they serve a lexical purpose for which they are
well-suited): this is because we have anonymous groups and various
arrangements which impose constraints but whose significance is not
available. DTDs are great for removing constants to headers, for acting
as big fat assert() statements as pre-conditions for data import, for
simple fixed structures, and for ad hoc Q&D schema development when a
60/40% solution is good enough.
But start adding namespace-awareness and I think they are being
stretched far beyond their capabilities: if you add namespace-awareness
the next stumbling block woudl be openness, as James and Norman are
I am unmatched in how much I like DTDs the same as everyone else who
likes them more. But inventing new schema languages that either will
affect validity (if the DTD is in the subsets) or which doesn't include
datatyping (if the DTD is external and invoked by attribute or PI) don't
seem very promising to me.
If you want schemas that are namespace aware get behind RELAX, or
integrate Schematron, or review and test XML Schemas against some nice
big schemas, or implement proper SGML architectural forms processors, or
get a project up to create some new schema language (e.g. what about a
schema language that can cope with XSL-FO inheritence structures and
xml:lang, and which handles whitespace normalization in a smarter way?
or which can handle RDF abbreviated syntax)?
DTDs have dimishing returns. In SGML Architecutral forms and Lexical
Types Definition Requirements, SGML syntax was extended with some new
types of markup declarations (e.g. <!LTDR ...>) which made the
declarations non-SGML, and required a custom parser. This is definitely
the wrong way to go!