TEI Customization for the Data Collection Lectures that Link: European Digital Humanities Lecture Series
generated by Roma 4.10
written by Ulrike Henny-Krahmer, Fernanda Alvares Freire, and Erik Renz
2025

Table of contents

1. Introduction

This document describes how the TEI standard was customized for the project Lectures that Link. The project focuses on building a data collection of Digital Humanities lecture series hosted by European institutions between 2014 and early 2025. The primary emphasis is on the lecture series themselves, the individual lectures within these series, and the speakers involved. Detailed descriptions of who these data were collected and encoded in TEI are provided in the following sections, with examples included in the running text.

2. Data Sources and Strategy for Data Selection and Capture

All data used in this project was exclusively sourced from publicly accessible websites, ensuring that only freely available information was included. Data behind authentication barriers, such as those requiring login credentials, was deliberately excluded from the collection process.

In addition to textual information about the lecture series found on individual websites, additional digital materials related to the events were incorporated into the project. These sources were accessed via hyperlinks found on the websites and include presentations, blog posts, related articles, and audiovisual content, such as videos.

While every effort has been made to ensure the dataset is comprehensive within the scope of the project, it does not claim to be exhaustive or definitive. Instead, it serves as a solid foundation for both the current and future analyses.

3. TEI Encoding of Lecture Series

3.1. Hierarchical Organization: Series, Terms, and Lectures

All lecture series are recorded in the <listEvent> element, which is located within <body>, a sub-element of <text>. To accurately reflect the inherent structure of lecture series, the XML is organized hierarchically. The term lecture series implies a three-tiered structure:

  1. The overarching series, representing the general lecture program.
  2. Individual editions or rounds of a series, typically aligned with academic semesters or other specific time periods.
  3. Individual lectures, which form the lowest hierarchical level, with most information.

To represent this hierarchy, the following approach is used:

Each lecture series is recorded within an <event> element, with the type attribute set to the value lecture-series. Additionally, the where attribute references the ID of the location where the series is hosted:

<event type="lecture-series"  where="#rostockxml:id="ls10">  <eventName xml:lang="de">Digital Humanities im Fokus: Methoden, Anwendungen und    Perspektiven</eventName>  <eventName xml:lang="en">Digital Humanities in Focus: Methods, Applications, and    Perspectives</eventName> </event>

The <event> element contains an <eventName> sub-element, which records the original name of the series. The xml:lang attribute specifies the language of the lecture series name. If official translations exist, multiple <eventName> elements may be listed sequentially, as can be seen above.

Each lecture series consists of at least one, but usually multiple <event> elements, each representing an instance of the lecture series, for instance, an academic term in which the series took place. These <event> elements include a type attribute with the value lecture-series-term, as well as the attributes from and to indicating the term’s duration (year and month):

<event from="2023-04to="2024-07"  type="lecture-series-termxml:id="ls10_t1">  <eventName xml:lang="de">Sommersemester 2023</eventName>  <ptr target="https://web.archive.org/web/20241114133706/https://www.germanistik.uni-rostock.de/forschung/digital-humanities/rosdh/ringvorlesung/2023/"   type="programme"/> </event>

If a consolidated program overview is available for a given term, a <ptr> element is included after the <eventName> element. The type attribute of <ptr> is set to the value programme to indicate its purpose.

After these term-level <event> elements, individual lectures are recorded, as explained in the following sections.

3.2. Encoding Individual Lectures

A individual lecture is recorded as an <event> element with the attribute type (with the value lecture) and with the attribute when, which specifies the date of the event in the format year-month-day. The structure of the content within each <event> element remains consistent across all lectures. Therefore, it is described in the following subsections from top to bottom, using the example below:

<event type="lecturewhen="2024-12-02"  xml:id="ls10_t4_l7">  <eventName xml:lang="de">KI generiert Texte – Wie? und Warum? – Nachdenken eines    Informations- und Kommunikationswissenschaftlers</eventName>  <note type="abstractxml:lang="de">   <p>Texte sind allgegenwärtig und es liegt nahe, Textproduktion zu automatisieren.      Texte können (über)lebenswichtig sein, daher ist ein Nachdenken darüber, wie Texte      funktionieren und was sie mit uns und wir mit ihnen machen, notwendig.      KI-generierte Texte verändern die Textwelt, ohne dass wir es notwendigerweise      bemerken. Die Perspektive der Sprach- und Kommuniktionswissenschaft kann auf      Punkte hinweisen, worüber nachzudenken lohnen könnte.</p>   <p>Hier knüpft der Vortrag des Informatikers Clemens Cap an. Er schildert, wie große      Sprachmodelle wie beispielsweise ChatGPT heute aufgebaut sind. Daraus ergeben sich      unmittelbar die derzeitigen Fähigkeiten und Grenzen solcher Systeme. Der Kreis zum      Vortrag von Wolfgang Sucharowski schließt sich nun, wenn wir erkennen, dass seine      Beobachtungen keine Spekulationen sondern unmittelbare Konsequenzen aus der      Architektur solcher Systeme sind.</p>  </note>  <note type="keywords">   <term corresp="#german-studies #computer-science"    type="discipline"/>   <term corresp="https://vocabs.dariah.eu/tadirah/commenting https://vocabs.dariah.eu/tadirah/machineLearning"    type="topic"/>  </note>  <note type="realization">   <term type="speech">in person</term>   <term type="audience">hybrid</term>  </note>  <ptr target="https://web.archive.org/web/20241210104406/https://www.germanistik.uni-rostock.de/forschung/digital-humanities/rosdh/ringvorlesung/2024-25/n/ki-generiert-texte-wie-und-warum-nachdenken-eines-informations-und-kommunikationswissenschaftlers-202261/"   type="programme"/>  <ptr target="https://doi.org/10.5281/zenodo.14525161"   type="slides"/>  <listPerson>   <person corresp="#cap_clemens"    role="speaker">    <name>     <roleName type="title">Prof. Dr.</roleName>    </name>    <affiliation corresp="#uni-rostock"/>   </person>   <person corresp="#sucharowski_wolfgang"    role="speaker">    <name>     <roleName type="title">Prof. Dr.</roleName>    </name>    <affiliation corresp="#uni-rostock"/>   </person>  </listPerson>  <org corresp="#uni-rostock"   role="host-institution"/> </event> [...] <org corresp="#henny-krahmer_ulrike #alvares-freire_fernanda #renz_erik"  role="organizer"/>

3.2.1. Titles and Abstracts

At the beginning of each entry, the lecture title is recorded using an <eventName> element. The language of the title is specified via the xml:lang attribute.

Directly below the title, the abstract of the lecture follows. This is captured within a <note> element, which is characterized by the type attribute set to the value abstract. Additionally, the xml:lang attribute specifies the language of the abstract.

<eventName xml:lang="de">KI generiert Texte – Wie? und Warum? – Nachdenken eines Informations- und Kommunikationswissenschaftlers</eventName> <note type="abstractxml:lang="de">  <p>Texte sind allgegenwärtig und es liegt nahe, Textproduktion zu automatisieren.    Texte können (über)lebenswichtig sein, daher ist ein Nachdenken darüber, wie Texte    funktionieren und was sie mit uns und wir mit ihnen machen, notwendig.    KI-generierte Texte verändern die Textwelt, ohne dass wir es notwendigerweise    bemerken. Die Perspektive der Sprach- und Kommunikationswissenschaft kann auf    Punkte hinweisen, worüber nachzudenken lohnen könnte.</p>  <p>Hier knüpft der Vortrag des Informatikers Clemens Cap an. Er schildert, wie große    Sprachmodelle wie beispielsweise ChatGPT heute aufgebaut sind. Daraus ergeben sich    unmittelbar die derzeitigen Fähigkeiten und Grenzen solcher Systeme. Der Kreis zum    Vortrag von Wolfgang Sucharowski schließt sich nun, wenn wir erkennen, dass seine    Beobachtungen keine Spekulationen, sondern unmittelbare Konsequenzen aus der    Architektur solcher Systeme sind.</p> </note>

As the example above already shows, the abstract text itself is recorded within one or more <p> elements. If a list is included within the abstract, a <list> element is used, with individual list items represented by <item> elements.

If the abstract contains formatting elements such as bold, italics, or hyperlinks, these are not explicitly marked up.

If an abstract is available, it is recorded within the <note type="abstract"> tag. If no abstract is provided, the content of the note is set to "not found":

<note type="abstractxml:lang="en">not found</note>

3.2.2. Keywords

Each recorded lecture is assigned keywords by the encoders to be able to analyze the distribution of disciplines, methods and topics across the lectures and lecture series. That is, the keywords are not collected from the websites of the lecture series but they are added by the editors of this data collection.

The keywords are stored inside of a <note> element, characterized by the attribute type with the value keywords. Within this <note> element, there are two <term> elements:

  • One with <type="discipline">, specifying the academic discipline or disciplines covered by the talk.
  • One with <type="topics-llm">, indicating the topics of the talk.
<note type="keywords">  <term corresp="#literary-studies"   type="discipline"/>  <term type="topics-llm">evolution, cultural change, computational methods,    literature trends, causal mechanisms</term> </note>

In case that there is more than one discipline, it is collected in the corresp attribute of the same <term> element. We opted for this (instead of using an individual <term> element for each keyword) to facilitate later processing of the data and for a more compact encoding of the information. For the disciplines, we use a pre-defined list that we created on our own. The topics were generated with a script calling an LLM.

Both discipline and topic assignments are based on the lecture content. This classification relies on the abstract and title of the lecture. Since every lecture has a title but not necessarily an abstract, classification is always possible. However, a longer title or the presence of an abstract allows for a more precise categorization.

3.2.3. Realization (Lecture Modality)

The lecture modality is recorded in the <note type="realization"> tag, specifying whether the lecture was held in person, hybrid, or online. The <note> element contains two <term> sub-elements that define the modality separately for speakers and audience members. These <term> elements use the type attribute to distinguish between the modality of the speech and of the audience:

  • <term type="speech">: Describes how the speakers delivered the lecture.
  • <term type="audience">: Describes how the audience attended the lecture.
<note type="realization">  <term type="speech">in person</term>  <term type="audience">hybrid</term> </note>

The values for these elements are standardized to ensure consistency in data representation. The possible values are:

  • in person: All participants (speakers or audience) were physically present at the lecture venue.
  • hybrid: At least one participant (speaker or audience member) joined remotely, while others were present in person.
  • online: All participants attended virtually; no one was physically present at the venue.

If a lecture was canceled, a fourth value, canceled, is used. In this case, as shown in the example below, the <term type="audience"> tag is omitted since no audience attended:

Note: canceled

3.2.4. Speakers, Titles, and Affiliation

The speakers of a lecture are recorded in a <listPerson> element. Each speaker is described using a <person> element with a corresp attribute that links to the corresponding person entry in the TEI header. The academic title (if provided) is stored within a <roleName type="title"> element inside of the <name> element. The speaker’s affiliation is captured within an <affiliation> element, referencing the corresponding institution, which is encoded in the TEI header. The information about the speakers, their affiliations, and the institutions is encoded in two places for the following reasons: on the one hand, we aim to have a centralized list of people and institutions in the TEI header, to which we can refer from individual events. On the other hand, the affiliations of people can change over time and the same is true for their titles. One person might not have a title at the moment of one event, but might have a title at another event later on, for instance, if someone completed his or her PhD. Therefore, information about the current affiliation of a speaker at the moment of the event and about the current title that a person has when the event takes place is encoded directly inside of the individual event.

<listPerson>  <person corresp="#cap_clemens"   role="speaker">   <name>    <roleName type="title">Prof. Dr.</roleName>   </name>   <affiliation corresp="#uni-rostock"/>  </person>  <person corresp="#sucharowski_wolfgang"   role="speaker">   <name>    <roleName type="title">Prof. Dr.</roleName>   </name>   <affiliation corresp="#uni-rostock"/>  </person> </listPerson>

The titles of the speaker(s) are recorded according to the information provided in the lecture program, supporting materials (slides, videos, or blog posts), or a short biography. Common academic titles include:

  • Dr. / Dr.-Ing. / PhD
  • PD (Priv.-Doz.)
  • Asst. Prof. / Assoc. Prof. / Jun.-Prof. / Prof. (Univ.-Prof.)

These titles are standardized. For instance, "Univ.-Prof." is simplified to "Prof.", and variations in spelling (e.g., "PhD" and "Ph.D.") are standardized.

Academic degrees such as Bakkalaureus Artium / Bachelor of Arts (B.A.) and Magister Artium / Master of Arts (M.A.) are not recorded, as they are typically not included in the program. Similarly, if no title is available, the value not found is used:

<listPerson>  <person corresp="#theise_antje"   role="speaker">   <name>    <roleName type="title">not found</roleName>   </name>   <affiliation corresp="#ub-rostock"/>  </person> </listPerson>

3.2.5. Hosts and Organizers

Hosts are recorded at the end of the individual lecture entry to indicate which organizations were responsible for hosting the lecture, i.e., those that invited the speaker(s). The host institution is specified with an <org> element that includes the attribute role with the standardized value host-institution. The corresp attribute references the corresponding organization entry in the TEI header. This value is recorded independently of the lecture modality (i.e., in presence, hybrid, or online).

<org corresp="#uni-rostock"  role="host-institution"/>

As mentioned above, information about the hosting institutions concludes the section for an individual lecture. However, the final element within a lecture series term is the information about the organizers of the term. This information is stored within an <org> element with the attribute role and the standardized value organizer.

<org corresp="#henny-krahmer_ulrike #alvares-freire_fernanda #renz_erik"  role="organizer"/>

Unlike host institutions, which are organizations, organizers are recorded as individual persons, as can be seen in the example above. It is possible for an organizer to also be a speaker in another lecture series or even in their own series.

Since organizational responsibility can change from term to term, it is considered appropriate to record this information at this level rather than for the entire series.

3.3. Creating IDs

The dataset assigns unique IDs to lecture series, lecture series terms, individual lectures, persons, organizations, and locations, which are consistently stored in the xml:id attribute. The following aspects must be considered when creating IDs:

  • Lowercase only: All IDs are written exclusively in lowercase.
  • No numbers: Numbers are not used in IDs.
  • Latin script only: The Latin script is consistently applied.
  • No diacritical marks: Diacritical marks (e.g., ä, ö, ü, â, ê, î) are completely removed or replaced with corresponding transliterations (e.g., ä → ae, ö → oe, è → e).

Additional considerations include:

  • Standardized prefixes: Certain IDs, such as those for universities, always begin with a fixed prefix (e.g., uni- for universities, fh- for universities of applied sciences).
  • Use of hyphens and underscores: Two types of separators are used in the dataset:
    • Underscores (_) are used exclusively for person IDs, separating the surname from the given name.
    • Hyphens (-) are used for organizations and locations to separate individual name components (e.g., multi-word city names). In person IDs, hyphens are used to connect multiple given names or multiple surnames.

3.4. Capturing Language

All collected information is recorded exclusively in the languages in which it appears on the respective websites. Each element of a lecture event that contains textual information in a certain language is marked with the attribute xml:lang, specifying the corresponding language value, such as en for English or de for German. No translations of content are produced.

The documentation of series, terms and lectures is mainly focused on English, Italian, German, Spanish, French and Portuguese, due to the language knowledge of the collaborators in this project. Other languages can be included, especially when it comes to recording the names of organizations or places. By default, these informations are documented in the language in which they originally emerged, which may differ from the respective national language.

In some cases, a title may include multiple languages, whether for stylistic reasons or because it contains a key term discussed in the lecture or an introductory quotation. In such instances, only the primary language of the title is recorded, while additional languages are not documented, as shown in the following example:

<eventName xml:lang="en">Le chemin de l’image in Renaissance Lyon: digital tools for the study of early modern illustrations</eventName> <note type="abstractxml:lang="en">  <p>The talk will focus on the study of digital collections of early modern printed    books and on the implementation of the Imagematching software in cooperation with    the Visual Geometry Group of Department of Engineering Science at University of    Oxford. In the research project The Early Modern Illustrated Book in Lyon (Equipex    Biblissima/Ca' Foscari), the art historian Barbara Tramelli developed a new    methodology for the study of book illustrations, using and implementing for her    research Renaissance images two digital tools: [...]</p> </note>

In such cases, the primary language of the element must be identified and recorded. In the example above, this would be English. The primary language can often be determined by identifying which part of the content conveys the core subject matter rather than serving a decorative or stylistic function. For titles, another useful indicator is the language of the accompanying abstract, if available.

3.6. Capturing Organizations

Organizations involved in Digital Humanities lecture series are divided into two main roles: the affiliation of the (invited) speaker and the hosting venue.

In most cases, organizations are listed at the level of entire universities, research institutions, or cultural institutions. Specific departments or institutes within these organizations, where speakers may be affiliated, are not captured in the data. E.g. if an affiliation to the Institute of German Studies at the University of Rostock is mentioned in a program, only the University of Rostock is encoded.

Each organization is represented by a separate entry within the <particDesc> element, found under <listOrg>. The <org> sub-element defines the organization and is assigned a unique ID through the xml:id attribute. This ID is used throughout the dataset to ensure consistent referencing. Additionally, the type attribute within the <org> element is employed to specify the organization's precise role. Available values for the type attribute include:

  • university: for universities and universities of applied sciences
  • research_institution: for private or public institutions that conduct research
  • company: for companies or private sector organizations
  • glam: for galleries, libraries, archives, museums; generally, all cultural and memory institutions
  • other: we use this when none of the categories listed above apply, for example in the case of radio stations or newspapers.

As can be seen in the example below, the "Università di Bologna" is represented as an organization with the ID uni-bologna. The name of the organization is presented in the original language (Italian, in this case), and an external Wikidata identifier is included within the <idno> element.

<org type="universityxml:id="uni-bologna">  <name xml:lang="it">Università di Bologna</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q131262</idno>  <place corresp="#bologna"/> </org>

3.6.1. Universities

As described above, all organizations, including all university entries, are assigned an ID. Unlike those of other organizations, university IDs always begin with uni- or fh- followed by a unique part, typically derived from the name or location of the institution. For example, the University of Rostock is captured as follows:

