Build your own TEI XML DTD

This service, which only works with the P4 version of the TEI Guidelines, is no longer maintained.

New! improved! XML-compliant!! These pages will help you design your own TEI-conformant document type definition (DTD).

The TEI Guidelines define several hundred elements and associated attributes, which can be combined to make many different DTDs, suitable for many different purposes, either simple or complex. With the aid of the Pizza Chef, you can build a DTD that contains just the elements you want, suitable for use with any XML processing system.

How does this work?

We've tried to make this as easy as possible, but you do need to understand a little about how the TEI DTD is organized. In particular, you need to understand that the TEI scheme is organized into base and additional tagsets (groups of elements), and that each element in a tagset can be suppressed, or redefined. For the full description, see chapter three of the TEI Guidelines.

Here are the steps involved in using the PizzaChef:

  1. First, decide whether you need to use (In the latter case, you must also decide whether to use the mixed or the general tagset). There are six base tagsets to choose from: for most purposes, you are recommended to choose Prose.
  2. Whichever base you use, you can add as many additional tagsets as you want. There are twelve to choose from.
  3. If you wish, your DTD can include declarations for one or more of the ISO public entity sets;
  4. If you want to discard or modify elements from the selected tagsets making up your DTD you can do this in two ways:
  5. If you want to add new elements to your DTD, you should edit the modification files
  6. Finally, you pass the names of your modification files to the pizza chef, along with the tagsets you chose originally, in order to build your personalized DTD.

OK ... now let's get baking!

Step 1: choose your base

The links in this and the next section will take you to the appropriate section of the full TEI Guidelines, provided online for your reading pleasure. Note that this text is that of the P4 XML Edition of the Guidelines issued in March 2002.

Select one of the following:

Prose This tagset is suitable for most documents most of the time
Verse This tagset adds specialist tagging for metrical analysis, rhyme-scheme etc to the basic verse markup already included in the core
Drama This tagset adds specialist tagging for cast lists, records of first performance, etc. to the basic drama markup already included in the core
Speech This tagset replaces the basic structure by one suitable for linguistic analysis of speech acts, etc.
Dictionaries This tagset replaces the basic structure with one containing detailed lexicographic features
Terminology This tagset replaces the basic structure with one specific to terminological databases
General base This tagset allows you to combine tags from different base tagsets, with the proviso that any single text division can contain tags from only one of the base tagsets you choose. Check each tagset you want to combine in this way from the following list:
prose verse drama
spoken texts dictionaries terminology
Mixed base This tagset allows you to combine tags from different base tagsets, with no restriction at all as to where tags from different base tagsets can appear. Check each tagset you want to combine in this way from the following list: Check each tagset you want to combine in this way from the following list:
prose verse drama
spoken texts dictionaries terminology

Step 2: choose your toppings

Whichever tagset you chose above, you will always get the core tagsets, defining common core elements and the TEI Header. If those are not enough for you, you can also choose as many or as few as you want from the following additional tagsets. (The default selections are those included by the TEI Lite DTD)

Linking Adds elements for hypertext linking, segmentation, and alignment
figures Adds elements for encoding tables, pictures, and formul´┐Ż
Analysis Adds elements for interpretation and simple linguistic analyses
fs Adds elements for feature structure analysis
certainty Adds elements for recording uncertainty and responsibility
transcr Adds elements for the transcription of primary sources (e.g. manuscripts)
textcrit Adds elements for text-critical apparatus
names.dates Adds elements for the detailed tagging of names and dates
nets Adds elements for recording the abstract structure of mathematical graphs, networks, and trees
corpora Adds specialised elements to the TEI-header for use with language corpora

Step 3: Choose your Entity Sets

If you are using any named character entities you'll need to include definitions for them. We've provided a selection of commonly used entity sets, covering most of the languages of Western and Central Europe, including Latin characters with diacritics, Greek, Cyrillic, mathematical symbols, etc.

To see which characters each entity set defines, just click on its name. Of course, an XML document can also use character entity references such as &#xnnn; where nnn is a hexadecimal character number in the Universal Character Set. (And if by some chance, you don't have the UCS definitions in your head, here's a look up facility).

Click on the checkbox for each entity set you intend to use. This will insert appropriate Unicode declarations for that entity set into your DTD

ISOlat1: ISO Latin 1 (Western European languages)
ISOlat2: ISO Latin 2 (Eastern European languages and miscellaneous)
ISOgrk1: ISO Greek 1 (Greek alphabetic characters without diacritics)
ISOgrk2: ISO Greek 2 (Monotoniko Greek)
ISOcyr1: ISO Cyrillic 1 (Russian Cyrillic)
ISOcyr2: ISO Cyrillic 2 (Cyrillic for non-Russian languages)
ISOnum: ISO Numeric and Special Graphic Characters (fractions, some superscript numerals, arithmetic operators, arrows, quotation marks)
ISOdia: ISO Diacritics (acute, breve, caron, cedil, circ, tilde, uml, etc.)
ISOpub: ISO Publishing Characters (dashes, fractions, selected dingbats)
ISObox: ISO Box and Line Drawing Characters
ISOtech: ISO General Technical Use Characters
ISOgrk3: ISO Greek Characters for Technical Use
ISOgrk4: ISO Alternative-form (bold) Greek Characters for Technical Use
ISOamso: ISO Additional Mathematical Symbols - Ordinary Symbols
ISOamsb: ISO Additional Mathematical Symbols - Binary and Large Operators
ISOamsr: ISO Additional Mathematical Symbols - Relations
ISOamsn: ISO Additional Mathematical Symbols - Negated Relations
ISOamsa: ISO Additional Mathematical Symbols - Arrow Relations
ISOamsc: ISO Additional Mathematical Symbols - Opening and Closing Delimiters

Warning.Inclusion of any of these character entities in your document does not constitute a guarantee that all computer systems will be able to display and process the character correctly! But at least, if you have a decent Unicode font, you should be able to see them.

Step 4: Review selected elements

If you want to remove or redefine any of the elements contained in your selected tagsets, you need to supply a pair of TEI Modification Files. If you have already created such files, skip ahead to step 5. If you don't want to make any further modification or selection, skip ahead to step 6.

If you would like the Pizza Chef to help you create your pair of local modification files click on one of the following buttons:

click here if you intend to Include all the elements in your selected tagsets by default
click here if you intend to Ignore all the elements in your selected tagsets by default

Warning: The pizza chef cannot stop you removing elements you shouldn't!

Step 5: Supply your modification files

Once you have finalised the content of your local modification files please tell the pizzaChef where to read them from .

Your TEI.extensions.ent file
Your TEI.extensions.dtd file

WARNING If either of your local modification files includes references to external parameter entities not defined in the TEI dtd itself, then you will not be able to generate a DTD from them. Unfortunately, we cannot automatically detect such things.

Step 6: Bake that pizza!

hmmm, this is a tasty little sucker

If you're interested in how this website was built and how it works, you might like to read the following fine Technical Reports :

This version of the TEI Pizza Chef was developed by Lou Burnard, but all the clever stuff backstage is still done using Michael Sperberg-McQueen's carthage. .

Thanks to the various fine web sites which make TEI publications available freely over the network. Image of pepperoni, olive, and mushroom pizza courtesy of the Internet Pizza Server. All power to them in their continuing struggle.
Original version 13 September 1997, updated July 1998; Version 2 released 8 Oct 1999.