Re: B.7 Conditional inclusion in DTDs?

On Tue, 15 Oct 1996 18:34:24 -0400 <cbullard@HiWAAY.net> said:
>Michael Sperberg-McQueen wrote:
>> Production DTDs require parse-time customization.  XML requires
>> the power to handle production DTDs.  Ergo, XML requires parse-time
>> customization -- i.e. condition[al] inclusion in DTDs.
>> -C. M. Sperberg-McQueen
>Then why TEIlite?

Primarily for pedagogical reasons.  (1) TEI Lite is smaller than the
full TEI DTD and most people seem to find it reasonably manageable.
(2) Any single-file DTD is easier to install and run on many existing
SGML systems, since the user doesn't need to figure out how to tell
the system where to find external entities.  (This is getting better
with the wider adoption of SGML Open entity catalogs, I think, but
it's still a pain for some, and when we designed Lite it was worse.)
So Lite is easier to get up and running with.  I don't expect many
serious projects to stick with it forever:  the stuff in the full TEI
DTD is there because people need it.  (3) Any project that designs and
uses a specific view of the TEI DTD is likely to want to generate a
one-file version of the DTD, for speed and because some SGML systems
(you know who you are!) are non-conforming in refusing to handle
references to undeclared elements.  TEI Lite, being available both
in TEI.extensions.ent and TEI.extensions.dtd form and in single-file
derived-DTD form, provides an illustration of how this can work.

TEI Lite, in other words, is not a substitute for the full TEI DTD.

The full TEI DTD allows the user to modify it in a rather large number
of ways that cannot readily be supported without conditional inclusion
in some form or other.  Handling it outside of the language, with
something like the C preprocessor or a specially designed DTD filter,
is less reliable than handling conditional inclusion in ways that
every conforming SGML system can and does support.

-C. M. Sperberg-McQueen