<org type="universityxml:id="uni-rostock">  <name xml:lang="de">Universität Rostock</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q159895</idno>  <place corresp="#rostock"/> </org>

In order to maintain clarity and allow for future adjustments, the names of universities are standardized. For instance, "Julius-Maximilians-Universität Würzburg" is shortened to "Universität Würzburg", and the corresponding ID becomes uni-wuerzburg:

<org type="university"  xml:id="uni-wuerzburg">  <name xml:lang="de">Universität Würzburg</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q161976</idno>  <place corresp="#wuerzburg"/> </org>

This simplification also reduces the need for updates when a university undergoes rebranding or changes its name, such as in the case of the recent shift in Münster from "Westfälische Wilhelms-Universität Münster" to "Universität Münster".

When multiple universities exist within the same city, additional distinctions are added to the ID to avoid confusion. These distinctions are appended to the base ID formed by the university's type and location. For example, in London, where several institutions exist, their IDs are distinguished as follows:

<org type="university"  xml:id="uni-london-city">  <name xml:lang="en">City, University of London</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q1094046</idno>  <place corresp="#london"/> </org> <org type="university"  xml:id="uni-london-ucl">  <name xml:lang="en">University College London</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q193196</idno>  <place corresp="#london"/> </org> <org type="university"  xml:id="uni-london-kcl">  <name xml:lang="en">King’s College London</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q245247</idno>  <place corresp="#london"/> </org>

In contrast, Berlin presents another situation, as the German naming convention is that distinctions should precede the city name, resulting in IDs such as:

<org type="university"  xml:id="uni-fu-berlin">  <name xml:lang="de">Freie Universität Berlin</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q153006</idno>  <place corresp="#berlin"/> </org> <org type="university"  xml:id="uni-hu-berlin">  <name xml:lang="de">Humboldt-Universität zu Berlin</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q152087</idno>  <place corresp="#berlin"/> </org> <org type="university"  xml:id="uni-tu-berlin">  <name xml:lang="de">Technische Universität Berlin</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q51985</idno>  <place corresp="#berlin"/> </org>

As with all organizations in the dataset, each university is assigned an external identifier, referenced through the <idno> element, which refers to the university’s Wikidata entry.

3.6.2. Research Institutions

Research institutions are identified using the type attribute with the value research_institution. This category includes private and public research organizations that are not classified as universities.

<org type="research_institution"  xml:id="research-mpi">  <name xml:lang="de">Max-Planck-Institut für Wissenschaftsgeschichte</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q685399</idno>  <place corresp="#berlin"/> </org>

The structure follows the same pattern as universities, ensuring consistency across all organization types.

3.6.3. GLAM Institutions

GLAM organizations (Galleries, Libraries, Archives, and Museums) are identified using the type attribute with the value glam. The IDs for GLAM organizations are usually derived from existing abbreviations.

<org type="glamxml:id="museum-snm">  <name xml:lang="de">Schweizerisches Nationalmuseum (SNM)</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q2256718</idno>  <place corresp="#zuerich"/> </org>
To facilitate clear differentiation, prefixes such as museum-, library-, gallery-, and archive- are used in IDs when applicable. If an institution does not fit these categories, an existing abbreviation serves as the identifier:
<org type="glamxml:id="spk">  <name xml:lang="de">Stiftung Preußischer Kulturbesitz (SPK)</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q685171</idno>  <place corresp="#berlin"/> </org>

3.6.4. Companies

The company category includes both private and public organizations that are not primarily engaged in academic research. This encompasses commercial enterprises as well as organizations funded through grants or sponsorships, such as those providing infrastructure or research support.

Organizations in this category are identified using the type attribute with the value company. Similar to research institutions and GLAMs, company IDs are derived from their names and, where applicable, existing abbreviations.
<org type="companyxml:id="wordpress">  <name xml:lang="en">WordPress Foundation</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q56787199</idno>  <place corresp="#san-francisco"/> </org> <org type="companyxml:id="pagina">  <name xml:lang="de">pagina Publikationstechnologien</name>  <idno type="wikidata">https://www.wikidata.org/wiki/Q131538003</idno>  <place corresp="#weil-der-stadt"/> </org>

3.7. Capturing Persons

Each speaker included in the dataset is represented by an individual entry within the <listPerson> element, specifically under <particDesc>.

To ensure consistent identification, every speaker is assigned a unique ID through the xml:id attribute. This identifier follows a standardized format, combining the speaker's surname and given name, separated by an underscore. In cases where a speaker has multiple given or family names, these are connected using hyphens. For example:

<person xml:id="maget-dominice_antoinette">  <name>   <forename>Antoinette</forename>   <surname>Maget Dominicé</surname>  </name>  <gender>female</gender>  <idno type="orcid">https://orcid.org/0000-0001-9056-4544</idno>  <idno type="wikidata">https://www.wikidata.org/wiki/Q102211240</idno> </person>

As shown above, each entry also records the speaker's social gender, represented by the <gender> element within the <person> element. The primary values for this element are female and male. The gender assignment is based primarily on the typical gender associations of given names. Additionally, where available, information from Wikidata and other external databases has been used to verify gender identity. If research indicates that a person does not fall within the binary gender spectrum, they are assigned the value non-binary. It should be noted that assigning gender based on name connotations is inherently prone to errors. While every effort has been made to ensure accuracy through external sources, there may still be instances where the assigned gender does not align with the individual's self-identification.

Each speaker entry includes a <name> element, which further contains <forename> and <surname> sub-elements. These store the full given name and surname of the individual without abbreviations or alterations.

Additionally, every speaker entry includes at least one, but typically two, <idno> elements. These elements reference external identifiers. One of these identifiers is the orcid, a researcher-specific identifier maintained by the speaker themselves, while the second is a wikidata ID. If a Wikidata entry does not already exist for a given speaker, a new record is created.

3.8. Capturing Locations

Each location in the dataset is represented by an individual entry within the <listPlace> element, specifically under <settingDesc>. There are three types of entries: for continents, for countries and for cities. This distinction is made using the type attribute, which takes either the value continent, country or city.

All location names are recorded in English or using the vernacular form if no English form is knowsn, following the naming conventions in place at the time of data collection.

To ensure consistent identification, each location is assigned a unique ID using the xml:id attribute. In most cases, this ID matches the name of the city, country or continent. However, exceptions are made when a city shares the same name as the country it belongs to, such as Luxembourg City in Luxembourg. The same rule applies to city-states:

<place type="countryxml:id="singapore">  <name>Singapore</name> </place> <place type="cityxml:id="singapore-city">  <country corresp="#singapore"/>  <name>Singapore</name>  <idno type="tgn">http://vocab.getty.edu/page/tgn/7001488</idno> </place>

Each city entry includes a <name> element that records the full name of the place without abbreviations or modifications. Additionally, every city entry contains a <country> element, which links the city to its corresponding country via the ref attribute.

Each city entry also includes an <idno> element. Using the type attribute, this element provides a reference to the Getty Thesaurus of Geographic Names (TGN), ensuring precise identification of the location.

<place type="cityxml:id="rostock">  <country corresp="#germany"/>  <name>Rostock</name>  <idno type="tgn">http://vocab.getty.edu/page/tgn/7100449</idno> </place>

For place names consisting of multiple words, hyphens are used to connect the words in the xml:id attribute:

<place type="cityxml:id="le-mans">  <country corresp="#france"/>  <name>Le Mans</name>  <idno type="tgn">http://vocab.getty.edu/page/tgn/7008494</idno> </place>

Appendix A TEI Specifications

Appendix A.1 Elements

Appendix A.1.1 <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
versionspecifies the version number of the TEI Guidelines against which this document is valid.
StatusOptional
Datatypeteidata.version
Note

Major editions of the Guidelines have long been informally referred to by a name made up of the letter P (for Proposal) followed by a digit. The current release is one of the many releases of the fifth major edition of the Guidelines, known as P5. This attribute may be used to associate a TEI document with a specific release of the P5 Guidelines, in the absence of a more precise association provided by the source attribute on the associated <schemaSpec>.

Contained by
textstructure: TEI
May contain
header: teiHeader
textstructure: TEI text
Note

As with all elements in the TEI scheme (except <egXML>) this element is in the TEI namespace (see 5.7.2. Namespaces). Thus, when it is used as the outermost element of a TEI document, it is necessary to specify the TEI namespace on it. This is customarily achieved by including http://www.tei-c.org/ns/1.0 as the value of the XML namespace declaration (xmlns), without indicating a prefix, and then not using a prefix on TEI elements in the rest of the document. For example: <TEI version="4.8.1" 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>
Content model
<content>
 <sequence>
  <elementRef key="teiHeader"/>
  <alternate>
   <sequence>
    <classRef key="model.resource"
     maxOccurs="unbounded" minOccurs="1"/>
    <elementRef key="TEI"
     maxOccurs="unbounded" minOccurs="0"/>
   </sequence>
   <elementRef key="TEI"
    maxOccurs="unbounded" minOccurs="1"/>
  </alternate>
 </sequence>
</content>
    
Schema Declaration
element TEI
{
   tei_att.global.attributes,
   tei_att.typed.attributes,
   attribute version { text }?,
   ( tei_teiHeader, ( ( tei_model.resource+, tei_TEI* ) | tei_TEI+ ) )
}

Appendix A.1.2 <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
StatusOptional
Datatypeteidata.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>
ExampleThis 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>
ExampleThis 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>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element affiliation
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.naming.attributes,
   tei_att.typed.attribute.subtype,
   attribute type { text }?,
   tei_macro.phraseSeq
}

Appendix A.1.3 <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
status(status) supplies a code identifying the current availability of the text.
StatusOptional
Datatypeteidata.enumerated
Legal values are:
free
(free) the text is freely available.
unknown
(unknown) the status of the text is unknown.
restricted
(restricted) the text is not freely available.
Member of
Contained by
core: bibl
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>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde"  value="tei:availability"/> </sch:pattern>
Content model
<content>
 <alternate maxOccurs="unbounded"
  minOccurs="1">
  <classRef key="model.availabilityPart"/>
  <classRef key="model.pLike"/>
 </alternate>
</content>
    
Schema Declaration
element availability
{
   tei_att.global.attributes,
   tei_att.declarable.attributes,
   attribute status { "free" | "unknown" | "restricted" }?,
   ( tei_model.availabilityPart | tei_model.pLike )+
}

Appendix A.1.4 <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
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 subtype="book_chaptertype="article"  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:pattern is-a="declarable"> <sch:param name="tde" value="tei:bibl"/> </sch:pattern>
Content model
<content>
 <alternate maxOccurs="unbounded"
  minOccurs="0">
  <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
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.docStatus.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      text
    | tei_model.gLike
    | tei_model.highlighted
    | tei_model.pPart.data
    | tei_model.pPart.edit
    | tei_model.segLike
    | tei_model.ptrLike
    | tei_model.biblPart
    | tei_model.global
   )*
}

Appendix A.1.5 <bloc>

