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
Sample values include:
suspension
(suspension) the abbreviation provides the first letter(s) of the word or phrase, omitting the remainder.
contraction
(contraction) the abbreviation omits some letter(s) in the middle.
brevigraph
the abbreviation comprises a special symbol or mark.
superscription
(superscription) the abbreviation includes writing above the line.
acronym
(acronym) the abbreviation comprises the initial letters of the words of a phrase.
title
(title) the abbreviation is for a title of address (Dr, Ms, Mr, …)
organization
(organization) the abbreviation is for the name of an organization.
geographic
(geographic) the abbreviation is for a geographic name.
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
Sample values include:
sponsor
recommend
discredit
pledged
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
Legal values are:
legend
the caption for a figure.
license
licensing information that must be shown alongside the figure.
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 { "legend" | "license" }?,
   (
      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
Suggested values include:
ISBN
International Standard Book Number: a 13- or (if assigned prior to 2007) 10-digit identifying number assigned by the publishing industry to a published book or similar item, registered with the International ISBN Agency.
ISSN
International Standard Serial Number: an eight-digit number to uniquely identify a serial publication.
DOI
Digital Object Identifier: a unique string of letters and numbers assigned to an electronic document.
URI
Uniform Resource Identifier: a string of characters to uniquely identify a resource, following the syntax of RFC 3986.
VIAF
A data number in the Virtual Internet Authority File assigned to link different names in catalogs around the world for the same entity.
ESTC
English Short-Title Catalogue number: an identifying number assigned to a document in English printed in the British Isles or North America before 1801.
OCLC
OCLC control number (record number) for the union catalog record in WorldCat, a union catalog for member libraries in the Online Computer Library Center global cooperative.
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
   {
      "ISBN"
    | "ISSN"
    | "DOI"
    | "URI"
    | "VIAF"
    | "ESTC"
    | "OCLC"
    | 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
Legal values are:
gloss
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 { "gloss" }?,
   (
      ( 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
Suggested values include:
cardinal
absolute number, e.g. 21, 21.5
ordinal
ordinal number, e.g. 21st
fraction
fraction, e.g. one half or three-quarters
percentage
a percentage
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
   {
      "cardinal" | "ordinal" | "fraction" | "percentage" | 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
Legal values are:
start
a start-tag, with delimiters < and > is intended
end
an end-tag, with delimiters </ and > is intended
empty
an empty tag, with delimiters < and /> is intended
pi
a pi (processing instruction), with delimiters <? and ?> is intended
comment
a comment, with delimiters <!-- and --> is intended
ms
a marked-section, with delimiters <[CDATA[ and ]]> is intended
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 { "start" | "end" | "empty" | "pi" | "comment" | "ms" }?,
   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"/>
   <elementRef key="group"/>
  </alternate>
  <classRef key="model.global"
   minOccurs="0maxOccurs="unbounded"/>

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

  </sequence>
 </sequence>
</content>
Schema Declaration
element text
{
   att.global.attributes,
   att.written.attributes,
   (
      model.global*,
      ( ( front, model.global* )? ),
      ( body | group ),
      model.global*,
      ( ( back, model.global* )? )
   )
}

<textClass>

<textClass> (text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. The Text Classification]
Moduleheader
Attributes
Member of
Contained by
header: profileDesc
May contain
Example
<taxonomy>
 <category xml:id="acprose">
  <catDesc>Academic prose</catDesc>
 </category>
<!-- other categories here -->
</taxonomy>
<!-- ... -->
<textClass>
 <catRef target="#acprose"/>
 <classCode scheme="http://www.udcc.org">001.9</classCode>
 <keywords scheme="http://authorities.loc.gov">
  <list>
   <item>End of the world</item>
   <item>History - philosophy</item>
  </list>
 </keywords>
</textClass>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <elementRef key="classCode"/>
   <elementRef key="catRef"/>
  </alternate>
  <elementRef key="keywords"/>
 </sequence>
</content>
Schema Declaration
element textClass
{
   att.global.attributes,
   ( ( classCode | catRef )*, keywords )
}

<title>

<title> (title) contains a title for any kind of work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.5. The Series Statement]
Modulecore
Attributes
typeclassifies the title according to some convenient typology.
Derived fromatt.typed
Status Optional
Datatype teidata.enumerated
Legal values are:
main
(The main title of your article.) Academic articles often have a main title followed by a subtitle (sometimes with a colon separating them). If you have two such components in your article title, then in the titleStmt, use <title type="main"> and <title type="sub"> to encode the two components of your title.
sub
(The subtitle of your article.) Academic articles often have a main title followed by a subtitle (sometimes with a colon separating them). If you have two such components in your article title, then in the titleStmt, use <title type="main"> and <title type="sub"> to encode the two components of your title.
Note

This attribute is provided for convenience in analysing titles and processing them according to their type; where such specialized processing is not necessary, there is no need for such analysis, and the entire title, including subtitles and any parallel titles, may be enclosed within a single title element.

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>
levelindicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.
Status Optional
Datatype teidata.enumerated
Legal values are:
a
(analytic) the title applies to an analytic item, such as an article, poem, or other work published as part of a larger item.
m
(monographic) the title applies to a monograph such as a book or other item considered to be a distinct publication, including single volumes of multi-volume works
j
(journal) the title applies to any serial or periodical publication such as a journal, magazine, or newspaper
s
(series) the title applies to a series of otherwise distinct publications such as a collection
u
(unpublished) the title applies to any unpublished material (including theses and dissertations unless published by a commercial press)
Note

The level of a title is sometimes implied by its context: for example, a title appearing directly within an <analytic> element is ipso facto of level ‘a’, and one appearing within a series element of level ‘s’. For this reason, the level attribute is not required in contexts where its value can be unambiguously inferred. Where it is supplied in such contexts, its value should not contradict the value implied by its parent element.

Member of
Contained by
May contain
Note

The attributes key and ref, inherited from the class att.canonical may be used to indicate the canonical form for the title; the former, by supplying (for example) the identifier of a record in some external library system; the latter by pointing to an XML element somewhere containing the canonical form of the title.

Example
<title>Information Technology and the Research Process: Proceedings of
a conference held at Cranfield Institute of Technology, UK,
18–21 July 1989</title>
Example
<title>Hardy's Tess of the D'Urbervilles: a machine readable
edition</title>
Example
<title type="full">
 <title type="main">Synthèse</title>
 <title type="sub">an international journal for
   epistemology, methodology and history of
   science</title>
</title>
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.paraContent"/>
</content>
Schema Declaration
element title
{
   att.global.attributes,
   att.datable.attributes,
   att.cmc.attributes,
   attribute type { "main" | "sub" }?,
   attribute calendar { list { teidata.pointer+ } }?,
   attribute level { "a" | "m" | "j" | "s" | "u" }?,
   macro.paraContent
}

<titleStmt>

<titleStmt> (title statement) groups information about the title of a work and those responsible for its content. In jTEI, this must include a title and an author element for each author of the paper, which in turn must include name, affiliation and email. [2.2.1. The Title Statement 2.2. The File Description]
Moduleheader
Attributes
Contained by
header: fileDesc
May contain
Example
<titleStmt>
 <title>Capgrave's Life of St. John Norbert: a machine-readable transcription</title>
 <respStmt>
  <resp>compiled by</resp>
  <name>P.J. Lucas</name>
 </respStmt>
</titleStmt>
Schematron

<sch:rule context="tei:titleStmt">
<sch:assert test="tei:title[@type = 'main']"
 sqf:fix="type.add">
A title of type "main" is required in <sch:name/>.
</sch:assert>
<sqf:fix id="type.add">
 <sqf:description>
  <sqf:title>Add a @type='main' attribute to the first title.</sqf:title>
 </sqf:description>
 <sqf:add match="tei:title[not(@type='main')][1]"
  node-type="attributetarget="type">
main</sqf:add>
</sqf:fix>
</sch:rule>
Content model
<content>
 <sequence minOccurs="1maxOccurs="1">
  <elementRef key="titleminOccurs="1"
   maxOccurs="unbounded"/>

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

 </sequence>
</content>
Schema Declaration
element titleStmt { att.global.attributes, ( title+, author+ ) }

<val>

<val> (value) contains a single attribute value. [23. Documentation Elements 23.5.3. Attribute List Specification]
Moduletagdocs
Attributes
Member of
Contained by
May containCharacter data only
Example
<val>unknown</val>
Schematron

<sch:rule context="tei:val">
<sch:assert test="not(matches(., concat('^', $quotes, '|', $quotes, '$')))"
 see="https://tei-c.org/release/doc/tei-p5-exemplars/html/tei_jtei.doc.html#inline_technical">
Attribute value delimiters 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 val { att.global.attributes, text }

Schema tei_jtei: Model classes

model.addressLike

model.addressLike groups elements used to represent a postal or email address. [1. The TEI Infrastructure]
Moduletei
Used by
Membersaffiliation email

model.applicationLike

model.applicationLike groups elements used to record application-specific information about a document in its header.
Moduletei
Used by
Membersapplication

model.attributable

model.attributable groups elements that contain a word or phrase that can be attributed to a source. [3.3.3. Quotation 4.3.2. Floating Texts]
Moduletei
Used by
Membersmodel.quoteLike [cit quote]

model.availabilityPart

model.availabilityPart groups elements such as licences and paragraphs of text which may appear as part of an availability statement [2.2.4. Publication, Distribution, Licensing, etc.]
Moduletei
Used by
Memberslicence

model.biblLike

model.biblLike groups elements containing a bibliographic description. [3.12. Bibliographic Citations and References]
Moduletei
Used by
Membersbibl listBibl

model.biblPart

model.biblPart groups elements which represent components of a bibliographic description. [3.12. Bibliographic Citations and References]
Moduletei
Used by
Membersmodel.imprintPart [biblScope pubPlace publisher] model.respLike [author editor respStmt] availability bibl edition quote series

model.common

model.common groups common chunk- and inter-level elements. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.cmc model.divPart [model.lLike model.pLike [p] ] model.inter [model.attributable [model.quoteLike [cit quote] ] model.biblLike [bibl listBibl] model.egLike [eg egXML] model.labelLike [desc label] model.listLike [list listPerson table] model.oddDecl model.stageLike] q
Note

This class defines the set of chunk- and inter-level elements; it is used in many content models, including those for textual divisions.

model.dateLike

model.dateLike groups elements containing temporal expressions. [3.6.4. Dates and Times 14.4. Dates]
Moduletei
Used by
Membersdate

model.descLike

model.descLike groups elements which contain a description of their function.
Moduletei
Used by
Membersdesc

model.divBottom

model.divBottom groups elements appearing at the end of a text division. [4.2. Elements Common to All Divisions]
Moduletei
Used by
Membersmodel.divBottomPart model.divWrapper

model.divLike

model.divLike groups elements used to represent un-numbered generic structural divisions.
Moduletei
Used by
Membersdiv

model.divPart

model.divPart groups paragraph-level elements appearing directly within divisions. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.lLike model.pLike [p]
Note

Note that this element class does not include members of the model.inter class, which can appear either within or between paragraph-level items.

model.divTop

model.divTop groups elements appearing at the beginning of a text division. [4.2. Elements Common to All Divisions]
Moduletei
Used by
Membersmodel.divTopPart [model.headLike [head] ] model.divWrapper

model.divTopPart

model.divTopPart groups elements which can occur only at the beginning of a text division. [4.6. Title Pages]
Moduletei
Used by
Membersmodel.headLike [head]

model.egLike

model.egLike groups elements containing examples or illustrations. [23.1.1. Phrase Level Terms]
Moduletei
Used by
Memberseg egXML

model.emphLike

model.emphLike groups phrase-level elements which are typographically distinct and to which a specific function can be attributed. [3.3. Highlighting and Quotation]
Moduletei
Used by
Memberscode emph foreign ident mentioned soCalled term title

model.encodingDescPart

model.encodingDescPart groups elements which may be used inside encodingDesc and appear multiple times.
Moduletei
Used by
MembersappInfo projectDesc tagsDecl

model.frontPart

model.frontPart groups elements which appear at the level of divisions within front or back matter. [7.1. Front and Back Matter ]
Moduletei
Used by
Membersmodel.frontPart.drama listBibl

model.global

model.global groups elements which may appear at any point within a TEI text. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.global.edit [gap] model.global.meta model.milestoneLike [lb] model.noteLike [note] figure

model.global.edit

model.global.edit groups globally available elements which perform a specifically editorial function. [1.3. The TEI Class System]
Moduletei
Used by
Membersgap

model.graphicLike

model.graphicLike groups elements containing images, formulae, and similar objects. [3.10. Graphics and Other Non-textual Components]
Moduletei
Used by
Membersgraphic

model.headLike

model.headLike groups elements used to provide a title or heading at the start of a text division.
Moduletei
Used by
Membershead

model.highlighted

model.highlighted groups phrase-level elements which are typographically distinct. [3.3. Highlighting and Quotation]
Moduletei
Used by
Membersmodel.emphLike [code emph foreign ident mentioned soCalled term title] model.hiLike [hi q]

model.hiLike

model.hiLike groups phrase-level elements which are typographically distinct but to which no specific function can be attributed. [3.3. Highlighting and Quotation]
Moduletei
Used by
Membershi q

model.imprintPart

model.imprintPart groups the bibliographic elements which occur inside imprints. [3.12. Bibliographic Citations and References]
Moduletei
Used by
MembersbiblScope pubPlace publisher

model.inter

model.inter groups elements which can appear either within or between paragraph-like elements. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.attributable [model.quoteLike [cit quote] ] model.biblLike [bibl listBibl] model.egLike [eg egXML] model.labelLike [desc label] model.listLike [list listPerson table] model.oddDecl model.stageLike

model.labelLike

model.labelLike groups elements used to gloss or explain other parts of a document.
Moduletei
Used by
Membersdesc label

model.limitedPhrase

model.limitedPhrase groups phrase-level elements excluding those elements primarily intended for transcription of existing sources. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.emphLike [code emph foreign ident mentioned soCalled term title] model.hiLike [hi q] model.pPart.data [model.addressLike [affiliation email] model.dateLike [date] model.measureLike [num] model.nameLike [model.nameLike.agent [name orgName] model.offsetLike model.persNamePart [forename roleName surname] model.placeStateLike [model.placeNamePart [placeName] ] idno] ] model.pPart.editorial [abbr] model.pPart.msdesc model.phrase.xml [att gi tag val] model.ptrLike [ptr ref]

model.listLike

model.listLike groups list-like elements. [3.8. Lists]
Moduletei
Used by
Memberslist listPerson table

model.measureLike

model.measureLike groups elements which denote a number, a quantity, a measurement, or similar piece of text that conveys some numerical meaning. [3.6.3. Numbers and Measures]
Moduletei
Used by
Membersnum

model.milestoneLike

model.milestoneLike groups milestone-style elements used to represent reference systems. [1.3. The TEI Class System 3.11.3. Milestone Elements]
Moduletei
Used by
Memberslb

model.nameLike

model.nameLike groups elements which name or refer to a person, place, or organization.
Moduletei
Used by
Membersmodel.nameLike.agent [name orgName] model.offsetLike model.persNamePart [forename roleName surname] model.placeStateLike [model.placeNamePart [placeName] ] idno
Note

A superset of the naming elements that may appear in datelines, addresses, statements of responsibility, etc.

model.nameLike.agent

model.nameLike.agent groups elements which contain names of individuals or corporate bodies. [3.6. Names, Numbers, Dates, Abbreviations, and Addresses]
Moduletei
Used by
Membersname orgName
Note

This class is used in the content model of elements which reference names of people or organizations.

model.noteLike

model.noteLike groups globally-available note-like elements. [3.9. Notes, Annotation, and Indexing]
Moduletei
Used by
Membersnote

model.paraPart

model.paraPart groups elements that may appear in paragraphs and similar elements [3.1. Paragraphs]
Moduletei
Used by
Membersmodel.gLike model.global [model.global.edit [gap] model.global.meta model.milestoneLike [lb] model.noteLike [note] figure] model.inter [model.attributable [model.quoteLike [cit quote] ] model.biblLike [bibl listBibl] model.egLike [eg egXML] model.labelLike [desc label] model.listLike [list listPerson table] model.oddDecl model.stageLike] model.lLike model.phrase [model.graphicLike [graphic] model.highlighted [model.emphLike [code emph foreign ident mentioned soCalled term title] model.hiLike [hi q] ] model.lPart model.pPart.data [model.addressLike [affiliation email] model.dateLike [date] model.measureLike [num] model.nameLike [model.nameLike.agent [name orgName] model.offsetLike model.persNamePart [forename roleName surname] model.placeStateLike [model.placeNamePart [placeName] ] idno] ] model.pPart.edit [model.pPart.editorial [abbr] model.pPart.transcriptional [supplied] ] model.pPart.msdesc model.phrase.xml [att gi tag val] model.ptrLike [ptr ref] model.segLike model.specDescLike]

model.persNamePart

model.persNamePart groups elements which form part of a personal name. [14.2.1. Personal Names]
Modulenamesdates
Used by
Membersforename roleName surname

model.personLike

model.personLike groups elements which provide information about people and their relationships.
Moduletei
Used by
Membersperson

model.personPart

model.personPart groups elements which form part of the description of a person. [16.2.2. The Participant Description]
Moduletei
Used by
Membersmodel.biblLike [bibl listBibl] model.eventLike model.persStateLike [affiliation] idno name

model.persStateLike

model.persStateLike groups elements describing changeable characteristics of a person which have a definite duration, for example occupation, residence, or name.
Moduletei
Used by
Membersaffiliation
Note

These characteristics of an individual are typically a consequence of their own action or that of others.

model.phrase

model.phrase groups elements which can occur at the level of individual words or phrases. [1.3. The TEI Class System]
Moduletei
Used by
Membersmodel.graphicLike [graphic] model.highlighted [model.emphLike [code emph foreign ident mentioned soCalled term title] model.hiLike [hi q] ] model.lPart model.pPart.data [model.addressLike [affiliation email] model.dateLike [date] model.measureLike [num] model.nameLike [model.nameLike.agent [name orgName] model.offsetLike model.persNamePart [forename roleName surname] model.placeStateLike [model.placeNamePart [placeName] ] idno] ] model.pPart.edit [model.pPart.editorial [abbr] model.pPart.transcriptional [supplied] ] model.pPart.msdesc model.phrase.xml [att gi tag val] model.ptrLike [ptr ref] model.segLike model.specDescLike
Note

This class of elements can occur within paragraphs, list items, lines of verse, etc.

model.phrase.xml

model.phrase.xml groups phrase-level elements used to encode XML constructs such as element names, attribute names, and attribute values [23. Documentation Elements]
Moduletei
Used by
Membersatt gi tag val

model.placeNamePart

model.placeNamePart groups elements which form part of a place name. [14.2.3. Place Names]
Moduletei
Used by
MembersplaceName

model.placeStateLike

model.placeStateLike groups elements which describe changing states of a place.
Moduletei
Used by
Membersmodel.placeNamePart [placeName]

model.pLike

model.pLike groups paragraph-like elements.
Moduletei
Used by
Membersp

model.pLike.front

model.pLike.front groups paragraph-like elements which can occur as direct constituents of front matter. [4.6. Title Pages]
Moduletei
Used by
Membershead

model.pPart.data

model.pPart.data groups phrase-level elements containing names, dates, numbers, measures, and similar data. [3.6. Names, Numbers, Dates, Abbreviations, and Addresses]
Moduletei
Used by
Membersmodel.addressLike [affiliation email] model.dateLike [date] model.measureLike [num] model.nameLike [model.nameLike.agent [name orgName] model.offsetLike model.persNamePart [forename roleName surname] model.placeStateLike [model.placeNamePart [placeName] ] idno]

model.pPart.edit

model.pPart.edit groups phrase-level elements for simple editorial correction and transcription. [3.5. Simple Editorial Changes]
Moduletei
Used by
Membersmodel.pPart.editorial [abbr] model.pPart.transcriptional [supplied]

model.pPart.editorial

model.pPart.editorial groups phrase-level elements for simple editorial interventions that may be useful both in transcribing and in authoring. [3.5. Simple Editorial Changes]
Moduletei
Used by
Membersabbr

model.pPart.transcriptional

model.pPart.transcriptional groups phrase-level elements used for editorial transcription of pre-existing source materials. [3.5. Simple Editorial Changes]
Moduletei
Used by
Memberssupplied

model.profileDescPart

model.profileDescPart groups elements which may be used inside profileDesc and appear multiple times.
Moduletei
Used by
MemberslangUsage particDesc textClass

model.ptrLike

model.ptrLike groups elements used for purposes of location and reference. [3.7. Simple Links and Cross-References]
Moduletei
Used by
Membersptr ref

model.publicationStmtPart.agency

model.publicationStmtPart.agency groups the child elements of a publicationStmt element of the TEI header that indicate an authorising agent. [2.2.4. Publication, Distribution, Licensing, etc.]
Moduletei
Used by
Memberspublisher
Note

The ‘agency’ child elements, while not required, are required if one of the ‘detail’ child elements is to be used. It is not valid to have a ‘detail’ child element without a preceding ‘agency’ child element.

See also model.publicationStmtPart.detail.

model.publicationStmtPart.detail

model.publicationStmtPart.detail groups the agency-specific child elements of the publicationStmt element of the TEI header. [2.2.4. Publication, Distribution, Licensing, etc.]
Moduletei
Used by
Membersmodel.ptrLike [ptr ref] availability date idno pubPlace
Note

A ‘detail’ child element may not occur unless an ‘agency’ child element precedes it.

See also model.publicationStmtPart.agency.

model.quoteLike

model.quoteLike groups elements used to directly contain quotations.
Moduletei
Used by
Memberscit quote

model.resource

model.resource groups separate elements which constitute the content of a digital resource, as opposed to its metadata. [1.3. The TEI Class System]
Moduletei
Used by
Memberstext

model.respLike

model.respLike groups elements which are used to indicate intellectual or other significant responsibility, for example within a bibliographic element.
Moduletei
Used by
Membersauthor editor respStmt

model.teiHeaderPart

model.teiHeaderPart groups high level elements which may appear more than once in a TEI header.
Moduletei
Used by
MembersencodingDesc profileDesc

Schema tei_jtei: Attribute classes

att.ascribed

att.ascribed provides attributes for elements representing speech or action that can be ascribed to a specific individual. [3.3.3. Quotation 8.3. Elements Unique to Spoken Texts]
Moduletei
Membersatt.ascribed.directed [q] change
Attributes
whoindicates the person, or group of people, to whom the element content is ascribed.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace

In the following example from Hamlet, speeches (<sp>) in the body of the play are linked to <role> elements in the <castList> using the who attribute.

<castItem type="role">
 <role xml:id="Barnardo">Bernardo</role>
</castItem>
<castItem type="role">
 <role xml:id="Francisco">Francisco</role>
 <roleDesc>a soldier</roleDesc>
</castItem>
<!-- ... -->
<sp who="#Barnardo">
 <speaker>Bernardo</speaker>
 <l n="1">Who's there?</l>
</sp>
<sp who="#Francisco">
 <speaker>Francisco</speaker>
 <l n="2">Nay, answer me: stand, and unfold yourself.</l>
</sp>
Note

For transcribed speech, this will typically identify a participant or participant group; in other contexts, it will point to any identified person element.

att.ascribed.directed

att.ascribed.directed provides attributes for elements representing speech or action that can be directed at a group or individual. [3.3.3. Quotation 8.3. Elements Unique to Spoken Texts]
Moduletei
Membersq
Attributes
toWhomindicates the person, or group of people, to whom a speech act or action is directed.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace

In the following example from Mary Pix's The False Friend, speeches (<sp>) in the body of the play are linked to <castItem> elements in the <castList> using the toWhom attribute, which is used to specify who the speech is directed to. Additionally, the <stage> includes toWhom to indicate the directionality of the action.

<castItem type="role">
 <role xml:id="emil">Emilius.</role>
</castItem>
<castItem type="role">
 <role xml:id="lov">Lovisa</role>
</castItem>
<castItem type="role">
 <role xml:id="serv">A servant</role>
</castItem>
<!-- ... -->
<sp who="#emiltoWhom="#lov">
 <speaker>Emil.</speaker>
 <l n="1">My love!</l>
</sp>
<sp who="#lovtoWhom="#emil">
 <speaker>Lov.</speaker>
 <l n="2">I have no Witness of my Noble Birth</l>
 <stage who="emiltoWhom="#serv">Pointing to her Woman.</stage>
 <l>But that poor helpless wretch——</l>
</sp>
Note

To indicate the recipient of written correspondence, use the elements used in section 2.4.6. Correspondence Description, rather than a toWhom attribute.

att.cmc

att.cmc (computer-mediated communication) provides attributes categorizing how the element content was created in a CMC environment.
Moduletei
Membersabbr affiliation bibl cit date desc email emph figure foreign forename gap graphic head hi idno label lb list listBibl listPerson mentioned name note num orgName p placeName ptr q quote ref roleName soCalled surname table term title
Attributes
generatedBy(generated by) categorizes how the content of an element was generated in a CMC environment.
Status Optional
Datatype teidata.enumerated
Schematron

<sch:rule context="tei:*[@generatedBy]">
<sch:assert test="ancestor-or-self::tei:post">The @generatedBy attribute is for use within a <post> element.</sch:assert>
</sch:rule>
Suggested values include:
human
the content was ‘naturally’ typed or spoken by a human user
template
the content was generated after a human user activated a template for its insertion
system
the content was generated by the system, i.e. the CMC environment
bot
the content was generated by a bot, i.e. a non-human agent, typically one that is not part of the CMC environment itself
unspecified
the content was generated by an unknown or unspecified process

automatic system message in chat: user moves on to another chatroom

<post type="eventgeneratedBy="system"
 who="#systemrend="color:blue">

 <p>
  <name type="nicknamecorresp="#A02">McMike</name> geht
   in einen anderen Raum: <name type="roomname">Kreuzfahrt</name>
 </p>
</post>

automatic system message in chat: user enters a chatroom

<post type="eventgeneratedBy="system">
 <p>
  <name type="nicknamecorresp="#A08">c_bo</name> betritt
   den Raum. </p>
</post>

automatic system message in chat: user changes his font color

<post type="eventgeneratedBy="system"
 rend="color:red">

 <p>
  <name type="nicknamecorresp="#A08">c_bo</name> hat die
   Farbe gewechselt.
 </p>
</post>

An automatic signature of user including an automatic timestamp (Wikipedia discussion, anonymized). The specification of generatedBy at the inner element <signed> is meant to override the specification at the outer element <post>. This is generally possible when the outer generatedBy value is "human".

<post type="standardgeneratedBy="human"
 indentLevel="2synch="#t00394407who="#WU00005582">

 <p> Kurze Nachfrage: Die Hieros für den Goldnamen stammen
   auch von Beckerath gem. Literatur ? Grüße --</p>
 <signed generatedBy="template"
  rend="inline">

  <gap reason="signatureContent"/>
  <time generatedBy="template">18:50, 22. Okt. 2008 (CEST)</time>
 </signed>
</post>

Wikipedia talk page: user signature

<post type="writtengeneratedBy="human">
<!-- ... main content of posting ... -->
 <signed generatedBy="template">
  <gap reason="signatureContent"/>
  <time generatedBy="template">12:01, 12. Jun. 2009 (CEST)</time>
 </signed>
</post>

att.datable

att.datable provides attributes for normalization of elements that contain dates, times, or datable events. [3.6.4. Dates and Times 14.4. Dates]
Moduletei
Membersaffiliation application author change date editor idno licence name orgName placeName resp title
Attributes
Note

This ‘superclass’ provides attributes that can be used to provide normalized values of temporal information. By default, the attributes from the att.datable.w3c class are provided. If the module for names & dates is loaded, this class also provides attributes from the att.datable.iso and att.datable.custom classes. In general, the possible values of attributes restricted to the W3C datatypes form a subset of those values available via the ISO 8601 standard. However, the greater expressiveness of the ISO datatypes may not be needed, and there exists much greater software support for the W3C datatypes.

att.datable.w3c

att.datable.w3c provides attributes for normalization of elements that contain datable events conforming to the W3C XML Schema Part 2: Datatypes Second Edition. [3.6.4. Dates and Times 14.4. Dates]
Moduletei
Membersatt.datable [affiliation application author change date editor idno licence name orgName placeName resp title]
Attributes
whensupplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.
Status Optional
Datatype teidata.temporal.w3c

Examples of W3C date, time, and date & time formats.

<p>
 <date when="1945-10-24">24 Oct 45</date>
 <date when="1996-09-24T07:25:00Z">September 24th, 1996 at 3:25 in the morning</date>
 <time when="1999-01-04T20:42:00-05:00">Jan 4 1999 at 8 pm</time>
 <time when="14:12:38">fourteen twelve and 38 seconds</time>
 <date when="1962-10">October of 1962</date>
 <date when="--06-12">June 12th</date>
 <date when="---01">the first of the month</date>
 <date when="--08">August</date>
 <date when="2006">MMVI</date>
 <date when="0056">AD 56</date>
 <date when="-0056">56 BC</date>
</p>
This list begins in
the year 1632, more precisely on Trinity Sunday, i.e. the Sunday after
Pentecost, in that year the
<date calendar="#julianwhen="1632-06-06">27th of May (old style)</date>.
<opener>
 <dateline>
  <placeName>Dorchester, Village,</placeName>
  <date when="1828-03-02">March 2d. 1828.</date>
 </dateline>
 <salute>To
   Mrs. Cornell,</salute> Sunday <time when="12:00:00">noon.</time>
</opener>
notBeforespecifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.
Status Optional
Datatype teidata.temporal.w3c
notAfterspecifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.
Status Optional
Datatype teidata.temporal.w3c
fromindicates the starting point of the period in standard form, e.g. yyyy-mm-dd.
Status Optional
Datatype teidata.temporal.w3c
toindicates the ending point of the period in standard form, e.g. yyyy-mm-dd.
Status Optional
Datatype teidata.temporal.w3c
Schematron

<sch:rule context="tei:*[@when]">
<sch:report test="@notBefore|@notAfter|@from|@to"
 role="nonfatal">
The @when attribute cannot be used with any other att.datable.w3c attributes.</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:*[@from]">
<sch:report test="@notBefore"
 role="nonfatal">
The @from and @notBefore attributes cannot be used together.</sch:report>
</sch:rule>
Schematron

<sch:rule context="tei:*[@to]">
<sch:report test="@notAfter"
 role="nonfatal">
The @to and @notAfter attributes cannot be used together.</sch:report>
</sch:rule>
Example
<date from="1863-05-28to="1863-06-01">28 May through 1 June 1863</date>
Note

The value of these attributes should be a normalized representation of the date, time, or combined date & time intended, in any of the standard formats specified by XML Schema Part 2: Datatypes Second Edition, using the Gregorian calendar.

The most commonly-encountered format for the date portion of a temporal attribute is yyyy-mm-dd, but yyyy, --mm, ---dd, yyyy-mm, or --mm-dd may also be used. For the time part, the form hh:mm:ss is used.

Note that this format does not currently permit use of the value 0000 to represent the year 1 BCE; instead the value -0001 should be used.

att.dimensions

att.dimensions provides attributes for describing the size of physical objects.
Moduletei
Membersdate gap supplied
Attributes

att.divLike

att.divLike provides attributes common to all elements which behave in the same way as divisions. [4. Default Text Structure]
Moduletei
Membersdiv
Attributes

att.editLike

att.editLike provides attributes describing the nature of an encoded scholarly intervention or interpretation of any kind. [3.5. Simple Editorial Changes 11.3.1. Origination 14.3.2. The Person Element 12.3.1.1. Core Elements for Transcriptional Work]
Moduletei
Membersaffiliation date gap name orgName person placeName supplied
Attributes
Note

The members of this attribute class are typically used to represent any kind of editorial intervention in a text, for example a correction or interpretation, or to date or localize manuscripts etc.

Each pointer on the source (if present) corresponding to a witness or witness group should reference a bibliographic citation such as a <witness>, <msDesc>, or bibl element, or another external bibliographic citation, documenting the source concerned.

att.global

att.global provides attributes common to all elements in the TEI encoding scheme. [1.3.1.1. Global Attributes]
Moduletei
MembersTEI abbr affiliation appInfo application att author availability back bibl biblScope body catRef cell change cit classCode code date desc div edition editor eg egXML email emph encodingDesc figure fileDesc foreign forename front gap gi graphic head hi ident idno item keywords label langUsage language lb licence list listBibl listChange listPerson mentioned name note num orgName p particDesc person placeName profileDesc projectDesc ptr pubPlace publicationStmt publisher q quote ref rendition resp respStmt revisionDesc roleName row series seriesStmt soCalled sourceDesc supplied surname table tag tagsDecl teiHeader term text textClass title titleStmt val
Attributes
xml:id(identifier) provides a unique identifier for the element bearing the attribute.
Status Optional
Datatype ID
Note

The xml:id attribute may be used to specify a canonical reference for an element; see section 3.11. Reference Systems.

n(number) gives a number (or other label) for an element, which is not necessarily unique within the document.
Status Optional
Datatype teidata.text
Note

The value of this attribute is always understood to be a single token, even if it contains space or other punctuation characters, and need not be composed of numbers only. It is typically used to specify the numbering of chapters, sections, list items, etc.; it may also be used in the specification of a standard reference system for the text.

xml:lang(language) indicates the language of the element content using a ‘tag’ generated according to BCP 47.
Status Optional
Datatype teidata.language
<p> … The consequences of
this rapid depopulation were the loss of the last
<foreign xml:lang="rap">ariki</foreign> or chief
(Routledge 1920:205,210) and their connections to
ancestral territorial organization.</p>
Note

The xml:lang value will be inherited from the immediately enclosing element, or from its parent, and so on up the document hierarchy. It is generally good practice to specify xml:lang at the highest appropriate level, noticing that a different default may be needed for the teiHeader from that needed for the associated resource element or elements, and that a single TEI document may contain texts in many languages.

Only attributes with free text values (rare in these guidelines) will be in the scope of xml:lang.

The authoritative list of registered language subtags is maintained by IANA and is available at https://www.iana.org/assignments/language-subtag-registry. For a good general overview of the construction of language tags, see https://www.w3.org/International/articles/language-tags/, and for a practical step-by-step guide, see https://www.w3.org/International/questions/qa-choosing-language-tags.en.php.

The value used must conform with BCP 47. If the value is a private use code (i.e., starts with x- or contains -x-), a language element with a matching value for its ident attribute should be supplied in the TEI header to document this value. Such documentation may also optionally be supplied for non-private-use codes, though these must remain consistent with their (IETF)Internet Engineering Task Force definitions.

xml:baseprovides a base URI reference with which applications can resolve relative URI references into absolute URI references.
Status Optional
Datatype teidata.pointer
<div type="bibl">
 <head>Selections from <title level="m">The Collected Letters of Robert Southey. Part 1: 1791-1797</title>
 </head>
 <listBibl xml:base="https://romantic-circles.org/sites/default/files/imported/editions/southey_letters/XML/">
  <bibl>
   <ref target="letterEEd.26.3.xml">
    <title>Robert Southey to Grosvenor Charles Bedford</title>, <date when="1792-04-03">3 April 1792</date>.
   </ref>
  </bibl>
  <bibl>
   <ref target="letterEEd.26.57.xml">
    <title>Robert Southey to Anna Seward</title>, <date when="1793-09-18">18 September 1793</date>.
   </ref>
  </bibl>
  <bibl>
   <ref target="letterEEd.26.85.xml">
    <title>Robert Southey to Robert Lovell</title>, <date from="1794-04-05to="1794-04-06">5-6 April, 1794</date>.
   </ref>
  </bibl>
 </listBibl>
</div>
xml:spacesignals an intention about how white space should be managed by applications.
Status Optional
Datatype teidata.enumerated
Legal values are:
default
signals that the application's default white-space processing modes are acceptable
preserve
indicates the intent that applications preserve all white space
Note

The XML specification provides further guidance on the use of this attribute. Note that many parsers may not handle xml:space correctly.

att.global.rendition

att.global.rendition provides rendering attributes common to all elements in the TEI encoding scheme. [1.3.1.1.3. Rendition Indicators]
Moduletei
Membersatt.global [TEI abbr affiliation appInfo application att author availability back bibl biblScope body catRef cell change cit classCode code date desc div edition editor eg egXML email emph encodingDesc figure fileDesc foreign forename front gap gi graphic head hi ident idno item keywords label langUsage language lb licence list listBibl listChange listPerson mentioned name note num orgName p particDesc person placeName profileDesc projectDesc ptr pubPlace publicationStmt publisher q quote ref rendition resp respStmt revisionDesc roleName row series seriesStmt soCalled sourceDesc supplied surname table tag tagsDecl teiHeader term text textClass title titleStmt val]
Attributes
rend(rendition) indicates how the element in question was rendered or presented in the source text.
Status Optional
Datatype 1–∞ occurrences of teidata.word separated by whitespace
<head rend="align(center) case(allcaps)">
 <lb/>To The <lb/>Duchesse <lb/>of <lb/>Newcastle,
<lb/>On Her <lb/>
 <hi rend="case(mixed)">New Blazing-World</hi>.
</head>
Note

These Guidelines make no binding recommendations for the values of the rend attribute; the characteristics of visual presentation vary too much from text to text and the decision to record or ignore individual characteristics varies too much from project to project. Some potentially useful conventions are noted from time to time at appropriate points in the Guidelines. The values of the rend attribute are a set of sequence-indeterminate individual tokens separated by whitespace.

renditionpoints to a description of the rendering or presentation used for this element in the source text.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
<head rendition="#ac #sc">
 <lb/>To The <lb/>Duchesse <lb/>of <lb/>Newcastle, <lb/>On Her
<lb/>
 <hi rendition="#normal">New Blazing-World</hi>.
</head>
<!-- elsewhere... -->
<rendition xml:id="scscheme="css">font-variant: small-caps</rendition>
<rendition xml:id="normalscheme="css">font-variant: normal</rendition>
<rendition xml:id="acscheme="css">text-align: center</rendition>
Note

The rendition attribute is used in a very similar way to the class attribute defined for XHTML but with the important distinction that its function is to describe the appearance of the source text, not necessarily to determine how that text should be presented on screen or paper.

If rendition is used to refer to a style definition in a formal language like CSS, it is recommended that it not be used in conjunction with rend. Where both rendition and rend are supplied, the latter is understood to override or complement the former.

Each URI provided should indicate a rendition element defining the intended rendition in terms of some appropriate style language, as indicated by the scheme attribute.

att.global.responsibility

att.global.responsibility provides attributes indicating the agent responsible for some aspect of the text, the markup or something asserted by the markup, and the degree of certainty associated with it. [1.3.1.1.4. Sources, certainty, and responsibility 3.5. Simple Editorial Changes 12.3.2.2. Hand, Responsibility, and Certainty Attributes 18.3. Spans and Interpretations 14.1.1. Linking Names and Their Referents]
Moduletei
Membersatt.global [TEI abbr affiliation appInfo application att author availability back bibl biblScope body catRef cell change cit classCode code date desc div edition editor eg egXML email emph encodingDesc figure fileDesc foreign forename front gap gi graphic head hi ident idno item keywords label langUsage language lb licence list listBibl listChange listPerson mentioned name note num orgName p particDesc person placeName profileDesc projectDesc ptr pubPlace publicationStmt publisher q quote ref rendition resp respStmt revisionDesc roleName row series seriesStmt soCalled sourceDesc supplied surname table tag tagsDecl teiHeader term text textClass title titleStmt val]
Attributes
cert(certainty) signifies the degree of certainty associated with the intervention or interpretation.
Status Optional
Datatype teidata.probCert
resp(responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Note

To reduce the ambiguity of a resp pointing directly to a person or organization, we recommend that resp be used to point not to an agent (person or <org>) but to a respStmt, author, editor or similar element which clarifies the exact role played by the agent. Pointing to multiple respStmts allows the encoder to specify clearly each of the roles played in part of a TEI file (creating, transcribing, encoding, editing, proofing etc.).

Example
Blessed are the
<choice>
 <sic>cheesemakers</sic>
 <corr resp="#editorcert="high">peacemakers</corr>
</choice>: for they shall be called the children of God.
Example

<!-- in the <text> ... --><lg>
<!-- ... -->
 <l>Punkes, Panders, baſe extortionizing
   sla<choice>
   <sic>n</sic>
   <corr resp="#JENS1_transcriber">u</corr>
  </choice>es,</l>
<!-- ... -->
</lg>
<!-- in the <teiHeader> ... -->
<!-- ... -->
<respStmt xml:id="JENS1_transcriber">
 <resp when="2014">Transcriber</resp>
 <name>Janelle Jenstad</name>
</respStmt>

att.global.source

att.global.source provides attributes used by elements to point to an external source. [1.3.1.1.4. Sources, certainty, and responsibility 3.3.3. Quotation 8.3.4. Writing]
Moduletei
Membersatt.global [TEI abbr affiliation appInfo application att author availability back bibl biblScope body catRef cell change cit classCode code date desc div edition editor eg egXML email emph encodingDesc figure fileDesc foreign forename front gap gi graphic head hi ident idno item keywords label langUsage language lb licence list listBibl listChange listPerson mentioned name note num orgName p particDesc person placeName profileDesc projectDesc ptr pubPlace publicationStmt publisher q quote ref rendition resp respStmt revisionDesc roleName row series seriesStmt soCalled sourceDesc supplied surname table tag tagsDecl teiHeader term text textClass title titleStmt val]
Attributes
sourcespecifies the source from which some aspect of this element is drawn.
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Schematron

<sch:rule context="tei:*[@source]">
<sch:let name="srcs"
 value="tokenize( normalize-space(@source),' ')"/>

<sch:report test="( self::tei:classRef | self::tei:dataRef | self::tei:elementRef | self::tei:macroRef | self::tei:moduleRef | self::tei:schemaSpec ) and $srcs[2]"> When used on a schema description element (like
<sch:value-of select="name(.)"/>), the @source attribute
should have only 1 value. (This one has <sch:value-of select="count($srcs)"/>.)
</sch:report>
</sch:rule>
Note

The source attribute points to an external source. When used on an element describing a schema component (<classRef>, <dataRef>, <elementRef>, <macroRef>, <moduleRef>, or <schemaSpec>), it identifies the source from which declarations for the components should be obtained.

On other elements it provides a pointer to the bibliographical source from which a quotation or citation is drawn.

In either case, the location may be provided using any form of URI, for example an absolute URI, a relative URI, a private scheme URI of the form tei:x.y.z, where x.y.z indicates the version number, e.g. tei:4.3.2 for TEI P5 release 4.3.2 or (as a special case) tei:current for whatever is the latest release, or a private scheme URI that is expanded to an absolute URI as documented in a <prefixDef>.

When used on elements describing schema components, source should have only one value; when used on other elements multiple values are permitted.

Example
<p>
<!-- ... --> As Willard McCarty (<bibl xml:id="mcc_2012">2012, p.2</bibl>) tells us, <quote source="#mcc_2012">‘Collaboration’ is a problematic and should be a contested
   term.</quote>
<!-- ... -->
</p>
Example
<p>
<!-- ... -->
 <quote source="#chicago_15_ed">Grammatical theories are in flux, and the more we learn, the
   less we seem to know.</quote>
<!-- ... -->
</p>
<!-- ... -->
<bibl xml:id="chicago_15_ed">
 <title level="m">The Chicago Manual of Style</title>,
<edition>15th edition</edition>. <pubPlace>Chicago</pubPlace>: <publisher>University of
   Chicago Press</publisher> (<date>2003</date>), <biblScope unit="page">p.147</biblScope>.

</bibl>
Example
<elementRef key="psource="tei:2.0.1"/>

Include in the schema an element named p available from the TEI P5 2.0.1 release.

Example
<schemaSpec ident="myODD"
 source="mycompiledODD.xml">

<!-- further declarations specifying the components required -->
</schemaSpec>

Create a schema using components taken from the file mycompiledODD.xml.

att.media

att.media provides attributes for specifying display and related properties of external media.
Moduletei
Membersgraphic
Attributes
widthWhere the media are displayed, indicates the display width
Status Optional
Datatype teidata.outputMeasurement
heightWhere the media are displayed, indicates the display height
Status Optional
Datatype teidata.outputMeasurement

att.naming

att.naming provides attributes common to elements which refer to named persons, places, organizations etc. [3.6.1. Referring Strings 14.3.7. Names and Nyms]
Moduletei
Membersatt.personal [forename name orgName placeName roleName surname] affiliation author editor pubPlace
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.
Status Optional
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace

att.notated

att.notated provides attributes to indicate any specialised notation used for element content.
Moduletei
Membersquote
Attributes
notationnames the notation used for the content of the element.
Status Optional
Datatype teidata.enumerated

att.personal

att.personal (attributes for components of names usually, but not necessarily, personal names) common attributes for those elements which form part of a name usually, but not necessarily, a personal name. [14.2.1. Personal Names]
Moduletei
Membersforename name orgName placeName roleName surname
Attributes

att.placement

att.placement provides attributes for describing where on the source page or object a textual element appears. [3.5.3. Additions, Deletions, and Omissions 12.3.1.4. Additions and Deletions]
Moduletei
Membersfigure head label note
Attributes
placespecifies where this item is placed.
Status Recommended
Datatype 1–∞ occurrences of teidata.enumerated separated by whitespace
Suggested values include:
top
at the top of the page
bottom
at the foot of the page
margin
in the margin (left, right, or both)
opposite
on the opposite, i.e. facing, page
overleaf
on the other side of the leaf
above
above the line
right
to the right, e.g. to the right of a vertical line of text, or to the right of a figure
below
below the line
left
to the left, e.g. to the left of a vertical line of text, or to the left of a figure
end
at the end of e.g. chapter or volume.
inline
within the body of the text.
inspace
in a predefined space, for example left by an earlier scribe.
<add place="margin">[An addition written in the margin]</add>
<add place="bottom opposite">[An addition written at the
foot of the current page and also on the facing page]</add>
<note place="bottom">Ibid, p.7</note>

att.pointing

att.pointing provides a set of attributes used by all elements which point to other elements by means of one or more URI references. [1.3.1.1.2. Language Indicators 3.7. Simple Links and Cross-References]
Moduletei
MemberscatRef licence note ptr ref term
Attributes
targetspecifies the destination of the reference by supplying one or more URI References
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Note

One or more syntactically valid URI references, separated by whitespace. Because whitespace is used to separate URIs, no whitespace is permitted inside a single URI. If a whitespace character is required in a URI, it should be escaped with the normal mechanism, e.g. TEI%20Consortium.

Schematron

<sch:rule context="tei:*[not(self::tei:schemaSpec)][@targetLang]">
<sch:assert test="@target">@targetLang should only be used on <sch:name/> if @target is specified.</sch:assert>
</sch:rule>

att.resourced

att.resourced provides attributes by which a resource (such as an externally held media file) may be located.
Moduletei
Membersgraphic
Attributes
url(uniform resource locator) specifies the URL from which the media concerned may be obtained.
Status Required
Datatype teidata.pointer

att.tableDecoration

att.tableDecoration provides attributes used to decorate rows or cells of a table. [15. Tables, Formulæ, Graphics, and Notated Music]
Modulefigures
Memberscell row
Attributes
role(role) indicates the kind of information held in this cell or in each cell of this row.
Status Optional
Datatype teidata.enumerated
Legal values are:
data
[Default]
label
Note

When this attribute is specified on a row, its value is the default for all cells in this row. When specified on a cell, its value overrides any default specified by the role attribute of the parent row element.

rows(rows) indicates the number of rows occupied by this cell or row.
Status Optional
Datatype teidata.count
Default 1
Note

A value greater than one indicates that this cell spans several rows. Where several cells span multiple rows, it may be more convenient to use nested tables.

cols(columns) indicates the number of columns occupied by this cell or row.
Status Optional
Datatype teidata.count
Default 1
Note

A value greater than one indicates that this cell or row spans several columns. Where an initial cell spans an entire row, it may be better treated as a heading.

att.typed

att.typed provides attributes that can be used to classify or subclassify elements in any way. [1.3.1. Attribute Classes 18.1.1. Words and Above 3.6.1. Referring Strings 3.7. Simple Links and Cross-References 3.6.5. Abbreviations and Their Expansions 3.13.1. Core Tags for Verse 7.2.5. Speech Contents 4.1.1. Un-numbered Divisions 4.1.2. Numbered Divisions 4.2.1. Headings and Trailers 4.4. Virtual Divisions 14.3.2.3. Personal Relationships 12.3.1.1. Core Elements for Transcriptional Work 17.1.1. Pointers and Links 17.3. Blocks, Segments, and Anchors 13.2. Linking the Apparatus to the Text 23.5.1.2. Defining Content Models: RELAX NG 8.3. Elements Unique to Spoken Texts 24.3.1.3. Modification of Attribute and Attribute Value Lists]
Moduletei
MembersTEI abbr affiliation application bibl change cit date desc div figure forename graphic head ident idno label lb list listBibl listChange listPerson name note num orgName placeName ptr quote ref roleName surname table tag term text title
Attributes
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Status Optional
Datatype teidata.enumerated
<div type="verse">
 <head>Night in Tarras</head>
 <lg type="stanza">
  <l>At evening tramping on the hot white road</l>
  <l></l>
 </lg>
 <lg type="stanza">
  <l>A wind sprang up from nowhere as the sky</l>
  <l></l>
 </lg>
</div>
Note

The type attribute is present on a number of elements, not all of which are members of att.typed, usually because these elements restrict the possible values for the attribute in a specific way.

Schematron

<sch:rule context="tei:*[@subtype]">
<sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype unless also categorized in general with @type</sch:assert>
</sch:rule>
Note

When appropriate, values from an established typology should be used. Alternatively a typology may be defined in the associated TEI header. If values are to be taken from a project-specific list, this should be defined using the <valList> element in the project-specific schema description, as described in 24.3.1.3. Modification of Attribute and Attribute Value Lists .

att.written

att.written provides attributes to indicate the hand in which the content of an element was written in the source being transcribed. [1.3.1. Attribute Classes]
Moduletei
Membersdiv figure head hi label note p text
Attributes
handpoints to a <handNote> element describing the hand considered responsible for the content of the element concerned.
Status Optional
Datatype teidata.pointer

Schema tei_jtei: Datatypes

teidata.certainty

teidata.certainty defines the range of attribute values expressing a degree of certainty.
Moduletei
Used by
Content model
<content>
 <valList type="closed">
  <valItem ident="high"/>
  <valItem ident="medium"/>
  <valItem ident="low"/>
  <valItem ident="unknown"/>
 </valList>
</content>
Declaration
teidata.certainty = "high" | "medium" | "low" | "unknown"
Note

Certainty may be expressed by one of the predefined symbolic values high, medium, or low. The value unknown should be used in cases where the encoder does not wish to assert an opinion about the matter.

teidata.count

teidata.count defines the range of attribute values used for a non-negative integer value used as a count.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef name="nonNegativeInteger"/>
</content>
Declaration
teidata.count = xsd:nonNegativeInteger
Note

Any positive integer value or zero is permitted

teidata.enumerated

teidata.enumerated defines the range of attribute values expressed as a single XML name taken from a list of documented possibilities.
Moduletei
Used by
teidata.gender teidata.sexElement:
Content model
<content>
 <dataRef key="teidata.word"/>
</content>
Declaration
teidata.enumerated = teidata.word
Note

Attributes using this datatype must contain a single ‘word’ which contains only letters, digits, punctuation characters, or symbols: thus it cannot include whitespace.

Typically, the list of documented possibilities will be provided (or exemplified) by a value list in the associated attribute specification, expressed with a <valList> element.

teidata.gender

teidata.gender defines the range of attribute values used to represent the gender of a person, persona, or character.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef key="teidata.enumerated"/>
</content>
Declaration
teidata.gender = teidata.enumerated
Note

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

Values for this datatype should not be used to encode morphological gender (cf. <gen>, msd as defined in att.linguistic, and 10.3.1. Information on Written and Spoken Forms).

teidata.language

teidata.language defines the range of attribute values used to identify a particular combination of human language and writing system. [6.1. Language Identification]
Moduletei
Used by
Element:
Content model
<content>
 <alternate>
  <dataRef name="language"/>
  <valList>
   <valItem ident=""/>
  </valList>
 </alternate>
</content>
Declaration
teidata.language = xsd:language | ( "" )
Note

The values for this attribute are language ‘tags’ as defined in BCP 47. Currently BCP 47 comprises RFC 5646 and RFC 4647; over time, other IETF documents may succeed these as the best current practice.

A ‘language tag’, per BCP 47, is assembled from a sequence of components or subtags separated by the hyphen character (-, U+002D). The tag is made of the following subtags, in the following order. Every subtag except the first is optional. If present, each occurs only once, except the fourth and fifth components (variant and extension), which are repeatable.

language
The IANA-registered code for the language. This is almost always the same as the ISO 639 2-letter language code if there is one. The list of available registered language subtags can be found at https://www.iana.org/assignments/language-subtag-registry. It is recommended that this code be written in lower case.
script
The ISO 15924 code for the script. These codes consist of 4 letters, and it is recommended they be written with an initial capital, the other three letters in lower case. The canonical list of codes is maintained by the Unicode Consortium, and is available at https://unicode.org/iso15924/iso15924-codes.html. The IETF recommends this code be omitted unless it is necessary to make a distinction you need.
region
Either an ISO 3166 country code or a UN M.49 region code that is registered with IANA (not all such codes are registered, e.g. UN codes for economic groupings or codes for countries for which there is already an ISO 3166 2-letter code are not registered). The former consist of 2 letters, and it is recommended they be written in upper case; the list of codes can be searched or browsed at https://www.iso.org/obp/ui/#search/code/. The latter consist of 3 digits; the list of codes can be found at http://unstats.un.org/unsd/methods/m49/m49.htm.
variant
An IANA-registered variation. These codes ‘are used to indicate additional, well-recognized variations that define a language or its dialects that are not covered by other available subtags’.
extension
An extension has the format of a single letter followed by a hyphen followed by additional subtags. These exist to allow for future extension to BCP 47, but as of this writing no such extensions are in use.
private use
An extension that uses the initial subtag of the single letter x (i.e., starts with x-) has no meaning except as negotiated among the parties involved. These should be used with great care, since they interfere with the interoperability that use of RFC 4646 is intended to promote. In order for a document that makes use of these subtags to be TEI-conformant, a corresponding language element must be present in the TEI header.

There are two exceptions to the above format. First, there are language tags in the IANA registry that do not match the above syntax, but are present because they have been ‘grandfathered’ from previous specifications.

Second, an entire language tag can consist of only a private use subtag. These tags start with x-, and do not need to follow any further rules established by the IETF and endorsed by these Guidelines. Like all language tags that make use of private use subtags, the language in question must be documented in a corresponding language element in the TEI header.

Examples include

sn
Shona
zh-TW
Taiwanese
zh-Hant-HK
Chinese written in traditional script as used in Hong Kong
en-SL
English as spoken in Sierra Leone
pl
Polish
es-MX
Spanish as spoken in Mexico
es-419
Spanish as spoken in Latin America

The W3C Internationalization Activity has published a useful introduction to BCP 47, Language tags in HTML and XML.

teidata.name

teidata.name defines the range of attribute values expressed as an XML Name.
Moduletei
Used by
att giElement:
Content model
<content>
 <dataRef name="Name"/>
</content>
Declaration
teidata.name = xsd:Name
Note

Attributes using this datatype must contain a single word which follows the rules defining a legal XML name (see https://www.w3.org/TR/REC-xml/#dt-name): for example they cannot include whitespace or begin with digits.

teidata.namespace

teidata.namespace defines the range of attribute values used to indicate XML namespaces as defined by the W3C Namespaces in XML Technical Recommendation.
Moduletei
Used by
Content model
<content>
 <dataRef restriction="\S+name="anyURI"/>
</content>
Declaration
teidata.namespace = xsd:anyURI { pattern = "\S+" }
Note

The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier (URI): Generic Syntax

teidata.numeric

teidata.numeric defines the range of attribute values used for numeric values.
Moduletei
Used by
Element:
Content model
<content>
 <alternate>
  <dataRef name="double"/>
  <dataRef name="token"
   restriction="(\-?[\d]+/\-?[\d]+)"/>

  <dataRef name="decimal"/>
 </alternate>
</content>
Declaration
teidata.numeric =
   xsd:double | token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal
Note

Any numeric value, represented as a decimal number, in floating point format, or as a ratio.

To represent a floating point number, expressed in scientific notation, ‘E notation’, a variant of ‘exponential notation’, may be used. In this format, the value is expressed as two numbers separated by the letter E. The first number, the significand (sometimes called the mantissa) is given in decimal format, while the second is an integer. The value is obtained by multiplying the mantissa by 10 the number of times indicated by the integer. Thus the value represented in decimal notation as 1000.0 might be represented in scientific notation as 10E3.

A value expressed as a ratio is represented by two integer values separated by a solidus (/) character. Thus, the value represented in decimal notation as 0.5 might be represented as a ratio by the string 1/2.

teidata.outputMeasurement

teidata.outputMeasurement defines a range of values for use in specifying the size of an object that is intended for display.
Moduletei
Used by
Content model
<content>
 <dataRef name="token"
  restriction="[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)"/>

</content>
Declaration
teidata.outputMeasurement =
   token
   {
      pattern = "[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)"
   }
Example
<figure>
 <head>The TEI Logo</head>
 <figDesc>Stylized yellow angle brackets with the letters <mentioned>TEI</mentioned> in
   between and <mentioned>text encoding initiative</mentioned> underneath, all on a white
   background.</figDesc>
 <graphic height="600pxwidth="600px"
  url="http://www.tei-c.org/logos/TEI-600.jpg"/>

</figure>
Note

These values map directly onto the values used by XSL-FO and CSS. For definitions of the units see those specifications; at the time of this writing the most complete list is in the CSS3 working draft.

teidata.pointer

teidata.pointer defines the range of attribute values used to provide a single URI, absolute or relative, pointing to some other resource, either within the current document or elsewhere.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef restriction="\S+name="anyURI"/>
</content>
Declaration
teidata.pointer = xsd:anyURI { pattern = "\S+" }
Note

The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier (URI): Generic Syntax. Note that the values themselves are encoded using RFC 3987 Internationalized Resource Identifiers (IRIs) mapping to URIs. For example, https://secure.wikimedia.org/wikipedia/en/wiki/% is encoded as https://secure.wikimedia.org/wikipedia/en/wiki/%25 while http://موقع.وزارة-الاتصالات.مصر/ is encoded as http://xn--4gbrim.xn----rmckbbajlc6dj7bxne2c.xn--wgbh1c/

teidata.probability

teidata.probability defines the range of attribute values expressing a probability.
Moduletei
Used by
Content model
<content>
 <dataRef name="double">
  <dataFacet name="minInclusivevalue="0"/>
  <dataFacet name="maxInclusivevalue="1"/>
 </dataRef>
</content>
Declaration
teidata.probability = xsd:double
Note

Probability is expressed as a real number between 0 and 1; 0 representing certainly false and 1 representing certainly true.

teidata.probCert

teidata.probCert defines a range of attribute values which can be expressed either as a numeric probability or as a coded certainty value.
Moduletei
Used by
Content model
<content>
 <alternate>
  <dataRef key="teidata.probability"/>
  <dataRef key="teidata.certainty"/>
 </alternate>
</content>
Declaration
teidata.probCert = teidata.probability | teidata.certainty

teidata.sex

teidata.sex defines the range of attribute values used to identify the sex of an organism.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef key="teidata.enumerated"/>
</content>
Declaration
teidata.sex = teidata.enumerated
Note

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

teidata.temporal.w3c

teidata.temporal.w3c defines the range of attribute values expressing a temporal expression such as a date, a time, or a combination of them, that conform to the W3C XML Schema Part 2: Datatypes Second Edition specification.
Moduletei
Used by
Content model
<content>
 <alternate>
  <dataRef name="date"/>
  <dataRef name="gYear"/>
  <dataRef name="gMonth"/>
  <dataRef name="gDay"/>
  <dataRef name="gYearMonth"/>
  <dataRef name="gMonthDay"/>
  <dataRef name="time"/>
  <dataRef name="dateTime"/>
 </alternate>
</content>
Declaration
teidata.temporal.w3c =
   xsd:date
 | xsd:gYear
 | xsd:gMonth
 | xsd:gDay
 | xsd:gYearMonth
 | xsd:gMonthDay
 | xsd:time
 | xsd:dateTime
Note

If it is likely that the value used is to be compared with another, then a time zone indicator should always be included, and only the dateTime representation should be used.

teidata.text

teidata.text defines the range of attribute values used to express some kind of identifying string as a single sequence of Unicode characters possibly including whitespace.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef name="string"/>
</content>
Declaration
teidata.text = string
Note

Attributes using this datatype must contain a single ‘token’ in which whitespace and other punctuation characters are permitted.

teidata.truthValue

teidata.truthValue defines the range of attribute values used to express a truth value.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef name="boolean"/>
</content>
Declaration
teidata.truthValue = xsd:boolean
Note

The possible values of this datatype are 1 or true, or 0 or false.

This datatype applies only for cases where uncertainty is inappropriate; if the attribute concerned may have a value other than true or false, e.g. unknown, or inapplicable, it should have the extended version of this datatype: teidata.xTruthValue.

teidata.versionNumber

teidata.versionNumber defines the range of attribute values used for version numbers.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef name="token"
  restriction="[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}"/>

</content>
Declaration
teidata.versionNumber =
   token { pattern = "[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}" }

teidata.word

teidata.word defines the range of attribute values expressed as a single word or token.
Moduletei
Used by
teidata.enumeratedElement:
Content model
<content>
 <dataRef name="token"
  restriction="[^\p{C}\p{Z}]+"/>

</content>
Declaration
teidata.word = token { pattern = "[^\p{C}\p{Z}]+" }
Note

Attributes using this datatype must contain a single ‘word’ which contains only letters, digits, punctuation characters, or symbols: thus it cannot include whitespace.

teidata.xpath

teidata.xpath defines attribute values which contain an XPath expression.
Moduletei
Used by
Content model
<content>
 <textNode/>
</content>
Declaration
teidata.xpath = text
Note

Any XPath expression using the syntax defined in 6.2. .

When writing programs that evaluate XPath expressions, programmers should be mindful of the possibility of malicious code injection attacks. For further information about XPath injection attacks, see the article at OWASP.

Schema tei_jtei: Macros

macro.limitedContent

macro.limitedContent (paragraph content) defines the content of prose elements that are not used for transcription of extant materials. [1.3. The TEI Class System]
Moduletei
Used by
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.limitedPhrase"/>
  <classRef key="model.inter"/>
 </alternate>
</content>
Declaration
macro.limitedContent = ( text | model.limitedPhrase | model.inter )*

macro.paraContent

macro.paraContent (paragraph content) defines the content of paragraphs and similar elements. [1.3. The TEI Class System]
Moduletei
Used by
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.paraPart"/>
 </alternate>
</content>
Declaration
macro.paraContent = ( text | model.paraPart )*

macro.phraseSeq

macro.phraseSeq (phrase sequence) defines a sequence of character data and phrase-level elements. [1.4.1. Standard Content Models]
Moduletei
Used by
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.attributable"/>
  <classRef key="model.phrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Declaration
macro.phraseSeq =
   ( text | model.gLike | model.attributable | model.phrase | model.global )*

macro.phraseSeq.limited

macro.phraseSeq.limited (limited phrase sequence) defines a sequence of character data and those phrase-level elements that are not typically used for transcribing extant documents. [1.4.1. Standard Content Models]
Moduletei
Used by
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.limitedPhrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Declaration
macro.phraseSeq.limited = ( text | model.limitedPhrase | model.global )*

macro.specialPara

macro.specialPara ('special' paragraph content) defines the content model of elements such as notes or list items, which either contain a series of component-level elements or else have the same structure as a paragraph, containing a series of phrase-level and inter-level elements. [1.3. The TEI Class System]
Moduletei
Used by
Content model
<content>
 <alternate minOccurs="0"
  maxOccurs="unbounded">

  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.phrase"/>
  <classRef key="model.inter"/>
  <classRef key="model.divPart"/>
  <classRef key="model.global"/>
 </alternate>
</content>
Declaration
macro.specialPara =
   (
      text
    | model.gLikemodel.phrasemodel.intermodel.divPartmodel.global
   )*
Notes
1
Note, if you're omitting text at the end of a sentence, the sentence punctuation should precede the gap element.
2
Note, however, that eg and egXML examples are always rendered as blocks, regardless of their appearance as inline or block-level elements in the article encoding. If you want to include a short code fragment that should be rendered inline, you can use the code element as discussed in 6 Inline Technical Elements.
Ron Van den Branden and Martin Holmes. Date: 2014