Text only | Skip links
Skip links||IT Services, University of Oxford

1. Introduction

ODD (One Document Does it all) is the XML vocabulary which the TEI system uses to describe itself, and which users of the TEI employ to create documentation and schemas appropriate to their varied needs. It can be used to document and describe any XML vocabulary. Understanding ODD is a two-day workshop taught by the TEI@Oxford team, Lou Burnard, James Cummings, and Sebastian Rahtz.

The first part of the course provides a hands-on practical introduction to the basic ideas of the ODD system, exploring the process of designing a TEI profile from the user perspective, and using the Roma application to model a schema. We will explore the full capabilities of Roma, from designing and testing a basic XML schema with a few clicks, up to the design of a highly customized and multilingual application profile. Attendees are expected to have some basic knowledge of XML and the TEI, but more importantly should come with some specific sets of texts and applications in mind.

The second part explores the ODD encoding system itself. Using common XML editors, we will see how an ODD file is constructed and maintained, and discuss the internal working of the library of XSLT stylesheets provided by the TEI to process them. We will discuss in detail how ODD processors are expected to work, and explore parts of the markup scheme not supported directly by Roma.

2. Course Programme

The details of the course programme are as follows. Each of the teaching sessions will consist of two talks and two practical exercises.

Time Activity Details/learning outcome Leader
09.00 - 10.30 Using Roma to customize the TEI. Slides in PDF and TEI XML. For exercise see exercise-01-roma.xml Participants can use Roma confidently, generate schema and documentation, and use the schema in oXygen JC
11.00 - 12.30 Understanding the ODD language. Slides in PDF and TEI XML. For exercise see exercise-02-odd.xml Participants understand the ODD language, can edit an ODD file using oXygen and process the file using OxGarage or Roma, can work with multiple namespaces, and understand RELAX NG content patterns LB
14.00 - 15.30 Documentation techniques, examples, and writing new ODDs. Slides in PDF and TEI XML. For exercise see exercise-03-odd.xml Participants understand the documentation options of ODD, know how to change the examples, and can start writing ODD for a new language SR
16.00 - 17.30 ‘Frequently Solved Problems’ — complete TEI customizations Participants understand some complex customizations, and discuss their own project needs. SR, JC, LB

3. Resources

Table 2. Data files
work/ex1.xml Sample TEI document to test validation
ex1-spoiler.xml, expanded_ipp.xml, my_ipp.rnc, my_ipp.xml, mymap.xsl, new.odd, new2.odd. Prepared ‘answers’ for exercises
tei_odds.rnc Schema for validating ODD files
skeleton.odd Simple skeleton odd
dc.odd ODD for Dublin core
demo.odd Demo ODD
demo.nvdl NVDL file for demo
oxcap.odd ODD for OxCAP
This document
Roma: generating validators for the TEI
New Roma, using full features of ODD
http://tei.oucs.ox.ac.uk/Roma/; http://www.tei-c.org/Roma2/index.html
TEI By Example section on ODD
TEI @ Sourceforge
TEI P5: Guidelines for Electronic Text Encoding and Interchange
TEI: Stylesheets
W3C XML Schema
oXygen XML Editor

4. Ten customizations

Demonstrating Example
constraining values eg for @type on <div> and for @rend on <hi>
specifying exact releases of the TEI
adding syntactic sugar (eg defining an element <b> as short hand for <hi rend="bold">) Tite
using @except, @include, <elementRef>, <classRef> and <macroRef>
including MathML as content of <formula> ISO
adding HTML or Dublin Core elements in the TEI header
adding local usage examples
writing an ODD from scratch for a new language XCRI
defining complex patterns in RELAX NG to constrain element content, and adding Schematron constraints OUCS
defining multiple schemata in the same ODD file, using common components ISO

Lou Burnard, James Cummings, Sebastian Rahtz. Date: November 2010
Copyright University of Oxford