<bloc> (bloc) contains the name of a geo-political unit consisting of two or more nation states or countries. [14.2.3. Place Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
<bloc type="union">the European Union</bloc> <bloc type="continent">Africa</bloc>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element bloc
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.naming.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.6 <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
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>
Content model
<content>
 <sequence>
  <classRef key="model.global"
   maxOccurs="unbounded" minOccurs="0"/>
  <sequence minOccurs="0">
   <classRef key="model.divTop"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.global"/>
    <classRef key="model.divTop"/>
   </alternate>
  </sequence>
  <sequence minOccurs="0">
   <classRef key="model.divGenLike"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.global"/>
    <classRef key="model.divGenLike"/>
   </alternate>
  </sequence>
  <alternate>
   <sequence maxOccurs="unbounded"
    minOccurs="1">
    <classRef key="model.divLike"/>
    <alternate maxOccurs="unbounded"
     minOccurs="0">
     <classRef key="model.global"/>
     <classRef key="model.divGenLike"/>
    </alternate>
   </sequence>
   <sequence maxOccurs="unbounded"
    minOccurs="1">
    <classRef key="model.div1Like"/>
    <alternate maxOccurs="unbounded"
     minOccurs="0">
     <classRef key="model.global"/>
     <classRef key="model.divGenLike"/>
    </alternate>
   </sequence>
   <sequence>
    <sequence maxOccurs="unbounded"
     minOccurs="1">
     <alternate maxOccurs="1" minOccurs="1">
      <elementRef key="schemaSpec"/>
      <classRef key="model.common"/>
     </alternate>
     <classRef key="model.global"
      maxOccurs="unbounded" minOccurs="0"/>
    </sequence>
    <alternate minOccurs="0">
     <sequence maxOccurs="unbounded"
      minOccurs="1">
      <classRef key="model.divLike"/>
      <alternate maxOccurs="unbounded"
       minOccurs="0">
       <classRef key="model.global"/>
       <classRef key="model.divGenLike"/>
      </alternate>
     </sequence>
     <sequence maxOccurs="unbounded"
      minOccurs="1">
      <classRef key="model.div1Like"/>
      <alternate maxOccurs="unbounded"
       minOccurs="0">
       <classRef key="model.global"/>
       <classRef key="model.divGenLike"/>
      </alternate>
     </sequence>
    </alternate>
   </sequence>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.divBottom"/>
   <classRef key="model.global"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element body
{
   tei_att.global.attributes,
   tei_att.declaring.attributes,
   (
      tei_model.global*,
      ( ( tei_model.divTop, ( tei_model.global | tei_model.divTop )* )? ),
      (
         ( tei_model.divGenLike, ( tei_model.global | tei_model.divGenLike )* )?
      ),
      (
         (
            ( tei_model.divLike, ( tei_model.global | tei_model.divGenLike )* )+
         )
       | (
            (
               tei_model.div1Like,
               ( tei_model.global | tei_model.divGenLike )*
            )+
         )
       | (
            ( ( ( schemaSpec | tei_model.common ), tei_model.global* )+ ),
            (
               (
                  (
                     tei_model.divLike,
                     ( tei_model.global | tei_model.divGenLike )*
                  )+
               )
             | (
                  (
                     tei_model.div1Like,
                     ( tei_model.global | tei_model.divGenLike )*
                  )+
               )
            )?
         )
      ),
      ( ( tei_model.divBottom, tei_model.global* )* )
   )
}

Appendix A.1.7 <catDesc>

<catDesc> (category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal <textDesc>. [2.3.7. The Classification Declaration]
Moduleheader
Attributes
Contained by
header: category
May contain
Example
<catDesc>Prose reportage</catDesc>
Example
<catDesc>  <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 degree="hightype="entertain"/>   <purpose degree="mediumtype="inform"/>  </textDesc> </catDesc>
Content model
<content>
 <alternate maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.limitedPhrase"/>
  <classRef key="model.catDescPart"/>
 </alternate>
</content>
    
Schema Declaration
element catDesc
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   ( text | tei_model.limitedPhrase | tei_model.catDescPart )*
}

Appendix A.1.8 <category>

<category> (category) contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. [2.3.7. The Classification Declaration]
Moduleheader
Attributes
Contained by
May contain
core: desc
Example
<category xml:id="b1">  <catDesc>Prose reportage</catDesc> </category>
Example
<category xml:id="b2">  <catDesc>Prose </catDesc>  <category xml:id="b11">   <catDesc>journalism</catDesc>  </category>  <category xml:id="b12">   <catDesc>fiction</catDesc>  </category> </category>
Example
<category xml:id="LIT">  <catDesc xml:lang="pl">literatura piękna</catDesc>  <catDesc xml:lang="en">fiction</catDesc>  <category xml:id="LPROSE">   <catDesc xml:lang="pl">proza</catDesc>   <catDesc xml:lang="en">prose</catDesc>  </category>  <category xml:id="LPOETRY">   <catDesc xml:lang="pl">poezja</catDesc>   <catDesc xml:lang="en">poetry</catDesc>  </category>  <category xml:id="LDRAMA">   <catDesc xml:lang="pl">dramat</catDesc>   <catDesc xml:lang="en">drama</catDesc>  </category> </category>
Content model
<content>
 <sequence>
  <alternate>
   <elementRef key="catDesc"
    maxOccurs="unbounded" minOccurs="1"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.descLike"/>
    <elementRef key="equiv"/>
    <elementRef key="gloss"/>
   </alternate>
  </alternate>
  <elementRef key="category"
   maxOccurs="unbounded" minOccurs="0"/>
 </sequence>
</content>
    
Schema Declaration
element category
{
   tei_att.global.attributes,
   tei_att.datcat.attributes,
   (
      ( tei_catDesc+ | ( tei_model.descLike | equiv | gloss )* ),
      tei_category*
   )
}

Appendix A.1.9 <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.
StatusOptional
Datatype1–∞ 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 status="publicwhen="2008-02-02"   who="#BZ">Finished chapter 23</change>  <change status="draftwhen="2008-01-02"   who="#BZ">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 notBefore="1880-12-09"     xml:id="DRAFT2">First revision, mostly        using green ink</change>    <change notBefore="1881-02-13"     xml:id="DRAFT3">Final corrections as        supplied to printer.</change>   </listChange>  </creation> </profileDesc>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
    
Schema Declaration
element change
{
   tei_att.global.attributes,
   tei_att.ascribed.attributes,
   tei_att.datable.attributes,
   tei_att.docStatus.attributes,
   tei_att.typed.attributes,
   attribute target { list { + } }?,
   tei_macro.specialPara
}

Appendix A.1.10 <classDecl>

<classDecl> (classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [2.3.7. The Classification Declaration 2.3. The Encoding Description]
Moduleheader
Attributes
Member of
Contained by
header: encodingDesc
May contain
header: taxonomy
Example
<classDecl>  <taxonomy xml:id="LCSH">   <bibl>Library of Congress Subject Headings</bibl>  </taxonomy> </classDecl> <!-- ... --> <textClass>  <keywords scheme="#LCSH">   <term>Political science</term>   <term>United States -- Politics and government --      Revolution, 1775-1783</term>  </keywords> </textClass>
Content model
<content>
 <elementRef key="taxonomy"
  maxOccurs="unbounded" minOccurs="1"/>
</content>
    
Schema Declaration
element classDecl { tei_att.global.attributes, tei_taxonomy+ }

Appendix A.1.11 <country>

<country> (country) contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. [14.2.3. Place Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Note

The recommended source for codes to represent coded country names is ISO 3166.

Example
<country key="DK">Denmark</country>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element country
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.naming.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.12 <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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.phrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
    
Schema Declaration
element date
{
   tei_att.global.attributes,
   tei_att.calendarSystem.attributes,
   tei_att.canonical.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.dimensions.attributes,
   tei_att.editLike.attributes,
   tei_att.typed.attributes,
   ( text | tei_model.gLike | tei_model.phrase | tei_model.global )*
}

Appendix A.1.13 <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
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
Derived fromatt.typed
StatusOptional
Datatypeteidata.enumerated
Suggested values include:
deprecationInfo
(deprecation information) This element describes why or how its parent element is being deprecated, typically including recommendations for alternate encoding.
<dataSpec ident="teidata.point"  module="tei"  validUntil="2050-02-25">  <desc type="deprecationInfo"   versionDate="2018-09-14"   xml:lang="en">Several standards bodies, including NIST in the USA,    strongly recommend against ending the representation of a number    with a decimal point. So instead of <q>3.</q> use either <q>3</q>    or <q>3.0</q>.</desc> <!-- ... --> </dataSpec>
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.

ExampleExample of a <desc> element inside a documentation element.
<dataSpec ident="teidata.point"  module="tei">  <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>
ExampleExample 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
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.typed.attribute.subtype,
   attribute type { "deprecationInfo" }?,
   tei_macro.limitedContent
}

Appendix A.1.14 <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
header: editionStmt
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 { tei_att.global.attributes, tei_macro.phraseSeq }

Appendix A.1.15 <editionStmt>

<editionStmt> (edition statement) groups information relating to one edition of a text. [2.2.2. The Edition Statement 2.2. The File Description]
Moduleheader
Attributes
Contained by
header: fileDesc
May contain
header: edition
Example
<editionStmt>  <edition n="S2">Students' edition</edition>  <respStmt>   <resp>Adapted by </resp>   <name>Elizabeth Kirk</name>  </respStmt> </editionStmt>
Example
<editionStmt>  <p>First edition, <date>Michaelmas Term, 1991.</date>  </p> </editionStmt>
Content model
<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
  <sequence>
   <elementRef key="edition"/>
   <classRef key="model.respLike"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
 </alternate>
</content>
    
Schema Declaration
element editionStmt
{
   tei_att.global.attributes,
   ( tei_model.pLike+ | ( tei_edition, tei_model.respLike* ) )
}

Appendix A.1.16 <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
Member of
Contained by
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>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element editor
{
   tei_att.global.attributes,
   tei_att.datable.attributes,
   tei_att.naming.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.17 <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
core: p
header: classDecl
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 maxOccurs="unbounded"
  minOccurs="1">
  <classRef key="model.encodingDescPart"/>
  <classRef key="model.pLike"/>
 </alternate>
</content>
    
Schema Declaration
element encodingDesc
{
   tei_att.global.attributes,
   ( tei_model.encodingDescPart | tei_model.pLike )+
}

Appendix A.1.18 <event>

<event> (event) contains data relating to anything of significance that happens in time. [14.3.1. Basic Principles]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
<listEvent>  <event when="1618-05-23where="#Prague"   xml:id="SecondDefPrague">   <eventName>1618 Defenestration of Prague</eventName>   <idno>https://www.wikidata.org/wiki/Q13365740</idno>   <listPerson type="defenstrated">    <person>     <persName>Jaroslav Bořita z Martinic</persName>     <idno type="GND">https://d-nb.info/gnd/116810998</idno>    </person>    <person>     <persName>Vilém Slavata z Chlumu a Košumberka</persName>     <idno type="GND">https://d-nb.info/gnd/1018376615</idno>    </person>    <person>     <persName>Filip Fabricius</persName>     <idno type="GND">https://d-nb.info/gnd/133946118</idno>    </person>   </listPerson>   <place xml:id="Prague">    <placeName>Prague</placeName>   </place>  </event>  <event from="1618to="1648"   xml:id="ThirtyYearsWar">   <eventName>Thirty Years’ War</eventName>   <idno>https://www.wikidata.org/wiki/Q2487</idno>   <event when="1643-03-19where="#Rocroi"    xml:id="BattleofRocroi">    <eventName>Battle of Rocroi</eventName>    <idno type="Wikidata">https://www.wikidata.org/wiki/Q728480</idno>    <idno type="GND">https://d-nb.info/gnd/4202901-6</idno>    <place xml:id="Rocroi">     <placeName>Rocroi</placeName>     <location>      <geo decls="#WGS">49.926111 4.522222</geo>     </location>    </place>   </event>  </event> </listEvent>
Example
<person>  <event type="matwhen="1972-10-12">   <label>matriculation</label>  </event>  <event type="gradwhen="1975-06-23">   <label>graduation</label>  </event> </person>
Content model
<content>
 <sequence>
  <elementRef key="idno"
   maxOccurs="unbounded" minOccurs="0"/>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate>
   <classRef key="model.pLike"
    maxOccurs="unbounded" minOccurs="1"/>
   <classRef key="model.labelLike"
    maxOccurs="unbounded" minOccurs="1"/>
   <elementRef key="eventName"
    maxOccurs="unbounded" minOccurs="1"/>
  </alternate>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.noteLike"/>
   <classRef key="model.biblLike"/>
   <classRef key="model.ptrLike"/>
   <elementRef key="linkGrp"/>
   <elementRef key="link"/>
   <elementRef key="idno"/>
  </alternate>
  <classRef key="model.eventLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.personLike"
    maxOccurs="1" minOccurs="1"/>
   <elementRef key="listPerson"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.placeLike"
    maxOccurs="1" minOccurs="1"/>
   <elementRef key="listPlace"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <classRef key="model.objectLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
 </sequence>
</content>
    
Schema Declaration
element event
{
   tei_att.global.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.locatable.attributes,
   tei_att.naming.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_idno*,
      tei_model.headLike*,
      ( tei_model.pLike+ | tei_model.labelLike+ | tei_eventName+ ),
      (
         tei_model.noteLike
       | tei_model.biblLike
       | tei_model.ptrLike
       | linkGrp
       | link
       | tei_idno
      )*,
      tei_model.eventLike*,
      ( tei_model.personLike | tei_listPerson )*,
      ( tei_model.placeLike | tei_listPlace )*,
      tei_model.objectLike*,
      ( relation | listRelation )*
   )
}

Appendix A.1.19 <eventName>

<eventName> (name of an event) contains a proper noun or noun phrase used to refer to an event. [14.2.4. Event Names]
Modulenamesdates
Attributes
Member of
Contained by
May contain
Example
<listEvent>  <event from="1939-09-01to="1945-09-02">   <eventName xml:lang="de">Zweiter Weltkrieg</eventName>   <eventName xml:lang="en">World War II</eventName>   <idno type="GND">https://d-nb.info/gnd/4079167-1</idno>   <idno type="Wikidata">https://www.wikidata.org/wiki/Q362</idno>   <event from="1939-09-01to="1939-10-06"    xml:id="UeberfallAufPolen">    <eventName xml:lang="de">Überfall auf Polen</eventName>    <eventName xml:lang="en">Invasion of Poland</eventName>    <idno type="GND">https://d-nb.info/gnd/4175002-0</idno>    <idno type="LOC">https://id.loc.gov/authorities/sh85148341</idno>    <listPlace type="affected">     <place>      <placeName xml:lang="pl">Gdańsk</placeName>      <location>       <geo>54.350556 18.652778</geo>      </location>     </place>    </listPlace>   </event>   <event from="1941-06-22to="1945-05-09">    <eventName xml:lang="de">Deutsch-Sowjetischer Krieg</eventName>    <eventName xml:lang="ru">Великая Отечественная война</eventName>    <idno type="GND">https://d-nb.info/gnd/4076906-9</idno>    <idno type="Wikidata">https://www.wikidata.org/wiki/Q189266</idno>   </event>  </event> </listEvent>
Example
<p>On <date when="1719-03-19">Monday</date>, <rs type="person">she</rs> was writing about the <eventName ref="#SecondDefPrague">1618 Defenestration of Prague</eventName> which initiated the <rs ref="#ThirtyYearsWartype="event">long war</rs>.</p>
Example
<event from="2019-09-16to="2019-09-20"  xml:id="tei2019graz">  <eventName type="full">TEI 2019: What is text, really? TEI and beyond</eventName>  <eventName type="short">TEI 2019</eventName>  <note> The abstract leading to the <gi>eventName</gi> element is available at <ref target="https://gams.uni-graz.at/o:tei2019.141">https://gams.uni-graz.at/o:tei2019.141</ref>.    Other related documents are available through <ref target="https://gams.uni-graz.at/tei2019">https://gams.uni-graz.at/tei2019</ref>, as well as in the  <ref target="https://zenodo.org/communities/tei2019">TEI 2019 Zenodo community</ref>.  </note>  <listPerson type="LocalOrganizers">   <person>    <persName>     <surname>Raunig</surname>     <forename>Elisabeth</forename>    </persName>   </person>   <person>    <persName>     <surname>Scholger</surname>     <forename>Martina</forename>    </persName>   </person>   <person>    <persName>     <surname>Scholger</surname>     <forename>Walter</forename>    </persName>   </person>   <person>    <persName>     <surname>Steiner</surname>     <forename>Elisabeth</forename>    </persName>   </person>   <person>    <persName>     <surname>Vogeler</surname>     <forename>Georg</forename>    </persName>   </person>  </listPerson>  <place xml:lang="de">   <placeName>Universität Graz</placeName>   <location>    <address>     <addrLine>ReSoWi Gebäude</addrLine>     <addrLine>Universitätsstraße 15</addrLine>     <postCode>8010</postCode>     <settlement>Graz</settlement>     <country>Österreich</country>    </address>    <geo>15.451651587656 47.078215112534</geo>   </location>  </place>  <listRelation>   <relation active="#tei2019graz"    name="P31_is_instance_ofpassive="#AnnualTEIConference"    ref="https://www.wikidata.org/wiki/Property:P31type="CRM"/>  </listRelation> </event>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element eventName
{
   tei_att.global.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.20 <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="extent" minOccurs="0"/>
   <elementRef key="publicationStmt"/>
   <elementRef key="seriesStmt"
    maxOccurs="unbounded" minOccurs="0"/>
   <elementRef key="notesStmt"
    minOccurs="0"/>
  </sequence>
  <elementRef key="sourceDesc"
   maxOccurs="unbounded" minOccurs="1"/>
 </sequence>
</content>
    
Schema Declaration
element fileDesc
{
   tei_att.global.attributes,
   (
      (
         tei_titleStmt,
         tei_editionStmt?,
         extent?,
         tei_publicationStmt,
         seriesStmt*,
         notesStmt?
      ),
      tei_sourceDesc+
   )
}

Appendix A.1.21 <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
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.22 <gender>

<gender> (gender) specifies the gender identity of a person, persona, or character. [14.3.2.1. Personal Characteristics]
Modulenamesdates
Attributes
valuesupplies a coded value for gender identity.
StatusOptional
Datatype1–∞ occurrences of teidata.gender separated by whitespace
Note

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

Member of
Contained by
namesdates: person
May contain
Note

As with other culturally-constructed traits such as age and sex, the way in which this concept is described in different cultural contexts varies. The normalizing attributes are provided only as an optional means of simplifying that variety for purposes of interoperability or project-internal taxonomies for consistency, and should not be used where that is inappropriate or unhelpful. The content of the element may be used to describe the intended concept in more detail.

Example
<gender value="W">woman</gender>
Example
<gender value="NB">non-binary</gender>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element gender
{
   tei_att.global.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.typed.attributes,
   attribute value { list { + } }?,
   tei_macro.phraseSeq
}

Appendix A.1.23 <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
StatusOptional
Datatypeteidata.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.
Content model
<content>
 <alternate maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.gLike"/>
  <elementRef key="idno"/>
 </alternate>
</content>
    
Schema Declaration
element idno
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attribute.subtype,
   attribute type
   {
      "ISBN" | "ISSN" | "DOI" | "URI" | "VIAF" | "ESTC" | "OCLC"
   }?,
   ( text | tei_model.gLike | tei_idno )*
}

Appendix A.1.24 <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
{
   tei_att.global.attributes,
   tei_att.sortable.attributes,
   tei_macro.specialPara
}

Appendix A.1.25 <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 notBefore="2013-01-01"   target="http://creativecommons.org/licenses/by/3.0/">   <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>
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
    
Schema Declaration
element licence
{
   tei_att.global.attributes,
   tei_att.datable.attributes,
   tei_att.pointing.attributes,
   tei_macro.specialPara
}

Appendix A.1.26 <list>

<list> (list) contains any sequence of items organized as a list. [3.8. Lists]
Modulecore
Attributes
type(type) describes the nature of the items in the list.
Derived fromatt.typed
StatusOptional
Datatypeteidata.enumerated
Suggested values include:
gloss
(gloss) each list item glosses some term or concept, which is given by a <label> element preceding the list item.
index
(index) each list item is an entry in an index such as the alphabetical topical index at the back of a print volume.
instructions
(instructions) each list item is a step in a sequence of instructions, as in a recipe.
litany
(litany) each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual.
syllogism
(syllogism) each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them.
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
core: desc item note
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.

Example
<list rend="numbered">  <item>a butcher</item>  <item>a baker</item>  <item>a candlestick maker, with  <list rend="bulleted">    <item>rings on his fingers</item>    <item>bells on his toes</item>   </list>  </item> </list>
Example
<list rend="bulletedtype="syllogism">  <item>All Cretans are liars.</item>  <item>Epimenides is a Cretan.</item>  <item>ERGO Epimenides is a liar.</item> </list>
Example
<list rend="simpletype="litany">  <item>God save us from drought.</item>  <item>God save us from pestilence.</item>  <item>God save us from wickedness in high places.</item>  <item>Praise be to God.</item> </list>
ExampleThe following example treats the short numbered clauses of Anglo-Saxon legal codes as lists of items. The text is from an ordinance of King Athelstan (924–939):
<div1 type="section">  <head>Athelstan's Ordinance</head>  <list rend="numbered">   <item n="1">Concerning thieves. First, that no thief is to be spared who is caught with      the stolen goods, [if he is] over twelve years and [if the value of the goods is] over      eightpence.   <list rend="numbered">     <item n="1.1">And if anyone does spare one, he is to pay for the thief with his          wergild — and the thief is to be no nearer a settlement on that account — or to          clear himself by an oath of that amount.</item>     <item n="1.2">If, however, he [the thief] wishes to defend himself or to escape, he is          not to be spared [whether younger or older than twelve].</item>     <item n="1.3">If a thief is put into prison, he is to be in prison 40 days, and he may          then be redeemed with 120 shillings; and the kindred are to stand surety for him          that he will desist for ever.</item>     <item n="1.4">And if he steals after that, they are to pay for him with his wergild,          or to bring him back there.</item>     <item n="1.5">And if he steals after that, they are to pay for him with his wergild,          whether to the king or to him to whom it rightly belongs; and everyone of those who          supported him is to pay 120 shillings to the king as a fine.</item>    </list>   </item>   <item n="2">Concerning lordless men. And we pronounced about these lordless men, from whom      no justice can be obtained, that one should order their kindred to fetch back such a      person to justice and to find him a lord in public meeting.   <list rend="numbered">     <item n="2.1">And if they then will not, or cannot, produce him on that appointed day,          he is then to be a fugitive afterwards, and he who encounters him is to strike him          down as a thief.</item>     <item n="2.2">And he who harbours him after that, is to pay for him with his wergild          or to clear himself by an oath of that amount.</item>    </list>   </item>   <item n="3">Concerning the refusal of justice. The lord who refuses justice and upholds      his guilty man, so that the king is appealed to, is to repay the value of the goods and      120 shillings to the king; and he who appeals to the king before he demands justice as      often as he ought, is to pay the same fine as the other would have done, if he had      refused him justice.   <list rend="numbered">     <item n="3.1">And the lord who is an accessory to a theft by his slave, and it becomes          known about him, is to forfeit the slave and be liable to his wergild on the first          occasionp if he does it more often, he is to be liable to pay all that he owns.</item>     <item n="3.2">And likewise any of the king's treasurers or of our reeves, who has been          an accessory of thieves who have committed theft, is to liable to the same.</item>    </list>   </item>   <item n="4">Concerning treachery to a lord. And we have pronounced concerning treachery to      a lord, that he [who is accused] is to forfeit his life if he cannot deny it or is      afterwards convicted at the three-fold ordeal.</item>  </list> </div1>
Note that nested lists have been used so the tagging mirrors the structure indicated by the two-level numbering of the clauses. The clauses could have been treated as a one-level list with irregular numbering, if desired.
Example
<p>These decrees, most blessed Pope Hadrian, we propounded in the public council ... and they confirmed them in our hand in your stead with the sign of the Holy Cross, and afterwards inscribed with a careful pen on the paper of this page, affixing thus the sign of the Holy Cross. <list rend="simple">   <item>I, Eanbald, by the grace of God archbishop of the holy church of York, have      subscribed to the pious and catholic validity of this document with the sign of the Holy      Cross.</item>   <item>I, Ælfwold, king of the people across the Humber, consenting have subscribed with      the sign of the Holy Cross.</item>   <item>I, Tilberht, prelate of the church of Hexham, rejoicing have subscribed with the      sign of the Holy Cross.</item>   <item>I, Higbald, bishop of the church of Lindisfarne, obeying have subscribed with the      sign of the Holy Cross.</item>   <item>I, Ethelbert, bishop of Candida Casa, suppliant, have subscribed with thef sign of      the Holy Cross.</item>   <item>I, Ealdwulf, bishop of the church of Mayo, have subscribed with devout will.</item>   <item>I, Æthelwine, bishop, have subscribed through delegates.</item>   <item>I, Sicga, patrician, have subscribed with serene mind with the sign of the Holy      Cross.</item>  </list> </p>
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>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.divTop"/>
   <classRef key="model.global"/>
   <elementRef key="desc"
    maxOccurs="unbounded" minOccurs="0"/>
  </alternate>
  <alternate>
   <sequence maxOccurs="unbounded"
    minOccurs="1">
    <elementRef key="item"/>
    <classRef key="model.global"
     maxOccurs="unbounded" minOccurs="0"/>
   </sequence>
   <sequence>
    <elementRef key="headLabel"
     minOccurs="0"/>
    <elementRef key="headItem"
     minOccurs="0"/>
    <sequence maxOccurs="unbounded"
     minOccurs="1">
     <elementRef key="label"/>
     <classRef key="model.global"
      maxOccurs="unbounded" minOccurs="0"/>
     <elementRef key="item"/>
     <classRef key="model.global"
      maxOccurs="unbounded" minOccurs="0"/>
    </sequence>
   </sequence>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.divBottom"/>
   <classRef key="model.global"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element list
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attribute.subtype,
   attribute type
   {
      "gloss" | "index" | "instructions" | "litany" | "syllogism"
   }?,
   (
      ( tei_model.divTop | tei_model.global | tei_desc* )*,
      (
         ( ( tei_item, tei_model.global* )+ )
       | (
            headLabel?,
            headItem?,
            ( ( label, tei_model.global*, tei_item, tei_model.global* )+ )
         )
      ),
      ( ( tei_model.divBottom, tei_model.global* )* )
   )
}

Appendix A.1.27 <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
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>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde" value="tei:listBibl"/> </sch:pattern>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.milestoneLike"
    maxOccurs="1" minOccurs="1"/>
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="1">
   <classRef key="model.biblLike"
    maxOccurs="unbounded" minOccurs="1"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.milestoneLike"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="relation"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listRelation"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element listBibl
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      tei_desc*,
      ( tei_model.milestoneLike | relation | listRelation )*,
      (
         (
            tei_model.biblLike+,
            ( tei_model.milestoneLike | relation | listRelation )*
         )+
      )
   )
}

