>Date: Thu, 3 Jun 1999 09:39:22 CDT
>Sender: "TEI (Text Encoding Initiative) public discussion list"
> <[log in to unmask]>
>From: Patrick Durusau <[log in to unmask]>
>Just a quick note to let TEI advocates know that XMetal chokes on:
><!ENTITY % usrmods
> PUBLIC "-//TEI U5-1995//DTD TEI Lite 1.0 Extensions//EN">
><!-- end of TEI Lite DTD -->
>I submitted a bug report on this problem when it first appeared in
>HotMetal but apparently it was not worth the effort to fix it.
To be fair to the folks at SoftQuad, I should point out that this is
not a bug in XMetal. If you have got a file somewhere to serve as
your user modifications file, and have set up your catalog so that the
public identifier given above points at that file, then I'm wrong,
but I suspect you don't, and that XMetal is behaving impeccably.
In other words, it's not their fault. If it's anyone's fault, it's my
fault. And I want people to know I'm sorry about it, really really
Here's what is happening.
TEI Lite tries (as shown above) to embed an 'extensions' file, which
is intended to be a site-specific file with declarations of entities,
notations, etc. that people want to add to the TEI Lite DTD. Since
when people download the TEI Lite DTD, they don't simultaneously get
any user mods file, most people do not have any such file. And any
reasonable SGML or XML product will, naturally and correctly, complain
that the entity in question is non-existent. Those who use TEI Lite
regularly have typically done one of the following things:
- They have deleted or commented out the lines quoted above,
from the file teilite.dtd. This is officially Frowned Upon, but
understandable and effective.
- They have created a file called (e.g.) usrmods.dtd somewhere
on their system (the contents of mine are reproduced below) and
added an entry to their SGML Open catalog file.
- They have learned to ignore the error messages issued by their
My SGML open catalog file, for example, has the following entry:
PUBLIC "-//TEI U5-1995//DTD TEI Lite 1.0 Extensions//EN"
And my usrmods.dtd file has the following content:
<!-- dummy file for user modifications to TEI Lite DTD -->
Why, readers of this list may be asking themselves, does TEI Lite
require such gyrations of users?
Well, to be honest, it now looks to me like a design mistake. The
idea was to provide a simple mechanism to allow users to add new
entity and notation declarations to TEI Lite. Only after we had
published the DTD did someone point out that it was an exceptionally
poor idea to use a public identifier to refer to a file which was, by
nature, intended to vary from site to site.
And since, in practice, very few users ever seem to want to extend TEI
Lite in the way allowed by this mechanism, it seems to be much more
trouble than it's worth. The user mods file, or rather the failure of
the user mods file to exist, is without question the single most
frequently reported problem people have with TEI Lite.
So in the next version of TEI Lite, the usrmods file should go
In the meantime, I've added an SGML catalog file and a sample
usrmods.dtd file to the Web directory from which people download
the teilite.dtd file, in the hopes that this will simplify everyone's
life in the meantime.
Yours in abject penitence,
-C. M. Sperberg-McQueen
Senior Research Programmer, University of Illinois at Chicago
Editor, ACH/ACL/ALLC Text Encoding Initiative