Journal of the Text-Encoding Initiative Article Schema
Schema and guidelines for encoding an article for the journal
Ron Van den Branden
Martin Holmes
2014

Table of contents

1 Introduction

This document introduces and documents the content and use of the schemas provided by the Journal of the Text Encoding Initiative, as part of the TEI P5 distribution, for the use of authors who want to submit their articles to the journal in TEI. The schema described in this document is highly constrained and restrictive, consisting only of some 80 elements, compared with the complete TEI schema which contains nearly six hundred. In addition to general structural constraints, the ODD file also embeds fine-grained Schematron rules, severely limiting your options as you encode your file.

It is very likely that, as an experienced and confident TEI encoder with a broad knowledge of the TEI schema, you will find this at least a little frustrating. Where the TEI typically provides several ways of encoding the same phenomenon, we usually support only one. Where larger TEI schemas will allow you to describe rendering features (<hi rend="italic">) we do not allow that; we force you to choose a conceptual tag such as emph or <title level="j">.

The reasons for this are fairly obvious. From the XML document you submit, we need to generate a range of different outputs—ODT for reviewers and copyeditors to read and annotate, OpenEdition XML for submission to the lodel.org publication engine that supports the journal website, and an accompanying PDF version. We must enforce a degree of conformity across all submissions, not only in order to maintain consistency when we publish, but also to ensure that contributions are assessed by reviewers in as fair a manner as possible, without possible influences due to divergence from the expected style rules or formatting conventions.

However, this constraint and conformity has advantages for you too, as an author. Our schemas will enforce a number of constraints which, we believe, may assist you in improving the quality of your article; these are a few of them:

In what follows, we aim to provide a readable guide to encoding your article (or perhaps even composing it) according to the journal schemas, beginning with the template we provide, and viewing your results as you work through the use of CSS (in Author Mode in Oxygen) or by transforming it into ODT for examination in your word-processor, or to PDF.

This document is a work-in-progress (always), and we welcome your feedback at either mholmes@uvic.ca (Martin Holmes) or ron.vandenbranden@kantl.be (Ron Van den Branden).

2 Encoding for jTEI in Oxygen

2.1 Using the Template

Starting with version 16.2, the default distribution of Oxygen should include the jTEI components as part of its built-in TEI P5 framework. If you are using an older version of Oxygen, you can subscribe to the TEI-built version of the framework, by following these instructions.

In Oxygen, you can start a new article based on the jTEI template by selecting FileNew, and selecting JTEI Article [TEI P5] under Framework templatesTEI P5.

Selecting the  template in Oxygen.
Figure 1. Selecting the jTEI article template in Oxygen.

You will see that the root TEI element in the new file has an attribute rend=jTEI. This tells Oxygen that it's a jTEI file, so that it can apply standard jTEI rendering and validation scenarios to it. If you don't want to keep this attribute value, you can achieve the same effect by saving the file with a filename matching this format: ‘jtei-*-source.xml’ (where the asterisk stands for anything you like); Oxygen will also recognize files with names in this format as jTEI files.

2.2 Testing Your Document

The Oxygen framework provides two output rendering scenarios, which allow you to transform your jTEI article to the ODT and PDF formats. Open the ODT file you create in a recent version of LibreOffice or OpenOffice; Microsoft Office does not support the current ODT specification. The PDF file can be viewed in a PDF viewer such as Adobe Reader. If you see any problems with the rendering, don't worry, and please don't change good TEI XML to bad TEI in an attempt to make it render more successfully; report the problem to us and we'll look into it.

3 Basic Text Structure

A jTEI journal article is a relatively simple TEI document consisting of a teiHeader and a text.

3.2 Front Matter

The front matter must consist of an abstract, encoded in <div type="abstract">. This should consist of one or two short paragraphs, covering the purpose and content of the article.

The only other thing that may appear in the front matter is a brief acknowledgements section. If you need to include this to acknowledge contributors, funding agencies etc., insert it after the abstract, encoded as <div type="acknowledgements">. It should be no longer than one short paragraph.

3.3 The Body

The content of the article appears in the body. It should be divided into sections using div elements. Each div element should have an xml:id attribute, and its first child should be a head element with a suitable heading (in title case). div elements may be nested to provide subsections.

Do not provide section numbering in explicitly in the heads of your divs. These will be provided automatically by the rendering tools.

An Editorial Introduction can be added in the body using a <div type="editorialIntroduction">. This is the only div which does not require head.

3.4 Back Matter: the Bibliography and Appendices

The back matter consists of a bibliography (required), which is encoded in <div type="bibliography">, and optional appendices, each of which if present must be encoded using <div type="appendix">. Appendices must appear after the bibliography.

The bibliography consists of a listBibl element containing a series of bibl elements. Each bibl element should contain a reference formatted as required by the Chicago Manual of Style (16th edition), including all required punctuation, with a couple of exceptions:

  • Do not provide quotation marks around article titles. Instead, tag them with <title level="a"> (for chapters or contributions in a monograph, or journal articles) or <title level="u"> (for unpublished materials). The rendering tools will then provide the quotation marks.
  • Tag titles that would normally be in italics using <title level="j"> (for journal titles) or <title level="m"> (for monographs).

Give each bibl element a unique xml:id attribute, so that you can link to it from the quotations in the body of your text. In your bibliography entries, put the appropriate tags around the following components:

  • titles: title, with an appropriate value for level (see above)
  • editions: edition
  • dates: date
  • authors: author
  • editors: editor
  • publishers: publisher
  • publication places: pubPlace
  • name of series: series
  • scope of a bibliographic reference: biblScope, with an appropriate value for unit (volume, issue, page, chapter, part)
  • id numbers such as DOIs: idno, with an appropriate value for type
  • web urls (use ref)

Note: if you have both a formal identification number such as a DOI code and a hyperlink to an online version, the DOI code should be placed last in the bibliographic description.

Here is a short example:

<div xml:id="bibliography"
 type="bibliography">

 <listBibl>
  <bibl xml:id="aoki07">
   <author>Aoki, Paul M.</author>
   <date>2007</date>.
  <title level="a">Back Stage on the Front Lines: Perspectives and
       Performance in the Combat Information Center</title>. In
  <title level="m">Proceedings of the SIGCHI Conference on
       Human Factors in Computing Systems</title>,
  <biblScope unit="page">717–26</biblScope>. CHI ’07.
  <pubPlace>New York</pubPlace>: <publisher>ACM</publisher>. <ref target="http://doi.acm.org.ezproxy.lib.utexas.edu/10.1145/1240624.1240735"> http://doi.acm.org.ezproxy.lib.utexas.edu/10.1145/1240624.1240735
   </ref>. doi:<idno type="doi">10.1145/1240624.1240735</idno>.
  </bibl>
  <bibl xml:id="banski10">
   <author>Bański, Piotr</author>. <date>2010</date>.
  <title level="a">Why TEI Stand-off Annotation Doesn’t Quite Work and
       Why You Might Want to Use It Nevertheless</title>. In
  <title level="m">Proceedings of Balisage: The Markup Conference 2010</title>.
  <series>Balisage Series on Markup Technologies</series>,
  <biblScope unit="volume">vol. 5</biblScope>.
     doi:<idno type="doi">10.4242/BalisageVol5.Banski01</idno>.
  </bibl>
  <bibl xml:id="bowers12">
   <author>Bowers, John</author>. <date>2012</date>.
  <title level="a">The Logic of Annotated Portfolios: Communicating the
       Value of <soCalled>Research through Design.</soCalled>
   </title>
   <title level="j">Proceedings of the Designing Interactive Systems
       Conference</title>, <biblScope unit="page">68–77</biblScope>.
  <title level="s">DIS ’12</title>. <pubPlace>New York</pubPlace>:
  <publisher>ACM</publisher>. doi:<idno type="doi">10.1145/2317956.2317968</idno>.
  </bibl>
<!-- ... -->
 </listBibl>
</div>

4 Divisions, Paragraphs, Lists and Other Block Elements

4.1 Divisions

Text divisions are encoded in div. Each division must have a head containing the heading for this division. Headings should just contain the ‘bare’ heading, without numbering or other labels; those are added automatically when the TEI source file is rendered.

Divisions typically consist of a number of paragraphs, inside p elements. Apart from paragraphs, they can contain following text structures:

  • subdivisions
  • lists
  • quotations
  • figures and graphics
  • tables
  • code examples

Divisions can nest, by simply including a new div element with an xml:id attribute and a head in a parent division. There's no need to indicate the nesting level for subdivisions: this is determined from the structural encoding by the rendering scripts. Please note that the general TEI limitations hold: divisions may not be followed by ‘bare’ paragraphs. In order to facilitate cross-referencing, you are encouraged to provide a unique identification code in an xml:id attribute for each div.

Following example illustrates a text division in which two introductory paragraphs are being followed by two more subdivisions.
<body>
 <div xml:id="notodd">
  <head>What’s not ODD?</head>
  <p>In the current source of TEI P5, there is extensive use of several different
     XML vocabularies: <list rend="bulleted">
    <item>Examples in TEI P5 are presented as if they belonged to some other
    <soCalled>TEI Example Namespace</soCalled>;</item>
    <item>Element content models are expressed using a subset of RELAX NG, as
         discussed in the previous section;</item>
    <item>Datatypes are expressed in a variety of ways, mapping either to built-in
         W3C datatypes (as defined in the W3C Schema Language) or to RELAX NG
         constructs;</item>
    <item>Additional semantic constraints (for example, co-dependence of
         attributes and element content) are expressed using ISO Schematron
         rules.</item>
   </list>
  </p>
  <p>Everything else in a TEI-conformant ODD specification uses only constructs from
     the TEI namespace. In this paper, we will argue for a further extension of the
     ODD language to replace several of the cases listed above.</p>
  <div xml:id="elementcontentmodels">
   <head>Element Content Models</head>
   <p>ODD was originally intended to support the <emph>intersection</emph> of the
       content models definable using three different schema languages. In practice,
       this reduced our modeling requirements quite significantly.
<!-- ... -->
   </p>
<!-- ... -->
  </div>
  <div xml:id="datatyping">
   <head>Datatyping and Other Forms of Validation</head>
   <p>Validation of an element’s content model is but one of many different layers
       of validation that a TEI user may wish to express in their ODD specification.
   
<!-- ... -->
   </p>
<!-- ... -->
  </div>
 </div>
</body>

4.2 Paragraphs

Paragraphs are encoded with p elements. They are the main building blocks of a division. They can contain plain text, mixed with other structural elements:
<p>Thus we introduce the <gi>transferGrp</gi> element, a grouping element somewhat
like <gi>surfaceGrp</gi> but, like <gi>altGrp</gi> or <gi>attList</gi>, with
the ability to assert the relationship among its children rather than just common
features. This is accomplished with an <att>org</att> attribute whose suggested
values include:
<list type="gloss">
  <label>
   <val>group</val>
  </label>
  <item>an unordered set</item>
  <label>
   <val>sequence</val>
  </label>
  <item>a (chronologically) ordered set</item>
  <label>
   <val>choice</val>
  </label>
  <item>only one of the child <gi>transfer</gi>s
     obtained</item>
 </list>
</p>
<p>The following example demonstrates the use of <gi>transferGrp</gi> to indicate a
transaction which is attested in (at least) two source documents which disagree as to
the amount of money involved.</p>

4.3 Lists

Lists in jTEI are relatively simple. They are encoded in a list element and differentiated by the type attribute, which may have only one value, gloss. <list type="gloss"> is (as you might expect) a glossary list, and must consist of a sequence of labels and items, like this:

<list type="gloss">
 <label>compressor</label>
 <item>a device which reduces the peaks of volume in an audio signal</item>
 <label>equalizer</label>
 <item>a device which allows different frequency bands in an audio signal
   to be cut or boosted</item>
</list>
All other types of list (numbered, bulleted etc.) do not have the type attribute. Their appearance is controlled by the rend attribute:
  • list (list) contains any sequence of items organized as a list.
    rend(rendition) describes the way the list should be rendered.
Lists may be nested:
<list rend="bulleted">
 <item>compressor:
 <list rend="ordered">
   <item>limiter</item>
   <item>multiband compressor</item>
  </list>
 </item>
 <item>equalizer:
 <list rend="ordered">
   <item>graphic equalizer</item>
   <item>parametric equalizer</item>
  </list>
 </item>
</list>

For processing reasons, jTEI puts one restriction on what can appear inside lists: you can't use table anywhere inside item.

4.4 Quotations, Inline and Block

The main components of a quotation are the quoted text itself, and a reference to the source it was quoted from. The quoted text is encoded with a quote element, without quotation marks. Quotations marks are added automatically by the rendering scripts. The jTEI schema requires that each quotation is linked to a bibliographic reference, identifying the source from where the text has been quoted. Typically, the source of a quotation is listed in the bibliography at the end of the article. References to such sources are encoded in a ref element, with a type attribute of value bibl, whose target attribute must point to the xml:id value of a bibl element in the article's bibliography. You must provide an xml:id attribute for the ref element itself. This makes it possible to connect the quotation with its specific reference via the source attribute on the quote element:
<p>In his blog post, <title level="a">Text: A Massively Addressable Object</title>,
published in the 2012 anthology <title level="m">Debates in the Digital
   Humanities</title>, Michael Witmore defines texts as objects that are
<quote source="#quoteref3">massively addressable at different levels of scale</quote>
(<ref type="biblxml:id="quoteref3"
  target="#witmore12">
Witmore 2012, 325</ref>).
</p>

Here, we see how the value #quoteref3 for the source attribute expresses the correspondence with the bibliographic reference in <ref type="bibl" xml:id="quoteref3" target="#witmore12">Witmore 2012, 325</ref>.

In some cases, quotations are taken from ‘less bibliographic’ sources, such as email conversations and other non-published texts. Such sources are not listed in the bibliography, so you can't refer to them with a <ref type="bibl"> reference. Instead, you should include the description of the source in the text. The description should be encoded in a bibl element with an xml:id attribute. You should link the quotation to this bibliographic description by pointing to this xml:id attribute with the source attribute of the quote element:
<p>An exchange on the TEI electronic mailing list sparked the research published
in this article, when a community expert wrote that given
<quote source="#quoteref1">a graduate student in English who has heard about TEI
   and wants to dip her toes into it because she thinks it may be a better way of
   putting on the Web some 17th century poems<gap/> Where does she go for help?
   Where in the TEI universe is the level of ubiquitous Grade I support?</quote>
(<bibl xml:id="quoteref1">Martin Mueller, pers. comm, Jan. 18, 2013</bibl>).</p>
Here, the #quoteref1 value for the source attribute on quote points to the bibl element in the text, describing the ‘less bibliographic’ source for the quotation in a footnote.
Note how the examples above were inline quotations, which will be rendered inside the running text of the paragraph they appear in. It is also possible to encode block quotations, by wrapping the quote and its ref inside a cit container. A cit element can occur either in or between paragraphs, but is always rendered as a blockquote:
<p>In <title level="a">Wampum as Hypertext</title>, Angela Haas complicates the
distinction between technology and high technology by discussing the way wampum
belts function the same as Western hypertexts. Haas contends that while there are
many similarities, they differ when we understand the way wampum is reliant on
cultural practices and memory:
<cit>
  <quote source="#quoteref8">Consequently one could argue that wampum is limited
     in relation to contemporary Western hypertexts in that it requires human
     intervention to remember the intent and content of the original message; however,
     one could also posit that such interaction encourages continuous civic involvement
     instead of an over-reliance on technology.</quote>
  <ref type="biblxml:id="quoteref8"
   target="#haas07">
Haas 2007, 93</ref>
 </cit>
</p>

The cit element has been constrained in jTEI so it can only contain quote, ref, and bibl.

Inside quotations, inline rhetorical elements can be used (see 5 Inline Rhetorical Elements). Two of such elements are quite specific to quotations, in the context of a jTEI article, however, namely omissions and supplied text. Omissions are encoded with gap, which at rendering time is transformed to the typographic omission symbol: 1. If you supply text that wasn't present in the original quotation, you should wrap the supplied text in a supplied element. At rendering time, the supplied start and end tags are replaced with the [ and ] characters, respectively.

Apart from quote for ‘attributed’ quotations, you can also use q for short ‘anonymous’ inline quotations, whose source is not known or irrelevant. This is discussed in more detail in 5 Inline Rhetorical Elements.

4.5 Figures and Graphics

Illustrative figures are encoded using the figure element, along with a mandatory <head type="legend"> element providing the caption for the figure, as in this example:

<figure xml:id="titlePage">
 <graphic url="img/titlePage.png"
  width="620pxheight="980px"/>

 <head type="legend">The title page of the 1598 edition</head>
</figure>

The graphics file should be in PNG or JPEG format, and should be stored in a directory called img which is a sibling of the article XML file. Graphics file names should not contain spaces or punctuation. The graphic element must include the width and height attributes containing the image size in pixels. A second <head type="license"> may also be provided in cases where an explicit statement of licensing, copyright or accreditation is required.

The caption in the <head type="legend"> element should not begin with ‘Figure 1’ or any similar prefix; this will be provided by the rendering code at output time. To link to the figure, all you need to do is to provide a pointer targeting its xml:id attribute, like this:

<p>As you can see from <ptr target="#titlePagetype="crossref"/>,
the title page is damaged...</p>

This will be expanded at rendering time into ‘Figure X’, where X is the appropriate figure number.

4.6 Example Code, XML and non-XML

Example computer code in jTEI falls into two categories. XML code appears in the <egXML xmlns="http://www.tei-c.org/ns/Examples"> element. When you use this element, make sure you get the namespace right; all elements appearing in the egXML element are also in the Examples namespace, to distinguish them from regular TEI elements that are part of the encoding of the document. Code from non-XML languages appears in the eg element.

In many cases, example code will appear inline as part of the prose of your article2:
<p>Links between authors and books are encoded using <gi>link</gi> elements: <egXML
xmlns="http://www.tei-c.org/ns/Examples"> <link target="#middlemarch #eliot"/>
</egXML> </p>
You might want to provide a caption for code examples. In these cases, the eg or egXML element should be enclosed in a figure:
<figure xml:id="example_code_1">
 <eg> declare function local:getTitles($source as element(div)) as xs:string*{
   for $t in $source//title
   return xs:string($t)
   };
 </eg>
 <head type="legend">A simple XQuery function</head>
</figure>
At rendering time, captions of examples will be supplied with a leading ‘Example X’, where X is the number of the example. You can link to and refer to block examples like this using <ref> and <ptr>. In order to do so, you should provide a unique identification code to the figure in an xml:id attribute.

4.7 Tables

Tables can be encoded with the table element. Tables consist of a number of rows (row) that contain a number of cells (cell). Header rows and cells can be distinguished by different values for the type attribute:

label
The row or cell contains a header, not actual data.
data
(default) The row or cell contains data.

Cells and rows can be merged. In order to indicate how many columns a row or cell spans, a number can be provided for a cols attribute; the number of rows spanned can be given as value for a rows attribute.

<table xml:id="table1">
 <head>Elements in <ident>tei_corset</ident> customization</head>
 <row role="label">
  <cell>Module</cell>
  <cell>Elements in <ident>tei_corset</ident>
  </cell>
 </row>
 <row>
  <cell role="label">
   <ident>textstructure</ident>
  </cell>
  <cell>
   <gi>body</gi>
   <gi>div</gi>
   <gi>TEI</gi>
  </cell>
 </row>
 <row>
  <cell role="label">
   <ident>figures</ident>
  </cell>
  <cell>
   <gi>cell</gi>
   <gi>row</gi>
   <gi>table</gi>
  </cell>
 </row>
 <row>
  <cell cols="2">a sample cell spanning two columns (this was not in the original)</cell>
 </row>
</table>

The example above illustrates how the first row is marked as a header row with <row role="label">, and how the left column is marked as a header column by specifying each first cell in a row as <cell role="label">. The last cell illustrates how column spanning can be indicated with <cell cols="2">.

Note how the example also illustrates how tables can have headings, in a head element. The text of this heading should not begin with ‘Table 1’ or any similar prefix; this will be provided when the article is rendered. To link to the table, all you need to do is to provide a pointer targeting its xml:id attribute:

<p>As you can see from <ptr target="#table1type="crossref"/>, the elements included...</p>

This will be expanded at rendering time into ‘Table X’, where X is the appropriate table number.

5 Inline Rhetorical Elements

The jTEI schema prompts you to encode information as much as possible with conceptual tags. Therefore, the general-purpose hi tag has been removed from the jTEI schema. Instead, you should use more semantically expressive elements for identifying the rhetorical phenomenon you want to encode. If you want to stress a word in a sentence, you can do so with the emph element, which is rendered as italicized text. Foreign terms can be tagged with foreign, with a proper language identification code for the xml:lang attribute. Technical terms, or terms in general, can be encoded with term, and appear as italicized text in the rendered article.

<p>
 <term>Interoperability</term> may be defined as the property of data that allows