Appendix A.1.28 <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.
StatusOptional
Datatypeteidata.truthValue
Defaulttrue
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="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="1">
   <elementRef key="listChange"/>
   <elementRef key="change"/>
  </alternate>
 </sequence>
</content>
    
Schema Declaration
element listChange
{
   tei_att.global.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   attribute ordered { text }?,
   ( tei_desc*, ( tei_listChange | tei_change )+ )
}

Appendix A.1.29 <listEvent>

<listEvent> (list of events) contains a list of descriptions, each of which provides information about an identifiable event. [14.3.1. Basic Principles]
Modulenamesdates
Attributes
Member of
Contained by
textstructure: body
May contain
core: desc
namesdates: event listEvent
Example
<listEvent>  <head>Battles of the American Civil War: Kentucky</head>  <event when="1861-09-19xml:id="event01">   <label>Barbourville</label>   <desc>The Battle of Barbourville was one of the early engagements of      the American Civil War. It occurred September 19, 1861, in Knox      County, Kentucky during the campaign known as the Kentucky Confederate      Offensive. The battle is considered the first Confederate victory in      the commonwealth, and threw a scare into Federal commanders, who      rushed troops to central Kentucky in an effort to repel the invasion,      which was finally thwarted at the <ref target="#event02">Battle of        Camp Wildcat</ref> in October.</desc>  </event>  <event when="1861-10-21xml:id="event02">   <label>Camp Wild Cat</label>   <desc>The Battle of Camp Wildcat (also known as Wildcat Mountain and Camp      Wild Cat) was one of the early engagements of the American Civil      War. It occurred October 21, 1861, in northern Laurel County, Kentucky      during the campaign known as the Kentucky Confederate Offensive. The      battle is considered one of the very first Union victories, and marked      the first engagement of troops in the commonwealth of Kentucky.</desc>  </event>  <event from="1864-06-11to="1864-06-12"   xml:id="event03">   <label>Cynthiana</label>   <desc>The Battle of Cynthiana (or Kellar’s Bridge) was an engagement      during the American Civil War that was fought on June 11 and 12, 1864,      in Harrison County, Kentucky, near the town of Cynthiana. A part of      Confederate Brigadier General John Hunt Morgan's 1864 Raid into      Kentucky, the battle resulted in a victory by Union forces over the      raiders and saved the town from capture.</desc>  </event> </listEvent>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde" value="tei:listEvent"/> </sch:pattern>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="1">
   <classRef key="model.eventLike"
    maxOccurs="unbounded" minOccurs="1"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <elementRef key="relation"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listRelation"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element listEvent
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      tei_desc*,
      ( relation | listRelation )*,
      ( ( tei_model.eventLike+, ( relation | listRelation )* )+ )
   )
}

Appendix A.1.30 <listOrg>

<listOrg> (list of organizations) contains a list of elements, each of which provides information about an identifiable organization. [14.2.2. Organizational Names]
Modulenamesdates
Attributes
Member of
Contained by
corpus: particDesc
namesdates: listOrg org
textstructure: body
May contain
core: desc
namesdates: listOrg org
Note

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

Example
<listOrg>  <head>Libyans</head>  <org>   <orgName>Adyrmachidae</orgName>   <desc>These people have, in most points, the same customs as the Egyptians, but      use the costume of the Libyans. Their women wear on each leg a ring made of      bronze [...]</desc>  </org>  <org>   <orgName>Nasamonians</orgName>   <desc>In summer they leave their flocks and herds upon the sea-shore, and go up      the country to a place called Augila, where they gather the dates from the      palms [...]</desc>  </org>  <org>   <orgName>Garamantians</orgName>   <desc>[...] avoid all society or intercourse with their fellow-men, have no      weapon of war, and do not know how to defend themselves. [...]</desc> <!-- ... -->  </org> </listOrg>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde" value="tei:listOrg"/> </sch:pattern>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="1">
   <alternate maxOccurs="unbounded"
    minOccurs="1">
    <elementRef key="org" maxOccurs="1"
     minOccurs="1"/>
    <elementRef key="listOrg" maxOccurs="1"
     minOccurs="1"/>
   </alternate>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <elementRef key="relation"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listRelation"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element listOrg
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      tei_desc*,
      ( relation | listRelation )*,
      ( ( ( tei_org | tei_listOrg )+, ( relation | listRelation )* )+ )
   )
}

Appendix A.1.31 <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
namesdates: event listPerson org
textstructure: body
May contain
core: desc
namesdates: listPerson org 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 age="midsex="2xml:id="P1234"/>  <person age="midsex="1xml:id="P4332"/>  <listRelation>   <relation mutual="#P1234 #P4332"    name="spousetype="personal"/>  </listRelation> </listPerson>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde"  value="tei:listPerson"/> </sch:pattern>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="1">
   <alternate maxOccurs="unbounded"
    minOccurs="1">
    <classRef key="model.personLike"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listPerson"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <elementRef key="relation"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listRelation"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element listPerson
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      tei_desc*,
      ( relation | listRelation )*,
      (
         (
            ( tei_model.personLike | tei_listPerson )+,
            ( relation | listRelation )*
         )+
      )
   )
}

Appendix A.1.32 <listPlace>

<listPlace> (list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [2.2.7. The Source Description 14.3.4. Places]
Modulenamesdates
Attributes
Member of
Contained by
corpus: settingDesc
namesdates: event listPlace org place
textstructure: body
May contain
core: desc
namesdates: listPlace place
Example
<listPlace type="offshoreIslands">  <place>   <placeName>La roche qui pleure</placeName>  </place>  <place>   <placeName>Ile aux cerfs</placeName>  </place> </listPlace>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde" value="tei:listPlace"/> </sch:pattern>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="desc"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <elementRef key="relation" maxOccurs="1"
    minOccurs="1"/>
   <elementRef key="listRelation"
    maxOccurs="1" minOccurs="1"/>
  </alternate>
  <sequence maxOccurs="unbounded"
   minOccurs="1">
   <alternate maxOccurs="unbounded"
    minOccurs="1">
    <classRef key="model.placeLike"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listPlace"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <elementRef key="relation"
     maxOccurs="1" minOccurs="1"/>
    <elementRef key="listRelation"
     maxOccurs="1" minOccurs="1"/>
   </alternate>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element listPlace
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declarable.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      tei_desc*,
      ( relation | listRelation )*,
      (
         (
            ( tei_model.placeLike | tei_listPlace )+,
            ( relation | listRelation )*
         )+
      )
   )
}

Appendix A.1.33 <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 ref="#HOC001type="person">Occleve</name>
Content model
<content>
 <macroRef key="macro.phraseSeq"/>
</content>
    
Schema Declaration
element name
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.35 <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
ExampleIn 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="bottomresp="#MDMH"  type="gloss">  <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.
ExampleThe 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 anchored="truen="126"> 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.
Content model
<content>
 <macroRef key="macro.specialPara"/>
</content>
    
Schema Declaration
element note
{
   tei_att.global.attributes,
   tei_att.anchoring.attributes,
   tei_att.cmc.attributes,
   tei_att.placement.attributes,
   tei_att.pointing.attributes,
   tei_att.typed.attributes,
   tei_att.written.attributes,
   tei_macro.specialPara
}

Appendix A.1.36 <org>

<org> (organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. [14.3.3. Organizational Data]
Modulenamesdates
Attributes
rolespecifies a primary role or classification for the organization.
StatusOptional
Datatype1–∞ 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, familyGroup, or politicalParty, each of which should be associated with a definition. Such local definitions will typically be provided by a <desc> for each <valItem> element in the schema specification of the project's customization.

Member of
Contained by
May contain
Example
<org xml:id="JAMs">  <orgName>Justified Ancients of Mummu</orgName>  <desc>An underground anarchist collective spearheaded by  <persName>Hagbard Celine</persName>, who fight the Illuminati    from a golden submarine, the <name>Leif Ericson</name>  </desc>  <bibl>   <author>Robert Shea</author>   <author>Robert Anton Wilson</author>   <title>The Illuminatus! Trilogy</title>  </bibl> </org>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate>
   <classRef key="model.pLike"
    maxOccurs="unbounded" minOccurs="0"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.labelLike"/>
    <classRef key="model.nameLike"/>
    <classRef key="model.placeLike"/>
    <classRef key="model.orgPart"/>
    <classRef key="model.milestoneLike"/>
   </alternate>
  </alternate>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.noteLike"/>
   <classRef key="model.biblLike"/>
   <classRef key="model.ptrLike"/>
   <elementRef key="linkGrp"/>
   <elementRef key="link"/>
  </alternate>
  <classRef key="model.personLike"
   maxOccurs="unbounded" minOccurs="0"/>
 </sequence>
</content>
    
Schema Declaration
element org
{
   tei_att.global.attributes,
   tei_att.editLike.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   attribute role { list { + } }?,
   (
      tei_model.headLike*,
      (
         tei_model.pLike*
       | (
            tei_model.labelLike
          | tei_model.nameLike
          | tei_model.placeLike
          | tei_model.orgPart
          | tei_model.milestoneLike
         )*
      ),
      (
         tei_model.noteLike
       | tei_model.biblLike
       | tei_model.ptrLike
       | linkGrp
       | link
      )*,
      tei_model.personLike*
   )
}

Appendix A.1.37 <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:l//tei:p"> <sch:assert test="ancestor::tei:floatingText | parent::tei:figure | parent::tei:note"> Abstract model violation: Metrical 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:assert> </sch:rule>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
    
Schema Declaration
element p
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.declaring.attributes,
   tei_att.fragmentable.attributes,
   tei_att.written.attributes,
   tei_macro.paraContent
}

Appendix A.1.38 <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
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 age="midsex="2xml:id="P-1234">    <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 sex="1xml:id="P-4332">    <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 mutual="#P-1234 #P-4332"     name="spousetype="personal"/>   </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.
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde"  value="tei:particDesc"/> </sch:pattern>
Content model
<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
  <alternate maxOccurs="unbounded"
   minOccurs="1">
   <classRef key="model.personLike"/>
   <elementRef key="listPerson"/>
   <elementRef key="listOrg"/>
  </alternate>
 </alternate>
</content>
    
Schema Declaration
element particDesc
{
   tei_att.global.attributes,
   tei_att.declarable.attributes,
   (
      tei_model.pLike+
    | ( tei_model.personLike | tei_listPerson | tei_listOrg )+
   )
}

Appendix A.1.39 <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.
StatusOptional
Datatype1–∞ 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.
StatusOptional
Datatype1–∞ 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.
StatusOptional
Datatype1–∞ 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.
StatusOptional
Datatypeteidata.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: event listPerson org
May contain
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 age="adultsex="F">  <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 age="immortalrole="god"  sex="intersex">  <persName>Hermaphroditos</persName>  <persName xml:lang="grc">Ἑρμαφρόδιτος</persName> </person>
Example
<person role="poetsex="Mxml:id="Ovi01">  <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 notAfter="0018notBefore="0017">17 or 18 AD <placeName>    <settlement type="city">Tomis (Constanta)</settlement>    <country key="RO">Romania</country>   </placeName>  </death> </person>
ExampleThe following exemplifies an adaptation of the vCard standard to indicate an unknown gender for a fictional character.
<person gender="Uxml:id="ariel">  <persName>Ariel</persName>  <note>Character in <title level="m">The Tempest</title>.</note> </person>
ExampleThis example demonstrates the use of a <ref> element to provide more information about a person.
<person age="G2role="authorsex="F"  xml:id="W0212">  <birth when="1787"/>  <death when="1855"/>  <persName type="main">Mitford, Mary Russell (1787–1855)</persName>  <persName resp="#Nicoll">MITFORD, MARY RUSSELL</persName>  <listBibl type="lacyTitles">   <desc>Lacy's Acting Editions</desc>   <bibl>    <ref target="lacy:L1280">Foscari</ref>   </bibl>   <bibl>    <ref target="lacy:L1337">Rienzi</ref>   </bibl>  </listBibl>  <listRef type="seeAlso">   <ref target="https://www.victorianresearch.org/atcl/show_author.php?aid=1386">ATCL</ref>   <ref target="https://doi.org/10.1093/ref:odnb/18859">ODNB</ref>   <ref target="https://en.wikipedia.org/wiki/Mary_Russell_Mitford">Wikipedia</ref>   <ref target="https://digitalmitford.org">Digital Mitford</ref>  </listRef> </person>
Content model
<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.personPart"/>
   <classRef key="model.global"/>
   <classRef key="model.ptrLike"/>
  </alternate>
 </alternate>
</content>
    
Schema Declaration
element person
{
   tei_att.global.attributes,
   tei_att.editLike.attributes,
   tei_att.sortable.attributes,
   attribute role { list { + } }?,
   attribute sex { list { + } }?,
   attribute gender { list { + } }?,
   attribute age { text }?,
   (
      tei_model.pLike+
    | ( tei_model.personPart | tei_model.global | tei_model.ptrLike )*
   )
}

Appendix A.1.40 <place>

<place> (place) contains data about a geographic location. [14.3.4. Places]
Modulenamesdates
Attributes
Member of
Contained by
corpus: settingDesc
namesdates: event listPlace org place
May contain
Example
<place>  <country>Lithuania</country>  <country xml:lang="lt">Lietuva</country>  <place>   <settlement>Vilnius</settlement>  </place>  <place>   <settlement>Kaunas</settlement>  </place> </place>
Content model
<content>
 <sequence>
  <classRef key="model.headLike"
   maxOccurs="unbounded" minOccurs="0"/>
  <alternate>
   <classRef key="model.pLike"
    maxOccurs="unbounded" minOccurs="0"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <classRef key="model.labelLike"/>
    <classRef key="model.placeStateLike"/>
    <classRef key="model.eventLike"/>
    <elementRef key="name"/>
   </alternate>
  </alternate>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.noteLike"/>
   <classRef key="model.biblLike"/>
   <classRef key="model.ptrLike"/>
   <elementRef key="idno"/>
   <elementRef key="linkGrp"/>
   <elementRef key="link"/>
  </alternate>
  <alternate maxOccurs="unbounded"
   minOccurs="0">
   <classRef key="model.placeLike"/>
   <elementRef key="listPlace"/>
  </alternate>
 </sequence>
</content>
    
Schema Declaration
element place
{
   tei_att.global.attributes,
   tei_att.editLike.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   (
      tei_model.headLike*,
      (
         tei_model.pLike*
       | (
            tei_model.labelLike
          | tei_model.placeStateLike
          | tei_model.eventLike
          | tei_name
         )*
      ),
      (
         tei_model.noteLike
       | tei_model.biblLike
       | tei_model.ptrLike
       | tei_idno
       | linkGrp
       | link
      )*,
      ( tei_model.placeLike | tei_listPlace )*
   )
}

Appendix A.1.41 <placeName>

<placeName> (place name) contains an absolute or relative place name. [14.2.3. Place Names]
Modulenamesdates
Attributes
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
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.editLike.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.42 <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 degree="hightype="entertain"/>   <purpose degree="mediumtype="inform"/>  </textDesc>  <settingDesc>   <setting>    <name>Paris, France</name>    <time>Late 19th century</time>   </setting>  </settingDesc> </profileDesc>
Content model
<content>
 <classRef key="model.profileDescPart"
  maxOccurs="unbounded" minOccurs="0"/>
</content>
    
Schema Declaration
element profileDesc { tei_att.global.attributes, tei_model.profileDescPart* }

Appendix A.1.43 <ptr>

<ptr> (pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 17.1. Links]
Modulecore
Attributes
Member of
Contained by
May containEmpty element
Note

The target and cRef attributes are mutually exclusive.

Example
<ptr target="#p143 #p144"/> <ptr target="http://www.tei-c.org"/> <ptr cRef="1.3.4"/>
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
{
   tei_att.global.attributes,
   tei_att.cReferencing.attributes,
   tei_att.cmc.attributes,
   tei_att.declaring.attributes,
   tei_att.internetMedia.attributes,
   tei_att.pointing.attributes,
   tei_att.typed.attributes,
   empty
}

