On Mon, 1 Jul 2002, Jason Diamond wrote:
> The text in section 36, Obtaining the TEI DTD,  says that the DTD
> is available at http://www.tei-c.org/Guidelines/DTD/. That page is
> titled "The P4 DTD". When I first saw that page, I assumed that it was
> the SGML version of the DTD since it wasn't titled "The P4X DTD". Is
> the "X" not significant?
The X is not significant, though I agree that it may be confusing. At P4,
the TEI DTD can be configured as either an SGML or an XML dtd. So it's
kind of eXtended, I suppose, which is why we originally put it in a
directory "P4X". But its official name is and remains P4.
> I've also come across what seems to be an inconsistency. The P4 DTD
> page says, "To make up the Formal Public Identifier, the full name of
> the module should be prefixed by the string -//TEI P4// and the type
> of declarations contained, and suffixed by the string //EN."
> If I follow those directions, the FPI for the tei2.dtd file would end
> up being "-//TEI P4//DTD Main DTD Driver File//EN" but section 3,
> Structure of the TEI Document Type Definition,  shows the FPI for
> that file as "-//TEI P4//DTD Main Document Type//EN". Which one is
> correct? I'm assuming that the former is correct because that's the
> one that's used in the sample XML Catalog file at .
Thanks for noting this inconsistency which will be fixed asap. As you
correctly surmise, "Main DTD driver file" is incorrect (it isn't a driver
> Should http://www.tei-c.org/Guidelines/DTD/tei2.dtd be used as the
> "official" system ID for the P4(X) DTD? There's no version number in
> that URI. Will the P5(X) DTD appear at that location in the future? If
> so, are there version-dependant URIs that we can use instead of this
> ambiguous one?
The intention is that the address you quote will always point to the
*current* TEI dtd, with older versions having specific addresses (so e.g.
www.tei-c.org/P4X/DTD currently points to the same place)
We haven't put a lot of thought into what "official" system identifiers
might be. It seems a bit of a contradiction in terms to me -- the system
identifier is whatever is the most conventient place for you to get at the
resource named by the FPI. If you're on this side of the pond it might be
better to point to www.tei-c.org.uk/Guidelines for example.
One thing we really must fix at P5 is the mysterious "2" in all the file
names. This was the version number at TEI P2, but wasn't changed at P3 or
P4 for reasons now lost in the mists of time.
> I'm using libxml's XML Catalog implementation to speed up my local
> processing but I want to make sure that I have the correct public and
> system IDs before I release the XML files so that others can configure
> their catalogs correctly without too much trouble.
Great! If you have time to let us know how you're using TEI itself, we'd
be pleased to add an entry for your site into the Applications section on
the web site.
> One more comment, it seems odd to me that we must use an internal
> subset to make use of the DTDs. The Guidelines suggest a document type
> declaration like this:
> <!DOCTYPE TEI.2 PUBLIC "-//TEI P4//DTD Main Document Type//EN" "http://www.tei-c.org/Guidelines/DTD/tei2.dtd" [
> <!ENTITY % TEI.XML 'INCLUDE'>
> <!ENTITY % TEI.prose 'INCLUDE'>
> Since the internal subset isn't part of the XPath model, I had to
> resort to a disable-output-escaping hack to get that to appear in my
> TEI files (I'm transforming a specific set of XHTML files into TEI). I
> know that I could create my own driver DTD but it's much easier to
> rely on the DTD being available on the TEI website so that the TEI
> files could be distributed as individual entities and not part of an
> archive if need be.
The need for an internal subset is a consequence of the way the
modularization of the TEI dtd is currently done (by means of the parameter
entity mechanism). There's need for wider debate within the TEI community
about how to maintain that modularity in a DTD-free world, and those
discussions will surely have an effect in the way we package P5. In the
meantime, probably the best course is to use the pizza chef
(http://www.tei-c.org.pizza.html) or similar to precompile
the view of the TEI DTD which you use into a non parameterized form and
distribute that along with the XML documents. We haven't given much
thought to it, but I see no reason why we shouldn't provide a home on the
TEI website for such "TEI DTD instances" if there's a demand for them to
be more generally accessible.
> Thanks in advance for any help or insight you might be able to pass
Good to hear from you!
> Best regards,
> Jason Diamond <http://injektilo.org/>