Re: XSchema Spec, Sections 2.0 and 2.1 (Draft 1)

Simon St.Laurent (SimonStL@classic.msn.com)
Mon, 8 Jun 98 22:09:19 UT


PP> Resources (namespaces, characters, entities, etc.) are one thing.
PP> Constraints are another. I'd like to keep them separate.

JC>And I would like to keep them together. A matter of taste.

Unfortunately, I think it's a lot more than a matter of taste. Making XSchemas
perform text substitutions requires a much more complex processing model.

If we keep XSchema to constraints, the following processing model will work:

Parse document for well-formedness (expand entities as nec.)
Parse XSchema
Check results of document parse against XSchema constraints

If we add entities to XSchema, we get:

Parse document for well-formedness (expand entities as nec.)
Parse XSchema
Reprocess document to expand entities from XSchema
Check results of document parse against XSchema constraints

It's a lot more work, and I think it's unnecessary. Well-formed documents can
include entities, albeit with some weird restrictions on external entities.
The parsers that are already available, even the simplest, can already perform
this work quite simply, before the document reaches the XSchema verification
process.

Documents that used entities that were only declared in an XSchema would also
no longer be interoperable with XML 1.0 parsers - a big problem in my book.

By keeping entities _out_ of XSchema we can:
a) take advantage of one of the things XML currently does reasonably well
b) leave room for all kinds of entity madness in a _future_ standard
c) ensure interoperability with well-formed XML documents
d) make XSchema _much_ less work to implement

Sound good?

Simon St.Laurent
Dynamic HTML: A Primer / XML: A Primer / Cookies