Appendix A.1.44 <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
{
   tei_att.global.attributes,
   tei_att.naming.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.45 <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 maxOccurs="unbounded"
   minOccurs="1">
   <classRef key="model.publicationStmtPart.agency"/>
   <classRef key="model.publicationStmtPart.detail"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
 </alternate>
</content>
    
Schema Declaration
element publicationStmt
{
   tei_att.global.attributes,
   (
      (
         (
            tei_model.publicationStmtPart.agency,
            tei_model.publicationStmtPart.detail*
         )+
      )
    | tei_model.pLike+
   )
}

Appendix A.1.46 <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
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.47 <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>
Content model
<content>
 <macroRef key="macro.phraseSeq.limited"/>
</content>
    
Schema Declaration
element resp
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   tei_att.datable.attributes,
   tei_macro.phraseSeq.limited
}

Appendix A.1.48 <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
May contain
core: name note resp
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>
Content model
<content>
 <sequence>
  <alternate>
   <sequence>
    <elementRef key="resp"
     maxOccurs="unbounded" minOccurs="1"/>
    <classRef key="model.nameLike.agent"
     maxOccurs="unbounded" minOccurs="1"/>
   </sequence>
   <sequence>
    <classRef key="model.nameLike.agent"
     maxOccurs="unbounded" minOccurs="1"/>
    <elementRef key="resp"
     maxOccurs="unbounded" minOccurs="1"/>
   </sequence>
  </alternate>
  <elementRef key="note"
   maxOccurs="unbounded" minOccurs="0"/>
 </sequence>
</content>
    
Schema Declaration
element respStmt
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   (
      (
         ( tei_resp+, tei_model.nameLike.agent+ )
       | ( tei_model.nameLike.agent+, tei_resp+ )
      ),
      tei_note*
   )
}

Appendix A.1.49 <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="list"
   maxOccurs="unbounded" minOccurs="1"/>
  <elementRef key="listChange"
   maxOccurs="unbounded" minOccurs="1"/>
  <elementRef key="change"
   maxOccurs="unbounded" minOccurs="1"/>
 </alternate>
</content>
    
Schema Declaration
element revisionDesc
{
   tei_att.global.attributes,
   tei_att.docStatus.attributes,
   ( tei_list+ | tei_listChange+ | tei_change+ )
}

Appendix A.1.50 <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
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.51 <settingDesc>

<settingDesc> (setting description) describes the setting or settings within which a language interaction takes place, or other places otherwise referred to in a text, edition, or metadata. [16.2. Contextual Information 2.4. The Profile Description]
Modulecorpus
Attributes
Member of
Contained by
header: profileDesc
May contain
core: p
namesdates: listPlace place
Note

May contain a prose description organized as paragraphs, or a series of <setting> elements. If used to record not settings of language interactions, but other places mentioned in the text, then <place> optionally grouped by <listPlace> inside <standOff> should be preferred.

Example
<settingDesc>  <p>Texts recorded in the    Canadian Parliament building in Ottawa, between April and November 1988 </p> </settingDesc>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde"  value="tei:settingDesc"/> </sch:pattern>
Content model
<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
  <alternate maxOccurs="unbounded"
   minOccurs="1">
   <elementRef key="setting"/>
   <classRef key="model.placeLike"/>
   <elementRef key="listPlace"/>
  </alternate>
 </alternate>
</content>
    
Schema Declaration
element settingDesc
{
   tei_att.global.attributes,
   tei_att.declarable.attributes,
   ( tei_model.pLike+ | ( setting | tei_model.placeLike | tei_listPlace )+ )
}

Appendix A.1.52 <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
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>
Schematron
<sch:pattern is-a="declarable"> <sch:param name="tde"  value="tei:sourceDesc"/> </sch:pattern>
Content model
<content>
 <alternate>
  <classRef key="model.pLike"
   maxOccurs="unbounded" minOccurs="1"/>
  <alternate maxOccurs="unbounded"
   minOccurs="1">
   <classRef key="model.biblLike"/>
   <classRef key="model.sourceDescPart"/>
   <classRef key="model.listLike"/>
  </alternate>
 </alternate>
</content>
    
Schema Declaration
element sourceDesc
{
   tei_att.global.attributes,
   tei_att.declarable.attributes,
   (
      tei_model.pLike+
    | ( tei_model.biblLike | tei_model.sourceDescPart | tei_model.listLike )+
   )
}

Appendix A.1.53 <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
{
   tei_att.global.attributes,
   tei_att.cmc.attributes,
   tei_att.personal.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.54 <taxonomy>

<taxonomy> (taxonomy) defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. [2.3.7. The Classification Declaration]
Moduleheader
Attributes
Contained by
May contain
Note

Nested taxonomies are common in many fields, so the <taxonomy> element can be nested.

Example
<taxonomy xml:id="tax.b">  <bibl>Brown Corpus</bibl>  <category xml:id="tax.b.a">   <catDesc>Press Reportage</catDesc>   <category xml:id="tax.b.a1">    <catDesc>Daily</catDesc>   </category>   <category xml:id="tax.b.a2">    <catDesc>Sunday</catDesc>   </category>   <category xml:id="tax.b.a3">    <catDesc>National</catDesc>   </category>   <category xml:id="tax.b.a4">    <catDesc>Provincial</catDesc>   </category>   <category xml:id="tax.b.a5">    <catDesc>Political</catDesc>   </category>   <category xml:id="tax.b.a6">    <catDesc>Sports</catDesc>   </category>  </category>  <category xml:id="tax.b.d">   <catDesc>Religion</catDesc>   <category xml:id="tax.b.d1">    <catDesc>Books</catDesc>   </category>   <category xml:id="tax.b.d2">    <catDesc>Periodicals and tracts</catDesc>   </category>  </category> </taxonomy>
Example
<taxonomy>  <category xml:id="literature">   <catDesc>Literature</catDesc>   <category xml:id="poetry">    <catDesc>Poetry</catDesc>    <category xml:id="sonnet">     <catDesc>Sonnet</catDesc>     <category xml:id="shakesSonnet">      <catDesc>Shakespearean Sonnet</catDesc>     </category>     <category xml:id="petraSonnet">      <catDesc>Petrarchan Sonnet</catDesc>     </category>    </category>    <category xml:id="haiku">     <catDesc>Haiku</catDesc>    </category>   </category>   <category xml:id="drama">    <catDesc>Drama</catDesc>   </category>  </category>  <category xml:id="meter">   <catDesc>Metrical Categories</catDesc>   <category xml:id="feet">    <catDesc>Metrical Feet</catDesc>    <category xml:id="iambic">     <catDesc>Iambic</catDesc>    </category>    <category xml:id="trochaic">     <catDesc>trochaic</catDesc>    </category>   </category>   <category xml:id="feetNumber">    <catDesc>Number of feet</catDesc>    <category xml:id="pentameter">     <catDesc>>Pentameter</catDesc>    </category>    <category xml:id="tetrameter">     <catDesc>>Tetrameter</catDesc>    </category>   </category>  </category> </taxonomy> <!-- elsewhere in document --> <lg ana="#shakesSonnet #iambic #pentameter">  <l>Shall I compare thee to a summer's day</l> <!-- ... --> </lg>
Content model
<content>
 <alternate>
  <alternate>
   <alternate maxOccurs="unbounded"
    minOccurs="1">
    <elementRef key="category"/>
    <elementRef key="taxonomy"/>
   </alternate>
   <sequence>
    <alternate maxOccurs="unbounded"
     minOccurs="1">
     <classRef key="model.descLike"
      maxOccurs="1" minOccurs="1"/>
     <elementRef key="equiv" maxOccurs="1"
      minOccurs="1"/>
     <elementRef key="gloss" maxOccurs="1"
      minOccurs="1"/>
    </alternate>
    <alternate maxOccurs="unbounded"
     minOccurs="0">
     <elementRef key="category"/>
     <elementRef key="taxonomy"/>
    </alternate>
   </sequence>
  </alternate>
  <sequence>
   <classRef key="model.biblLike"/>
   <alternate maxOccurs="unbounded"
    minOccurs="0">
    <elementRef key="category"/>
    <elementRef key="taxonomy"/>
   </alternate>
  </sequence>
 </alternate>
</content>
    
Schema Declaration
element taxonomy
{
   tei_att.global.attributes,
   tei_att.datcat.attributes,
   (
      (
         ( tei_category | tei_taxonomy )+
       | (
            ( tei_model.descLike | equiv | gloss )+,
            ( tei_category | tei_taxonomy )*
         )
      )
    | ( tei_model.biblLike, ( tei_category | tei_taxonomy )* )
   )
}

Appendix A.1.55 <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>
  <elementRef key="fileDesc"/>
  <classRef key="model.teiHeaderPart"
   maxOccurs="unbounded" minOccurs="0"/>
  <elementRef key="revisionDesc"
   minOccurs="0"/>
 </sequence>
</content>
    
Schema Declaration
element teiHeader
{
   tei_att.global.attributes,
   ( tei_fileDesc, tei_model.teiHeaderPart*, tei_revisionDesc? )
}

Appendix A.1.56 <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 rend="scxml:id="TDPV1">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
{
   tei_att.global.attributes,
   tei_att.cReferencing.attributes,
   tei_att.canonical.attributes,
   tei_att.cmc.attributes,
   tei_att.declaring.attributes,
   tei_att.pointing.attributes,
   tei_att.sortable.attributes,
   tei_att.typed.attributes,
   tei_macro.phraseSeq
}

Appendix A.1.57 <text>

<text> (text) contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [4. Default Text Structure 16.1. Varieties of Composite Text]
Moduletextstructure
Attributes
Member of
Contained by
textstructure: TEI
May contain
core: note
textstructure: body
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>   <docTitle>    <titlePart>Autumn Haze</titlePart>   </docTitle>  </front>  <body>   <l>Is it a dragonfly or a maple leaf</l>   <l>That settles softly down upon the water?</l>  </body> </text>
ExampleThe body of a text may be replaced by a group of nested texts, as in the following schematic:
<text>  <front> <!-- front matter for the whole group -->  </front>  <group>   <text> <!-- first text -->   </text>   <text> <!-- second text -->   </text>  </group> </text>
Content model
<content>
 <sequence>
  <classRef key="model.global"
   maxOccurs="unbounded" minOccurs="0"/>
  <sequence minOccurs="0">
   <elementRef key="front"/>
   <classRef key="model.global"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
  <alternate>
   <elementRef key="body"/>
   <elementRef key="group"/>
  </alternate>
  <classRef key="model.global"
   maxOccurs="unbounded" minOccurs="0"/>
  <sequence minOccurs="0">
   <elementRef key="back"/>
   <classRef key="model.global"
    maxOccurs="unbounded" minOccurs="0"/>
  </sequence>
 </sequence>
</content>
    
Schema Declaration
element text
{
   tei_att.global.attributes,
   tei_att.declaring.attributes,
   tei_att.typed.attributes,
   tei_att.written.attributes,
   (
      tei_model.global*,
      ( ( front, tei_model.global* )? ),
      ( tei_body | group ),
      tei_model.global*,
      ( ( back, tei_model.global* )? )
   )
}

Appendix A.1.58 <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
StatusOptional
Datatypeteidata.enumerated
Sample values include:
main
main title
sub
(subordinate) subtitle, title of part
alt
(alternate) alternate title, often in another language, by which the work is also known
short
abbreviated form of title
desc
(descriptive) descriptive paraphrase of the work functioning as a 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.

levelindicates the bibliographic level for a title, that is, whether it identifies an article, book, journal, series, or unpublished material.
StatusOptional
Datatypeteidata.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>
Content model
<content>
 <macroRef key="macro.paraContent"/>
</content>
    
Schema Declaration
element title
{
   tei_att.global.attributes,
   tei_att.canonical.attributes,
   tei_att.cmc.attributes,
   tei_att.datable.attributes,
   tei_att.typed.attribute.subtype,
   attribute type { text }?,
   attribute level { "a" | "m" | "j" | "s" | "u" }?,
   tei_macro.paraContent
}

Appendix A.1.59 <titleStmt>

<titleStmt> (title statement) groups information about the title of a work and those responsible for its content. [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>
Content model
<content>
 <sequence>
  <elementRef key="title"
   maxOccurs="unbounded" minOccurs="1"/>
  <classRef key="model.respLike"
   maxOccurs="unbounded" minOccurs="0"/>
 </sequence>
</content>
    
Schema Declaration
element titleStmt
{
   tei_att.global.attributes,
   ( tei_title+, tei_model.respLike* )
}

Appendix A.2 Model classes

Appendix A.2.1 model.addressLike

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

Appendix A.2.2 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

Appendix A.2.3 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

Appendix A.2.4 model.biblLike

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

Appendix A.2.5 model.biblPart

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

Appendix A.2.6 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] model.biblLike[bibl listBibl] model.egLike model.labelLike[desc] model.listLike[list listEvent listOrg listPerson listPlace] model.oddDecl model.stageLike]
Note

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

Appendix A.2.7 model.dateLike

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

Appendix A.2.8 model.descLike

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

Appendix A.2.9 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

Appendix A.2.10 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.

Appendix A.2.11 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] model.divWrapper

Appendix A.2.12 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

Appendix A.2.13 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
Membersterm title

Appendix A.2.14 model.encodingDescPart

model.encodingDescPart groups elements which may be used inside <encodingDesc> and appear multiple times.
Moduletei
Used by
MembersclassDecl

Appendix A.2.15 model.eventLike

model.eventLike groups elements which describe events.
Moduletei
Used by
Membersevent listEvent

Appendix A.2.16 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 model.global.meta model.milestoneLike model.noteLike[note]

Appendix A.2.17 model.highlighted

model.highlighted groups phrase-level elements which are typographically distinct. [3.3. Highlighting and Quotation]
Moduletei
Used by
Membersmodel.emphLike[term title] model.hiLike

Appendix A.2.18 model.imprintPart

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

Appendix A.2.19 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] model.biblLike[bibl listBibl] model.egLike model.labelLike[desc] model.listLike[list listEvent listOrg listPerson listPlace] model.oddDecl model.stageLike

Appendix A.2.20 model.labelLike

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

Appendix A.2.21 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[term title] model.hiLike model.pPart.data[model.addressLike[affiliation] model.dateLike[date] model.measureLike model.nameLike[model.nameLike.agent[name] model.offsetLike model.persNamePart[forename nameLink roleName surname] model.placeStateLike[model.placeNamePart[bloc country placeName]] eventName idno]] model.pPart.editorial model.pPart.msdesc model.phrase.xml model.ptrLike[ptr]

Appendix A.2.22 model.listLike

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

Appendix A.2.23 model.nameLike

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

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

Appendix A.2.24 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
Note

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

Appendix A.2.25 model.noteLike

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

Appendix A.2.26 model.orgPart

model.orgPart groups elements which form part of the description of an organization.
Moduletei
Used by
Membersmodel.eventLike[event listEvent] listOrg listPerson listPlace

Appendix A.2.27 model.pLike

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

Appendix A.2.28 model.pPart.data

Appendix A.2.29 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 model.pPart.transcriptional

Appendix A.2.30 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 model.global.meta model.milestoneLike model.noteLike[note]] model.inter[model.attributable[model.quoteLike] model.biblLike[bibl listBibl] model.egLike model.labelLike[desc] model.listLike[list listEvent listOrg listPerson listPlace] model.oddDecl model.stageLike] model.lLike model.phrase[model.graphicLike model.highlighted[model.emphLike[term title] model.hiLike] model.lPart model.pPart.data[model.addressLike[affiliation] model.dateLike[date] model.measureLike model.nameLike[model.nameLike.agent[name] model.offsetLike model.persNamePart[forename nameLink roleName surname] model.placeStateLike[model.placeNamePart[bloc country placeName]] eventName idno]] model.pPart.edit[model.pPart.editorial model.pPart.transcriptional] model.pPart.msdesc model.phrase.xml model.ptrLike[ptr] model.segLike model.specDescLike]

Appendix A.2.31 model.persNamePart

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

Appendix A.2.32 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 gender
Note

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

Appendix A.2.33 model.personLike

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

Appendix A.2.34 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[event listEvent] model.persStateLike[affiliation gender] idno name

Appendix A.2.35 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 model.highlighted[model.emphLike[term title] model.hiLike] model.lPart model.pPart.data[model.addressLike[affiliation] model.dateLike[date] model.measureLike model.nameLike[model.nameLike.agent[name] model.offsetLike model.persNamePart[forename nameLink roleName surname] model.placeStateLike[model.placeNamePart[bloc country placeName]] eventName idno]] model.pPart.edit[model.pPart.editorial model.pPart.transcriptional] model.pPart.msdesc model.phrase.xml model.ptrLike[ptr] model.segLike model.specDescLike
Note

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

Appendix A.2.36 model.placeLike

model.placeLike groups elements used to provide information about places and their relationships.
Moduletei
Used by
Membersplace

Appendix A.2.37 model.placeNamePart

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

Appendix A.2.38 model.placeStateLike

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

Appendix A.2.39 model.profileDescPart

model.profileDescPart groups elements which may be used inside <profileDesc> and appear multiple times.
Moduletei
Used by
MembersparticDesc settingDesc

Appendix A.2.40 model.ptrLike

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

Appendix A.2.41 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.

Appendix A.2.42 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] availability date idno pubPlace
Note

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

See also model.publicationStmtPart.agency.

Appendix A.2.43 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

Appendix A.2.44 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
Memberseditor respStmt

Appendix A.2.45 model.teiHeaderPart

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

Appendix A.3 Attribute classes

Appendix A.3.1 att.anchoring

att.anchoring (anchoring) provides attributes for use on annotations, e.g. notes and groups of notes describing the existence and position of an anchor for annotations.
Moduletei
Membersnote
Attributes
anchored(anchored) indicates whether the copy text shows the exact place of reference for the note.
StatusOptional
Datatypeteidata.truthValue
Defaulttrue
Note