it to be loaded <emph>unmodified</emph> and fully used in a <emph>variety</emph>
of software applications. <term>Interchange</term> is basically the same property
that applies after a preliminary conversion of the data (<ref type="bibltarget="#bauman11">Bauman
   2011</ref>; <ref type="bibltarget="#unsworth11">Unsworth 2011</ref>), and
implies some loss of information in the process. Interchange can thus be seen as
an easier, less stringent or less useful kind of information exchange than pure interoperability.
</p>
<p>Unicode is a <emph>character</emph> encoding standard, and is not intended to
standardize ligatures or other presentation forms
(<ref type="biblxml:id="quoteref16"
  target="#unicode14">
Unicode 2014</ref>).
For example, there is no Unicode character for old Latin <foreign xml:lang="la">sescuncia</foreign>
(like a pound-sign, = one eighth), since it can be composed from <foreign xml:lang="la">semuncia</foreign>
(character 10192) and an EN-dash (<ref type="bibltarget="#unicode06">Unicode 2006, 4</ref>)</p>

Another category of inline rhetorical elements are those that are used for text that is somehow quoted. When a word is ‘mentioned’ to illustrate its form or usage, without its actual meaning, it should be encoded as mentioned. At rendering time, it will be displayed in italics. When you use a word while at the same time distancing yourself from it, you should encode it with soCalled. At rendering time, the start and end tag will be replaced with double quotation marks. Finally, if you want to quote a word or passage without attributing it to an external source, you can use the q element. Such ‘anonymous’ quotations are rendered in double quotation marks.

Note:

The actual form of the quotation marks depends on the ‘nesting level’ of quotation marks, so that double and single quotation marks alternate when they nest. For example, if a word tagged as soCalled appears inside a q element, then the quoted text will be wrapped in double quotation marks, while the text inside soCalled will be rendered with single quotation marks.

<p>The standard definition of metadata as <q>data about data</q> seems to pose more
questions than it answers.</p>
<p>There are possible ways (<soCalled>hacks</soCalled>) around some of these problems
even without rewriting the software, and some software is open source. For example,
some software may permit dates in the <emph>future</emph>, in which case a project
might record eighteenth-century dates using values from the twenty-eighth century.
Pounds, shillings, and pence could be converted to a modern standard unit (for
example, US dollars; <ref target="http://www.measuringworth.com/">Measuring Worth</ref>
provides calculators for determining values in some historical currencies). A
project could consistently use the <mentioned>comments</mentioned>, <mentioned>memo</mentioned>,
or <mentioned>notes</mentioned> field to record pointers into the attesting document.</p>

If you mention titles in paragraph text, you should encode them as such, with the title element and a proper type for the level attribute. Titles of journals (level="j" for level) and monographs (m) are rendered in italics. Titles of book chapters or journal articles (a), or unpublished materials (u) are enclosed in quotation marks at rendering time (so you mustn't provide them yourself).

6 Inline Technical Elements

Due to the nature of this journal, a discussion of technical XML or TEI elements is a common feature in jTEI articles. When elements from an XML vocabulary are discussed, they should be identified in a gi element, with an optional scheme attribute in which the XML vocabulary can be named. The default value for this attribute is TEI for TEI elements; others could be HTML, Schematron, DBK (Docbook), etc. At rendering time, the gi start and end tags are replaced with the < and > characters, respectively. The element name is always presented in this form: <p> in the output rendering, even if it is an empty element which in actual usage is almost always self-closing, such as lb or <pb>.

Attribute names should be tagged in an att element, which at rendering time will be preceded with a @ character. Attribute values should be tagged in val. At rendering time, the val start and end tags are replaced with straight quotation marks, so there is no need to quote the values yourself.

<p>For example, the extension of credit can be represented in a transactionography
by the transfer of a commodity of indebtedness. We have been using the keyword
<val>iou</val> as the value of <att>commodity</att> of <gi>measure</gi> for this purpose.</p>

When you want to quote an instance of a single start or end tag, you should use the tag element. If you want to specify the XML vocabulary this tag belongs to, this can be done in the scheme attribute (see above). In the type attribute, you can specify the kind of tag: start (start tag), end (end tag), empty (an empty tag), pi (processing instruction), comment (an XML comment), or ms (a CDATA marked section). For all these types of tags, the proper delimiters (starting with the < and ending with the > characters) are inserted when the article is rendered. Note, for full-fledged XML examples, the egXML element should be used (see 4.6 Example Code, XML and non-XML).

<p>A range like <code>#range(left(//lb[@n='3']),left(//lb[@n='4']))</code>, however,
could unambiguously address the sequence of nodes comprising line 3, even if the
<gi>lb</gi> happened to be a child of another element that began in the previous line.</p>
<!-- ... -->
<p>For example, <tag type="empty">rng:ref name="model.pLike"</tag> becomes <tag type="empty">classRef key="model.pLike"</tag>.</p>
If you want to cite a brief inline code fragment from a formal programming language, you can use the code element. With the lang attribute, you can identify the language of the code:
<p>Most of the time, pointing from one part of a TEI document to another, it is easy
to use IDs. Simply wrap the thing in an element, give that element an <att>xml:id</att>
attribute (say, <code>xml:id="foo"</code>), and point at the ID using either a
URI with an appended fragment identifier (<val>#foo</val>) or using an attribute
whose type is IDREF.</p>
The ident element should be used to encode identifiers in a formal language, such as variable, class, and function names in a programming language. When discussing the TEI encoding scheme or customizations, the names of model and attribute classes, datatypes, macros, and TEI customizations should be encoded with ident:
<p>For example <ident>teidata.duration.iso</ident>, <ident>teidata.outputMeasurement</ident>,
<ident>teidata.pattern</ident>, <ident>teidata.point</ident>, <ident>teidata.version</ident>,
and <ident>teidata.word</ident> all map to the same datatype CDATA in XML DTD, and to
various TEI-defined regular expressions in RELAX NG or W3C Schema.</p>

7 Footnotes

jTEI articles can have footnotes. Since no other notes are supported, the encoding is fairly simple: just add a note element at the place where you want to insert the footnote in the text. No further attributes are required: numbering is catered for at rendering time. Notes can contain plain text or paragraphs. No block-level elements are allowed:
<p>There are essentially two pointing mechanisms TEI employs to implement its graph
data structure: XPath, used in the <att>match</att> attribute,
<note>
  <p>See <ptr target="http://www.tei-c.org/Vault/P5/2.2.0/doc/tei-p5-doc/en/html/ref-att.scoping.html"/>
  </p>
 </note> and URIs, which can indicate documents, or (using fragment identifiers)
elements in the current document which have <att>xml:id</att> attributes.</p>

8 Internal Linking

Internal links are cross-links within the article. In jTEI, you can point to other text structures that can have labels, namely div, figure (containing either graphics or code examples), or table. Additionally, internal links can point to footnotes inside note elements, too. You can link to those structures either with an unlabeled cross-reference in ptr, or with a labeled link in ref. Both must have a type attribute with value crossref, and a target attribute, whose value should start with the ‘#’ sign, followed by the xml:id value of the element it addresses:
<p>
 <ref type="crossreftarget="#figure2">The following figure</ref> shows a typical example of such a tag document.
<figure xml:id="figure2">
  <graphic url="img/tagdoc-p2.png"
   width="642pxheight="716px"/>

  <head type="legend">Tagdoc for <gi>resp</gi> element in P2.</head>
 </figure>
</p>
For unlabeled cross-links, the <ptr type="crossref" xml:id="#link-target"> is replaced with an appropriate label for the link target at rendering time:
<p>
 <ptr target="#table2type="crossref"/> shows allowable <att>rend</att> values and
their equivalent meanings.
</p>
<table xml:id="table2">
 <head>Allowable <att>rend</att> attribute values in <ident>tei_corset</ident>
   customization</head>
 <row role="label">
  <cell>
   <att>rend</att>
   <lb/>(renamed <att>r</att>) <lb/>attribute value</cell>
  <cell>Meaning</cell>
 </row>
<!-- ... -->
</table>
In the generated ODT, OpenEdition, and PDF version, the cross-reference is is rendered as: ‘Table X shows allowable @rend values and their equivalent meanings.’

Note how internal links are rendered as plain text instead of hyperlinks in the OpenEdition version for publication at journals.openedition.org.

Another type of internal linking consists of bibliographic references, pointing to entries in the bibliography. This should be done with a specific type of ref element, with value bibl for the type attribute. The value of the target attribute for bibliographic references must point to a bibl element in the bibliography:
<p>Thomas notes numerous additional developments in the use of computers in historical
study, both in the United States and elsewhere between the 1940s and the early
twenty-first century (<ref type="bibltarget="#thomas04">Thomas 2004</ref>).</p>
<!-- ... -->
<back>
 <div type="bibliography">
  <listBibl>
   <bibl xml:id="thomas04">
    <author>Thomas, William G., III</author>. <date>2004</date>.
   <title level="a">Computing and the Historical Imagination</title>:
   <title level="m">A Companion to Digital Humanities</title>, edited by
   <editor>Susan Schreibman</editor>, <editor>Ray Siemens</editor>, and
   <editor>John Unsworth</editor>. <pubPlace>Oxford</pubPlace>:
   <publisher>Blackwell Publishing</publisher>.</bibl>
  </listBibl>
 </div>
</back>
Note, how all characters surrounding bibliographic references have to be hard-coded in the text; they are not generated automatically at rendering time. For linking bibliographic references with quotations, see 4.4 Quotations, Inline and Block.

9 External Linking

Links to external destinations can be encoded with ptr (unlabeled) or ref (labeled). They must have a target attribute whose value is the URI of the link's destination:
<item>addresses the range between two points (<ref target="http://www.tei-c.org/Vault/P5/2.2.0/doc/tei-p5-doc/en/html/SA.html#SATSRN">16.2.5.4 range()</ref>)</item>
<p>More detailed information can be found at <ptr target="http://www.tei-c.org/Vault/P5/2.5.0/doc/tei-p5-doc/en/html/ref-elementSpec.html"/>.</p>
At rendering time, both types of links are transformed to clickable hyperlinks, and for ptr the value of the target attribute is used as the link label.

One caveat for external links to the TEI Guidelines: since the web version at http://www.tei-c.org/Guidelines/P5/ is unstable and will be updated at each new release, you must point to the archived versions in the ‘Vault’ section of the TEI website. There, you can find an archive of all previous TEI releases and their documentation. Follow the links to the exact version you're referencing in your article (even if it's the current version), and use them for your external hyperlinks. In the examples above, the first link points to the documentation of version 2.2.0 of the TEI Guidelines, while the second link points to version 2.5.0.

10 Frequently-asked Questions

Appendix A Summary of Elements and their Rendition

Element/TagUsageExampleRendition
abbran abbreviation of any sort
<abbr>DPI</abbr>
DPI
attattribute name
<att>place</att>
@place
citblockquote with bibliographic reference
<cit>
 <quote source="quoteref7">
  <supplied>A</supplied>ccount books
   are among the most common but least accessible primary sources
   for historians<gap/>
 </quote>
 <ref type="bibl"
  xml:id="quoteref7"
  target="#mcgaw85">
McGaw 1985</ref>
</cit>
[A]ccount books are among the most common but least accessible primary sources for historians …
(McGaw 1985)
codeshort inline code example
<p>A mixed content model such as
<code>(#PCDATA | a | model.b)*</code>
might be expressed as follows</p>

A mixed content model such as (#PCDATA | a | model.b)* might be expressed as follows

egnon-XML code example
<eg>   $('#teiHolder').data('modVers', {     xmlFile: 'data/teiFile.xml'     annotations: 'data/annotations.json',     fixFirst: false,     fullscreen: false,     height: 300,     ids: 'a,b,c',     witnesses: 'v1,v2'                }); </eg>
  $('#teiHolder').data('modVers', {     xmlFile: 'data/teiFile.xml'     annotations: 'data/annotations.json',     fixFirst: false,     fullscreen: false,     height: 300,     ids: 'a,b,c',     witnesses: 'v1,v2'                });
egXMLXML example code
<egXML xmlns="http://www.tei-c.org/ns/Examples">   <content>     <classRef key="model.ab" maxOccurs="unlimited"/>    </content> </egXML>               
<content>
 <classRef key="model.ab"
  maxOccurs="unlimited"/>

</content>
emphemphasized text (italics)
The TEI began as a conscious attempt to <emph>model</emph>
existing and future markup systems.
The TEI began as a conscious attempt to model existing and future markup systems.
figurea block figure or example code, with a mandatory heading
<figure xml:id="figure1">
 <graphic url="img/ives_img_01.png"
  width="768px"
  height="1004px"/>

 <head type="legend">Page-image from Ingelow’s
 <title level="m">Poems</title>
 </head>
</figure>
Figure 1: Page-image from Ingelow’s Poems
foreigna foreign text fragment
Nowhere is this more obvious than in the weight
accorded the single author monograph, which remains
the standard <foreign xml:lang="fr">par
excellence</foreign> of scholarship in the humanities.
Nowhere is this more obvious than in the weight accorded the single author monograph, which remains the standard par excellence of scholarship in the humanities.
gapan omission in quoted text
<quote source="#quoteref7">Leisure moments only <gap/>
available for its execution</quote>
“Leisure moments only … available for its execution”
githe name of an XML element
<gi>quote</gi>
<quote>
graphica digital image
<graphic url="img/ives_img_01.png"
 width="768px"
 height="1004px"/>
heada heading for a text division, figure, table, or list
<div xml:id="futuredirections">
 <head>Future Directions</head>
</div>
4. Future Directions
identidentifier in a formal language
the new <ident>range()</ident> and <ident>string-range()</ident>
pointers
the new range() and string-range() pointers
lista list
<list rend="ordered">
 <item>The first misconception is this: digital texts and digital
   archives merely replicate physical texts and physical archives
   in a non-material environment.</item>
 <item>The second misconception is that all possible digital
   representations of a text are created equal.</item>
</list>
  1. The first misconception is this: digital texts and digital archives merely replicate physical texts and physical archives in a non-material environment.
  2. The second misconception is that all possible digital representations of a text are created equal.
mentioneda word that is ‘mentioned’
conversations on the multi-dimensional understanding of
<mentioned>text</mentioned> and
<mentioned>representation</mentioned>
conversations on the multi-dimensional understanding of text and representation
notea footnote
A similar suggestion is made in Eric Van der Vlist’s
<title level="m">RELAX NG</title>
<note>
 <p>
  <ref target="http://relaxng/">http://relaxng/</ref>.
 </p>
</note>
(<ref type="bibl"
 target="#vlist04">
2004</ref>)
A similar suggestion is made in Eric Van der Vlist’s RELAX NG1 (2004)
Notes

1 http://relaxng/.

ptra pointer to another location (internal or external)
The rest of this paper treats each of these points in more detail.
<ptr type="crossref"
 target="#interoperability"/>
describes the
nature of the interoperability problem.
The rest of this paper treats each of these points in more detail. Section 2 describes the nature of the interoperability problem.
qa short, unattributed inline quotation
(student survey responses included words such as
<q>apprehensive</q>, <q>intimidated</q>, and even
<q>terrified</q>), which explains why one student
commented that TEI training
<q>was not something
I would have sought out on my own.</q>
(student survey responses included words such as “apprehensive,” “intimidated,” and even “terrified”), which explains why one student commented that TEI training “was not something I would have sought out on my own.”
quotean attributed quotation
<quote source="#quoteref4">Names of authors</quote> appear
in <quote source="#quoteref4">Italic Capitals</quote>
(<ref type="bibl"
 xml:id="quoteref4"
 target="#arber1875">
Arber 1875–95, 1:29</ref>).
“Names of authors” appear in “Italic Capitals” (Arber 1875–95, 1:29).
refa reference to another location (with custom label text)
<ref target="http://www.tei-c.org/#SATSRN">16.2.5.4 range()</ref>)
16.2.5.4 range())
soCalleda word from which the author distances herself
There are possible ways (<soCalled>hacks</soCalled>) around
some of these problems
There are possible ways (“hacks”) around some of these problems
suppliedtext that has been added by the jTEI author (in a quotation)
<q>Finding what you need can be problematic. Lack of
links to chapters that describe elements next
<supplied>to</supplied> some element definitions</q>
“Finding what you need can be problematic. Lack of links to chapters that describe elements next [to] some element definitions”
tablea table
<table xml:id="table3">
 <head>Allowable <att>rend</att> attribute values in
 <ident>tei_corset</ident> customization</head>
 <row role="label">
  <cell>
   <att>rend</att>
   <lb/>(renamed <att>r</att>)
  <lb/>attribute value</cell>
  <cell>Meaning</cell>
 </row>
 <row>
  <cell role="label">
   <val>ab</val>
  </cell>
  <cell>rendered above the line</cell>
 </row>
 <row>
  <cell role="label">
   <val>al</val>
  </cell>
  <cell>rendered aligned to the left</cell>
 </row>
</table>
Table 4: Allowable @rend attribute values in tei_corset customization
@rend
(renamed @r)
attribute value
Meaning
abrendered above the line
alrendered aligned to the left
taga full XML tag
<tag type="empty">rng:ref name="model.pLike"</tag>
<rng:ref name="model.pLike"/>
terma technical term
Annotations are stored in <term>triple stores</term>
or graph databases like Neo4J
Annotations are stored in triple stores or graph databases like Neo4J
titlethe title of a bibliographic work
<title level="a">Where Did All the Document Kids Go?
Open-source, Markup, and the Casual Developer.</title>
Presented at Balisage: The Markup Conference 2013,
Montréal, Canada, August 6–9, 2013. In
<title level="m">Proceedings of Balisage: The Markup
Conference 2013</title>.
“Where Did All the Document Kids Go? Open-source, Markup, and the Casual Developer.” Presented at Balisage: The Markup Conference 2013, Montréal, Canada, August 6–9, 2013. In Proceedings of Balisage: The Markup Conference 2013.
valan attribute value
an attribute <att>preserveOrder</att> taking values
<val>true</val> or
<val>false</val>
an attribute @preserveOrder taking values "true" or "false"

Appendix B

Schema tei_jtei: Elements

<abbr>

<abbr> (abbreviation) contains an abbreviation of any sort. [3.6.5. Abbreviations and Their Expansions]
Modulecore
Attributes
type(type) allows the encoder to classify the abbreviation according to some convenient typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Note

The type attribute is provided for the sake of those who wish to classify abbreviations at their point of occurrence; this may be useful in some circumstances, though usually the same abbreviation will have the same type in all occurrences. As the sample values make clear, abbreviations may be classified by the method used to construct them, the method of writing them, or the referent of the term abbreviated; the typology used is up to the encoder and should be carefully planned to meet the needs of the expected use. For a typology of Middle English abbreviations, see 6.2.

Member of
Contained by
May contain
Note

If abbreviations are expanded silently, this practice should be documented in the <editorialDecl>, either with a <normalization> element or a p.

Example
<choice>
 <expan>North Atlantic Treaty Organization</expan>
 <abbr cert="low">NorATO</abbr>
 <abbr cert="high">NATO</abbr>
 <abbr cert="highxml:lang="fr">OTAN</abbr>
</choice>
Example
<choice>
 <abbr>SPQR</abbr>
 <expan>senatus populusque romanorum</expan>
</choice>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element abbr
{
   att.global.attributes,
   att.cmc.attributes,
   attribute type { teidata.enumerated }?,
   macro.phraseSeq
}

<affiliation>

<affiliation> (affiliation) contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [16.2.2. The Participant Description]
Modulenamesdates
Attributes
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Member of
Contained by
May contain
Note

If included, the name of an organization may be tagged using either the name element as above, or the more specific orgName element.

Example
<affiliation>Junior project officer for the US <name type="org">National Endowment for
   the Humanities</name>
</affiliation>
Example

This example indicates that the person was affiliated with the Australian Journalists Association at some point between the dates listed.

<affiliation notAfter="1960-01-01"
 notBefore="1957-02-28">
Paid up member of the
<orgName>Australian Journalists Association</orgName>
</affiliation>
Example

This example indicates that the person was affiliated with Mount Holyoke College throughout the entire span of the date range listed.

<affiliation from="1902-01-01"
 to="1906-01-01">
Was an assistant professor at Mount Holyoke College.</affiliation>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element affiliation
{
   att.global.attributes,
   att.editLike.attributes,
   att.datable.w3c.attribute.when,
   att.datable.w3c.attribute.notBefore,
   att.datable.w3c.attribute.from,
   att.datable.w3c.attribute.to,
   att.cmc.attributes,
   attribute type { teidata.enumerated }?,
   macro.phraseSeq
}

<appInfo>

<appInfo> (application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element]
Moduleheader
Attributes
Member of
Contained by
header: encodingDesc
May contain
header: application
Example
<appInfo>
 <application version="1.24ident="Xaira">
  <label>XAIRA Indexer</label>
  <ptr target="#P1"/>
 </application>
</appInfo>
Content model
<content>
 <classRef key="model.applicationLike"
  minOccurs="1maxOccurs="unbounded"/>

</content>
Schema Declaration
element appInfo { att.global.attributes, model.applicationLike+ }

<application>

<application> provides information about an application which has acted upon the document. [2.3.11. The Application Information Element]
Moduleheader
Attributes
identsupplies an identifier for the application, independent of its version number or display name.
Status Required
Datatype teidata.name
versionsupplies a version number for the application, independent of its identifier or display name.
Status Required
Datatype teidata.versionNumber
Member of
Contained by
header: appInfo
May contain
Example
<appInfo>
 <application version="1.5"
  ident="ImageMarkupTool1notAfter="2006-06-01">

  <label>Image Markup Tool</label>
  <ptr target="#P1"/>
  <ptr target="#P2"/>
 </application>
</appInfo>

This example shows an appInfo element documenting the fact that version 1.5 of the Image Markup Tool1 application has an interest in two parts of a document which was last saved on June 6 2006. The parts concerned are accessible at the URLs given as target for the two ptr elements.

Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <classRef key="model.labelLike"
   minOccurs="1maxOccurs="unbounded"/>

  <alternate minOccurs="1maxOccurs="1">
   <classRef key="model.ptrLike"
    minOccurs="0maxOccurs="unbounded"/>

   <classRef key="model.pLike"
    minOccurs="0maxOccurs="unbounded"/>

  </alternate>
 </sequence>
</content>
Schema Declaration
element application
{
   att.global.attributes,
   att.datable.w3c.attribute.when,
   att.datable.w3c.attribute.notBefore,
   att.datable.w3c.attribute.from,
   att.datable.w3c.attribute.to,
   attribute ident { teidata.name },
   attribute version { teidata.versionNumber },
   ( model.labelLike+, ( model.ptrLike* | model.pLike* ) )
}

<att>

<att> (attribute) contains the name of an attribute appearing within running text. [23. Documentation Elements]
Moduletagdocs
Attributes
Member of
Contained by
May contain
XSD Name
Note

As an alternative to using the scheme attribute a namespace prefix may be used. Where both scheme and a prefix are used, the prefix takes precedence.

Example
<p>The TEI defines several <soCalled>global</soCalled> attributes; their names include
<att>xml:id</att>, <att>rend</att>, <att>xml:lang</att>, <att>n</att>, <att>xml:space</att>,
and <att>xml:base</att>; <att scheme="XX">type</att> is not amongst them.</p>
Schematron

<sch:rule context="tei:att">
<sch:assert test="not(matches(., '^@'))"> Attribute delimiters are not allowed for <sch:name/>: they are completed at processing time via XSLT.
</sch:assert>
</sch:rule>
Content model
<content>
 <dataRef key="teidata.name"/>
</content>
Schema Declaration
element att { att.global.attributes, teidata.name }

<author>

<author> (author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement]
Modulecore
Attributes
Member of
Contained by
core: bibl
header: titleStmt
May contain
Note

Particularly where cataloguing is likely to be based on the content of the header, it is advisable to use a generally recognized name authority file to supply the content for this element. The attributes key or ref may also be used to reference canonical information about the author(s) intended from any appropriate authority, such as a library catalogue or online resource.

In the case of a broadcast, use this element for the name of the company or network responsible for making the broadcast.

Where an author is unknown or unspecified, this element may contain text such as Unknown or Anonymous. When the appropriate TEI modules are in use, it may also contain detailed tagging of the names used for people, organizations or places, in particular where multiple names are given.

Example
<author>British Broadcasting Corporation</author>
<author>La Fayette, Marie Madeleine Pioche de la Vergne, comtesse de (1634–1693)</author>
<author>Anonymous</author>
<author>Bill and Melinda Gates Foundation</author>
<author>
 <persName>Beaumont, Francis</persName> and
<persName>John Fletcher</persName>
</author>
<author>
 <orgName key="BBC">British Broadcasting
   Corporation</orgName>: Radio 3 Network
</author>
Schematron

<sch:rule context="tei:titleStmt/tei:author">
<sch:assert test="tei:name and tei:affiliation and tei:email"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#structure">
Author information in the <titleStmt> must include <name>, <affiliation> and <email>.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element author
{
   att.global.attributes,
   att.datable.attributes,
   macro.phraseSeq
}

<availability>

<availability> (availability) supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. Publication, Distribution, Licensing, etc.]
Moduleheader
Attributes
Member of
Contained by
May contain
core: p
header: licence
Note

A consistent format should be adopted

Example
<availability status="restricted">
 <p>Available for academic research purposes only.</p>
</availability>
<availability status="free">
 <p>In the public domain</p>
</availability>
<availability status="restricted">
 <p>Available under licence from the publishers.</p>
</availability>
Example
<availability>
 <licence target="http://opensource.org/licenses/MIT">
  <p>The MIT License
     applies to this document.</p>
  <p>Copyright (C) 2011 by The University of Victoria</p>
  <p>Permission is hereby granted, free of charge, to any person obtaining a copy
     of this software and associated documentation files (the "Software"), to deal
     in the Software without restriction, including without limitation the rights
     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     copies of the Software, and to permit persons to whom the Software is
     furnished to do so, subject to the following conditions:</p>
  <p>The above copyright notice and this permission notice shall be included in
     all copies or substantial portions of the Software.</p>
  <p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     THE SOFTWARE.</p>
 </licence>
</availability>
Content model
<content>
 <alternate minOccurs="1"
  maxOccurs="unbounded">

  <classRef key="model.availabilityPart"/>
  <classRef key="model.pLike"/>
 </alternate>
</content>
Schema Declaration
element availability
{
   att.global.attributes,
   ( model.availabilityPart | model.pLike )+
}

<back>

<back> (back matter) contains any appendixes, etc. following the main part of a text. [4.7. Back Matter 4. Default Text Structure]
Moduletextstructure
Attributes
Contained by
textstructure: text
May contain
figures: figure table
namesdates: listPerson
textstructure: div
Note

Because cultural conventions differ as to which elements are grouped as back matter and which as front matter, the content models for the back and front elements are identical.

Example
<back>
 <div type="appendix">
  <head>The Golden Dream or, the Ingenuous Confession</head>
  <p>TO shew the Depravity of human Nature, and how apt the Mind is to be misled by Trinkets
     and false Appearances, Mrs. Two-Shoes does acknowledge, that after she became rich, she
     had like to have been, too fond of Money
<!-- .... -->
  </p>
 </div>
<!-- ... -->
 <div type="epistle">
  <head>A letter from the Printer, which he desires may be inserted</head>
  <salute>Sir.</salute>
  <p>I have done with your Copy, so you may return it to the Vatican, if you please;
  
<!-- ... -->
  </p>
 </div>
 <div type="advert">
  <head>The Books usually read by the Scholars of Mrs Two-Shoes are these and are sold at Mr
     Newbery's at the Bible and Sun in St Paul's Church-yard.</head>
  <list>
   <item n="1">The Christmas Box, Price 1d.</item>
   <item n="2">The History of Giles Gingerbread, 1d.</item>
<!-- ... -->
   <item n="42">A Curious Collection of Travels, selected from the Writers of all Nations,
       10 Vol, Pr. bound 1l.</item>
  </list>
 </div>
 <div type="advert">
  <head>By the KING's Royal Patent, Are sold by J. NEWBERY, at the Bible and Sun in St.
     Paul's Church-Yard.</head>
  <list>
   <item n="1">Dr. James's Powders for Fevers, the Small-Pox, Measles, Colds, &amp;c. 2s.
       6d</item>
   <item n="2">Dr. Hooper's Female Pills, 1s.</item>
<!-- ... -->
  </list>
 </div>
</back>
Schematron

<sch:rule context="tei:back">
<sch:assert test="tei:div[@type='bibliography']/tei:listBibl"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">

 <sch:name/> must have a bibliography (div[@type="bibliography"]), which must be
organized inside a <listBibl> element. </sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.frontPart"/>
   <classRef key="model.pLike.front"/>
   <classRef key="model.pLike"/>
   <classRef key="model.listLike"/>
   <classRef key="model.global"/>
  </alternate>
  <alternate minOccurs="0maxOccurs="1">
   <sequence minOccurs="1maxOccurs="1">
    <classRef key="model.div1Like"/>
    <alternate minOccurs="0"
     maxOccurs="unbounded">

     <classRef key="model.frontPart"/>
     <classRef key="model.div1Like"/>
     <classRef key="model.global"/>
    </alternate>
   </sequence>
   <sequence minOccurs="1maxOccurs="1">
    <classRef key="model.divLike"/>
    <alternate minOccurs="0"
     maxOccurs="unbounded">

     <classRef key="model.frontPart"/>
     <classRef key="model.divLike"/>
     <classRef key="model.global"/>
    </alternate>
   </sequence>
  </alternate>
  <sequence minOccurs="0maxOccurs="1">
   <classRef key="model.divBottomPart"/>
   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <classRef key="model.divBottomPart"/>
    <classRef key="model.global"/>
   </alternate>
  </sequence>
 </sequence>
</content>
Schema Declaration
element back
{
   att.global.attributes,
   (
      (
         model.frontPartmodel.pLike.frontmodel.pLikemodel.listLikemodel.global
      )*,
      (
         (
            model.div1Like,
            ( model.frontPart | model.div1Like | model.global )*
         )
       | ( model.divLike, ( model.frontPart | model.divLike | model.global )* )
      )?,
      ( ( model.divBottomPart, ( model.divBottomPart | model.global )* )? )
   )
}

<bibl>

<bibl> (bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements]
Modulecore
Attributes
Member of
Contained by
figures: cell
namesdates: person
textstructure: body div
transcr: supplied
May contain
Note

Contains phrase-level elements, together with any combination of elements from the model.biblPart class

Example
<bibl>Blain, Clements and Grundy: Feminist Companion to Literature in English (Yale,
1990)</bibl>
Example
<bibl>
 <title level="a">The Interesting story of the Children in the Wood</title>. In
<author>Victor E Neuberg</author>, <title>The Penny Histories</title>.
<publisher>OUP</publisher>
 <date>1968</date>.
</bibl>
Example
<bibl type="articlesubtype="book_chapter"
 xml:id="carlin_2003">

 <author>
  <name>
   <surname>Carlin</surname>
     (<forename>Claire</forename>)</name>
 </author>,
<title level="a">The Staging of Impotence : France’s last
   congrès</title> dans
<bibl type="monogr">
  <title level="m">Theatrum mundi : studies in honor of Ronald W.
     Tobin</title>, éd.
 <editor>
   <name>
    <forename>Claire</forename>
    <surname>Carlin</surname>
   </name>
  </editor> et
 <editor>
   <name>
    <forename>Kathleen</forename>
    <surname>Wine</surname>
   </name>
  </editor>,
 <pubPlace>Charlottesville, Va.</pubPlace>,
 <publisher>Rookwood Press</publisher>,
 <date when="2003">2003</date>.
 </bibl>
</bibl>
Schematron

<sch:rule context="tei:back/tei:div[@type eq 'bibliography']//tei:bibl"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#backrole="warning">

<sch:assert test="@xml:id"> A bibliographic entry should have a unique value for @xml:id.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:back/tei:div[@type eq 'bibliography']//tei:bibl"
 role="warning">

<sch:assert test="key('idrefs', @xml:id)/parent::tei:ref[@type='bibl']"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">
This bibliographic entry is an orphan: no ref[@type="bibl"] references to it occur in the text.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:back/tei:div[@type eq 'bibliography']//tei:bibl"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#backrole="warning">

<sch:report test="descendant::node()[last()][ not(matches(normalize-space(), '(^|[^.?!:;,])\.$')) or preceding-sibling::node()[1]/descendant-or-self::*[last()] [matches(normalize-space(), '[.?!:;,]$')] ]"> A bibliographic entry should end with a single period.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:bibl/tei:title[@level='j']"
 role="warning">

<sch:report test="self::*[preceding-sibling::*[1]/self::tei:title[@level='a']] [not(preceding-sibling::node()[normalize-space()][1][matches(normalize-space(), '[.,!?]$')])] "
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">
An analytic title and a journal title in a bibliographic entry should only be separated by a comma or a period (or the end punctuation of the analytic title).
</sch:report>
</sch:rule>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.highlighted"/>
  <classRef key="model.pPart.data"/>
  <classRef key="model.pPart.edit"/>
  <classRef key="model.segLike"/>
  <classRef key="model.ptrLike"/>
  <classRef key="model.biblPart"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Schema Declaration
element bibl
{
   att.global.attributes,
   att.cmc.attributes,
   (
      text
    | model.gLikemodel.highlightedmodel.pPart.datamodel.pPart.editmodel.segLikemodel.ptrLikemodel.biblPartmodel.global
   )*
}

<biblScope>

<biblScope> (scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [3.12.2.5. Scopes and Ranges in Bibliographic Citations]
Modulecore
Attributes
unitidentifies the unit of information conveyed by the element, e.g. columns, pages, volume, entry.
Derived fromatt.citing
Status Optional
Datatype teidata.enumerated
Legal values are:
chapter
issue
page
part
volume
Member of
Contained by
core: bibl series
header: seriesStmt
May contain
Note

When a single page is being cited, use the from and to attributes with an identical value. When no clear endpoint is provided, the from attribute may be used without to; for example a citation such as ‘p. 3ff’ might be encoded <biblScope from="3">p. 3ff</biblScope>.

It is now considered good practice to supply this element as a sibling (rather than a child) of <imprint>, since it supplies information which does not constitute part of the imprint.

Example
<biblScope>pp 12–34</biblScope>
<biblScope unit="pagefrom="12to="34"/>
<biblScope unit="volume">II</biblScope>
<biblScope unit="page">12</biblScope>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element biblScope
{
   att.global.attributes,
   attribute unit { "chapter" | "issue" | "page" | "part" | "volume" }?,
   macro.phraseSeq
}

<body>

<body> (text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. Default Text Structure]
Moduletextstructure
Attributes
Contained by
textstructure: text
May contain
figures: figure table
namesdates: listPerson
tagdocs: eg egXML
textstructure: div
Example
<body>
 <l>Nu scylun hergan hefaenricaes uard</l>
 <l>metudæs maecti end his modgidanc</l>
 <l>uerc uuldurfadur sue he uundra gihuaes</l>
 <l>eci dryctin or astelidæ</l>
 <l>he aerist scop aelda barnum</l>
 <l>heben til hrofe haleg scepen.</l>
 <l>tha middungeard moncynnæs uard</l>
 <l>eci dryctin æfter tiadæ</l>
 <l>firum foldu frea allmectig</l>
 <trailer>primo cantauit Cædmon istud carmen.</trailer>
</body>
Schematron

<sch:rule context="tei:body[child::tei:div[not(@type=('editorialIntroduction'))]]">
<sch:assert test="count(child::tei:div) gt 1"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#body">
If <sch:name/> contains a div, and that div is not an editorial introduction, then there should be
more than one div. Rather than using only a single div, you may place the content directly
in the <sch:name/> element.
</sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divTop"/>
   <classRef key="model.global"/>
  </alternate>
  <sequence minOccurs="0maxOccurs="1">
   <alternate minOccurs="1maxOccurs="1">
    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <alternate minOccurs="1maxOccurs="1">
      <classRef key="model.divLike"/>
      <classRef key="model.divGenLike"/>
     </alternate>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
    <sequence minOccurs="1maxOccurs="1">
     <sequence minOccurs="1"
      maxOccurs="unbounded">

      <classRef key="model.common"/>
      <classRef key="model.global"
       minOccurs="0maxOccurs="unbounded"/>

     </sequence>
     <sequence minOccurs="0"
      maxOccurs="unbounded">

      <alternate minOccurs="1"
       maxOccurs="1">

       <classRef key="model.divLike"/>
       <classRef key="model.divGenLike"/>
      </alternate>
      <classRef key="model.global"
       minOccurs="0maxOccurs="unbounded"/>

     </sequence>
    </sequence>
   </alternate>
   <sequence minOccurs="0"
    maxOccurs="unbounded">

    <classRef key="model.divBottom"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
  </sequence>
 </sequence>
</content>
Schema Declaration
element body
{
   att.global.attributes,
   (
      ( model.divTop | model.global )*,
      (
         (
            (
               ( ( ( model.divLike | model.divGenLike ), model.global* )+ )
             | (
                  ( ( model.common, model.global* )+ ),
                  ( ( ( model.divLike | model.divGenLike ), model.global* )* )
               )
            ),
            ( ( model.divBottom, model.global* )* )
         )?
      )
   )
}

<catRef>

<catRef> (category reference) specifies one or more defined categories within some taxonomy or text typology. [2.4.3. The Text Classification]
Moduleheader
Attributes
schemeidentifies the classification scheme within which the set of categories concerned is defined, for example by a <taxonomy> element, or by some other resource.
Status Optional
Datatype teidata.pointer
Contained by
header: textClass
May containEmpty element
Note

The scheme attribute needs to be supplied only if more than one taxonomy has been declared.

Example
<catRef scheme="#myTopics"
 target="#news #prov #sales2"/>

<!-- elsewhere -->
<taxonomy xml:id="myTopics">
 <category xml:id="news">
  <catDesc>Newspapers</catDesc>
 </category>
 <category xml:id="prov">
  <catDesc>Provincial</catDesc>
 </category>
 <category xml:id="sales2">
  <catDesc>Low to average annual sales</catDesc>
 </category>
</taxonomy>
Content model
<content>
 <empty/>
</content>
Schema Declaration
element catRef
{
   att.global.attributes,
   att.pointing.attributes,
   attribute scheme { teidata.pointer }?,
   empty
}

<cell>

<cell> (cell) contains one cell of a table. [15.1.1. TEI Tables]
Modulefigures
Attributes
Contained by
figures: row
May contain
Example
<row>
 <cell role="label">General conduct</cell>
 <cell role="data">Not satisfactory, on account of his great unpunctuality
   and inattention to duties</cell>
</row>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element cell
{
   att.global.attributes,
   att.tableDecoration.attributes,
   macro.specialPara
}

<change>

<change> (change) documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 12.7. Identifying Changes and Revisions]
Moduleheader
Attributes
target(target) points to one or more elements that belong to this change.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Contained by
May contain
Note

The who attribute may be used to point to any other element, but will typically specify a respStmt or person element elsewhere in the header, identifying the person responsible for the change and their role in making it.

It is recommended that changes be recorded with the most recent first. The status attribute may be used to indicate the status of a document following the change documented.

Example
<titleStmt>
 <title> ... </title>
 <editor xml:id="LDB">Lou Burnard</editor>
 <respStmt xml:id="BZ">
  <resp>copy editing</resp>
  <name>Brett Zamir</name>
 </respStmt>
</titleStmt>
<!-- ... -->
<revisionDesc status="published">
 <change who="#BZwhen="2008-02-02"
  status="public">
Finished chapter 23</change>
 <change who="#BZwhen="2008-01-02"
  status="draft">
Finished chapter 2</change>
 <change n="P2.2when="1991-12-21"
  who="#LDB">
Added examples to section 3</change>
 <change when="1991-11-11who="#MSM">Deleted chapter 10</change>
</revisionDesc>
Example
<profileDesc>
 <creation>
  <listChange>
   <change xml:id="DRAFT1">First draft in pencil</change>
   <change xml:id="DRAFT2"
    notBefore="1880-12-09">
First revision, mostly
       using green ink</change>
   <change xml:id="DRAFT3"
    notBefore="1881-02-13">
Final corrections as
       supplied to printer.</change>
  </listChange>
 </creation>
</profileDesc>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element change
{
   att.ascribed.attributes,
   att.datable.attributes,
   att.global.attributes,
   att.typed.attributes,
   attribute target { list { teidata.pointer+ } }?,
   macro.specialPara
}

<cit>

<cit> (cited block quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In jTEI, this is used only for block quotations, and it will be rendered as a block. For inline quotations, use the quote element and link it to a reference using source. [3.3.3. Quotation 4.3.1. Grouped Texts 10.3.5.1. Examples]
Modulecore
Attributes
Member of
Contained by
May contain
Example
<cit>
 <quote>and the breath of the whale is frequently attended with such an insupportable smell,
   as to bring on disorder of the brain.</quote>
 <bibl>Ulloa's South America</bibl>
</cit>
Example
<entry>
 <form>
  <orth>horrifier</orth>
 </form>
 <cit type="translationxml:lang="en">
  <quote>to horrify</quote>
 </cit>
 <cit type="example">
  <quote>elle était horrifiée par la dépense</quote>
  <cit type="translationxml:lang="en">
   <quote>she was horrified at the expense.</quote>
  </cit>
 </cit>
</entry>
Example
<cit type="example">
 <quote xml:lang="mix">Ka'an yu tsa'a Pedro.</quote>
 <media url="soundfiles-gen:S_speak_1s_on_behalf_of_Pedro_01_02_03_TS.wav"
  mimeType="audio/wav"/>

 <cit type="translation">
  <quote xml:lang="en">I'm speaking on behalf of Pedro.</quote>
 </cit>
 <cit type="translation">
  <quote xml:lang="es">Estoy hablando de parte de Pedro.</quote>
 </cit>
</cit>
Schematron

<sch:rule context="tei:citrole="warning">
<sch:assert test="tei:ref"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#quotations">

 <sch:name/> is normally expected to have a bibliographic reference (ref[@type="bibl"]). Please make sure you intended not to add one here.
</sch:assert>
</sch:rule>
Content model
<content>
 <alternate minOccurs="1"
  maxOccurs="unbounded">

  <elementRef key="quote"/>
  <classRef key="model.biblLike"/>
  <classRef key="model.ptrLike"/>
 </alternate>
</content>
Schema Declaration
element cit
{
   att.global.attributes,
   att.cmc.attributes,
   ( quote | model.biblLike | model.ptrLike )+
}

<classCode>

<classCode> (classification code) contains the classification code used for this text in some standard classification system. [2.4.3. The Text Classification]
Moduleheader
Attributes
schemeidentifies the classification system in use, as defined by, e.g. a <taxonomy> element, or some other resource.
Status Required
Datatype teidata.pointer
Contained by
header: textClass
May contain
Example
<classCode scheme="http://www.udc.org">410</classCode>
Content model
<content>
 <macroRef key="macro.phraseSeq.limited"/>
</content>
Schema Declaration
element classCode
{
   att.global.attributes,
   attribute scheme { teidata.pointer },
   macro.phraseSeq.limited
}

<code>

<code> contains literal code from some formal language such as a programming language. [23.1.1. Phrase Level Terms]
Moduletagdocs
Attributes
lang(formal language) a name identifying the formal language in which the code is expressed
Status Optional
Datatype teidata.word
Member of
Contained by
May containCharacter data only
Example
<code lang="JAVA"> Size fCheckbox1Size = new Size();
fCheckbox1Size.Height = 500;
fCheckbox1Size.Width = 500;
xCheckbox1.setSize(fCheckbox1Size);
</code>
Content model
<content>
 <textNode/>
</content>
Schema Declaration
element code { att.global.attributes, attribute lang { teidata.word }?, text }

<date>

<date> (date) contains a date in any format. [3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 16.2.3. The Setting Description 14.4. Dates]
Modulecore
Attributes
Member of
Contained by
May contain
Example
<date when="1980-02">early February 1980</date>
Example
Given on the <date when="1977-06-12">Twelfth Day
of June in the Year of Our Lord One Thousand Nine Hundred and Seventy-seven of the Republic
the Two Hundredth and first and of the University the Eighty-Sixth.</date>
Example
<date when="1990-09">September 1990</date>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.phrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Schema Declaration
element date
{
   att.global.attributes,
   att.datable.attributes,
   att.editLike.attributes,
   att.dimensions.attributes,
   att.cmc.attributes,
   ( text | model.gLike | model.phrase | model.global )*
}

<desc>

<desc> (description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented. [23.4.1. Description of Components]
Modulecore
Attributes
Member of
Contained by
May contain
Note

When used in a specification element such as <elementSpec>, TEI convention requires that this be expressed as a finite clause, begining with an active verb.

Example

Example of a desc element inside a documentation element.

<dataSpec module="tei"
 ident="teidata.point">

 <desc versionDate="2010-10-17"
  xml:lang="en">
defines the data type used to express a point in cartesian space.</desc>
 <content>
  <dataRef name="token"
   restriction="(-?[0-9]+(\.[0-9]+)?,-?[0-9]+(\.[0-9]+)?)"/>

 </content>
<!-- ... -->
</dataSpec>
Example

Example of a desc element in a non-documentation element.

<place xml:id="KERG2">
 <placeName>Kerguelen Islands</placeName>
<!-- ... -->
 <terrain>
  <desc>antarctic tundra</desc>
 </terrain>
<!-- ... -->
</place>
SchematronA desc with a type of deprecationInfo should only occur when its parent element is being deprecated. Furthermore, it should always occur in an element that is being deprecated when desc is a valid child of that element.

<sch:rule context="tei:desc[ @type eq 'deprecationInfo']">
<sch:assert test="../@validUntil">Information about a
deprecation should only be present in a specification element
that is being deprecated: that is, only an element that has a
@validUntil attribute should have a child <desc
type="deprecationInfo">.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.limitedContent"/>
</content>
Schema Declaration
element desc
{
   att.global.attributes,
   att.cmc.attributes,
   macro.limitedContent
}

<div>

<div> (text division) contains a subdivision of the front, body, or back of a text. [4.1. Divisions of the Body]
Moduletextstructure
Attributes
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Legal values are:
abstract
(Abstract for the article, appearing inside <front>.) Every article must include an abstract, consisting of one or two paragraphs. This appears in the <front> element and may not appear anywhere else.
acknowledgements
(Acknowledgements for the article, appearing inside <front>.) If an article includes a section for acknowledgements (for funders, supporters, etc.), it should be as brief as possible, and must appear in the <front> element and nowhere else.
authorNotes
(Author's notes for the article, appearing inside <front>.) If an article includes a section for author notes, it should be as brief as possible, and must appear in the <front> element and nowhere else.)
dedication
(A dedication for the article, appearing inside <front>.) If an article includes a section for a dedication, it should be as brief as possible, and must appear in the <front> element and nowhere else.)
appendix
(Appendix to the article, appearing inside <back>.) Any appendices must appear in the <back> of the article, following the bibliography.
bibliography
(Bibliography, appearing inside <back>.) Every article must include a bibliography, which appears as the first component of the <back> element, followed by any appendices.
editorialIntroduction
(Editorial introduction, appearing inside <body>.) [Reserved for editors only: An editorial introduction to an issue must contain a <div type="editorialIntroduction">, which must appear in the <body> element and may not appear anywhere else.]
editorNotes
(Editor notes for the article, appearing inside <front>.) [Reserved for editors only: if an article includes a section for editor notes, it should be as brief as possible, and must appear in the <front> element and nowhere else.]
corrections
(Statement of corrections to the article, appearing inside <front>.) [Reserved for editors only: if an article needs corrections, those must be stated in this section, which must appear in the <front> element and nowhere else.]
Member of
Contained by
textstructure: back body div front
May contain
figures: figure table
namesdates: listPerson
tagdocs: eg egXML
textstructure: div
Example
<body>
 <div type="part">
  <head>Fallacies of Authority</head>
  <p>The subject of which is Authority in various shapes, and the object, to repress all
     exercise of the reasoning faculty.</p>
  <div n="1type="chapter">
   <head>The Nature of Authority</head>
   <p>With reference to any proposed measures having for their object the greatest
       happiness of the greatest number [...]</p>
   <div n="1.1type="section">
    <head>Analysis of Authority</head>
    <p>What on any given occasion is the legitimate weight or influence to be attached to
         authority [...] </p>
   </div>
   <div n="1.2type="section">
    <head>Appeal to Authority, in What Cases Fallacious.</head>
    <p>Reference to authority is open to the charge of fallacy when [...] </p>
   </div>
  </div>
 </div>
</body>
Schematron

<sch:rule context="tei:div[@type = $div.types.front]">
<sch:assert test="parent::tei:front"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#front">
A text division of type <sch:value-of select="@type"/> may only occur inside <front>. </sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:front/tei:div">
<sch:assert test="@type = $div.types.front"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#front">
Only text divisions of type <sch:value-of select="string-join(for $i in $div.types.front return concat(if (index-of($div.types.front, $i) = count($div.types.front)) then 'or ' else (), '"', $i, '"'), ', ')"/> may appear in the <front>.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:div[@type = ('bibliography', 'appendix')]"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">

<sch:assert test="parent::tei:back"> Bibliography (<sch:name/>[@type="bibliography"]) and appendices (<sch:name/>[@type="appendix"]) may only occur inside <back>. </sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:div[@type = ('editorialIntroduction')]">
<sch:assert test="parent::tei:body"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#body">
An editorial introduction (<sch:name/>[@type="editorialIntroduction"]) may only occur inside <body>.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:body//tei:div[not(@type = ('editorialIntroduction'))]">
<sch:assert test="tei:head"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#divs">
A <sch:name/> must contain a <head>. </sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:div">
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not(ancestor::tei:floatingText)"> Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:div">
<sch:report test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)"> Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText.
</sch:report>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divTop"/>
   <classRef key="model.global"/>
  </alternate>
  <sequence minOccurs="0maxOccurs="1">
   <alternate minOccurs="1maxOccurs="1">
    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <alternate minOccurs="1maxOccurs="1">
      <classRef key="model.divLike"/>
      <classRef key="model.divGenLike"/>
     </alternate>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
    <sequence minOccurs="1maxOccurs="1">
     <sequence minOccurs="1"
      maxOccurs="unbounded">

      <alternate minOccurs="1"
       maxOccurs="1">

       <elementRef key="schemaSpec"/>
       <classRef key="model.common"/>
      </alternate>
      <classRef key="model.global"
       minOccurs="0maxOccurs="unbounded"/>

     </sequence>
     <sequence minOccurs="0"
      maxOccurs="unbounded">

      <alternate minOccurs="1"
       maxOccurs="1">

       <classRef key="model.divLike"/>
       <classRef key="model.divGenLike"/>
      </alternate>
      <classRef key="model.global"
       minOccurs="0maxOccurs="unbounded"/>

     </sequence>
    </sequence>
   </alternate>
   <sequence minOccurs="0"
    maxOccurs="unbounded">

    <classRef key="model.divBottom"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
  </sequence>
 </sequence>
</content>
Schema Declaration
element div
{
   att.global.attributes,
   att.divLike.attributes,
   att.written.attributes,
   attribute type
   {
      "abstract"
    | "acknowledgements"
    | "authorNotes"
    | "dedication"
    | "appendix"
    | "bibliography"
    | "editorialIntroduction"
    | "editorNotes"
    | "corrections"
   }?,
   (
      ( model.divTop | model.global )*,
      (
         (
            (
               ( ( ( model.divLike | model.divGenLike ), model.global* )+ )
             | (
                  ( ( ( schemaSpec | model.common ), model.global* )+ ),
                  ( ( ( model.divLike | model.divGenLike ), model.global* )* )
               )
            ),
            ( ( model.divBottom, model.global* )* )
         )?
      )
   )
}

<edition>

<edition> (edition) describes the particularities of one edition of a text. [2.2.2. The Edition Statement]
Moduleheader
Attributes
Member of
Contained by
core: bibl
May contain
Example
<edition>First edition <date>Oct 1990</date>
</edition>
<edition n="S2">Students' edition</edition>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element edition { att.global.attributes, macro.phraseSeq }

<editor>

<editor> contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.12.2.2. Titles, Authors, and Editors]
Modulecore
Attributes
rolemay be used to specify further information about the entity referenced by this name in the form of a set of whitespace-separated values, for example the occupation of a person, or the status of a place.
Derived fromatt.naming
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Legal values are:
translator
guest
chief
managing
technical
Member of
Contained by
core: bibl series
header: seriesStmt
May contain
Note

A consistent format should be adopted.

Particularly where cataloguing is likely to be based on the content of the header, it is advisable to use generally recognized authority lists for the exact form of personal names.

Example
<editor role="Technical_Editor">Ron Van den Branden</editor>
<editor role="Editor-in-Chief">John Walsh</editor>
<editor role="Managing_Editor">Anne Baillot</editor>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element editor
{
   att.global.attributes,
   att.datable.attributes,
   attribute role
   {
      list { ( "translator" | "guest" | "chief" | "managing" | "technical" )+ }
   }?,
   macro.phraseSeq
}

<eg>

<eg> (example) contains any kind of illustrative example. [23.5. Element Specifications 23.5.3. Attribute List Specification]
Moduletagdocs
Attributes
Member of
Contained by
figures: cell figure
textstructure: body div
transcr: supplied
May contain
Note

If the example contains material in XML markup, either it must be enclosed within a CDATA marked section, or character entity references must be used to represent the markup delimiters. If the example contains well-formed XML, it should be marked using the more specific egXML element.

Example
<p>The
<gi>term</gi> element is declared using the following syntax:
<eg><![CDATA[<!ELEMENT term (%phrase.content;)>]]</eg>
</p>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element eg { att.global.attributes, macro.phraseSeq }

<egXML> [http://www.tei-c.org/ns/Examples]

<egXML> (example of XML) a single XML fragment demonstrating the use of some XML, such as elements, attributes, or processing instructions, etc., in which the egXML element functions as the root element. [23.1.1. Phrase Level Terms]
Namespacehttp://www.tei-c.org/ns/Examples
Moduletagdocs
Attributes
validindicates the intended validity of the example with respect to a schema.
Status Optional
Datatype teidata.enumerated
Legal values are:
true
the example is intended to be fully valid, assuming that its root element, or a provided root element, could have been used as a possible root element in the schema concerned. [Default]
feasible
the example could be transformed into a valid document by inserting any number of valid attributes and child elements anywhere within it; or it is valid against a version of the schema concerned in which the provision of character data, list, element, or attribute values has been made optional.
false
the example is not intended to be valid, and contains deliberate errors.
Member of
Contained by
figures: cell figure
textstructure: body div
transcr: supplied
May containANY
Note

In the source of the TEI Guidelines, this element declares itself and its content as belonging to the namespace http://www.tei-c.org/ns/Examples. This enables the content of the element to be validated independently against the TEI scheme. Where this element is used outside this context, a different namespace or none at all may be preferable. The content must however be a well-formed XML fragment or document: where this is not the case, the more general eg element should be used in preference.

Example
<egXML xmlns="http://www.tei-c.org/ns/Examples"><div>
  <head>A slide about <gi>egXML</gi>
  </head>
  <list>
   <item>
    <gi>egXML</gi> can be used to give XML examples in the TEI
       Examples namespace</item>
   <item>Attributes values for <att>valid</att>:
   <list rend="collapsed">
     <item>
      <val rend="green">true</val>: intended to be fully
           valid</item>
     <item>
      <val rend="amber">feasible</val>: valid if missing nodes
           provided</item>
     <item>
      <val rend="red">false</val>: not intended to be valid</item>
    </list>
   </item>
   <item>The <att>rend</att> attribute can be
       used for recording how parts of the example were rendered.</item>
  </list>
</div>
</egXML>
Example
<egXML valid="feasiblesource="#UND" xmlns="http://www.tei-c.org/ns/Examples"><text>
  <front>
<!-- front matter for the whole group -->
  </front>
  <group>
   <text>
<!-- first text -->
   </text>
   <text>
<!-- second text -->
   </text>
  </group>
</text>
<!-- This example is not valid TEI, but could be made so by adding missing components -->
</egXML>
Example
      <egXML xmlns="http://www.tei-c.org/ns/Examples" valid="false">          <para xml:lang="en">Doubloons are a pirate's best friend</para>       </egXML>     
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <anyElement/>
 </alternate>
</content>
Schema Declaration
element egXML
{
   att.global.attributes,
   attribute valid { "true" | "feasible" | "false" }?,
   ( text | anyElement_egXML_1 )*
}

<email>

<email> (electronic mail address) contains an email address identifying a location to which email messages can be delivered. [3.6.2. Addresses]
Modulecore
Attributes
Member of
Contained by
May contain
Note

The format of a modern Internet email address is defined in RFC 2822

Example
<email>membership@tei-c.org</email>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element email { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<emph>

<emph> (Emphasis (italicization)) The emph element is used for emphasized text, and will be rendered in italics. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language]
Modulecore
Attributes
Member of
Contained by
May contain
Example
You took the car and did <emph>what</emph>?!!
Example
<q>What it all comes to is this,</q> he said.
<q>
 <emph>What
   does Christopher Robin do in the morning nowadays?</emph>
</q>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
Schema Declaration
element emph { att.global.attributes, att.cmc.attributes, macro.paraContent }

<encodingDesc>

<encodingDesc> (encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. [2.3. The Encoding Description 2.1.1. The TEI Header and Its Components]
Moduleheader
Attributes
Member of
Contained by
header: teiHeader
May contain
Example
<encodingDesc>
 <p>Basic encoding, capturing lexical information only. All
   hyphenation, punctuation, and variant spellings normalized. No
   formatting or layout information preserved.</p>
</encodingDesc>
Content model
<content>
 <alternate minOccurs="1"
  maxOccurs="unbounded">

  <classRef key="model.encodingDescPart"/>
  <classRef key="model.pLike"/>
 </alternate>
</content>
Schema Declaration
element encodingDesc
{
   att.global.attributes,
   ( model.encodingDescPart | model.pLike )+
}

<figure>

<figure> (figure) groups elements representing or containing graphic information such as a graphic illustration, or a block of example code. Figure must contain either graphic, egXML (for example XML code) or eg (for non-XML code), and a mandatory head element containing the caption for the figure. Inline code examples may be provided through egXML and eg without the figure wrapper. [15.4. Specific Elements for Graphic Images]
Modulefigures
Attributes
Member of
Contained by
May contain
tagdocs: eg egXML
Example
<figure>
 <graphic url="http://www.example.org/fig1.png"
  width="100pxheight="750px"/>

 <head type="legend">The View from the Bridge</head>
 <head type="license">Used with permission</head>
</figure>
Example
<figure>
 <eg>if ((err = SSLHashSHA1.update(&amp;hashCtx, &amp;serverRandom)) != 0)
   goto fail;
   if ((err = SSLHashSHA1.update(&amp;hashCtx, &amp;signedParams)) != 0)
   goto fail;
   goto fail;
   if ((err = SSLHashSHA1.final(&amp;hashCtx, &amp;hashOut)) != 0)
   goto fail;
 </eg>
 <head type="legend">An embarrassing error for Apple</head>
</figure>
Example
<figure> <egXML xmlns="http://www.tei-c.org/ns/Examples">
<list rend="bulleted">
<item>Life</item>
<item>The Universe</item>
<item>Everything</item>
</list>
</egXML>
<head type="legend">A book title rendered as a list</head>
</figure>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="1maxOccurs="1">
   <elementRef key="graphic"/>
   <elementRef key="egXML"/>
   <elementRef key="eg"/>
  </alternate>
  <elementRef key="headminOccurs="1"
   maxOccurs="unbounded"/>

 </sequence>
</content>
Schema Declaration
element figure
{
   att.global.attributes,
   att.written.attributes,
   att.cmc.attributes,
   ( ( graphic | egXML | eg ), head+ )
}

<fileDesc>

<fileDesc> (file description) contains a full bibliographic description of an electronic file. [2.2. The File Description 2.1.1. The TEI Header and Its Components]
Moduleheader
Attributes
Contained by
header: teiHeader
May contain
Note

The major source of information for those seeking to create a catalogue entry or bibliographic citation for an electronic file. As such, it provides a title and statements of responsibility together with details of the publication or distribution of the file, of any series to which it belongs, and detailed bibliographic notes for matters not addressed elsewhere in the header. It also contains a full bibliographic description for the source or sources from which the electronic text was derived.

Example
<fileDesc>
 <titleStmt>
  <title>The shortest possible TEI document</title>
 </titleStmt>
 <publicationStmt>
  <p>Distributed as part of TEI P5</p>
 </publicationStmt>
 <sourceDesc>
  <p>No print source exists: this is an original digital text</p>
 </sourceDesc>
</fileDesc>
Content model
<content>
 <sequence>
  <sequence>
   <elementRef key="titleStmt"/>
   <elementRef key="editionStmt"
    minOccurs="0"/>

   <elementRef key="extentminOccurs="0"/>
   <elementRef key="publicationStmt"/>
   <elementRef key="seriesStmt"
    minOccurs="0maxOccurs="unbounded"/>

   <elementRef key="notesStmt"
    minOccurs="0"/>

  </sequence>
  <elementRef key="sourceDesc"
   minOccurs="1maxOccurs="unbounded"/>

 </sequence>
</content>
Schema Declaration
element fileDesc
{
   att.global.attributes,
   (
      (
         titleStmt,
         editionStmt?,
         extent?,
         publicationStmt,
         seriesStmt*,
         notesStmt?
      ),
      sourceDesc+
   )
}

<foreign>

<foreign> (foreign) identifies a word or phrase as belonging to some language other than that of the surrounding text. [3.3.2.1. Foreign Words or Expressions]
Modulecore
Attributes
Member of
Contained by
May contain
Note

The global xml:lang attribute should be supplied for this element to identify the language of the word or phrase marked. As elsewhere, its value should be a language tag as defined in 6.1. Language Identification.

This element is intended for use only where no other element is available to mark the phrase or words concerned. The global xml:lang attribute should be used in preference to this element where it is intended to mark the language of the whole of some text element.

The <distinct> element may be used to identify phrases belonging to sublanguages or registers not generally regarded as true languages.

Example
This is
heathen Greek to you still? Your <foreign xml:lang="la">lapis
philosophicus</foreign>?
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element foreign { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<forename>

<forename> (forename) contains a forename, given or baptismal name. [14.2.1. Personal Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
<persName>
 <roleName>Ex-President</roleName>
 <forename>George</forename>
 <surname>Bush</surname>
</persName>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element forename { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<front>

<front> (front matter) contains any prefatory matter (headers, abstracts, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. Title Pages 4. Default Text Structure]
Moduletextstructure
Attributes
Contained by
textstructure: text
May contain
figures: figure
textstructure: div
Note

Because cultural conventions differ as to which elements are grouped as front matter and which as back matter, the content models for the front and back elements are identical.

Example
<front>
 <epigraph>
  <quote>Nam Sibyllam quidem Cumis ego ipse oculis meis vidi in ampulla
     pendere, et cum illi pueri dicerent: <q xml:lang="grc">Σίβυλλα τί
       θέλεις</q>; respondebat illa: <q xml:lang="grc">ὰποθανεῖν θέλω.</q>
  </quote>
 </epigraph>
 <div type="dedication">
  <p>For Ezra Pound <q xml:lang="it">il miglior fabbro.</q>
  </p>
 </div>
</front>
Example
<front>
 <div type="dedication">
  <p>To our three selves</p>
 </div>
 <div type="preface">
  <head>Author's Note</head>
  <p>All the characters in this book are purely imaginary, and if the
     author has used names that may suggest a reference to living persons
     she has done so inadvertently. ...</p>
 </div>
</front>
Example
<front>
 <div type="abstract">
  <div>
   <head> BACKGROUND:</head>
   <p>Food insecurity can put children at greater risk of obesity because
       of altered food choices and nonuniform consumption patterns.</p>
  </div>
  <div>
   <head> OBJECTIVE:</head>
   <p>We examined the association between obesity and both child-level
       food insecurity and personal food insecurity in US children.</p>
  </div>
  <div>
   <head> DESIGN:</head>
   <p>Data from 9,701 participants in the National Health and Nutrition
       Examination Survey, 2001-2010, aged 2 to 11 years were analyzed.
       Child-level food insecurity was assessed with the US Department of
       Agriculture's Food Security Survey Module based on eight
       child-specific questions. Personal food insecurity was assessed with
       five additional questions. Obesity was defined, using physical
       measurements, as body mass index (calculated as kg/m2) greater than
       or equal to the age- and sex-specific 95th percentile of the Centers
       for Disease Control and Prevention growth charts. Logistic
       regressions adjusted for sex, race/ethnic group, poverty level, and
       survey year were conducted to describe associations between obesity
       and food insecurity.</p>
  </div>
  <div>
   <head> RESULTS:</head>
   <p>Obesity was significantly associated with personal food insecurity
       for children aged 6 to 11 years (odds ratio=1.81; 95% CI 1.33 to
       2.48), but not in children aged 2 to 5 years (odds ratio=0.88; 95%
       CI 0.51 to 1.51). Child-level food insecurity was not associated
       with obesity among 2- to 5-year-olds or 6- to 11-year-olds.</p>
  </div>
  <div>
   <head> CONCLUSIONS:</head>
   <p>Personal food insecurity is associated with an increased risk of
       obesity only in children aged 6 to 11 years. Personal
       food-insecurity measures may give different results than aggregate
       food-insecurity measures in children.</p>
  </div>
 </div>
</front>
Schematron

<sch:rule context="tei:front">
<sch:assert test="tei:div[@type='abstract']"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#front">

 <sch:name/> must have an abstract (div[@type='abstract']).
</sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.frontPart"/>
   <classRef key="model.pLike"/>
   <classRef key="model.pLike.front"/>
   <classRef key="model.global"/>
  </alternate>
  <sequence minOccurs="0maxOccurs="1">
   <alternate minOccurs="1maxOccurs="1">
    <sequence minOccurs="1maxOccurs="1">
     <classRef key="model.div1Like"/>
     <alternate minOccurs="0"
      maxOccurs="unbounded">

      <classRef key="model.div1Like"/>
      <classRef key="model.frontPart"/>
      <classRef key="model.global"/>
     </alternate>
    </sequence>
    <sequence minOccurs="1maxOccurs="1">
     <classRef key="model.divLike"/>
     <alternate minOccurs="0"
      maxOccurs="unbounded">

      <classRef key="model.divLike"/>
      <classRef key="model.frontPart"/>
      <classRef key="model.global"/>
     </alternate>
    </sequence>
   </alternate>
   <sequence minOccurs="0maxOccurs="1">
    <classRef key="model.divBottom"/>
    <alternate minOccurs="0"
     maxOccurs="unbounded">

     <classRef key="model.divBottom"/>
     <classRef key="model.global"/>
    </alternate>
   </sequence>
  </sequence>
 </sequence>
</content>
Schema Declaration
element front
{
   att.global.attributes,
   (
      ( model.frontPart | model.pLike | model.pLike.front | model.global )*,
      (
         (
            (
               (
                  model.div1Like,
                  ( model.div1Like | model.frontPart | model.global )*
               )
             | (
                  model.divLike,
                  ( model.divLike | model.frontPart | model.global )*
               )
            ),
            ( ( model.divBottom, ( model.divBottom | model.global )* )? )
         )?
      )
   )
}

<gap>

<gap> (gap) indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [3.5.3. Additions, Deletions, and Omissions]
Modulecore
Attributes
reason(reason) gives the reason for omission
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Suggested values include:
cancelled
(cancelled)
deleted
(deleted)
editorial
(editorial) for features omitted from transcription due to editorial policy
illegible
(illegible)
inaudible
(inaudible)
irrelevant
(irrelevant)
sampling
(sampling)
agent(agent) in the case of text omitted because of damage, categorizes the cause of the damage, if it can be identified.
Status Optional
Datatype teidata.enumerated
Sample values include:
rubbing
(rubbing) damage results from rubbing of the leaf edges
mildew
(mildew) damage results from mildew on the leaf surface
smoke
(smoke) damage results from smoke
Member of
Contained by
May contain
core: desc
Note

The gap, <unclear>, and <del> core tag elements may be closely allied in use with the <damage> and supplied elements, available when using the additional tagset for transcription of primary sources. See section 12.3.3.2. Use of the gap, del, damage, unclear, and supplied Elements in Combination for discussion of which element is appropriate for which circumstance.

The gap tag simply signals the editors decision to omit or inability to transcribe a span of text. Other information, such as the interpretation that text was deliberately erased or covered, should be indicated using the relevant tags, such as <del> in the case of deliberate deletion.

Example
<gap quantity="4unit="chars"
 reason="illegible"/>
Example
<gap quantity="1unit="essay"
 reason="sampling"/>
Example
<del>
 <gap atLeast="4atMost="8unit="chars"
  reason="illegible"/>

</del>
Example
<gap extent="several linesreason="lost"/>
Schematron

<sch:rule context="tei:gap">
<sch:report test="following-sibling::node()[1][self::text()] and starts-with(following-sibling::node()[1], '.')"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#inline_rhetorical">
A <sch:name/> element should follow a period rather than precede it when an ellipsis follows the end of a sentence.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:gap">
<sch:report test="preceding-sibling::node()[1][self::text()][matches(., '\.\s+$')]"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#inline_rhetorical">
A <sch:name/> should follow a period directly, without preceding whitespace.
</sch:report>
</sch:rule>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <classRef key="model.descLike"/>
  <classRef key="model.certLike"/>
 </alternate>
</content>
Schema Declaration
element gap
{
   att.global.attributes,
   att.editLike.attributes,
   att.dimensions.attributes,
   att.cmc.attributes,
   attribute reason
   {
      list
      {
         (
            "cancelled"
          | "deleted"
          | "editorial"
          | "illegible"
          | "inaudible"
          | "irrelevant"
          | "sampling"
          | teidata.enumerated
         )+
      }
   }?,
   attribute agent { teidata.enumerated }?,
   ( model.descLike | model.certLike )*
}

<gi>

<gi> (element name) contains the name (generic identifier) of an element. [23. Documentation Elements 23.5. Element Specifications]
Moduletagdocs
Attributes
schemesupplies the name of the scheme in which this name is defined.
Status Optional
Datatype teidata.enumerated
Sample values include:
TEI
this element is part of the TEI scheme. [Default]
DBK
(docbook) this element is part of the Docbook scheme.
XX
(unknown) this element is part of an unknown scheme.
Schematron
this element is from Schematron.
HTML
this element is from the HTML scheme.
Member of
Contained by
May contain
XSD Name
Example
<p>The <gi>xhtml:li</gi> element is roughly analogous to the <gi>item</gi> element, as is the
<gi scheme="DBK">listItem</gi> element.</p>

This example shows the use of both a namespace prefix and the scheme attribute as alternative ways of indicating that the gi in question is not a TEI element name: in practice only one method should be adopted.

Content model
<content>
 <dataRef key="teidata.name"/>
</content>
Schema Declaration
element gi
{
   att.global.attributes,
   attribute scheme { teidata.enumerated }?,
   teidata.name
}

<graphic>

<graphic> (graphic) indicates the location of a graphic or illustration, either forming part of a text, or providing an image of it. [3.10. Graphics and Other Non-textual Components 12.1. Digital Facsimiles]
Modulecore
Attributes
Member of
Contained by
May contain
core: desc
Note

The mimeType attribute should be used to supply the MIME media type of the image specified by the url attribute.

Within the body of a text, a graphic element indicates the presence of a graphic component in the source itself. Within the context of a <facsimile> or <sourceDoc> element, however, a graphic element provides an additional digital representation of some part of the source being encoded.

Example
<figure>
 <graphic url="fig1.png"/>
 <head>Figure One: The View from the Bridge</head>
 <figDesc>A Whistleresque view showing four or five sailing boats in the foreground, and a
   series of buoys strung out between them.</figDesc>
</figure>
Example
<facsimile>
 <surfaceGrp n="leaf1">
  <surface>
   <graphic url="page1.png"/>
  </surface>
  <surface>
   <graphic url="page2-highRes.png"/>
   <graphic url="page2-lowRes.png"/>
  </surface>
 </surfaceGrp>
</facsimile>
Example
<facsimile>
 <surfaceGrp n="leaf1xml:id="spi001">
  <surface xml:id="spi001r">
   <graphic type="normal"
    subtype="thumbnailurl="spi/thumb/001r.jpg"/>

   <graphic type="normalsubtype="low-res"
    url="spi/normal/lowRes/001r.jpg"/>

   <graphic type="normal"
    subtype="high-resurl="spi/normal/highRes/001r.jpg"/>

   <graphic type="high-contrast"
    subtype="low-resurl="spi/contrast/lowRes/001r.jpg"/>

   <graphic type="high-contrast"
    subtype="high-resurl="spi/contrast/highRes/001r.jpg"/>

  </surface>
  <surface xml:id="spi001v">
   <graphic type="normal"
    subtype="thumbnailurl="spi/thumb/001v.jpg"/>

   <graphic type="normalsubtype="low-res"
    url="spi/normal/lowRes/001v.jpg"/>

   <graphic type="normal"
    subtype="high-resurl="spi/normal/highRes/001v.jpg"/>

   <graphic type="high-contrast"
    subtype="low-resurl="spi/contrast/lowRes/001v.jpg"/>

   <graphic type="high-contrast"
    subtype="high-resurl="spi/contrast/highRes/001v.jpg"/>

   <zone xml:id="spi001v_detail01">
    <graphic type="normal"
     subtype="thumbnailurl="spi/thumb/001v-detail01.jpg"/>

    <graphic type="normal"
     subtype="low-res"
     url="spi/normal/lowRes/001v-detail01.jpg"/>

    <graphic type="normal"
     subtype="high-res"
     url="spi/normal/highRes/001v-detail01.jpg"/>

    <graphic type="high-contrast"
     subtype="low-res"
     url="spi/contrast/lowRes/001v-detail01.jpg"/>

    <graphic type="high-contrast"
     subtype="high-res"
     url="spi/contrast/highRes/001v-detail01.jpg"/>

   </zone>
  </surface>
 </surfaceGrp>
</facsimile>
Schematron

<sch:rule context="tei:graphic">
<sch:assert test="matches(@width, '\d+px') and matches(@height, '\d+px')"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#figures">
Width and height in pixels must be specified for any <sch:name/>.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:graphic">
<sch:assert test="parent::tei:figure"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#figures">

 <sch:name/> may only occur inside <figure>. </sch:assert>
</sch:rule>
Content model
<content>
 <classRef key="model.descLike"
  minOccurs="0maxOccurs="unbounded"/>

</content>
Schema Declaration
element graphic
{
   att.global.attributes,
   att.media.attributes,
   att.resourced.attributes,
   att.typed.attributes,
   att.cmc.attributes,
   model.descLike*
}
<head> (heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. Headings and Trailers]
Modulecore
Attributes
typeindicates the type of heading. In jTEI, we only use this attribute in the context of a head element in figure, where it must have one of two values.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Member of
Contained by
figures: figure table
namesdates: listPerson
textstructure: back body div front
May contain
Note

The head element is used for headings at all levels; software which treats (e.g.) chapter headings, section headings, and list titles differently must determine the proper processing of a head element based on its structural position. A head occurring as the first element of a list is the title of that list; one occurring as the first element of a <div1> is the title of that chapter or section.

Example

The most common use for the head element is to mark the headings of sections. In older writings, the headings or incipits may be rather longer than usual in modern works. If a section has an explicit ending as well as a heading, it should be marked as a <trailer>, as in this example:

<div1 n="Itype="book">
 <head>In the name of Christ here begins the first book of the ecclesiastical history of
   Georgius Florentinus, known as Gregory, Bishop of Tours.</head>
 <div2 type="section">
  <head>In the name of Christ here begins Book I of the history.</head>
  <p>Proposing as I do ...</p>
  <p>From the Passion of our Lord until the death of Saint Martin four hundred and twelve
     years passed.</p>
  <trailer>Here ends the first Book, which covers five thousand, five hundred and ninety-six
     years from the beginning of the world down to the death of Saint Martin.</trailer>
 </div2>
</div1>
Example

When headings are not inline with the running text (see e.g. the heading "Secunda conclusio") they might however be encoded as if. The actual placement in the source document can be captured with the place attribute.

<div type="subsection">
 <head place="margin">Secunda conclusio</head>
 <p>
  <lb n="1251"/>
  <hi rend="large">Potencia: habitus: et actus: recipiunt speciem ab obiectis<supplied>.</supplied>
  </hi>
  <lb n="1252"/>Probatur sic. Omne importans necessariam habitudinem ad proprium
   [...]
 </p>
</div>
Example

The head element is also used to mark headings of other units, such as lists:

With a few exceptions, connectives are equally
useful in all kinds of discourse: description, narration, exposition, argument. <list rend="bulleted">
 <head>Connectives</head>
 <item>above</item>
 <item>accordingly</item>
 <item>across from</item>
 <item>adjacent to</item>
 <item>again</item>
 <item>
<!-- ... -->
 </item>
</list>
Schematron

<sch:rule context="tei:head">
<sch:report test="matches(., '^\s*(((figure|fig\.|table|example|ex\.|section) )\d|\d+\.\d?)', 'i')"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#body">
Headings are numbered and labeled automatically, please remove the hard-coded label from the text.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:figure/tei:head">
<sch:assert test="@type = ('legend', 'license')"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#figures">
Figure titles (<head>) must have a type
'legend' or 'license'. </sch:assert>
</sch:rule>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <elementRef key="lg"/>
  <classRef key="model.gLike"/>
  <classRef key="model.phrase"/>
  <classRef key="model.inter"/>
  <classRef key="model.lLike"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Schema Declaration
element head
{
   att.global.attributes,
   att.placement.attributes,
   att.written.attributes,
   att.cmc.attributes,
   attribute type { teidata.enumerated }?,
   (
      text
    | lg
    | model.gLikemodel.phrasemodel.intermodel.lLikemodel.global
   )*
}

<hi>

<hi> (highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language]
Modulecore
Attributes
Member of
Contained by
May contain
Example
<hi rend="gothic">And this Indenture further witnesseth</hi>
that the said <hi rend="italic">Walter Shandy</hi>, merchant,
in consideration of the said intended marriage ...
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
Schema Declaration
element hi
{
   att.global.attributes,
   att.written.attributes,
   att.cmc.attributes,
   macro.paraContent
}

<ident>

<ident> (identifier) contains an identifier or name for an object of some kind in a formal language. ident is used for tokens such as variable names, class names, type names, function names etc. in formal programming languages. [23.1.1. Phrase Level Terms]
Moduletagdocs
Attributes
Member of
Contained by
May containCharacter data only
Note

In running prose, this element may be used for any kind of identifier in any formal language. It should not be used for element and attribute names in XML, for which the special elements gi and att are provided.

Example
<ident type="ns">http://www.tei-c.org/ns/Examples</ident>
Content model
<content>
 <textNode/>
</content>
Schema Declaration
element ident { att.global.attributes, text }

<idno>

<idno> (identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [14.3.1. Basic Principles 2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.12.2.4. Imprint, Size of a Document, and Reprint Information]
Moduleheader
Attributes
typecategorizes the identifier, for example as an ISBN, Social Security number, etc.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Member of
Contained by
May contain
header: idno
character data
Note

idno should be used for labels which identify an object or concept in a formal cataloguing system such as a database or an RDF store, or in a distributed system such as the World Wide Web. Some suggested values for type on idno are ISBN, ISSN, DOI, and URI.

Example
<idno type="ISBN">978-1-906964-22-1</idno>
<idno type="ISSN">0143-3385</idno>
<idno type="DOI">10.1000/123</idno>
<idno type="URI">http://www.worldcat.org/oclc/185922478</idno>
<idno type="URI">http://authority.nzetc.org/463/</idno>
<idno type="LT">Thomason Tract E.537(17)</idno>
<idno type="Wing">C695</idno>
<idno type="oldCat">
 <g ref="#sym"/>345
</idno>

In the last case, the identifier includes a non-Unicode character which is defined elsewhere by means of a <glyph> or <char> element referenced here as #sym.

Schematron

<sch:rule context="tei:back/tei:div[@type eq 'bibliography']//tei:idno[@type eq 'doi']">
<sch:report test="following-sibling::tei:ref"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">
If a bibliographic entry has a formal DOI code, it should be placed at the very end of the bibliographic description.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <elementRef key="idno"/>
 </alternate>
</content>
Schema Declaration
element idno
{
   att.global.attributes,
   att.datable.attributes,
   att.cmc.attributes,
   attribute type { teidata.enumerated }?,
   ( text | model.gLike | idno )*
}

<item>

<item> (item) contains one component of a list. [3.8. Lists 2.6. The Revision Description]
Modulecore
Attributes
Contained by
core: list
May contain
Note

May contain simple prose or a sequence of chunks.

Whatever string of characters is used to label a list item in the copy text may be used as the value of the global n attribute, but it is not required that numbering be recorded explicitly. In ordered lists, the n attribute on the item element is by definition synonymous with the use of the label element to record the enumerator of the list item. In glossary lists, however, the term being defined should be given with the label element, not n.

Example
<list rend="numbered">
 <head>Here begin the chapter headings of Book IV</head>
 <item n="4.1">The death of Queen Clotild.</item>
 <item n="4.2">How King Lothar wanted to appropriate one third of the Church revenues.</item>
 <item n="4.3">The wives and children of Lothar.</item>
 <item n="4.4">The Counts of the Bretons.</item>
 <item n="4.5">Saint Gall the Bishop.</item>
 <item n="4.6">The priest Cato.</item>
 <item> ...</item>
</list>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element item { att.global.attributes, macro.specialPara }

<keywords>

<keywords> (keywords) contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. The Text Classification]
Moduleheader
Attributes
schemeidentifies the controlled vocabulary within which the set of keywords concerned is defined, for example by a <taxonomy> element, or by some other resource.
Status Optional
Datatype teidata.pointer
Contained by
header: textClass
May contain
core: list term
Note

Each individual keyword (including compound subject headings) should be supplied as a term element directly within the keywords element. An alternative usage, in which each term appears within an item inside a list is permitted for backwards compatibility, but is deprecated.

If no control list exists for the keywords used, then no value should be supplied for the scheme attribute.

Example
<keywords scheme="http://classificationweb.net">
 <term>Babbage, Charles</term>
 <term>Mathematicians - Great Britain - Biography</term>
</keywords>
Example
<keywords>
 <term>Fermented beverages</term>
 <term>Central Andes</term>
 <term>Schinus molle</term>
 <term>Molle beer</term>
 <term>Indigenous peoples</term>
 <term>Ethnography</term>
 <term>Archaeology</term>
</keywords>
Content model
<content>
 <alternate>
  <elementRef key="termminOccurs="1"
   maxOccurs="unbounded"/>

  <elementRef key="list"/>
 </alternate>
</content>
Schema Declaration
element keywords
{
   att.global.attributes,
   attribute scheme { teidata.pointer }?,
   ( term+ | list )
}

<label>

<label> (label) contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.8. Lists]
Modulecore
Attributes
Member of
Contained by
figures: cell
textstructure: body div
transcr: supplied
May contain
Example

Labels are commonly used for the headwords in glossary lists; note the use of the global xml:lang attribute to set the default language of the glossary list to Middle English, and identify the glosses and headings as modern English or Latin:

<list type="glossxml:lang="enm">
 <head xml:lang="en">Vocabulary</head>
 <headLabel xml:lang="en">Middle English</headLabel>
 <headItem xml:lang="en">New English</headItem>
 <label>nu</label>
 <item xml:lang="en">now</item>
 <label>lhude</label>
 <item xml:lang="en">loudly</item>
 <label>bloweth</label>
 <item xml:lang="en">blooms</item>
 <label>med</label>
 <item xml:lang="en">meadow</item>
 <label>wude</label>
 <item xml:lang="en">wood</item>
 <label>awe</label>
 <item xml:lang="en">ewe</item>
 <label>lhouth</label>
 <item xml:lang="en">lows</item>
 <label>sterteth</label>
 <item xml:lang="en">bounds, frisks (cf. <cit>
   <ref>Chaucer, K.T.644</ref>
   <quote>a courser, <term>sterting</term>as the fyr</quote>
  </cit>
 </item>
 <label>verteth</label>
 <item xml:lang="la">pedit</item>
 <label>murie</label>
 <item xml:lang="en">merrily</item>
 <label>swik</label>
 <item xml:lang="en">cease</item>
 <label>naver</label>
 <item xml:lang="en">never</item>
</list>
Example

Labels may also be used to record explicitly the numbers or letters which mark list items in ordered lists, as in this extract from Gibbon's Autobiography. In this usage the label element is synonymous with the n attribute on the item element:

I will add two facts, which have seldom occurred
in the composition of six, or at least of five quartos. <list rend="runontype="ordered">
 <label>(1)</label>
 <item>My first rough manuscript, without any intermediate copy, has been sent to the press.</item>
 <label>(2) </label>
 <item>Not a sheet has been seen by any human eyes, excepting those of the author and the
   printer: the faults and the merits are exclusively my own.</item>
</list>
Example

Labels may also be used for other structured list items, as in this extract from the journal of Edward Gibbon:

<list type="gloss">
 <label>March 1757.</label>
 <item>I wrote some critical observations upon Plautus.</item>
 <label>March 8th.</label>
 <item>I wrote a long dissertation upon some lines of Virgil.</item>
 <label>June.</label>
 <item>I saw Mademoiselle Curchod — <quote xml:lang="la">Omnia vincit amor, et nos cedamus
     amori.</quote>
 </item>
 <label>August.</label>
 <item>I went to Crassy, and staid two days.</item>
</list>

Note that the label might also appear within the item rather than as its sibling. Though syntactically valid, this usage is not recommended TEI practice.

Example

Labels may also be used to represent a label or heading attached to a paragraph or sequence of paragraphs not treated as a structural division, or to a group of verse lines. Note that, in this case, the label element appears within the p or <lg> element, rather than as a preceding sibling of it.

<p>[...]
<lb/>&amp; n’entrer en mauuais &amp; mal-heu-
<lb/>ré meſnage. Or des que le conſente-
<lb/>ment des parties y eſt le mariage eſt
<lb/> arreſté, quoy que de faict il ne ſoit
<label place="margin">Puiſſance maritale
   entre les Romains.</label>
 <lb/> conſommé. Depuis la conſomma-
<lb/>tion du mariage la femme eſt ſoubs
<lb/> la puiſſance du mary, s’il n’eſt eſcla-
<lb/>ue ou enfant de famille : car en ce
<lb/> cas, la femme, qui a eſpouſé vn en-
<lb/>fant de famille, eſt ſous la puiſſance
[...]</p>

In this example the text of the label appears in the right hand margin of the original source, next to the paragraph it describes, but approximately in the middle of it.

If so desired the type attribute may be used to distinguish different categories of label.

Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element label
{
   att.global.attributes,
   att.written.attributes,
   att.cmc.attributes,
   macro.phraseSeq
}

<language>

<language> (language) characterizes a single language or sublanguage used within a text. [2.4.2. Language Usage]
Moduleheader
Attributes
ident(identifier) Supplies a language code constructed as defined in BCP 47 which is used to identify the language documented by this element, and which may be referenced by the global xml:lang attribute.
Status Required
Datatype teidata.language
Contained by
header: langUsage
May contain
Note

Particularly for sublanguages, an informal prose characterization should be supplied as content for the element.

Example
<langUsage>
 <language ident="en-USusage="75">modern American English</language>
 <language ident="az-Arabusage="20">Azerbaijani in Arabic script</language>
 <language ident="x-lapusage="05">Pig Latin</language>
</langUsage>
Content model
<content>
 <macroRef key="macro.phraseSeq.limited"/>
</content>
Schema Declaration
element language
{
   att.global.attributes,
   attribute ident { teidata.language },
   macro.phraseSeq.limited
}

<langUsage>

<langUsage> (language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. Language Usage 2.4. The Profile Description 16.3.2. Declarable Elements]
Moduleheader
Attributes
Member of
Contained by
header: profileDesc
May contain
core: p
header: language
Example
<langUsage>
 <language ident="fr-CAusage="60">Québecois</language>
 <language ident="en-CAusage="20">Canadian business English</language>
 <language ident="en-GBusage="20">British English</language>
</langUsage>
Content model
<content>
 <alternate>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

  <elementRef key="languageminOccurs="1"
   maxOccurs="unbounded"/>

 </alternate>
</content>
Schema Declaration
element langUsage { att.global.attributes, ( model.pLike+ | language+ ) }

<lb>

<lb> (line beginning) marks the beginning of a new (typographic) line in some edition or version of a text. [3.11.3. Milestone Elements 7.2.5. Speech Contents]
Modulecore
Attributes
Member of
Contained by
May containEmpty element
Note

By convention, lb elements should appear at the point in the text where a new line starts. The n attribute, if used, indicates the number or other value associated with the text between this point and the next lb element, typically the sequence number of the line within the page, or other appropriate unit. This element is intended to be used for marking actual line breaks on a manuscript or printed page, at the point where they occur; it should not be used to tag structural units such as lines of verse (for which the <l> element is available) except in circumstances where structural units cannot otherwise be marked.

The type attribute may be used to characterize the line break in any respect. The more specialized attributes break, ed, or edRef should be preferred when the intent is to indicate whether or not the line break is word-breaking, or to note the source from which it derives.

Example

This example shows typographical line breaks within metrical lines, where they occur at different places in different editions:

<l>Of Mans First Disobedience,<lb ed="1674"/> and<lb ed="1667"/> the Fruit</l>
<l>Of that Forbidden Tree, whose<lb ed="1667 1674"/> mortal tast</l>
<l>Brought Death into the World,<lb ed="1667"/> and all<lb ed="1674"/> our woe,</l>
Example

This example encodes typographical line breaks as a means of preserving the visual appearance of a title page. The break attribute is used to show that the line break does not (as elsewhere) mark the start of a new word.

<titlePart>
 <lb/>With Additions, ne-<lb break="no"/>ver before Printed.
</titlePart>
Content model
<content>
 <empty/>
</content>
Schema Declaration
element lb { att.global.attributes, att.cmc.attributes, empty }

<licence>

<licence> contains information about a licence or other legal agreement applicable to the text. [2.2.4. Publication, Distribution, Licensing, etc.]
Moduleheader
Attributes
Member of
Contained by
header: availability
May contain
Note

A licence element should be supplied for each licence agreement applicable to the text in question. The target attribute may be used to reference a full version of the licence. The when, notBefore, notAfter, from or to attributes may be used in combination to indicate the date or dates of applicability of the licence.

Example
<licence target="http://www.nzetc.org/tm/scholarly/tei-NZETC-Help.html#licensing"> Licence: Creative Commons Attribution-Share Alike 3.0 New Zealand Licence
</licence>
Example
<availability>
 <licence target="http://creativecommons.org/licenses/by/3.0/"
  notBefore="2013-01-01">

  <p>The Creative Commons Attribution 3.0 Unported (CC BY 3.0) Licence
     applies to this document.</p>
  <p>The licence was added on January 1, 2013.</p>
 </licence>
</availability>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element licence
{
   att.global.attributes,
   att.pointing.attributes,
   att.datable.attributes,
   macro.specialPara
}

<list>

<list> (list) contains any sequence of items organized as a list. [3.8. Lists]
Modulecore
Attributes
rend(rendition) describes the way the list should be rendered.
Derived fromatt.global.rendition
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Legal values are:
bulleted
(A bulleted list) Bulleted lists will appear with each item preceded by a leading dot.
inline
(An inline list) Inline lists appear within a paragraph of ordinary text; list items do not start on a new line, but follow immediately from the preceding text or item. The value "inline" may be combined with another value; for example, "ordered inline" means that the list will be rendered inline, but each item will be preceded by a number in parentheses: (1) first item (2) second item, and so on.
ordered
(A numbered list) Items in a numbered list will be preceded by a number. If the list is inline, then the number will be enclosed in parentheses, but if it is a block-level list (the default), the number will be followed by a period.
simple
(A simple list (no bullets or numbers)) Items in a simple list will be rendered with no bullet or preceding number at all.
type(type) describes the nature of the items in the list.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Default
Note

Previous versions of these Guidelines recommended the use of type on list to encode the rendering or appearance of a list (whether it was bulleted, numbered, etc.). The current recommendation is to use the rend or style attributes for these aspects of a list, while using type for the more appropriate task of characterizing the nature of the content of a list.

The formal syntax of the element declarations allows label tags to be omitted from lists tagged <list type="gloss">; this is however a semantic error.

Member of
Contained by
May contain
Note

May contain an optional heading followed by a series of items, or a series of label and item pairs, the latter being optionally preceded by one or two specialized headings.

Schematron

<sch:rule context="tei:list[@type='gloss']">
<sch:assert test="tei:label">The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element</sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divTop"/>
   <classRef key="model.global"/>
   <elementRef key="descminOccurs="0"
    maxOccurs="unbounded"/>

  </alternate>
  <alternate minOccurs="1maxOccurs="1">
   <sequence minOccurs="1"
    maxOccurs="unbounded">

    <elementRef key="item"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
   <sequence minOccurs="1maxOccurs="1">
    <elementRef key="headLabel"
     minOccurs="0"/>

    <elementRef key="headItem"
     minOccurs="0"/>

    <sequence minOccurs="1"
     maxOccurs="unbounded">

     <elementRef key="label"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

     <elementRef key="item"/>
     <classRef key="model.global"
      minOccurs="0maxOccurs="unbounded"/>

    </sequence>
   </sequence>
  </alternate>
  <sequence minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divBottom"/>
   <classRef key="model.global"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
 </sequence>
</content>
Schema Declaration
element list
{
   att.global.attribute.xmlid,
   att.global.attribute.n,
   att.global.attribute.xmllang,
   att.global.attribute.xmlbase,
   att.global.attribute.xmlspace,
   att.global.rendition.attribute.rendition,
   att.global.responsibility.attribute.cert,
   att.global.responsibility.attribute.resp,
   att.global.source.attribute.source,
   att.cmc.attributes,
   attribute rend
   {
      list { ( "bulleted" | "inline" | "ordered" | "simple" )+ }
   }?,
   attribute type { teidata.enumerated }?,
   (
      ( model.divTop | model.global | desc* )*,
      (
         ( ( item, model.global* )+ )
       | (
            headLabel?,
            headItem?,
            ( ( label, model.global*, item, model.global* )+ )
         )
      ),
      ( ( model.divBottom, model.global* )* )
   )
}

<listBibl>

<listBibl> (citation list) contains a list of bibliographic citations of any kind. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements]
Modulecore
Attributes
Member of
Contained by
figures: cell
namesdates: person
textstructure: back body div front
transcr: supplied
May contain
Example
<listBibl>
 <head>Works consulted</head>
 <bibl>Blain, Clements and Grundy: Feminist Companion to
   Literature in English (Yale, 1990)
 </bibl>
 <biblStruct>
  <analytic>
   <title>The Interesting story of the Children in the Wood</title>
  </analytic>
  <monogr>
   <title>The Penny Histories</title>
   <author>Victor E Neuberg</author>
   <imprint>
    <publisher>OUP</publisher>
    <date>1968</date>
   </imprint>
  </monogr>
 </biblStruct>
</listBibl>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <classRef key="model.headLike"
   minOccurs="0maxOccurs="unbounded"/>

  <elementRef key="descminOccurs="0"
   maxOccurs="unbounded"/>

  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.milestoneLike"
    minOccurs="1maxOccurs="1"/>

   <elementRef key="relationminOccurs="1"
    maxOccurs="1"/>

   <elementRef key="listRelation"
    minOccurs="1maxOccurs="1"/>

  </alternate>
  <sequence minOccurs="1"
   maxOccurs="unbounded">

   <classRef key="model.biblLike"
    minOccurs="1maxOccurs="unbounded"/>

   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <classRef key="model.milestoneLike"
     minOccurs="1maxOccurs="1"/>

    <elementRef key="relation"
     minOccurs="1maxOccurs="1"/>

    <elementRef key="listRelation"
     minOccurs="1maxOccurs="1"/>

   </alternate>
  </sequence>
 </sequence>
</content>
Schema Declaration
element listBibl
{
   att.global.attributes,
   att.cmc.attributes,
   (
      model.headLike*,
      desc*,
      ( model.milestoneLike | relation | listRelation )*,
      (
         (
            model.biblLike+,
            ( model.milestoneLike | relation | listRelation )*
         )+
      )
   )
}

<listChange>

<listChange> groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 12.7. Identifying Changes and Revisions]
Moduleheader
Attributes
orderedindicates whether the ordering of its child change elements is to be considered significant or not
Status Optional
Datatype teidata.truthValue
Default true
Contained by
May contain
core: desc
Note

When this element appears within the <creation> element it documents the set of revision campaigns or stages identified during the evolution of the original text. When it appears within the revisionDesc element, it documents only changes made during the evolution of the encoded representation of that text.

Example
<revisionDesc>
 <listChange>
  <change when="1991-11-11who="#LB"> deleted chapter 10 </change>
  <change when="1991-11-02who="#MSM"> completed first draft </change>
 </listChange>
</revisionDesc>
Example
<profileDesc>
 <creation>
  <listChange ordered="true">
   <change xml:id="CHG-1">First stage, written in ink by a writer</change>
   <change xml:id="CHG-2">Second stage, written in Goethe's hand using pencil</change>
   <change xml:id="CHG-3">Fixation of the revised passages and further revisions by
       Goethe using ink</change>
   <change xml:id="CHG-4">Addition of another stanza in a different hand,
       probably at a later stage</change>
  </listChange>
 </creation>
</profileDesc>
Content model
<content>
 <sequence>
  <elementRef key="descminOccurs="0"
   maxOccurs="unbounded"/>

  <alternate minOccurs="1"
   maxOccurs="unbounded">

   <elementRef key="listChange"/>
   <elementRef key="change"/>
  </alternate>
 </sequence>
</content>
Schema Declaration
element listChange
{
   att.global.attributes,
   att.typed.attributes,
   attribute ordered { teidata.truthValue }?,
   ( desc*, ( listChange | change )+ )
}

<listPerson>

<listPerson> (list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [14.3.2. The Person Element 16.2. Contextual Information 2.4. The Profile Description 16.3.2. Declarable Elements]
Modulenamesdates
Attributes
Member of
Contained by
corpus: particDesc
figures: cell
namesdates: listPerson
textstructure: back body div
transcr: supplied
May contain
core: desc head
namesdates: listPerson person
Note

The type attribute may be used to distinguish lists of people of a particular type if convenient.

Example
<listPerson type="respondents">
 <personGrp xml:id="PXXX"/>
 <person xml:id="P1234sex="2age="mid"/>
 <person xml:id="P4332sex="1age="mid"/>
 <listRelation>
  <relation type="personalname="spouse"
   mutual="#P1234 #P4332"/>

 </listRelation>
</listPerson>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   minOccurs="0maxOccurs="unbounded"/>

  <elementRef key="descminOccurs="0"
   maxOccurs="unbounded"/>

  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <elementRef key="relationminOccurs="1"
    maxOccurs="1"/>

   <elementRef key="listRelation"
    minOccurs="1maxOccurs="1"/>

  </alternate>
  <sequence minOccurs="1"
   maxOccurs="unbounded">

   <alternate minOccurs="1"
    maxOccurs="unbounded">

    <classRef key="model.personLike"
     minOccurs="1maxOccurs="1"/>

    <elementRef key="listPerson"
     minOccurs="1maxOccurs="1"/>

   </alternate>
   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="relation"
     minOccurs="1maxOccurs="1"/>

    <elementRef key="listRelation"
     minOccurs="1maxOccurs="1"/>

   </alternate>
  </sequence>
 </sequence>
</content>
Schema Declaration
element listPerson
{
   att.global.attributes,
   att.typed.attributes,
   att.cmc.attributes,
   (
      model.headLike*,
      desc*,
      ( relation | listRelation )*,
      ( ( ( model.personLike | listPerson )+, ( relation | listRelation )* )+ )
   )
}

<mentioned>

<mentioned> marks words or phrases mentioned, not used. [3.3.3. Quotation]
Modulecore
Attributes
Member of
Contained by
May contain
Example
There is thus a
striking accentual difference between a verbal form like <mentioned xml:id="X234xml:lang="el">eluthemen</mentioned>
<gloss target="#X234">we were released,</gloss> accented on the second syllable of the
word, and its participial derivative
<mentioned xml:id="X235xml:lang="el">lutheis</mentioned>
<gloss target="#X235">released,</gloss> accented on the last.
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element mentioned
{
   att.global.attributes,
   att.cmc.attributes,
   macro.phraseSeq
}

<name>

<name> (name, proper noun) contains a proper noun or noun phrase. [3.6.1. Referring Strings]
Modulecore
Attributes
Member of
Contained by
May contain
Note

Proper nouns referring to people, places, and organizations may be tagged instead with <persName>, placeName, or orgName, when the TEI module for names and dates is included.

Example
<name type="person">Thomas Hoccleve</name>
<name type="place">Villingaholt</name>
<name type="org">Vetus Latina Institut</name>
<name type="personref="#HOC001">Occleve</name>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element name
{
   att.global.attributes,
   att.datable.w3c.attribute.when,
   att.datable.w3c.attribute.notBefore,
   att.datable.w3c.attribute.from,
   att.datable.w3c.attribute.to,
   att.editLike.attributes,
   att.cmc.attributes,
   macro.phraseSeq
}

<note>

<note> (note) contains a note or annotation. [3.9.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.12.2.8. Notes and Statement of Language 10.3.5.4. Notes within Entries]
Modulecore
Attributes
Member of
Contained by
May contain
Example

In the following example, the translator has supplied a footnote containing an explanation of the term translated as "painterly":

And yet it is not only
in the great line of Italian renaissance art, but even in the
painterly <note place="bottomtype="gloss"
 resp="#MDMH">

 <term xml:lang="de">Malerisch</term>. This word has, in the German, two
distinct meanings, one objective, a quality residing in the object,
the other subjective, a mode of apprehension and creation. To avoid
confusion, they have been distinguished in English as
<mentioned>picturesque</mentioned> and
<mentioned>painterly</mentioned> respectively.
</note> style of the
Dutch genre painters of the seventeenth century that drapery has this
psychological significance.

<!-- elsewhere in the document -->
<respStmt xml:id="MDMH">
 <resp>translation from German to English</resp>
 <name>Hottinger, Marie Donald Mackie</name>
</respStmt>

For this example to be valid, the code MDMH must be defined elsewhere, for example by means of a responsibility statement in the associated TEI header.

Example

The global n attribute may be used to supply the symbol or number used to mark the note's point of attachment in the source text, as in the following example:

Mevorakh b. Saadya's mother, the matriarch of the
family during the second half of the eleventh century, <note n="126anchored="true"> The
alleged mention of Judah Nagid's mother in a letter from 1071 is, in fact, a reference to
Judah's children; cf. above, nn. 111 and 54. </note> is well known from Geniza documents
published by Jacob Mann.

However, if notes are numbered in sequence and their numbering can be reconstructed automatically by processing software, it may well be considered unnecessary to record the note numbers.

Schematron

<sch:rule context="tei:note">
<sch:assert test="not(following::text()[not(ancestor::tei:note)][1][matches(., '^[,\.:;!?\]]')])"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#footnotes">
Footnotes should follow punctuation marks, not precede them. Place
your <<sch:name/>> element after the punctuation mark.
</sch:assert>
</sch:rule>
<sch:rule context="tei:note">
<sch:report test="preceding::text()[not(ancestor::tei:note)][1][matches(., '—$')]"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#footnotes">
Footnotes should precede the dash, not follow it. Place
your <<sch:name/>> element before the dash.
</sch:report>
</sch:rule>
<sch:rule context="tei:noterole="warning">
<sch:report test="following::text()[not(ancestor::tei:note)][1][matches(normalize-space(), '^\)')]"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#footnotes">
Footnotes may be placed before closing parentheses, though this is
exceptional. Please check if this note's placement is correct.
Otherwise, move it after the closing parenthesis.
</sch:report>
</sch:rule>
<sch:rule context="tei:noterole="warning">
<sch:report test="descendant::node()[last()][ not(matches(normalize-space(), '(^|[^.?!:;,])[.?!]$')) or preceding-sibling::node()[1]/descendant-or-self::*[last()] [matches(normalize-space(), '[.?!:;,]$')] ]"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#footnotes">
A footnote should end a with a single closing punctuation character.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:note">
<sch:report test=".//(tei:cit|tei:table|tei:list[not(tokenize(@rend, '\s+')[. eq 'inline'])]|tei:figure|eg:egXML|tei:eg)"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#footnotes">
No block-level elements (<cit>, <table>, <figure>, <egXML>, <eg>, <list> which do not have the value inline for @rend) are allowed inside <sch:name/>. </sch:report>
</sch:rule>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element note
{
   att.global.attributes,
   att.written.attributes,
   att.cmc.attributes,
   macro.specialPara
}

<num>

<num> (number) contains a number, written in any form. [3.6.3. Numbers and Measures]
Modulecore
Attributes
typeindicates the type of numeric value. In jTEI, we particularly use num[@type='ordinal'] for e.g. ‘21st’ or ‘2nd’; in rendering, this results in the non-numeric suffix to the number being output as superscript. Note, however, that ordinals for centuries should be spelled out, not written using digits (‘nineteenth century’, not ‘19th century’).
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Note

If a different typology is desired, other values can be used for this attribute.

valuesupplies the value of the number in standard form.
Status Optional
Datatype teidata.numeric
Values a numeric value.
Note

The standard form used is defined by the TEI datatype teidata.numeric.

Member of
Contained by
May contain
Note

Detailed analyses of quantities and units of measure in historical documents may also use the feature structure mechanism described in chapter 19. Feature Structures. The num element is intended for use in simple applications.

Example
<p>I reached <num type="cardinalvalue="21">twenty-one</num> on
my <num type="ordinalvalue="21">twenty-first</num> birthday</p>
<p>Light travels at <num value="3E10">3×10<hi rend="sup">10</hi>
 </num> cm per second.</p>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element num
{
   att.global.attributes,
   att.cmc.attributes,
   attribute type { teidata.enumerated }?,
   attribute value { teidata.numeric }?,
   macro.phraseSeq
}

<orgName>

<orgName> (organization name) contains an organizational name. [14.2.2. Organizational Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
About a year back, a question of considerable interest was agitated in the <orgName key="PAS1type="voluntary">
 <placeName key="PEN">Pennsyla.</placeName> Abolition Society
</orgName> [...]
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element orgName
{
   att.global.attributes,
   att.datable.w3c.attribute.when,
   att.datable.w3c.attribute.notBefore,
   att.datable.w3c.attribute.from,
   att.datable.w3c.attribute.to,
   att.editLike.attributes,
   att.cmc.attributes,
   macro.phraseSeq
}

<p>

<p> (paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents]
Modulecore
Attributes
Member of
Contained by
May contain
Example
<p>Hallgerd was outside. <q>There is blood on your axe,</q> she said. <q>What have you
   done?</q>
</p>
<p>
 <q>I have now arranged that you can be married a second time,</q> replied Thjostolf.
</p>
<p>
 <q>Then you must mean that Thorvald is dead,</q> she said.
</p>
<p>
 <q>Yes,</q> said Thjostolf. <q>And now you must think up some plan for me.</q>
</p>
Schematron

<sch:rule context="tei:p">
<sch:report test="(ancestor::tei:ab or ancestor::tei:p) and not( ancestor::tei:floatingText | parent::tei:exemplum | parent::tei:item | parent::tei:note | parent::tei:q | parent::tei:quote | parent::tei:remarks | parent::tei:said | parent::tei:sp | parent::tei:stage | parent::tei:cell | parent::tei:figure )"> Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements.
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:p">
<sch:report test="( ancestor::tei:l or ancestor::tei:lg ) and not( ancestor::tei:floatingText | parent::tei:figure | parent::tei:note )"> Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText.
</sch:report>
</sch:rule>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
Schema Declaration
element p
{
   att.global.attributes,
   att.written.attributes,
   att.cmc.attributes,
   macro.paraContent
}

<particDesc>

<particDesc> (participation description) describes the identifiable speakers, voices, or other participants in any kind of text or other persons named or otherwise referred to in a text, edition, or metadata. [16.2. Contextual Information]
Modulecorpus
Attributes
Member of
Contained by
header: profileDesc
May contain
core: p
namesdates: listPerson person
Note

May contain a prose description organized as paragraphs, or a structured list of persons and person groups, with an optional formal specification of any relationships amongst them.

Example
<particDesc>
 <listPerson>
  <person xml:id="P-1234sex="2age="mid">
   <p>Female informant, well-educated, born in
       Shropshire UK, 12 Jan 1950, of unknown occupation. Speaks French fluently.
       Socio-Economic status B2.</p>
  </person>
  <person xml:id="P-4332sex="1">
   <persName>
    <surname>Hancock</surname>
    <forename>Antony</forename>
    <forename>Aloysius</forename>
    <forename>St John</forename>
   </persName>
   <residence notAfter="1959">
    <address>
     <street>Railway Cuttings</street>
     <settlement>East Cheam</settlement>
    </address>
   </residence>
   <occupation>comedian</occupation>
  </person>
  <listRelation>
   <relation type="personalname="spouse"
    mutual="#P-1234 #P-4332"/>

  </listRelation>
 </listPerson>
</particDesc>

This example shows both a very simple person description, and a very detailed one, using some of the more specialized elements from the module for Names and Dates.

Content model
<content>
 <alternate>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

  <alternate minOccurs="1"
   maxOccurs="unbounded">

   <classRef key="model.personLike"/>
   <elementRef key="listPerson"/>
   <elementRef key="listOrg"/>
  </alternate>
 </alternate>
</content>
Schema Declaration
element particDesc
{
   att.global.attributes,
   ( model.pLike+ | ( model.personLike | listPerson | listOrg )+ )
}

<person>

<person> (person) provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [14.3.2. The Person Element 16.2.2. The Participant Description]
Modulenamesdates
Attributes
rolespecifies a primary role or classification for the person.
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Note

Values for this attribute may be locally defined by a project, using arbitrary keywords such as artist, employer, author, relative, or servant, each of which should be associated with a definition. Such local definitions will typically be provided by a <valList> element in the project schema specification.

sexspecifies the sex of the person.
Status Optional
Datatype 1–∞ occurrences of teidata.sex separated by whitespace
Note

Values for this attribute may be defined locally by a project, or they may refer to an external standard.

genderspecifies the gender of the person.
Status Optional
Datatype 1–∞ occurrences of teidata.gender separated by whitespace
Note

Values for this attribute may be defined locally by a project, or they may refer to an external standard.

agespecifies an age group for the person.
Status Optional
Datatype teidata.enumerated
Note

Values for this attribute may be locally defined by a project, using arbitrary keywords such as infant, child, teen, adult, or senior, each of which should be associated with a definition. Such local definitions will typically be provided by a <valList> element in the project schema specification.

Member of
Contained by
corpus: particDesc
namesdates: listPerson
May contain
figures: figure
header: idno
namesdates: affiliation
Note

May contain either a prose description organized as paragraphs, or a sequence of more specific demographic elements drawn from the model.personPart class.

Example
<person sex="Fage="adult">
 <p>Female respondent, well-educated, born in Shropshire UK, 12 Jan 1950, of unknown occupation. Speaks French fluently. Socio-Economic
   status B2.</p>
</person>
Example
<person sex="intersexrole="god"
 age="immortal">

 <persName>Hermaphroditos</persName>
 <persName xml:lang="grc">Ἑρμαφρόδιτος</persName>
</person>
Example
<person xml:id="Ovi01sex="Mrole="poet">
 <persName xml:lang="en">Ovid</persName>
 <persName xml:lang="la">Publius Ovidius Naso</persName>
 <birth when="-0044-03-20"> 20 March 43 BC <placeName>
   <settlement type="city">Sulmona</settlement>
   <country key="IT">Italy</country>
  </placeName>
 </birth>
 <death notBefore="0017notAfter="0018">17 or 18 AD <placeName>
   <settlement type="city">Tomis (Constanta)</settlement>
   <country key="RO">Romania</country>
  </placeName>
 </death>
</person>
Example

The following exemplifies an adaptation of the vCard standard to indicate an unknown gender for a fictional character.

<person xml:id="arielgender="U">
 <persName>Ariel</persName>
 <note>Character in <title level="m">The Tempest</title>.</note>
</person>
Content model
<content>
 <alternate>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.personPart"/>
   <classRef key="model.global"/>
   <elementRef key="ptr"/>
  </alternate>
 </alternate>
</content>
Schema Declaration
element person
{
   att.global.attributes,
   att.editLike.attributes,
   attribute role { list { teidata.enumerated+ } }?,
   attribute sex { list { teidata.sex+ } }?,
   attribute gender { list { teidata.gender+ } }?,
   attribute age { teidata.enumerated }?,
   ( model.pLike+ | ( model.personPart | model.global | ptr )* )
}

<placeName>

<placeName> (place name) contains an absolute or relative place name. [14.2.3. Place Names]
Modulenamesdates
Attributes
calendarindicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecatedwill be removed on 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Member of
Contained by
May contain
Example
<placeName>
 <settlement>Rochester</settlement>
 <region>New York</region>
</placeName>
Example
<placeName>
 <geogName>Arrochar Alps</geogName>
 <region>Argylshire</region>
</placeName>
Example
<placeName>
 <measure>10 miles</measure>
 <offset>Northeast of</offset>
 <settlement>Attica</settlement>
</placeName>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element placeName
{
   att.datable.attributes,
   att.editLike.attributes,
   att.global.attributes,
   att.personal.attributes,
   att.typed.attributes,
   att.cmc.attributes,
   attribute calendar { list { teidata.pointer+ } }?,
   macro.phraseSeq
}

<profileDesc>

<profileDesc> (text-profile description) provides a detailed description of non-bibliographic aspects of a text, specifically the languages and sublanguages used, the situation in which it was produced, the participants and their setting. [2.4. The Profile Description 2.1.1. The TEI Header and Its Components]
Moduleheader
Attributes
Member of
Contained by
header: teiHeader
May contain
Note

Although the content model permits it, it is rarely meaningful to supply multiple occurrences for any of the child elements of profileDesc unless these are documenting multiple texts.

Example
<profileDesc>
 <langUsage>
  <language ident="fr">French</language>
 </langUsage>
 <textDesc n="novel">
  <channel mode="w">print; part issues</channel>
  <constitution type="single"/>
  <derivation type="original"/>
  <domain type="art"/>
  <factuality type="fiction"/>
  <interaction type="none"/>
  <preparedness type="prepared"/>
  <purpose type="entertaindegree="high"/>
  <purpose type="informdegree="medium"/>
 </textDesc>
 <settingDesc>
  <setting>
   <name>Paris, France</name>
   <time>Late 19th century</time>
  </setting>
 </settingDesc>
</profileDesc>
Content model
<content>
 <classRef key="model.profileDescPart"
  minOccurs="0maxOccurs="unbounded"/>

</content>
Schema Declaration
element profileDesc { att.global.attributes, model.profileDescPart* }

<projectDesc>

<projectDesc> (project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [2.3.1. The Project Description 2.3. The Encoding Description 16.3.2. Declarable Elements]
Moduleheader
Attributes
Member of
Contained by
header: encodingDesc
May contain
core: p
Example
<projectDesc>
 <p>Texts collected for use in the Claremont Shakespeare Clinic, June 1990</p>
</projectDesc>
Content model
<content>
 <classRef key="model.pLikeminOccurs="1"
  maxOccurs="unbounded"/>

</content>
Schema Declaration
element projectDesc { att.global.attributes, model.pLike+ }

<ptr>

<ptr> (pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 17.1. Links]
Modulecore
Attributes
targetspecifies the destination of the reference by supplying one or more URI References
Derived fromatt.pointing
Status Required
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Legal values are:
crossref
(A cross-reference (reference to another part of the article).) To link to another part of your article, use <ptr type="crossref">, and point to the xml:id value of the target location: <ptr type="crossref" target="#intro">. The ptr element will be expanded to create an appropriate link to the target location.
Member of
Contained by
May containEmpty element
Example
<ptr target="#p143 #p144"/>
<ptr target="http://www.tei-c.org"/>
<ptr cRef="1.3.4"/>
Schematron

<sch:rule context="tei:ptr[not(@type='crossref')]">
<sch:report test="count(tokenize(normalize-space(@target), '\s+')) > 1"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#internal_linking">
Multiple
values in @target are only allowed for <sch:name/>[@type='crossref'].
</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:ptr">
<sch:report test="@target and @cRef">Only one of the attributes @target and @cRef may be supplied on <sch:name/>.</sch:report>
</sch:rule>
Content model
<content>
 <empty/>
</content>
Schema Declaration
element ptr
{
   att.global.attributes,
   att.cmc.attributes,
   attribute target { list { teidata.pointer+ } },
   attribute type { "crossref" }?,
   empty
}

<publicationStmt>

<publicationStmt> (publication statement) groups information concerning the publication or distribution of an electronic or other text. [2.2.4. Publication, Distribution, Licensing, etc. 2.2. The File Description]
Moduleheader
Attributes
Contained by
header: fileDesc
May contain
Note

Where a publication statement contains several members of the model.publicationStmtPart.agency or model.publicationStmtPart.detail classes rather than one or more paragraphs or anonymous blocks, care should be taken to ensure that the repeated elements are presented in a meaningful order. It is a conformance requirement that elements supplying information about publication place, address, identifier, availability, and date be given following the name of the publisher, distributor, or authority concerned, and preferably in that order.

Example
<publicationStmt>
 <publisher>C. Muquardt </publisher>
 <pubPlace>Bruxelles &amp; Leipzig</pubPlace>
 <date when="1846"/>
</publicationStmt>
Example
<publicationStmt>
 <publisher>Chadwyck Healey</publisher>
 <pubPlace>Cambridge</pubPlace>
 <availability>
  <p>Available under licence only</p>
 </availability>
 <date when="1992">1992</date>
</publicationStmt>
Example
<publicationStmt>
 <publisher>Zea Books</publisher>
 <pubPlace>Lincoln, NE</pubPlace>
 <date>2017</date>
 <availability>
  <p>This is an open access work licensed under a Creative Commons Attribution 4.0 International license.</p>
 </availability>
 <ptr target="http://digitalcommons.unl.edu/zeabook/55"/>
</publicationStmt>
Content model
<content>
 <alternate>
  <sequence minOccurs="1"
   maxOccurs="unbounded">

   <classRef key="model.publicationStmtPart.agency"/>
   <classRef key="model.publicationStmtPart.detail"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

 </alternate>
</content>
Schema Declaration
element publicationStmt
{
   att.global.attributes,
   (
      (
         (
            model.publicationStmtPart.agency,
            model.publicationStmtPart.detail*
         )+
      )
    | model.pLike+
   )
}

<publisher>

<publisher> (publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.]
Modulecore
Attributes
Member of
Contained by
core: bibl
May contain
Note

Use the full form of the name by which a company is usually referred to, rather than any abbreviation of it which may appear on a title page

Example
<imprint>
 <pubPlace>Oxford</pubPlace>
 <publisher>Clarendon Press</publisher>
 <date>1987</date>
</imprint>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element publisher { att.global.attributes, macro.phraseSeq }

<pubPlace>

<pubPlace> (publication place) contains the name of the place where a bibliographic item was published. [3.12.2.4. Imprint, Size of a Document, and Reprint Information]
Modulecore
Attributes
Member of
Contained by
core: bibl
May contain
Example
<publicationStmt>
 <publisher>Oxford University Press</publisher>
 <pubPlace>Oxford</pubPlace>
 <date>1989</date>
</publicationStmt>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element pubPlace { att.global.attributes, macro.phraseSeq }

<q>

<q> (quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. Quotation]
Modulecore
Attributes
Member of
Contained by
May contain
Note

May be used to indicate that a passage is distinguished from the surrounding text for reasons concerning which no claim is made. When used in this manner, q may be thought of as syntactic sugar for hi with a value of rend that indicates the use of such mechanisms as quotation marks.

Example
It is spelled <q>Tübingen</q> — to enter the
letter <q>u</q> with an umlaut hold down the <q>option</q> key and press
<q>0 0 f c</q>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element q
{
   att.global.attributes,
   att.ascribed.directed.attributes,
   att.cmc.attributes,
   macro.specialPara
}

<quote>

<quote> (quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. Quotation 4.3.1. Grouped Texts]
Modulecore
Attributes
Member of
Contained by
May contain
Note

If a bibliographic citation is supplied for the source of a quotation, the two may be grouped using the cit element.

Example
Lexicography has shown little sign of being affected by the
work of followers of J.R. Firth, probably best summarized in his
slogan, <quote>You shall know a word by the company it
keeps</quote>
<ref>(Firth, 1957)</ref>
Schematron

<sch:rule context="tei:quote">
<sch:assert see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#quotations"
 test="id(substring-after(@source, '#'))/(self::tei:ref[@type eq 'bibl']|self::tei:bibl[ancestor::tei:body])">

 <sch:name/> must have a @source that points to the @xml:id of either a
ref[type='bibl'], or a <bibl> in the <body>. </sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
Schema Declaration
element quote
{
   att.global.attributes,
   att.notated.attributes,
   att.cmc.attributes,
   macro.specialPara
}

<ref>

<ref> (reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 17.1. Links]
Modulecore
Attributes
targetspecifies the destination of the reference by supplying one or more URI References
Derived fromatt.pointing
Status Required
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Legal values are:
crossref
(A cross-reference (reference to another part of the article).) To link to another part of your article, use <ref type="crossref">, and point to the xml:id value of the target location: <ref type="crossref" target="#intro">.
bibl
(A bibliographic reference (reference to an entry in the bibliography).) To link to a bibliographic description in the bibliography, use <ref type="bibl">, and point to the xml:id value of the target location: <ref type="bibl" target="#ide88">.
Member of
Contained by
May contain
Note

The target and cRef attributes are mutually exclusive.

Example
See especially <ref target="http://www.natcorp.ox.ac.uk/Texts/A02.xml#s2">the second
sentence</ref>
Example
See also <ref target="#locution">s.v. <term>locution</term>
</ref>.
Schematron

<sch:rule context="tei:ref">
<sch:report test="count(tokenize(normalize-space(@target), '\s+')) > 1"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#external_linking">

 <sch:name/> with multiple values for @target is not supported. </sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:ref[@type eq 'bibl']">
<sch:assert test="not(matches(., '^\(.*\)$'))"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#internal_linking">
Parentheses are not part of bibliographic references. Please move them out of <sch:name/>.
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:ref[@type eq 'bibl']">
<sch:assert test="id(substring-after(@target, '#'))/(self::tei:bibl|self::tei:person[ancestor::tei:particDesc/parent::tei:profileDesc])"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#internal_linking">
A bibliographic reference must point with a @target to the @xml:id of an entry in the div[@type="bibliography"].
</sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:ref[id(substring-after(@target, '#'))/self::tei:bibl]">
<sch:assert test="@type eq 'bibl'"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#internal_linkingsqf:fix="bibltype.add">
A bibliographic reference must be typed as @type="bibl".
</sch:assert>
<sqf:fix id="bibltype.add">
 <sqf:description>
  <sqf:title>Add @type='bibl'.</sqf:title>
 </sqf:description>
 <sqf:add match=".node-type="attribute"
  target="typeselect="'bibl'"/>

</sqf:fix>
</sch:rule>
Schematron

<sch:rule context="tei:ref">
<sch:report test="@target and @cRef">Only one of the attributes @target' and @cRef' may be supplied on <sch:name/>
</sch:report>
</sch:rule>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
Schema Declaration
element ref
{
   att.global.attributes,
   att.cmc.attributes,
   attribute target { list { teidata.pointer+ } },
   attribute type { "crossref" | "bibl" }?,
   macro.paraContent
}

<rendition>

<rendition> (rendition) supplies information about the rendition or appearance of one or more elements in the source text. [2.3.4. The Tagging Declaration]
Moduleheader
Attributes
schemeidentifies the language used to describe the rendition.
Derived fromatt.styleDef
Status Optional
Datatype teidata.enumerated
Legal values are:
css
selectorcontains a selector or series of selectors specifying the elements to which the contained style description applies, expressed in the language specified in the scheme attribute.
Status Optional
Datatype teidata.text
<rendition scheme="css"
 selector="text, front, back, body, div, p, ab">

display: block;
</rendition>
<rendition scheme="css"
 selector="*[rend*=italic]">
font-style: italic;
</rendition>
Note

Since the default value of the scheme attribute is assumed to be CSS, the default expectation for this attribute, in the absence of scheme, is that CSS selector syntax will be used.

While rendition is used to point from an element in the transcribed source to a rendition element in the header which describes how it appears, the selector attribute allows the encoder to point in the other direction: from a rendition in the header to a collection of elements which all share the same renditional features. In both cases, the intention is to record the appearance of the source text, not to prescribe any particular output rendering.

Contained by
header: tagsDecl
May contain
Example
<tagsDecl>
 <rendition xml:id="r-centerscheme="css">text-align: center;</rendition>
 <rendition xml:id="r-smallscheme="css">font-size: small;</rendition>
 <rendition xml:id="r-largescheme="css">font-size: large;</rendition>
 <rendition xml:id="initcaps"
  scope="first-letterscheme="css">
font-size: xx-large</rendition>
</tagsDecl>
Schematron

<sch:rule context="tei:rendition">
<sch:assert test="key('idrefs', @xml:id)[. instance of attribute(rendition)]"> Please remove all <sch:name/> definitions that aren't actually being used in the article.
</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.limitedContent"/>
</content>
Schema Declaration
element rendition
{
   att.global.attributes,
   attribute scheme { "css" }?,
   attribute selector { teidata.text }?,
   macro.limitedContent
}

<resp>

<resp> (responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement]
Modulecore
Attributes
Contained by
core: respStmt
May contain
Note

The attribute ref, inherited from the class att.canonical may be used to indicate the kind of responsibility in a normalized form by referring directly to a standardized list of responsibility types, such as that maintained by a naming authority, for example the list maintained at http://www.loc.gov/marc/relators/relacode.html for bibliographic usage.

Example
<respStmt>
 <resp ref="http://id.loc.gov/vocabulary/relators/com.html">compiler</resp>
 <name>Edward Child</name>
</respStmt>
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.phraseSeq.limited"/>
</content>
Schema Declaration
element resp
{
   att.global.attributes,
   att.datable.attributes,
   macro.phraseSeq.limited
}

<respStmt>

<respStmt> (statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement]
Modulecore
Attributes
Member of
Contained by
core: bibl series
header: seriesStmt
May contain
core: name note resp
namesdates: orgName
Example
<respStmt>
 <resp>transcribed from original ms</resp>
 <persName>Claus Huitfeldt</persName>
</respStmt>
Example
<respStmt>
 <resp>converted to XML encoding</resp>
 <name>Alan Morrison</name>
</respStmt>
Schematron

<sch:rule context="tei:respStmt">
<sch:assert test="ancestor::tei:sourceDesc">
 <sch:name/> can only be used in the context of sourceDesc.
</sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="1maxOccurs="1">
   <sequence minOccurs="1maxOccurs="1">
    <elementRef key="respminOccurs="1"
     maxOccurs="unbounded"/>

    <classRef key="model.nameLike.agent"
     minOccurs="1maxOccurs="unbounded"/>

   </sequence>
   <sequence minOccurs="1maxOccurs="1">
    <classRef key="model.nameLike.agent"
     minOccurs="1maxOccurs="unbounded"/>

    <elementRef key="respminOccurs="1"
     maxOccurs="unbounded"/>

   </sequence>
  </alternate>
  <elementRef key="noteminOccurs="0"
   maxOccurs="unbounded"/>

 </sequence>
</content>
Schema Declaration
element respStmt
{
   att.global.attributes,
   (
      ( ( resp+, model.nameLike.agent+ ) | ( model.nameLike.agent+, resp+ ) ),
      note*
   )
}

<revisionDesc>

<revisionDesc> (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components]
Moduleheader
Attributes
Contained by
header: teiHeader
May contain
core: list
Note

If present on this element, the status attribute should indicate the current status of the document. The same attribute may appear on any change to record the status at the time of that change. Conventionally change elements should be given in reverse date order, with the most recent change at the start of the list.

Example
<revisionDesc status="embargoed">
 <change when="1991-11-11who="#LB"> deleted chapter 10 </change>
</revisionDesc>
Content model
<content>
 <alternate>
  <elementRef key="listminOccurs="1"
   maxOccurs="unbounded"/>

  <elementRef key="listChange"
   minOccurs="1maxOccurs="unbounded"/>

  <elementRef key="changeminOccurs="1"
   maxOccurs="unbounded"/>

 </alternate>
</content>
Schema Declaration
element revisionDesc
{
   att.global.attributes,
   ( list+ | listChange+ | change+ )
}

<roleName>

<roleName> (role name) contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. [14.2.1. Personal Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Note

A roleName may be distinguished from an <addName> by virtue of the fact that, like a title, it typically exists independently of its holder.

Example
<persName>
 <forename>William</forename>
 <surname>Poulteny</surname>
 <roleName>Earl of Bath</roleName>
</persName>
Example
<p>The <roleName role="solicitor_general">S.G.</roleName> is the only national public official,
including the Supreme Court justices, required by statute to be “learned in the law.”</p>
Example
<p>
 <persName ref="#NJF">
  <roleName role="solicitor_general">Solicitor General</roleName> Noel J. Francisco</persName>,
representing the administration, asserted in rebuttal that there was nothing to disavow (...)
<persName ref="#NJF">Francisco</persName> had violated the scrupulous standard of candor about the facts and
the law that <roleName role="solicitor_general">S.G.s</roleName>, in Republican and Democratic administrations
alike, have repeatedly said they must honor.
</p>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element roleName { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<row>

<row> (row) contains one row of a table. [15.1.1. TEI Tables]
Modulefigures
Attributes
Contained by
figures: table
May contain
figures: cell
Example
<row role="data">
 <cell role="label">Classics</cell>
 <cell>Idle listless and unimproving</cell>
</row>
Content model
<content>
 <elementRef key="cellminOccurs="1"
  maxOccurs="unbounded"/>

</content>
Schema Declaration
element row { att.global.attributes, att.tableDecoration.attributes, cell+ }

<series>

<series> (series information) contains information about the series in which a book or other bibliographic item has appeared. [3.12.2.1. Analytic, Monographic, and Series Levels]
Modulecore
Attributes
Member of
Contained by
core: bibl
May contain
figures: figure
character data
Example
<series xml:lang="de">
 <title level="s">Halbgraue Reihe zur Historischen Fachinformatik</title>
 <respStmt>
  <resp>Herausgegeben von</resp>
  <name type="person">Manfred Thaller</name>
  <name type="org">Max-Planck-Institut für Geschichte</name>
 </respStmt>
 <title level="s">Serie A: Historische Quellenkunden</title>
 <biblScope>Band 11</biblScope>
</series>
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <elementRef key="title"/>
  <classRef key="model.ptrLike"/>
  <elementRef key="editor"/>
  <elementRef key="respStmt"/>
  <elementRef key="biblScope"/>
  <elementRef key="idno"/>
  <elementRef key="textLang"/>
  <classRef key="model.global"/>
  <elementRef key="availability"/>
 </alternate>
</content>
Schema Declaration
element series
{
   att.global.attributes,
   (
      text
    | model.gLiketitlemodel.ptrLikeeditorrespStmtbiblScopeidno
    | textLang
    | model.globalavailability
   )*
}

<seriesStmt>

<seriesStmt> (series statement) groups information about the series, if any, to which a publication belongs. [2.2.5. The Series Statement 2.2. The File Description]
Moduleheader
Attributes
Contained by
header: fileDesc
May contain
Example
<seriesStmt>
 <title>Machine-Readable Texts for the Study of Indian Literature</title>
 <respStmt>
  <resp>ed. by</resp>
  <name>Jan Gonda</name>
 </respStmt>
 <biblScope unit="volume">1.2</biblScope>
 <idno type="ISSN">0 345 6789</idno>
</seriesStmt>
Content model
<content>
 <alternate>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

  <sequence>
   <elementRef key="titleminOccurs="1"
    maxOccurs="unbounded"/>

   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="editor"/>
    <elementRef key="respStmt"/>
   </alternate>
   <alternate minOccurs="0"
    maxOccurs="unbounded">

    <elementRef key="idno"/>
    <elementRef key="biblScope"/>
   </alternate>
  </sequence>
 </alternate>
</content>
Schema Declaration
element seriesStmt
{
   att.global.attributes,
   ( model.pLike+ | ( title+, ( editor | respStmt )*, ( idno | biblScope )* ) )
}

<soCalled>

<soCalled> (so called) contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. [3.3.3. Quotation]
Modulecore
Attributes
Member of
Contained by
May contain
Example
To edge his way along
the crowded paths of life, warning all human sympathy to keep its distance, was what the
knowing ones call <soCalled>nuts</soCalled> to Scrooge.
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element soCalled { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<sourceDesc>

<sourceDesc> (source description) describes the source(s) from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as ‘born digital’ for a text which has no previous existence. [2.2.7. The Source Description]
Moduleheader
Attributes
Contained by
header: fileDesc
May contain
figures: table
namesdates: listPerson
Example
<sourceDesc>
 <bibl>
  <title level="a">The Interesting story of the Children in the Wood</title>. In
 <author>Victor E Neuberg</author>, <title>The Penny Histories</title>.
 <publisher>OUP</publisher>
  <date>1968</date>. </bibl>
</sourceDesc>
Example
<sourceDesc>
 <p>Born digital: no previous source exists.</p>
</sourceDesc>
Content model
<content>
 <alternate>
  <classRef key="model.pLikeminOccurs="1"
   maxOccurs="unbounded"/>

  <alternate minOccurs="1"
   maxOccurs="unbounded">

   <classRef key="model.biblLike"/>
   <classRef key="model.sourceDescPart"/>
   <classRef key="model.listLike"/>
  </alternate>
 </alternate>
</content>
Schema Declaration
element sourceDesc
{
   att.global.attributes,
   (
      model.pLike+
    | ( model.biblLike | model.sourceDescPart | model.listLike )+
   )
}

<supplied>

<supplied> (supplied) signifies text supplied by the transcriber or editor for any reason; for example because the original cannot be read due to physical damage, or because of an obvious omission by the author or scribe. [12.3.3.1. Damage, Illegibility, and Supplied Text]
Moduletranscr
Attributes
reasonone or more words indicating why the text has had to be supplied, e.g. overbinding, faded-ink, lost-folio, omitted-in-original.
Status Optional
Datatype 1–∞ occurrences of teidata.word separated by whitespace
Member of
Contained by
May contain
Note

The <damage>, gap, <del>, <unclear> and supplied elements may be closely allied in use. See section 12.3.3.2. Use of the gap, del, damage, unclear, and supplied Elements in Combination for discussion of which element is appropriate for which circumstance.

Example
I am dr Sr yr
<supplied reason="illegible"
 source="#amanuensis_copy">
very humble Servt</supplied>
Sydney Smith
Example
<supplied reason="omitted-in-original">Dedication</supplied> to the duke of Bejar
Schematron

<sch:rule context="tei:supplied">
<sch:assert test="not(matches(., '^\[|\]$'))"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#inline_rhetorical">
Please remove square brackets from <sch:name/>: they are completed at processing time via XSLT.
</sch:assert>
</sch:rule>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
Schema Declaration
element supplied
{
   att.global.attributes,
   att.editLike.attributes,
   att.dimensions.attributes,
   attribute reason { list { teidata.word+ } }?,
   macro.paraContent
}

<surname>

<surname> (surname) contains a family (inherited) name, as opposed to a given, baptismal, or nick name. [14.2.1. Personal Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
<surname type="combine">St John Stevas</surname>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element surname { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<table>

<table> (table) contains text displayed in tabular form, in rows and columns. [15.1.1. TEI Tables]
Modulefigures
Attributes
rows(rows) indicates the number of rows in the table.
Status Optional
Datatype teidata.count
Note

If no number is supplied, an application must calculate the number of rows.

Rows should be presented from top to bottom.

cols(columns) indicates the number of columns in each row of the table.
Status Optional
Datatype teidata.count
Note

If no number is supplied, an application must calculate the number of columns.

Within each row, columns should be presented left to right.

Member of
Contained by
figures: cell
textstructure: back body div
transcr: supplied
May contain
figures: figure row
Note

Contains an optional heading and a series of rows.

Any rendition information should be supplied using the global rend attribute, at the table, row, or cell level as appropriate.

Example
<table rows="4cols="4">
 <head>Poor Men's Lodgings in Norfolk (Mayhew, 1843)</head>
 <row role="label">
  <cell role="data"/>
  <cell role="data">Dossing Cribs or Lodging Houses</cell>
  <cell role="data">Beds</cell>
  <cell role="data">Needys or Nightly Lodgers</cell>
 </row>
 <row role="data">
  <cell role="label">Bury St Edmund's</cell>
  <cell role="data">5</cell>
  <cell role="data">8</cell>
  <cell role="data">128</cell>
 </row>
 <row role="data">
  <cell role="label">Thetford</cell>
  <cell role="data">3</cell>
  <cell role="data">6</cell>
  <cell role="data">36</cell>
 </row>
 <row role="data">
  <cell role="label">Attleboro'</cell>
  <cell role="data">3</cell>
  <cell role="data">5</cell>
  <cell role="data">20</cell>
 </row>
 <row role="data">
  <cell role="label">Wymondham</cell>
  <cell role="data">1</cell>
  <cell role="data">11</cell>
  <cell role="data">22</cell>
 </row>
</table>
Schematron

<sch:rule context="tei:table">
<sch:assert test="not(ancestor::tei:list)"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#lists">
No tables are allowed inside
lists. </sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.headLike"/>
   <classRef key="model.global"/>
  </alternate>
  <alternate minOccurs="1maxOccurs="1">
   <sequence minOccurs="1"
    maxOccurs="unbounded">

    <elementRef key="row"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
   <sequence minOccurs="1"
    maxOccurs="unbounded">

    <classRef key="model.graphicLike"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
  </alternate>
  <sequence minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divBottom"/>
   <classRef key="model.global"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
 </sequence>
</content>
Schema Declaration
element table
{
   att.global.attributes,
   att.typed.attributes,
   att.cmc.attributes,
   attribute rows { teidata.count }?,
   attribute cols { teidata.count }?,
   (
      ( model.headLike | model.global )*,
      (
         ( ( row, model.global* )+ )
       | ( ( model.graphicLike, model.global* )+ )
      ),
      ( ( model.divBottom, model.global* )* )
   )
}

<tag>

<tag> (tag) contains text of a complete start- or end-tag, possibly including attribute specifications, but excluding the opening and closing markup delimiter characters. [23. Documentation Elements]
Moduletagdocs
Attributes
typeindicates the type of XML tag intended
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
schemesupplies the name of the schema in which this tag is defined.
Status Optional
Datatype teidata.enumerated
Sample values include:
TEI
(text encoding initiative) This tag is defined as part of the TEI scheme. [Default]
DBK
(docbook) this tag is part of the Docbook scheme.
XX
(unknown) this tag is part of an unknown scheme.
Schematron
HTML
Member of
Contained by
May containCharacter data only
Example
Mark the start of each italicised phrase with a
<tag>hi rend="it"</tag> tag, and its end with a <tag type="end">hi</tag> tag.
<tag type="comment">Example updated on 2008-04-05</tag>
Schematron

<sch:rule context="tei:tag">
<sch:assert test="not(matches(., '^[<!?-]|[>/?\-]$'))"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#inline_technical">
Tag delimiters such as angle brackets and tag-closing slashes are not allowed for <sch:name/>: they are completed at processing time via XSLT.
</sch:assert>
</sch:rule>
Content model
<content>
 <textNode/>
</content>
Schema Declaration
element tag
{
   att.global.attributes,
   attribute type { teidata.enumerated }?,
   attribute scheme { teidata.enumerated }?,
   text
}

<tagsDecl>

<tagsDecl> (tagging declaration) provides detailed information about the tagging applied to a document. [2.3.4. The Tagging Declaration 2.3. The Encoding Description]
Moduleheader
Attributes
partialindicates whether the element types listed exhaustively include all those found within text, or represent only a subset.
Status Recommended
Datatype teidata.truthValue
Note

TEI recommended practice is to specify this attribute. When the <tagUsage> elements inside tagsDecl are used to list each of the element types in the associated text, the value should be given as false. When the <tagUsage> elements inside tagsDecl are used to provide usage information or default renditions for only a subset of the elements types within the associated text, the value should be true.

Member of
Contained by
header: encodingDesc
May contain
header: rendition
Example
<tagsDecl partial="true">
 <rendition xml:id="rend-itscheme="css"
  selector="emph, hi, name, title">
font-style: italic;</rendition>
 <namespace name="http://www.tei-c.org/ns/1.0">
  <tagUsage gi="hioccurs="467"/>
  <tagUsage gi="titleoccurs="45"/>
 </namespace>
 <namespace name="http://docbook.org/ns/docbook">
  <tagUsage gi="paraoccurs="10"/>
 </namespace>
</tagsDecl>

If the partial attribute were not specified here, the implication would be that the document in question contains only hi, title, and <para> elements.

Content model
<content>
 <sequence>
  <elementRef key="renditionminOccurs="0"
   maxOccurs="unbounded"/>

  <elementRef key="namespaceminOccurs="0"
   maxOccurs="unbounded"/>

 </sequence>
</content>
Schema Declaration
element tagsDecl
{
   att.global.attributes,
   attribute partial { teidata.truthValue }?,
   ( rendition*, namespace* )
}

<TEI>

<TEI> (TEI document) contains a single TEI-conformant document, combining a single TEI header with one or more members of the model.resource class. Multiple TEI elements may be combined within a TEI (or <teiCorpus>) element. [4. Default Text Structure 16.1. Varieties of Composite Text]
Moduletextstructure
Attributes
Contained by
textstructure: TEI
May contain
header: teiHeader
textstructure: TEI text
Note

This element is required. It is customary to specify the TEI namespace http://www.tei-c.org/ns/1.0 on it, for example: <TEI version="4.4.0" xml:lang="it" xmlns="http://www.tei-c.org/ns/1.0">.

Example
<TEI version="3.3.0" xmlns="http://www.tei-c.org/ns/1.0">
 <teiHeader>
  <fileDesc>
   <titleStmt>
    <title>The shortest TEI Document Imaginable</title>
   </titleStmt>
   <publicationStmt>
    <p>First published as part of TEI P2, this is the P5
         version using a namespace.</p>
   </publicationStmt>
   <sourceDesc>
    <p>No source: this is an original work.</p>
   </sourceDesc>
  </fileDesc>
 </teiHeader>
 <text>
  <body>
   <p>This is about the shortest TEI document imaginable.</p>
  </body>
 </text>
</TEI>
Example
<TEI version="2.9.1" xmlns="http://www.tei-c.org/ns/1.0">
 <teiHeader>
  <fileDesc>
   <titleStmt>
    <title>A TEI Document containing four page images </title>
   </titleStmt>
   <publicationStmt>
    <p>Unpublished demonstration file.</p>
   </publicationStmt>
   <sourceDesc>
    <p>No source: this is an original work.</p>
   </sourceDesc>
  </fileDesc>
 </teiHeader>
 <facsimile>
  <graphic url="page1.png"/>
  <graphic url="page2.png"/>
  <graphic url="page3.png"/>
  <graphic url="page4.png"/>
 </facsimile>
</TEI>
Schematron

<sch:ns prefix="tei"
 uri="http://www.tei-c.org/ns/1.0"/>

<sch:ns prefix="xs"
 uri="http://www.w3.org/2001/XMLSchema"/>
Schematron

<sch:ns prefix="rng"
 uri="http://relaxng.org/ns/structure/1.0"/>

<sch:ns prefix="rna"
 uri="http://relaxng.org/ns/compatibility/annotations/1.0"/>
Schematron

<sch:ns prefix="sch"
 uri="http://purl.oclc.org/dsdl/schematron"/>

<sch:ns prefix="sch1x"
 uri="http://www.ascc.net/xml/schematron"/>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <elementRef key="teiHeader"/>
  <alternate minOccurs="1maxOccurs="1">
   <sequence minOccurs="1maxOccurs="1">
    <classRef key="model.resource"
     minOccurs="1maxOccurs="unbounded"/>

    <elementRef key="TEIminOccurs="0"
     maxOccurs="unbounded"/>

   </sequence>
   <elementRef key="TEIminOccurs="1"
    maxOccurs="unbounded"/>

  </alternate>
 </sequence>
</content>
Schema Declaration
element TEI
{
   att.global.attributes,
   att.typed.attributes,
   ( teiHeader, ( ( model.resource+, TEI* ) | TEI+ ) )
}

<teiHeader>

<teiHeader> (TEI header) supplies descriptive and declarative metadata associated with a digital resource or set of resources. [2.1.1. The TEI Header and Its Components 16.1. Varieties of Composite Text]
Moduleheader
Attributes
Contained by
textstructure: TEI
May contain
Note

One of the few elements unconditionally required in any TEI document.

Example
<teiHeader>
 <fileDesc>
  <titleStmt>
   <title>Shakespeare: the first folio (1623) in electronic form</title>
   <author>Shakespeare, William (1564–1616)</author>
   <respStmt>
    <resp>Originally prepared by</resp>
    <name>Trevor Howard-Hill</name>
   </respStmt>
   <respStmt>
    <resp>Revised and edited by</resp>
    <name>Christine Avern-Carr</name>
   </respStmt>
  </titleStmt>
  <publicationStmt>
   <distributor>Oxford Text Archive</distributor>
   <address>
    <addrLine>13 Banbury Road, Oxford OX2 6NN, UK</addrLine>
   </address>
   <idno type="OTA">119</idno>
   <availability>
    <p>Freely available on a non-commercial basis.</p>
   </availability>
   <date when="1968">1968</date>
  </publicationStmt>
  <sourceDesc>
   <bibl>The first folio of Shakespeare, prepared by Charlton Hinman (The Norton Facsimile,
       1968)</bibl>
  </sourceDesc>
 </fileDesc>
 <encodingDesc>
  <projectDesc>
   <p>Originally prepared for use in the production of a series of old-spelling
       concordances in 1968, this text was extensively checked and revised for use during the
       editing of the new Oxford Shakespeare (Wells and Taylor, 1989).</p>
  </projectDesc>
  <editorialDecl>
   <correction>
    <p>Turned letters are silently corrected.</p>
   </correction>
   <normalization>
    <p>Original spelling and typography is retained, except that long s and ligatured
         forms are not encoded.</p>
   </normalization>
  </editorialDecl>
  <refsDecl xml:id="ASLREF">
   <cRefPattern matchPattern="(\S+) ([^.]+)\.(.*)"
    replacementPattern="#xpath(//div1[@n='$1']/div2/[@n='$2']//lb[@n='$3'])">

    <p>A reference is created by assembling the following, in the reverse order as that
         listed here: <list>
      <item>the <att>n</att> value of the preceding <gi>lb</gi>
      </item>
      <item>a period</item>
      <item>the <att>n</att> value of the ancestor <gi>div2</gi>
      </item>
      <item>a space</item>
      <item>the <att>n</att> value of the parent <gi>div1</gi>
      </item>
     </list>
    </p>
   </cRefPattern>
  </refsDecl>
 </encodingDesc>
 <revisionDesc>
  <list>
   <item>
    <date when="1989-04-12">12 Apr 89</date> Last checked by CAC</item>
   <item>
    <date when="1989-03-01">1 Mar 89</date> LB made new file</item>
  </list>
 </revisionDesc>
</teiHeader>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <elementRef key="fileDesc"/>
  <classRef key="model.teiHeaderPart"
   minOccurs="0maxOccurs="unbounded"/>

  <elementRef key="revisionDesc"
   minOccurs="0"/>

 </sequence>
</content>
Schema Declaration
element teiHeader
{
   att.global.attributes,
   ( fileDesc, model.teiHeaderPart*, revisionDesc? )
}

<term>

<term> (term) contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.4.1. Terms and Glosses]
Modulecore
Attributes
Member of
Contained by
May contain
Note

When this element appears within an <index> element, it is understood to supply the form under which an index entry is to be made for that location. Elsewhere, it is understood simply to indicate that its content is to be regarded as a technical or specialised term. It may be associated with a <gloss> element by means of its ref attribute; alternatively a <gloss> element may point to a term element by means of its target attribute.

In formal terminological work, there is frequently discussion over whether terms must be atomic or may include multi-word lexical items, symbolic designations, or phraseological units. The term element may be used to mark any of these. No position is taken on the philosophical issue of what a term can be; the looser definition simply allows the term element to be used by practitioners of any persuasion.

As with other members of the att.canonical class, instances of this element occuring in a text may be associated with a canonical definition, either by means of a URI (using the ref attribute), or by means of some system-specific code value (using the key attribute). Because the mutually exclusive target and cRef attributes overlap with the function of the ref attribute, they are deprecated and may be removed at a subsequent release.

Example
A computational device that infers structure
from grammatical strings of words is known as a <term>parser</term>, and much of the history
of NLP over the last 20 years has been occupied with the design of parsers.
Example
We may define <term xml:id="TDPV1rend="sc">discoursal point of view</term> as
<gloss target="#TDPV1">the relationship, expressed
through discourse structure, between the implied author or some other addresser, and the
fiction.</gloss>
Example
We may define <term ref="#TDPV2rend="sc">discoursal point of view</term> as
<gloss xml:id="TDPV2">the relationship, expressed
through discourse structure, between the implied author or some other addresser, and the
fiction.</gloss>
Example
We discuss Leech's concept of <term ref="myGlossary.xml#TDPV2rend="sc">discoursal point of view</term> below.
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
Schema Declaration
element term { att.global.attributes, att.cmc.attributes, macro.phraseSeq }

<text>

<text> (text) contains the complete text of the article. Must include a front containing an abstract, a body containing the main text, and a back containing the bibliography and any appendices. [4. Default Text Structure 16.1. Varieties of Composite Text]
Moduletextstructure
Attributes
Member of
Contained by
textstructure: TEI
May contain
core: gap lb note
figures: figure
textstructure: back body front
Note

This element should not be used to represent a text which is inserted at an arbitrary point within the structure of another, for example as in an embedded or quoted narrative; the <floatingText> is provided for this purpose.

Example
<text>
 <front>
  <div type="abstractxml:id="abstract">
   <p>This article is about...</p>
  </div>
 </front>
 <body>
  <div xml:id="intro">
   <head>Introduction</head>
   <p>A great deal of previous research...</p>
  </div>
  <div xml:id="method">
   <head>Method</head>
   <p>This project was undertaken...</p>
  </div>
 </body>
 <back>
  <div type="bibliography">
   <listBibl>
    <bibl>[...]</bibl>
   </listBibl>
  </div>
 </back>
</text>
Schematron

<sch:rule context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
<sch:assert test="parent::tei:TEI/tei:teiHeader/tei:profileDesc/tei:textClass/tei:keywords"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#header">
An article must have a keyword list in the header. This should be a list of <term> elements in TEI/teiHeader/profileDesc/textClass/keywords </sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
<sch:assert test="tei:front/tei:div[@type='abstract']"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#front">
An article must have a
front section with an abstract (div[@type='abstract']). </sch:assert>
</sch:rule>
Schematron

<sch:rule context="tei:text[not(tei:body/tei:div[@type = ('editorialIntroduction')])]">
<sch:assert test="tei:back/tei:div[@type='bibliography']/tei:listBibl"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#back">
An article
must have a back section with a bibliography (div[@type='bibliography']). </sch:assert>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <classRef key="model.global"
   minOccurs="0maxOccurs="unbounded"/>

  <sequence minOccurs="0maxOccurs="1">
   <elementRef key="front"/>
   <classRef key="model.global"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
  <alternate minOccurs="1maxOccurs="1">
   <elementRef key="body"/>