Self Study (part 2): Introduction to the Text Encoding Initiative Guidelines

Quite awhile ago I posted as a list of reading and steps I would recommend someone follow if they were wanting to learn TEI XML and related technologies. This first step was to learn a little bit about XML and markup languages like HTML to a bit of background.

The next step I’d recommend  is to learn a bit more about the Text Encoding Initiative and the Guidelines it produces.


  1. In what markup language did documents using TEI P1 to TEI P3 use?
  2. How was this changed for TEI P4 and then TEI P5?
  3. In what way is the TEI ‘extensible’?


  1. What does ‘ODD’ stand for? What can one generate from a TEI ODD file?
  2. What is a TEI module? What is the relationship between modules and chapters?
  3. What language does one use to define a TEI schema?
  4. Why might a single project use more than one schema at different stages in their project workflow?
  5. What is an attribute class? The attribute class provides @xml:id and @n attributes to every element in the TEI; what is the difference between these two attributes? When might it be useful to use @n to number verse lines? When might this be a silly waste of time?
  6. What is the @xml:lang attribute for?
  7. What is the difference between the @rend, @style, and @rendition attributes?
  8. What is @xml:space for?
  9. What is a TEI model class, and what do members of the same class share?
  10. Why are model and attribute classes a good idea?
  11. What is a TEI datatype?

Note: If you are confused about modules vs model classes vs attribute class the following blog post might help:

  • Next, familiarise yourself with the table of contents of the TEI Guidelines:
  • And then browse which contains a complete list of elements provided by the TEI.
  • Choose a couple elements which you think you might know what they are used to encode and click on them to explore their reference pages. For example
  • The information on this page seem confusing but it lists:
    • the element’s definition; which ‘module’ it comes from
    • what attributes it has (and if they come from attribute classes)
    • what model classes the element might claim membership of (which controls where it is allowed to appear in your document)
    • a list (by module) of these elements which are allowed to contain this element
    • a list (by module) of which elements this element is allowed to contain
    • a declaration of the content model of the element (which can be toggled between Relax NG compact syntax and XML syntax)
    • one or more examples
    • possibly some additional notes on usage.


  • The address element does not define any attributes of its own. How does this compare in layout to the availability element? What attribute does this (at time of writing) define for itself rather than getting it from a class?
  • The address element has two examples; what is the difference between them?
  • If you click on the ‘Show all’ link in one of the examples what do you get? Notice, for example how address is used inside the publicationStmt element to give the address of the publisher of the electronic text.

This is a very basic survey of some of the initial things you might want to learn before diving into the Guidelines in more detail.  I plan to continue this with similar directed reading and questions on some of the topics they cover in the future. In fact, the next post in this series is which looks at the TEI’s Default Text Structure.

Posted in SelfStudy, TEI, XML | 1 Comment

One Response to “Self Study (part 2): Introduction to the Text Encoding Initiative Guidelines”

  1. […] explore: James Cummings’ TEI tutorial Part 1 Part 2 Part 3 Part 4 Part 5 Part 6
TEI By Example Project Sample TEI projects (Brown WWP) Initiation à […]

Leave a Reply