In modern texts, notes are usually anchored by means of explicit footnote or endnote symbols. An explicit indication of the phrase or line annotated may however be used instead (e.g. ‘page 218, lines 3–4’). The anchored attribute indicates whether any explicit location is given, whether by symbol or by prose cross-reference. The value true indicates that such an explicit location is indicated in the copy text; the value false indicates that the copy text does not indicate a specific place of attachment for the note. If the specific symbols used in the copy text at the location the note is anchored are to be recorded, use the n attribute.

targetEnd(target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
Note

This attribute is retained for backwards compatibility; it may be removed at a subsequent release of the Guidelines. The recommended way of pointing to a span of elements is by means of the range function of XPointer, as further described in 17.2.4.6. range().

Example
<p>(...) tamen reuerendos dominos archiepiscopum et canonicos Leopolienses necnon episcopum in duplicibus Quatuortemporibus<anchor xml:id="A55234"/> totaliter expediui...</p> <!-- elsewhere in the document --> <noteGrp targetEnd="#A55234">  <note xml:lang="en"> Quatuor Tempora, so called dry fast days.  </note>  <note xml:lang="pl"> Quatuor Tempora, tzw. Suche dni postne.  </note> </noteGrp>

Appendix A.3.2 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
Memberschange
Attributes
whoindicates the person, or group of people, to whom the element content is ascribed.
StatusOptional
Datatype1–∞ 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.

Appendix A.3.3 att.cReferencing

att.cReferencing provides attributes that may be used to supply a canonical reference as a means of identifying the target of a pointer.
Moduletei
Membersptr term
Attributes
cRef(canonical reference) specifies the destination of the pointer by supplying a canonical reference expressed using the scheme defined in a <refsDecl> element in the TEI header.
StatusOptional
Datatypeteidata.text
Note

The value of cRef should be constructed so that when the algorithm for the resolution of canonical references (described in section 17.2.5. Canonical References) is applied to it the result is a valid URI reference to the intended target.

The <refsDecl> to use may be indicated with the decls attribute.

Currently these Guidelines only provide for a single canonical reference to be encoded on any given <ptr> element.

Appendix A.3.4 att.calendarSystem

att.calendarSystem provides attributes for indicating calendar systems to which a date belongs. [3.6.4. Dates and Times 14.4. Dates]
Moduletei
Membersdate
Attributes
calendarindicates one or more systems or calendars to which the date represented by the content of this element belongs.
StatusOptional
Datatype1–∞ 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>
He was born on <date calendar="#gregorian">Feb. 22, 1732</date> (<date calendar="#julian"  when="1732-02-22">Feb. 11, 1731/32, O.S.</date>).
He was born on <date calendar="#gregorian #julian"  when="1732-02-22">Feb. 22, 1732 (Feb. 11, 1731/32, O.S.)</date>.
Note

Note that the calendar attribute declares the calendar system used to interpret the textual content of an element, as it appears on an original source. It does not modify the interpretation of the normalization attributes provided by att.datable.w3c, att.datable.iso, or att.datable.custom. Attributes from those first two classes are always interpreted as Gregorian or proleptic Gregorian dates, as per the respective standards on which they are based. The calender system used to interpret the last (att.datable.custom) may be specified with datingMethod.

Appendix A.3.5 att.canonical

att.canonical provides attributes that can be used to associate a representation such as a name or title with canonical information about the object being named or referenced. [14.1.1. Linking Names and Their Referents]
Moduletei
Membersatt.naming[att.personal[eventName forename name placeName roleName surname] affiliation bloc country editor event pubPlace] bibl catDesc date publisher resp respStmt term title
Attributes
keyprovides an externally-defined means of identifying the entity (or entities) being named, using a coded value of some kind.
StatusOptional
Datatypeteidata.text
<author>  <name key="Hugo, Victor (1802-1885)"   ref="http://www.idref.fr/026927608">Victor Hugo</name> </author>
Note

The value may be a unique identifier from a database, or any other externally-defined string identifying the referent. No particular syntax is proposed for the values of the key attribute, since its form will depend entirely on practice within a given project.

ref(reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
<name ref="http://viaf.org/viaf/109557338"  type="person">Seamus Heaney</name>
Note

The value must point directly to one or more XML elements or other resources by means of one or more URIs, separated by whitespace. If more than one is supplied the implication is that the name identifies several distinct entities.

ExampleIn this contrived example, a canonical reference to the same organisation is provided in four different ways.
<author n="1">  <name ref="http://nzetc.victoria.ac.nz/tm/scholarly/name-427308.html"   type="organisation">New Zealand Parliament, Legislative Council</name> </author>   <author n="2">  <name ref="nzvn:427308"   type="organisation">New Zealand Parliament, Legislative Council</name> </author>   <author n="3">  <name ref="./named_entities.xml#o427308"   type="organisation">New Zealand Parliament, Legislative Council</name> </author>   <author n="4">  <name key="name-427308"   type="organisation">New Zealand Parliament, Legislative Council</name> </author>
The first presumes the availability of an internet connection and a processor that can resolve a URI (most can). The second requires, in addition, a <prefixDef> that declares how the nzvm prefix should be interpreted. The third does not require an internet connection, but does require that a file named named_entities.xml be in the same directory as the TEI document. The fourth requires that an entire external system for key resolution be available.
Note

The key attribute is more flexible and general-purpose, but its use in interchange requires that documentation about how the key is to be resolved be sent to the recipient of the TEI document. In contrast values of the ref attribute are resolved using the widely accepted protocols for a URI, and thus less documentation, if any, is likely required by the recipient in data interchange.

These guidelines provide no semantic basis or suggested precedence when both key and ref are provided. For this reason simultaneous use of both is not recommended unless documentation explaining the use is provided, probably in an ODD customization, for interchange.

Appendix A.3.6 att.cmc

att.cmc (computer-mediated communication) provides attributes categorizing how the element content was created in a CMC environment.
Moduletei
Membersaffiliation bibl bloc country date desc forename idno list listBibl listEvent listOrg listPerson listPlace name nameLink note p placeName ptr roleName surname term title
Attributes
generatedBy(generated by) categorizes how the content of an element was generated in a CMC environment.
StatusOptional
Datatypeteidata.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 generatedBy="system"  rend="color:blue"  type="event"  who="#system">  <p>   <name corresp="#A02"    type="nickname">McMike</name> geht    in einen anderen Raum: <name type="roomname">Kreuzfahrt</name>  </p> </post>
automatic system message in chat: user enters a chatroom
<post generatedBy="system"  type="event">  <p>   <name corresp="#A08"    type="nickname">c_bo</name> betritt    den Raum. </p> </post>
automatic system message in chat: user changes his font color
<post generatedBy="system"  rend="color:red"  type="event">  <p>   <name corresp="#A08"    type="nickname">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 generatedBy="human"  indentLevel="2"  synch="#t00394407"  type="standard"  who="#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 generatedBy="human"  type="written"> <!-- ... main content of posting ... -->  <signed generatedBy="template">   <gap reason="signatureContent"/>   <time generatedBy="template">12:01, 12. Jun. 2009 (CEST)</time>  </signed> </post>

Appendix A.3.7 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 bloc change country date editor event eventName gender idno licence name placeName resp title
Attributes
periodsupplies pointers to one or more definitions of named periods of time (typically <category>s, <date>s, or <event>s) within which the datable item is understood to have occurred.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
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.

Appendix A.3.8 att.datable.custom

att.datable.custom provides attributes for normalization of elements that contain datable events to a custom dating system (i.e. other than the Gregorian used by W3 and ISO). [14.4. Dates]
Modulenamesdates
Membersatt.datable[affiliation bloc change country date editor event eventName gender idno licence name placeName resp title]
Attributes
when-customsupplies the value of a date or time in some custom standard form.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
The following are examples of custom date or time formats that are not valid ISO or W3C format normalizations, normalized to a different dating system
<p>Alhazen died in Cairo on the <date when="1040-03-06"   when-custom="431-06-12"> 12th day of Jumada t-Tania, 430 AH  </date>.</p> <p>The current world will end at the <date when="2012-12-21"   when-custom="13.0.0.0.0">end of B'ak'tun 13</date>.</p> <p>The Battle of Meggidu (<date when-custom="Thutmose_III:23">23rd year of reign of Thutmose III</date>).</p> <p>Esidorus bixit in pace annos LXX plus minus sub <date when-custom="Ind:4-10-11">die XI mensis Octobris indictione IIII</date> </p>
Not all custom date formulations will have Gregorian equivalents.The when-custom attribute and other custom dating are not constrained to a datatype by the TEI, but individual projects are recommended to regularize and document their dating formats.
notBefore-customspecifies the earliest possible date for the event in some custom standard form.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
notAfter-customspecifies the latest possible date for the event in some custom standard form.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
from-customindicates the starting point of the period in some custom standard form.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
<event datingMethod="#julian"  from-custom="1666-09-02"  to-custom="1666-09-05"  xml:id="FIRE1">  <head>The Great Fire of London</head>  <p>The Great Fire of London burned through a large part    of the city of London.</p> </event>
to-customindicates the ending point of the period in some custom standard form.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
datingPointsupplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred.
StatusOptional
Datatypeteidata.pointer
datingMethodsupplies a pointer to a <calendar> element or other means of interpreting the values of the custom dating attributes.
StatusOptional
Datatypeteidata.pointer
Contayning the Originall, Antiquity, Increaſe, Moderne eſtate, and deſcription of that Citie, written in the yeare <date calendar="#julian"  datingMethod="#julian"  when-custom="1598">1598</date>. by Iohn Stow Citizen of London.
In this example, the calendar attribute points to a <calendar> element for the Julian calendar, specifying that the text content of the <date> element is a Julian date, and the datingMethod attribute also points to the Julian calendar to indicate that the content of the when-custom attribute value is Julian too.
<date datingMethod="#creationOfWorld"  when="1382-06-28"  when-custom="6890-06-20"> μηνὶ Ἰουνίου εἰς <num>κ</num> ἔτους <num>ςωϞ</num> </date>
In this example, a date is given in a Mediaeval text measured ‘from the creation of the world’, which is normalized (in when) to the Gregorian date, but is also normalized (in when-custom) to a machine-actionable, numeric version of the date from the Creation.
Note

Note that the datingMethod attribute (unlike calendar defined in att.datable) defines the calendar or dating system to which the date described by the parent element is normalized (i.e. in the when-custom or other X-custom attributes), not the calendar of the original date in the element.

Appendix A.3.9 att.datable.iso

att.datable.iso provides attributes for normalization of elements that contain datable events using the ISO 8601:2004 standard. [3.6.4. Dates and Times 14.4. Dates]
Modulenamesdates
Membersatt.datable[affiliation bloc change country date editor event eventName gender idno licence name placeName resp title]
Attributes
when-isosupplies the value of a date or time in a standard form.
StatusOptional
Datatypeteidata.temporal.iso
The following are examples of ISO date, time, and date & time formats that are not valid W3C format normalizations.
<date when-iso="1996-09-24T07:25+00">Sept. 24th, 1996 at 3:25 in the morning</date> <date when-iso="1996-09-24T03:25-04">Sept. 24th, 1996 at 3:25 in the morning</date> <time when-iso="1999-01-04T20:42-05">4 Jan 1999 at 8:42 pm</time> <time when-iso="1999-W01-1T20,70-05">4 Jan 1999 at 8:42 pm</time> <date when-iso="2006-05-18T10:03">a few minutes after ten in the morning on Thu 18 May</date> <time when-iso="03:00">3 A.M.</time> <time when-iso="14">around two</time> <time when-iso="15,5">half past three</time>
All of the examples of the when attribute in the att.datable.w3c class are also valid with respect to this attribute.
He likes to be punctual. I said <q>  <time when-iso="12">around noon</time> </q>, and he showed up at <time when-iso="12:00:00">12 O'clock</time> on the dot.
The second occurrence of <time> could have been encoded with the when attribute, as 12:00:00 is a valid time with respect to the W3C XML Schema Part 2: Datatypes Second Edition specification. The first occurrence could not.
notBefore-isospecifies the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.temporal.iso
notAfter-isospecifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.temporal.iso
from-isoindicates the starting point of the period in standard form.
StatusOptional
Datatypeteidata.temporal.iso
to-isoindicates the ending point of the period in standard form.
StatusOptional
Datatypeteidata.temporal.iso
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 ISO 8601:2004, using the Gregorian calendar.

If both when-iso and dur-iso are specified, the values should be interpreted as indicating a span of time by its starting time (or date) and duration. That is,
<date dur-iso="P8Dwhen-iso="2007-06-01"/>
indicates the same time period as
<date when-iso="2007-06-01/P8D"/>

In providing a ‘regularized’ form, no claim is made that the form in the source text is incorrect; the regularized form is simply that chosen as the main form for purposes of unifying variant forms under a single heading.

Appendix A.3.10 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 bloc change country date editor event eventName gender idno licence name placeName resp title]
Attributes
whensupplies the value of the date or time in a standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.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="#julian"  when="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.
StatusOptional
Datatypeteidata.temporal.w3c
notAfterspecifies the latest possible date for the event in standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.temporal.w3c
fromindicates the starting point of the period in standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.temporal.w3c
toindicates the ending point of the period in standard form, e.g. yyyy-mm-dd.
StatusOptional
Datatypeteidata.temporal.w3c
Schematron
<sch:rule context="tei:*[@when]"> <sch:report role="nonfatal"  test="@notBefore|@notAfter|@from|@to">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 role="nonfatal"  test="@notBefore">The @from and @notBefore attributes cannot be used together.</sch:report> </sch:rule>
Schematron
<sch:rule context="tei:*[@to]"> <sch:report role="nonfatal"  test="@notAfter">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.

Appendix A.3.11 att.datcat

att.datcat provides attributes that are used to align XML elements or attributes with the appropriate Data Categories (DCs) defined by an external taxonomy, in this way establishing the identity of information containers and values, and providing means of interpreting them. [10.5.2. Lexical View 19.3. Other Atomic Feature Values]
Moduletei
Memberscategory taxonomy
Attributes
datcatprovides a pointer to a definition of, and/or general information about, (a) an information container (element or attribute) or (b) a value of an information container (element content or attribute value), by referencing an external taxonomy or ontology. If valueDatcat is present in the immediate context, this attribute takes on role (a), while valueDatcat performs role (b).
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
valueDatcatprovides a definition of, and/or general information about a value of an information container (element content or attribute value), by reference to an external taxonomy or ontology. Used especially where a contrast with datcat is needed.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
targetDatcatprovides a definition of, and/or general information about, information structure of an object referenced or modeled by the containing element, by reference to an external taxonomy or ontology. This attribute has the characteristics of the datcat attribute, except that it addresses not its containing element, but an object that is being referenced or modeled by its containing element.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
ExampleThe example below presents the TEI encoding of the name-value pair <part of speech, common noun>, where the name (key) ‘part of speech’ is abbreviated as ‘POS’, and the value, ‘common noun’ is symbolized by ‘NN’. The entire name-value pair is encoded by means of the element <f>. In TEI XML, that element acts as the container, labeled with the name attribute. Its contents may be complex or simple. In the case at hand, the content is the symbol ‘NN’.The datcat attribute relates the feature name (i.e., the key) to the data category ‘part of speech’, while the attribute valueDatcat relates the feature value to the data category common noun. Both these data categories should be defined in an external and preferably open reference taxonomy or ontology.
<fs>  <f datcat="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3"   name="POS">   <symbol value="NN"    valueDatcat="http://hdl.handle.net/11459/CCR_C-1256_7ec6083c-23d4-224d-6f94-eecbe6861545"/>  </f> <!-- ... --> </fs>
‘NN’ is the symbol for common noun used e.g. in the CLAWS-7 tagset defined by the University Centre for Computer Corpus Research on Language at the University of Lancaster. The very same data category used for tagging an early version of the British National Corpus, and coming from the BNC Basic (C5) tagset, uses the symbol ‘NN0’ (rather than ‘NN’). Making these values semantically interoperable would be extremely difficult without a human expert if they were not anchored in a single point of an established reference taxonomy of morphosyntactic data categories. In the case at hand, the string http://hdl.handle.net/11459/CCR_C-1256_7ec6083c-23d4-224d-6f94-eecbe6861545 is both a persistent identifier of the data category in question, as well as a pointer to a shared definition of common noun.While the symbols ‘NN’, ‘NN0’, and many others (often coming from languages other than English) are implicitly members of the container category ‘part of speech’, it is sometimes useful not to rely on such an implicit relationship but rather use an explicit identifier for that data category, to distinguish it from other morphosyntactic data categories, such as gender, tense, etc. For that purpose, the above example uses the datcat attribute to reference a definition of part of speech. The reference taxonomy in this example is the CLARIN Concept Registry.If the feature structure markup exemplified above is to be repeated many times in a single document, it is much more efficient to gather the persistent identifiers in a single place and to only reference them, implicitly or directly, from feature structure markup. The following example is much more concise than the one above and relies on the concepts of feature structure declaration and feature value library, discussed in chapter [[undefined FS]].
<fs>  <f fVal="#commonNounname="POS"/> <!-- ... --> </fs>
The assumption here is that the relevant feature values are collected in a place that the annotation document in question has access to — preferably, a single document per linguistic resource, for example an <fsdDecl> that is XIncluded as a sibling of <text> or a child of <encodingDesc>; a <taxonomy> available resource-wide (e.g., in a shared header) is also an option.The example below presents an <fvLib> element that collects the relevant feature values (most of them omitted). At the same time, this example shows one way of encoding a tagset, i.e., an established inventory of values of (in the case at hand) morphosyntactic categories.
<fvLib n="POS values">  <symbol datcat="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3"   value="NNxml:id="commonNoun"/>  <symbol datcat="http://hdl.handle.net/11459/CCR_C-1371_fbebd9ec-a7f4-9a36-d6e9-88ee16b944ae"   value="NPxml:id="properNoun"/> <!-- ... --> </fvLib>
Note that these Guidelines do not prescribe a specific choice between datcat and valueDatcat in such cases. The former is the generic way of referencing a data category, whereas the latter is more specific, in that it references a data category that represents a value. The choice between them comes into play where a single element — or a tight element complex, such as the <f>/<symbol> complex illustrated above — make it necessary or useful to distinguish between the container data category and its value.
ExampleIn the context of dictionaries designed with semantic interoperability in mind, the following example ensures that the <pos> element is interpreted as the same information container as in the case of the example of <f name="POS"> above.
<gramGrp>  <pos datcat="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3"   valueDatcat="http://hdl.handle.net/11459/CCR_C-1256_7ec6083c-23d4-224d-6f94-eecbe6861545">NN</pos> </gramGrp>
Efficiency of this type of interoperable markup demands that the references to the particular data categories should best be provided in a single place within the dictionary (or a single place within the project), rather than being repeated inside every entry. For the container elements, this can be achieved at the level of <tagUsage>, although here, the valueDatcat attribute should be used, because it is not the <tagUsage> element that is associated with the relevant data category, but rather the element <pos> (or <case>, etc.) that is described by <tagUsage>:
<tagsDecl partial="true"> <!-- ... -->  <namespace name="http://www.tei-c.org/ns/1.0">   <tagUsage gi="pos"    targetDatcat="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3">Contains the part of speech.</tagUsage>   <tagUsage gi="case"    targetDatcat="http://hdl.handle.net/11459/CCR_C-1840_9f4e319c-f233-6c90-9117-7270e215f039">Contains information about the grammatical case that the described form is inflected for.</tagUsage> <!-- ... -->  </namespace> </tagsDecl>
Another possibility is to shorten the URIs by means of the <prefixDef> mechanism, as illustrated below:
<listPrefixDef>  <prefixDef ident="ccrmatchPattern="pos"   replacementPattern="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3"/>  <prefixDef ident="ccrmatchPattern="adj"   replacementPattern="http://hdl.handle.net/11459/CCR_C-1230_23653c21-fca1-edf8-fd7c-3df2d6499157"/> </listPrefixDef> <!-- ... --> <entry> <!--...-->  <form>   <orth>isotope</orth>  </form>  <gramGrp>   <pos datcat="ccr:pos"    valueDatcat="ccr:adj">adj</pos>  </gramGrp> <!--...--> </entry>
This mechanism creates implications that are not always wanted, among others, in the case at hand, suggesting that the identifiers ‘pos’ and ‘adj’ belong to a namespace associated with the CLARIN Concept Repository (CCR), whereas that is solely a shorthand mechanism whose scope is the current resource. Documenting this clearly in the header of the dictionary is therefore advised.Yet another possibility is to associate the information about the relationship between a TEI markup element and the data category that it is intended to model already at the level of modeling the dictionary resource, that is, at the level of the ODD, in the <equiv> element that is a child of <elementSpec> or <attDef>.
ExampleThe <taxonomy> element is a handy tool for encoding taxonomies that are later referenced by att.datcat attributes, but it can also act as an intermediary device, for example holding a fragment of an external taxonomy (or ‘flattening’ an external ontology) that is relevant to the project or document at hand. (It is also imaginable that, for the purpose of the project at hand, the local <taxonomy> element combines vocabularies that originate from more than one external taxonomy or ontology.) In such cases, the <taxonomy> creates a local layer of indirection: the att.datcat attributes internal to the resource may reference the <category> elements stored in the header (as well as the <taxonomy> element itself), whereas these same <category> and <taxonomy> elements use att.datcat attributes to reference the original taxonomy or ontology.
<encodingDesc> <!-- ... -->  <classDecl> <!-- ... -->   <taxonomy datcat="https://universaldependencies.org/u/dep/index.html"    xml:id="UD-SYN">    <desc>     <term>UD syntactic relations</term>    </desc>    <category valueDatcat="https://universaldependencies.org/u/dep/acl.html"     xml:id="acl">     <catDesc>      <term>acl</term>: Clausal modifier of noun (adjectival clause)</catDesc>    </category>    <category valueDatcat="https://universaldependencies.org/u/dep/acl-relcl.html"     xml:id="acl_relcl">     <catDesc>      <term>acl:relcl</term>: relative clause modifier</catDesc>    </category>    <category valueDatcat="https://universaldependencies.org/u/dep/advcl.html"     xml:id="advcl">     <catDesc>      <term>advcl</term>: Adverbial clause modifier</catDesc>    </category> <!-- ... -->   </taxonomy>  </classDecl> </encodingDesc>
The above fragment was excerpted from the GB subset of the ParlaMint project in April 2023, and enriched with att.datcat attributes for the purpose of illustrating the mechanism described here.Note that, in the ideal case, the values of att.datcat attributes should be persistent identifiers, and that the addressing scheme of Universal Dependencies is treated here as persistent for the sake of illustration. Note also that the contrast between datcat used on <taxonomy> on the one hand, and the valueDatcat used on <category> on the other, is not mandatory: both kinds of relations could be encoded by means of the generic datcat attribute, but using the former for the container and the latter for the content is more user-friendly.
ExampleThe targetDatcat attribute is designed to be used in, e.g., feature structure declarations, and is analogous to the targetLang attribute of the att.pointing class, in that it describes the object that is being referenced, rather than the referencing object.
<fDecl name="POS"  targetDatcat="http://hdl.handle.net/11459/CCR_C-396_5a972b93-2294-ab5c-a541-7c344c5f26c3">  <fDescr>part of speech (morphosyntactic category)</fDescr>  <vRange>   <vAlt>    <symbol datcat="http://hdl.handle.net/11459/CCR_C-1256_7ec6083c-23d4-224d-6f94-eecbe6861545"     value="NN"/>    <symbol datcat="http://hdl.handle.net/11459/CCR_C-1371_fbebd9ec-a7f4-9a36-d6e9-88ee16b944ae"     value="NP"/> <!-- ... -->   </vAlt>  </vRange> </fDecl>
Above, the <fDecl> uses targetDatcat, because if it were to use datcat, it would be asserting that it is an instance of the container data category part of speech, whereas it is not — it models a container (<f>) that encodes a part of speech. Note also that it is the <f> that is modeled above, not its values, which are used as direct references to data categories; hence the use of datcat in the <symbol> element.
ExampleThe att.datcat attributes can be used for any sort of taxonomies. The example below illustrates their usefulness for describing usage domain labels in dictionaries on the example of the Diccionario da Lingua Portugueza by António de Morais Silva, retro-digitised in the MORDigital project.
<!-- in the dictionary header --><encodingDesc>  <classDecl>   <taxonomy xml:id="domains"> <!--...-->    <category xml:id="domain.medical_and_health_sciences">     <catDesc xml:lang="en">Medical and Health Sciences</catDesc>     <catDesc xml:lang="pt">Ciências Médicas e da Saúde</catDesc>     <category valueDatcat="https://vocabs.rossio.fcsh.unl.pt/pub/morais_domains/pt/page/0025"      xml:id="domain.medical_and_health_sciences.medicine">      <catDesc xml:lang="en">       <term>Medicine</term>       <gloss> <!--...-->       </gloss>      </catDesc>      <catDesc xml:lang="pt">       <term>Medicina</term>       <gloss> <!--...-->       </gloss>      </catDesc>     </category>    </category> <!--...-->   </taxonomy>  </classDecl> </encodingDesc> <!-- inside an <entry> element: --> <usg type="domain"  valueDatcat="#domain.medical_and_health_sciences.medicine">Med.</usg>
In the Morais dictionary, the relevant domain labels are in the header, getting referenced inside the dictionary, from <usg> elements. The vocabulary used for dictionary-internal labelling is in turn anchored in the MorDigital controlled vocabulary service of the NOVA University of Lisbon – School of Social Sciences and Humanities (NOVA FCSH).
Note

The TEI Abstract Model can be expressed as a hierarchy of attribute-value matrices (AVMs) of various types and of various levels of complexity, nested or grouped in various ways. At the most abstract level, an AVM consists of an information container and the value (contents) of that container.

A simple example of an XML serialization of such structures is, on the one hand, the opening and closing tags that delimit and name the container, and, on the other, the content enclosed by the two tags that constitues the value. An analogous example is an attribute name and the value of that attribute.

In a TEI XML example of two equivalent serializations expressing the name-value pair <part-of-speech,common-noun>, namely <pos>commonNoun</pos> and pos="common-noun", one would classify the element <pos> and the attribute pos as containers (mapping onto the first member of the relevant name-value pair), while the character data content of <pos> or the value of pos would be seen as mapping onto the second member of the pair.

The att.datcat class provides means of addressing the containers and their values, while at the same time providing a way to interpret them in the context of external taxonomies or ontologies. Aligning e.g. both the <pos> element and the pos attribute with the same value of an external reference point (i.e., an entry in an agreed taxonomy) affirms the identity of the concept serialised by both the element container and the attribute container, and optionally provides a definition of that concept (in the case at hand, the concept part of speech).

The value of the att.datcat attributes should be a PID (persistent identifier) that points to a specific — and, ideally, shared — taxonomy or ontology. Among the resources that can, to a lesser or greater extent, be used as inventories of (more or less) standardized linguistic categories are the GOLD ontology, CLARIN CCR, OLiA, or TermWeb's DatCatInfo, and also the Universal Dependencies inventory, on the assumption that its URIs are going to persist. It is imaginable that a project may choose to address a local taxonomy store instead, but this risks losing the advantage of interchangeability with other projects.

Historically, datcat and valueDatcat originate from the (now obsolete) ISO 12620:2009 standard, describing the data model and procedures for a Data Category Registry (DCR). The current version of that standard, ISO 12620-1, does not standardize the serialization of pointers, merely mentioning the TEI att.datcat as an example.

Note that no constraint prevents the occurrence of a combination of att.datcat attributes: the <fDecl> element, which is a natural bearer of the targetDatcat attribute, is an instance of a specific modeling element, and, in principle, could be semantically fixed by an appropriate reference taxonomy of modeling devices.

Appendix A.3.12 att.declarable

att.declarable provides attributes for those elements in the TEI header which may be independently selected by means of the special purpose decls attribute. [16.3. Associating Contextual Information with a Text]
Moduletei
Membersavailability bibl listBibl listEvent listOrg listPerson listPlace particDesc settingDesc sourceDesc
Attributes
defaultindicates whether or not this element is selected by default when its parent is selected.
StatusOptional
Datatypeteidata.truthValue
Legal values are:
true
This element is selected if its parent is selected
false
This element can only be selected explicitly, unless it is the only one of its kind, in which case it is selected if its parent is selected.[Default]
Note

The rules governing the association of declarable elements with individual parts of a TEI text are fully defined in chapter 16.3. Associating Contextual Information with a Text. Only one element of a particular type may have a default attribute with a value of true.

Appendix A.3.13 att.declaring

att.declaring provides attributes for elements which may be independently associated with a particular declarable element within the header, thus overriding the inherited default for that element. [16.3. Associating Contextual Information with a Text]
Moduletei
Membersbody p ptr term text
Attributes
decls(declarations) identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
Note

The rules governing the association of declarable elements with individual parts of a TEI text are fully defined in chapter 16.3. Associating Contextual Information with a Text.

Appendix A.3.14 att.dimensions

att.dimensions provides attributes for describing the size of physical objects.
Moduletei
Membersdate
Attributes
unitnames the unit used for the measurement
StatusOptional
Datatypeteidata.enumerated
Suggested values include:
cm
(centimetres)
mm
(millimetres)
in
(inches)
line
lines of text
char
(characters) characters of text
quantityspecifies the length in the units specified
StatusOptional
Datatypeteidata.numeric
extentindicates the size of the object concerned using a project-specific vocabulary combining quantity and units in a single string of words.
StatusOptional
Datatypeteidata.text
<gap extent="5 words"/>
<height extent="half the page"/>
precisioncharacterizes the precision of the values specified by the other attributes.
StatusOptional
Datatypeteidata.certainty
scopewhere the measurement summarizes more than one observation, specifies the applicability of this measurement.
StatusOptional
Datatypeteidata.enumerated
Sample values include:
all
measurement applies to all instances.
most
measurement applies to most of the instances inspected.
range
measurement applies to only the specified range of instances.

Appendix A.3.15 att.docStatus

att.docStatus provides attributes for use on metadata elements describing the status of a document.
Moduletei
Membersbibl change revisionDesc
Attributes
statusdescribes the status of a document either currently or, when associated with a dated element, at the time indicated.
StatusOptional
Datatypeteidata.enumerated
Sample values include:
approved
candidate
cleared
deprecated
draft
[Default]
embargoed
expired
frozen
galley
proposed
published
recommendation
submitted
unfinished
withdrawn
Example
<revisionDesc status="published">  <change status="published"   when="2010-10-21"/>  <change status="clearedwhen="2010-10-02"/>  <change status="embargoed"   when="2010-08-02"/>  <change status="frozenwhen="2010-05-01"   who="#MSM"/>  <change status="draftwhen="2010-03-01"   who="#LB"/> </revisionDesc>

Appendix A.3.16 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 event eventName gender name org person place placeName
Attributes
evidenceindicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation.
StatusOptional
Datatype1–∞ occurrences of teidata.enumerated separated by whitespace
Suggested values include:
internal
there is internal evidence to support the intervention.
external
there is external evidence to support the intervention.
conjecture
the intervention or interpretation has been made by the editor, cataloguer, or scholar on the basis of their expertise.
instantindicates whether this is an instant revision or not.
StatusOptional
Datatypeteidata.xTruthValue
Defaultfalse
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.

Appendix A.3.17 att.fragmentable

att.fragmentable provides attributes for representing fragmentation of a structural element, typically as a consequence of some overlapping hierarchy.
Moduletei
Membersp
Attributes
partspecifies whether or not its parent element is fragmented in some way, typically by some other overlapping structure: for example a speech which is divided between two or more verse stanzas, a paragraph which is split across a page division, a verse line which is divided between two speakers.
StatusOptional
Datatypeteidata.enumerated
Legal values are:
Y
(yes) the element is fragmented in some (unspecified) respect
N
(no) the element is not fragmented, or no claim is made as to its completeness[Default]
I
(initial) this is the initial part of a fragmented element
M
(medial) this is a medial part of a fragmented element
F
(final) this is the final part of a fragmented element
Note

The values I, M, or F should be used only where it is clear how the element may be reconstituted.

Appendix A.3.18 att.global

att.global provides attributes common to all elements in the TEI encoding scheme. [1.3.1.1. Global Attributes]
Moduletei
MembersTEI affiliation availability bibl bloc body catDesc category change classDecl country date desc edition editionStmt editor encodingDesc event eventName fileDesc forename gender idno item licence list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org p particDesc person place placeName profileDesc ptr pubPlace publicationStmt publisher resp respStmt revisionDesc roleName settingDesc sourceDesc surname taxonomy teiHeader term text title titleStmt
Attributes
xml:id(identifier) provides a unique identifier for the element bearing the attribute.
StatusOptional
DatatypeID
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.
StatusOptional
Datatypeteidata.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.
StatusOptional
Datatypeteidata.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.
StatusOptional
Datatypeteidata.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-05"      to="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.
StatusOptional
Datatypeteidata.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.

Appendix A.3.19 att.global.linking

att.global.linking provides a set of attributes for hypertextual linking. [17. Linking, Segmentation, and Alignment]
Modulelinking
Membersatt.global[TEI affiliation availability bibl bloc body catDesc category change classDecl country date desc edition editionStmt editor encodingDesc event eventName fileDesc forename gender idno item licence list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org p particDesc person place placeName profileDesc ptr pubPlace publicationStmt publisher resp respStmt revisionDesc roleName settingDesc sourceDesc surname taxonomy teiHeader term text title titleStmt]
Attributes
corresp(corresponds) points to elements that correspond to the current element in some way.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
In this example a <group> contains two <text>s, each containing the same document in a different language. The correspondence is indicated using corresp. The language is indicated using xml:lang, whose value is inherited; both the tag with the corresp and the tag pointed to by the corresp inherit the value from their immediate parent.
In this example, a <place> element containing information about the city of London is linked with two <person> elements in a literary personography. This correspondence represents a slightly looser relationship than the one in the preceding example; there is no sense in which an allegorical character could be substituted for the physical city, or vice versa, but there is obviously a correspondence between them.
synch(synchronous) points to elements that are synchronous with the current element.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
sameAspoints to an element that is the same as the current element.
StatusOptional
Datatypeteidata.pointer
copyOfpoints to an element of which the current element is a copy.
StatusOptional
Datatypeteidata.pointer
Note

Any content of the current element should be ignored. Its true content is that of the element being pointed at.

next(next) points to the next element of a virtual aggregate of which the current element is part.
StatusOptional
Datatypeteidata.pointer
Note

It is recommended that the element indicated be of the same type as the element bearing this attribute.

prev(previous) points to the previous element of a virtual aggregate of which the current element is part.
StatusOptional
Datatypeteidata.pointer
Note

It is recommended that the element indicated be of the same type as the element bearing this attribute.

excludepoints to elements that are in exclusive alternation with the current element.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
selectselects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
Note

This attribute should be placed on an element which is superordinate to all of the alternants from which the selection is being made.

Appendix A.3.20 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 affiliation availability bibl bloc body catDesc category change classDecl country date desc edition editionStmt editor encodingDesc event eventName fileDesc forename gender idno item licence list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org p particDesc person place placeName profileDesc ptr pubPlace publicationStmt publisher resp respStmt revisionDesc roleName settingDesc sourceDesc surname taxonomy teiHeader term text title titleStmt]
Attributes
rend(rendition) indicates how the element in question was rendered or presented in the source text.
StatusOptional
Datatype1–∞ 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.

stylecontains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text.
StatusOptional
Datatypeteidata.text
<head style="text-align: center; font-variant: small-caps">  <lb/>To The <lb/>Duchesse <lb/>of <lb/>Newcastle, <lb/>On Her <lb/>  <hi style="font-variant: normal">New Blazing-World</hi>. </head>
Note

Unlike the attribute values of rend, which uses whitespace as a separator, the style attribute may contain whitespace. This attribute is intended for recording inline stylistic information concerning the source, not any particular output.

The formal language in which values for this attribute are expressed may be specified using the <styleDefDecl> element in the TEI header.

If style and rendition are both present on an element, then style overrides or complements rendition. style should not be used in conjunction with rend, because the latter does not employ a formal style definition language.

renditionpoints to a description of the rendering or presentation used for this element in the source text.
StatusOptional
Datatype1–∞ 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 scheme="css"  xml:id="sc">font-variant: small-caps</rendition> <rendition scheme="css"  xml:id="normal">font-variant: normal</rendition> <rendition scheme="css"  xml:id="ac">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.

Appendix A.3.21 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 affiliation availability bibl bloc body catDesc category change classDecl country date desc edition editionStmt editor encodingDesc event eventName fileDesc forename gender idno item licence list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org p particDesc person place placeName profileDesc ptr pubPlace publicationStmt publisher resp respStmt revisionDesc roleName settingDesc sourceDesc surname taxonomy teiHeader term text title titleStmt]
Attributes
cert(certainty) signifies the degree of certainty associated with the intervention or interpretation.
StatusOptional
Datatypeteidata.probCert
resp(responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
StatusOptional
Datatype1–∞ 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 <respStmt>s 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 cert="highresp="#editor">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>

Appendix A.3.22 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 affiliation availability bibl bloc body catDesc category change classDecl country date desc edition editionStmt editor encodingDesc event eventName fileDesc forename gender idno item licence list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org p particDesc person place placeName profileDesc ptr pubPlace publicationStmt publisher resp respStmt revisionDesc roleName settingDesc sourceDesc surname taxonomy teiHeader term text title titleStmt]
Attributes
sourcespecifies the source from which some aspect of this element is drawn.
StatusOptional
Datatype1–∞ 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.

Appendix A.3.23 att.internetMedia

att.internetMedia provides attributes for specifying the type of a computer resource using a standard taxonomy.
Moduletei
Membersptr
Attributes
mimeType(MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type.
StatusOptional
Datatype1–∞ occurrences of teidata.word separated by whitespace
ExampleIn this example mimeType is used to indicate that the URL points to a TEI XML file encoded in UTF-8.
<ref mimeType="application/tei+xml; charset=UTF-8"  target="https://raw.githubusercontent.com/TEIC/TEI/dev/P5/Source/guidelines-en.xml"/>
Note

This attribute class provides an attribute for describing a computer resource, typically available over the internet, using a value taken from a standard taxonomy. At present only a single taxonomy is supported, the Multipurpose Internet Mail Extensions (MIME) Media Type system. This typology of media types is defined by the Internet Engineering Task Force in RFC 2046. The list of types is maintained by the Internet Assigned Numbers Authority (IANA). The mimeType attribute must have a value taken from this list.

Appendix A.3.24 att.locatable

att.locatable provides attributes for referencing locations by pointing to entries in a canonical list of places. [2.3.9. The Unit Declaration 14.3.4.3. States, Traits, and Events]
Moduletei
Membersevent
Attributes
whereindicates one or more locations by pointing to a <place> element or other canonical description.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace

Appendix A.3.25 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[eventName forename name placeName roleName surname] affiliation bloc country editor event 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.
StatusOptional
Datatype1–∞ occurrences of teidata.enumerated separated by whitespace
nymRef(reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
StatusOptional
Datatype1–∞ occurrences of teidata.pointer separated by whitespace
Note

The value must point directly to one or more XML elements by means of one or more URIs, separated by whitespace. If more than one is supplied, the implication is that the name is associated with several distinct canonical names.

Appendix A.3.26 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
MemberseventName forename name placeName roleName surname
Attributes
fullindicates whether the name component is given in full, as an abbreviation or simply as an initial.
StatusOptional
Datatypeteidata.enumerated
Legal values are:
yes
(yes) the name component is spelled out in full.[Default]
abb
(abbreviated) the name component is given in an abbreviated form.
init
(initial letter) the name component is indicated only by one initial.
sort(sort) specifies the sort order of the name component in relation to others within the name.
StatusOptional
Datatypeteidata.count

Appendix A.3.27 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
Membersnote
Attributes
placespecifies where this item is placed.
StatusRecommended
Datatype1–∞ 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>

Appendix A.3.28 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
Memberslicence note ptr term
Attributes
targetLangspecifies the language of the content to be found at the destination referenced by target, using a ‘language tag’ generated according to BCP 47.
StatusOptional
Datatypeteidata.language
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>
<linkGrp xml:id="pol-swh_aln_2.1-linkGrp">  <ptr target="pol/UDHR/text.xml#pol_txt_1-head"   targetLang="pl"   type="tuv"   xml:id="pol-swh_aln_2.1.1-ptr"/>  <ptr target="swh/UDHR/text.xml#swh_txt_1-head"   targetLang="sw"   type="tuv"   xml:id="pol-swh_aln_2.1.2-ptr"/> </linkGrp>
In the example above, the <linkGrp> combines pointers at parallel fragments of the Universal Declaration of Human Rights: one of them is in Polish, the other in Swahili.
Note

The value must conform to 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.

targetspecifies the destination of the reference by supplying one or more URI References.
StatusOptional
Datatype1–∞ 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.

evaluate(evaluate) specifies the intended meaning when the target of a pointer is itself a pointer.
StatusOptional
Datatypeteidata.enumerated
Legal values are:
all
if the element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer.
one
if the element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer.
none
no further evaluation of targets is carried out beyond that needed to find the element specified in the pointer's target.
Note

If no value is given, the application program is responsible for deciding (possibly on the basis of user input) how far to trace a chain of pointers.

Appendix A.3.29 att.ranging

att.ranging provides attributes for describing numerical ranges.
Moduletei
Membersatt.dimensions[date]
Attributes
atLeastgives a minimum estimated value for the approximate measurement.
StatusOptional
Datatypeteidata.numeric
atMostgives a maximum estimated value for the approximate measurement.
StatusOptional
Datatypeteidata.numeric
minwhere the measurement summarizes more than one observation or a range, supplies the minimum value observed.
StatusOptional
Datatypeteidata.numeric
maxwhere the measurement summarizes more than one observation or a range, supplies the maximum value observed.
StatusOptional
Datatypeteidata.numeric
confidencespecifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range.
StatusOptional
Datatypeteidata.probability
Example
The MS. was lost in transmission by mail from <del rend="overstrike">  <gap atLeast="1atMost="2"   extent="one or two lettersreason="illegibleunit="chars"/> </del> Philadelphia to the Graphic office, New York.
Example
Americares has been supporting the health sector in Eastern Europe since 1986, and since 1992 has provided <measure atLeast="120000000"  commodity="currencyunit="USD">more than $120m</measure> in aid to Ukrainians.

Appendix A.3.30 att.sortable

att.sortable provides attributes for elements in lists or groups that are sortable, but whose sorting key cannot be derived mechanically from the element content. [10.1. Dictionary Body and Overall Structure]
Moduletei
Membersbibl event idno item list listBibl listChange listEvent listOrg listPerson listPlace org person place term
Attributes
sortKeysupplies the sort key for this element in an index, list or group which contains it.
StatusOptional
Datatypeteidata.word
David's other principal backer, Josiah ha-Kohen <index indexName="NAMES">  <term sortKey="Azarya_Josiah_Kohen">Josiah ha-Kohen b. Azarya</term> </index> b. Azarya, son of one of the last gaons of Sura was David's own first cousin.
Note

The sort key is used to determine the sequence and grouping of entries in an index. It provides a sequence of characters which, when sorted with the other values, will produced the desired order; specifics of sort key construction are application-dependent

Dictionary order often differs from the collation sequence of machine-readable character sets; in English-language dictionaries, an entry for 4-H will often appear alphabetized under ‘fourh’, and McCoy may be alphabetized under ‘maccoy’, while A1, A4, and A5 may all appear in numeric order ‘alphabetized’ between ‘a-’ and ‘AA’. The sort key is required if the orthography of the dictionary entry does not suffice to determine its location.

Appendix A.3.31 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 affiliation bibl bloc change country date desc event eventName forename gender idno list listBibl listChange listEvent listOrg listPerson listPlace name nameLink note org place placeName ptr roleName surname term text title
Attributes
typecharacterizes the element in some sense, using any convenient classification scheme or typology.
StatusOptional
Datatypeteidata.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.

subtype(subtype) provides a sub-categorization of the element, if needed.
StatusOptional
Datatypeteidata.enumerated
Note

The subtype attribute may be used to provide any sub-classification for the element additional to that provided by its type attribute.

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 .

Appendix A.3.32 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
Membersnote p text
Attributes
handpoints to a <handNote> element describing the hand considered responsible for the content of the element concerned.
StatusOptional
Datatypeteidata.pointer

Appendix A.4 Macros

Appendix A.4.1 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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.limitedPhrase"/>
  <classRef key="model.inter"/>
 </alternate>
</content>
    
Declaration
tei_macro.limitedContent =
   ( text | tei_model.limitedPhrase | tei_model.inter )*

Appendix A.4.2 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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.paraPart"/>
 </alternate>
</content>
    
Declaration
tei_macro.paraContent = ( text | tei_model.paraPart )*

Appendix A.4.3 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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.attributable"/>
  <classRef key="model.phrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
    
Declaration
tei_macro.phraseSeq =
   (
      text
    | tei_model.gLike
    | tei_model.attributable
    | tei_model.phrase
    | tei_model.global
   )*

Appendix A.4.4 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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.limitedPhrase"/>
  <classRef key="model.global"/>
 </alternate>
</content>
    
Declaration
tei_macro.phraseSeq.limited =
   ( text | tei_model.limitedPhrase | tei_model.global )*

Appendix A.4.5 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 maxOccurs="unbounded"
  minOccurs="0">
  <textNode/>
  <classRef key="model.gLike"/>
  <classRef key="model.phrase"/>
  <classRef key="model.inter"/>
  <classRef key="model.divPart"/>
  <classRef key="model.global"/>
 </alternate>
</content>
    
Declaration
tei_macro.specialPara =
   (
      text
    | tei_model.gLike
    | tei_model.phrase
    | tei_model.inter
    | tei_model.divPart
    | tei_model.global
   )*

Appendix A.5 Datatypes

Appendix A.5.1 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
tei_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.

Appendix A.5.2 teidata.count

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

Any positive integer value or zero is permitted

Appendix A.5.3 teidata.duration.iso

teidata.duration.iso defines the range of attribute values available for representation of a duration in time using ISO 8601 standard formats.
Moduletei
Used by
Content model
<content>
 <dataRef name="token"
  restriction="[0-9.,DHMPRSTWYZ/:+\-]+"/>
</content>
    
Declaration
tei_teidata.duration.iso = token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" }
Example
<time dur-iso="PT0,75H">three-quarters of an hour</time>
Example
<date dur-iso="P1,5D">a day and a half</date>
Example
<date dur-iso="P14D">a fortnight</date>
Example
<time dur-iso="PT0.02S">20 ms</time>
Note

A duration is expressed as a sequence of number-letter pairs, preceded by the letter P; the letter gives the unit and may be Y (year), M (month), D (day), H (hour), M (minute), or S (second), in that order. The numbers are all unsigned integers, except for the last, which may have a decimal component (using either . or , as the decimal point; the latter is preferred). If any number is 0, then that number-letter pair may be omitted. If any of the H (hour), M (minute), or S (second) number-letter pairs are present, then the separator T must precede the first ‘time’ number-letter pair.

For complete details, see ISO 8601 Data elements and interchange formats — Information interchange — Representation of dates and times.

Appendix A.5.4 teidata.duration.w3c

teidata.duration.w3c defines the range of attribute values available for representation of a duration in time using W3C datatypes.
Moduletei
Used by
Content model
<content>
 <dataRef name="duration"/>
</content>
    
Declaration
tei_teidata.duration.w3c = xsd:duration
Example
<time dur="PT45M">forty-five minutes</time>
Example
<date dur="P1DT12H">a day and a half</date>
Example
<date dur="P7D">a week</date>
Example
<time dur="PT0.02S">20 ms</time>
Note

A duration is expressed as a sequence of number-letter pairs, preceded by the letter P; the letter gives the unit and may be Y (year), M (month), D (day), H (hour), M (minute), or S (second), in that order. The numbers are all unsigned integers, except for the S number, which may have a decimal component (using . as the decimal point). If any number is 0, then that number-letter pair may be omitted. If any of the H (hour), M (minute), or S (second) number-letter pairs are present, then the separator T must precede the first ‘time’ number-letter pair.

For complete details, see the W3C specification.

Appendix A.5.5 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
tei_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.

Appendix A.5.6 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
tei_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).

Appendix A.5.7 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
Content model
<content>
 <alternate>
  <dataRef name="language"/>
  <valList>
   <valItem ident=""/>
  </valList>
 </alternate>
</content>
    
Declaration
tei_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. There are currently only two extensions in use. Extension T indicates that the content was transformed. For example en-t-it could be used for content in English that was translated from Italian. Extension T is described in the informational RFC 6497. Extension U can be used to embed a variety of locale attributes. It is described in the informational RFC 6067.
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.

Appendix A.5.8 teidata.name

teidata.name defines the range of attribute values expressed as an XML Name.
Moduletei
Used by
Content model
<content>
 <dataRef name="Name"/>
</content>
    
Declaration
tei_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.

Appendix A.5.9 teidata.numeric

teidata.numeric defines the range of attribute values used for numeric values.
Moduletei
Used by
Content model
<content>
 <alternate>
  <dataRef name="double"/>
  <dataRef name="token"
   restriction="(\-?[\d]+/\-?[\d]+)"/>
  <dataRef name="decimal"/>
 </alternate>
</content>
    
Declaration
tei_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.

Appendix A.5.10 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
tei_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="600px"   url="http://www.tei-c.org/logos/TEI-600.jpgwidth="600px"/> </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.

Appendix A.5.11 teidata.pattern

teidata.pattern defines attribute values which are expressed as a regular expression.
Moduletei
Used by
Content model
<content>
 <dataRef name="token"/>
</content>
    
Declaration
tei_teidata.pattern = token
Note
A regular expression, often called a pattern, is an expression that describes a set of strings. They are usually used to give a concise description of a set, without having to list all elements. For example, the set containing the three strings Handel, Händel, and Haendel can be described by the pattern H(ä|ae?)ndel (or alternatively, it is said that the pattern H(ä|ae?)ndel matches each of the three strings)
Wikipedia

This TEI datatype is mapped to the XSD token datatype, and may therefore contain any string of characters. However, it is recommended that the value used conform to the particular flavour of regular expression syntax supported by XSD Schema.

Appendix A.5.12 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 name="anyURI" restriction="\S+"/>
</content>
    
Declaration
tei_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/

Appendix A.5.13 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
tei_teidata.probCert = teidata.probability | teidata.certainty

Appendix A.5.14 teidata.probability

teidata.probability defines the range of attribute values expressing a probability.
Moduletei
Used by
Content model
<content>
 <dataRef name="double">
  <dataFacet name="minInclusive" value="0"/>
  <dataFacet name="maxInclusive" value="1"/>
 </dataRef>
</content>
    
Declaration
tei_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.

Appendix A.5.15 teidata.replacement

teidata.replacement defines attribute values which contain a replacement template.
Moduletei
Used by
Content model
<content>
 <textNode/>
</content>
    
Declaration
tei_teidata.replacement = text

Appendix A.5.16 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
tei_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.

Appendix A.5.17 teidata.temporal.iso

teidata.temporal.iso 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 international standard Data elements and interchange formats – Information interchange – Representation of dates and times.
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"/>
  <dataRef name="token"
   restriction="[0-9.,DHMPRSTWYZ/:+\-]+"/>
 </alternate>
</content>
    
Declaration
tei_teidata.temporal.iso =
   xsd:date
 | xsd:gYear
 | xsd:gMonth
 | xsd:gDay
 | xsd:gYearMonth
 | xsd:gMonthDay
 | xsd:time
 | xsd:dateTime
 | token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" }
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.

For all representations for which ISO 8601:2004 describes both a basic and an extended format, these Guidelines recommend use of the extended format.

Appendix A.5.18 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
tei_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.

Appendix A.5.19 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
Content model
<content>
 <dataRef name="string"/>
</content>
    
Declaration
tei_teidata.text = string
Note

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

Appendix A.5.20 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
tei_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.

Appendix A.5.21 teidata.version

teidata.version defines the range of attribute values which may be used to specify a TEI or Unicode version number.
Moduletei
Used by
Element:
Content model
<content>
 <dataRef name="token"
  restriction="[\d]+(\.[\d]+){0,2}"/>
</content>
    
Declaration
tei_teidata.version = token { pattern = "[\d]+(\.[\d]+){0,2}" }
Note

The value of this attribute follows the pattern specified by the Unicode consortium for its version number (https://unicode.org/versions/). A version number contains digits and fullstop characters only. The first number supplied identifies the major version number. A second and third number, for minor and sub-minor version numbers, may also be supplied.

Appendix A.5.22 teidata.versionNumber

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

Appendix A.5.23 teidata.word

teidata.word defines the range of attribute values expressed as a single word or token.
Moduletei
Used by
Content model
<content>
 <dataRef name="token"
  restriction="[^\p{C}\p{Z}]+"/>
</content>
    
Declaration
tei_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.

Appendix A.5.24 teidata.xTruthValue

teidata.xTruthValue (extended truth value) defines the range of attribute values used to express a truth value which may be unknown.
Moduletei
Used by
Content model
<content>
 <alternate>
  <dataRef name="boolean"/>
  <valList>
   <valItem ident="unknown"/>
   <valItem ident="inapplicable"/>
  </valList>
 </alternate>
</content>
    
Declaration
tei_teidata.xTruthValue = xsd:boolean | ( "unknown" | "inapplicable" )
Note

In cases where where uncertainty is inappropriate, use the datatype teidata.TruthValue.

Appendix A.5.25 teidata.xpath

teidata.xpath defines attribute values which contain an XPath expression.
Moduletei
Used by
Content model
<content>
 <textNode/>
</content>
    
Declaration
tei_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.

written by Ulrike Henny-Krahmer, Fernanda Alvares Freire, and Erik Renz. Date: 2025-09-27