Document Metadata Model
There are two separate, but related schemas for the LAUDATIO metadata: the first concerns the TEI-based metadata that are used as input from data providers.
The second are JSON-based metadata that result from the TEI metadata being ingested into Elasticsearch. This set of metadata provides the attributes that are directly displayed in LAUDATIO.
The following tabs thus describe both sets of metadata and provide their validation sources (.rng in case of TEI metadata and .json in case of JSON).
A separate sub-page contains some TEI file examples.
- TEI schema
- Source (.rng)
- JSON schema
- Source (.json)
Preliminaries
To better differentiate TEI tags, tag attributes, and attribute values, we display them like this:
tagattribute"value"
By default, all tags and attributes are required unless otherwise noted. We distinguish the following special cases:
- ‼️: optional according to RNG schema, but required (or at least highly recommended) for LAUDATIO data ingestion
- 0️⃣: optional and can be dropped
- 🔂: its presence is dependent on another element, even if they are in theory independently optional (e.g. if
forenameis given,surnameshould also be given)
Basic structure
If you want to declare more than one genre for a document, we currently recommend separating them with commas, e.g. style="Prosa, Poesie".
The teiHeader contains two attributes and four main tags. Of the four main tags, all are required for LAUDATIO, but only one is required by the RNG schema:
typemust be"DocumentHeader".- ‼️
styleis used to declare the document genre.1 fileDesc(file description) provides description of a document, such as its title, author, publisher, etc.- ‼️
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. - ‼️
encodingDesc(encoding description) documents the relationship between an electronic text and the source or sources from which it was derived. - ‼️
revisionDesc(revision description) summarizes the revision history for a file.
The basic structure of the document TEI header is thus as follows:
<?xml version='1.0' encoding='utf-8'?>
<?xml-model href="./document.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader style="GENRE" type="DocumentHeader">
<fileDesc>...</fileDesc>
<profileDesc>...</profileDesc>
<encodingDesc>...</encodingDesc>
<revisionDesc>...</revisionDesc>
</teiHeader>
<text/>
</TEI>
The four main tags are described in detail below.
fileDesc
- Best practice: Use the file name as the the ‼️
xml:id(e.g. if the file isdocument1.xml, ‼️xml:idshould be"document1"). - If you want to make the document plaintext accessible in LAUDATIO as well, you MUST use the same file name (without extension) for both the underlying document and the document header. For example, let's say your actual corpus contains text files (extension:
.txt). For a document, we recommend naming the text file and the document header file containing the metadata like this:document1.txtanddocument1.xml.
The fileDesc contains the following tags where the basic meaning is left untouched, but they simply reference the concept Document. For example, the tag author refers to the author of the document and the tag title refers to the title of a single document. The attributes and tags used within fileDesc are:
- ‼️
xml:idis the document identifier. Use this in thecorrespattribute in the corpussourceDesc. titleStmt(title statement) groups information about the title of a work and those responsible for its content.- ‼️
extentdescribes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units. publicationStmt(publication statement) groups information concerning the publication or distribution of an electronic or other text.- 0️⃣
seriesStmt(series statement) groups information concerning the publication series of an electronic or other text. sourceDesc(source description) describes the source 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.
The basic structure of fileDesc is thus as follows:
<fileDesc xml:id="document1">
<titleStmt>
<title>...</title>
<editor>...</editor>
<author>...</author>
<respStmt>...</respStmt>
</titleStmt>
<extent>...</extent>
<publicationStmt>
<publisher>...</publisher>
<pubPlace>...</pubPlace>
<idno>...</idno>
<date>...</date>
<biblScope>...</biblScope>
</publicationStmt>
<seriesStmt>
<title>...</title>
<editor>...</editor>
<biblScope>...</biblScope>
</seriesStmt>
<sourceDesc>...</sourceDesc>
</fileDesc>
titleStmt
If the original author of a document is not known, we advise you to still add the author tag, but simply fill both forename and surname with "NA".
The titleStmt contains the title, editors, and authors of the document.
titlecontains the document title- ‼️
authordenotes the (original) document author(s)- ‼️
persName(personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc.- 🔂
keyis used to refer to an external authority file. Possible values are"orcid"and"gnd". If present,refshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 🔂
refcontains the URI to the external authority file entry. If present,keyshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 🔂
forenamecontains a forename, given or baptismal name. If present,surnameshould be present as well. - 🔂
surnamecontains a family (inherited) name, as opposed to a given, baptismal, or nick name. If present,forenameshould be present as well.
- 🔂
- ‼️
- 0️⃣
editordenotes the editors of the document edition you used.- 0️⃣
persName(personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc.- 🔂
keyis used to refer to an external authority file. Possible values are"orcid"and"gnd". If present,refshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 🔂
refcontains the URI to the external authority file entry. If present,keyshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 🔂
forenamecontains a forename, given or baptismal name. If present,surnameshould be present as well. - 🔂
surnamecontains a family (inherited) name, as opposed to a given, baptismal, or nick name. If present,forenameshould be present as well.
- 🔂
- 0️⃣
- 0️⃣
respStmt(responsibility statement) specifies other kinds of corpus responsibilities, e.g. those responsible for the metadata schema. Note that this information is currently not ingested and shown in LAUDATIO.respdescribes what the responsiblity entails (e.g. metadata)- 0️⃣
persName(personal name) contains a proper noun or proper-noun phrase referring to a person, possibly including one or more of the person's forenames, surnames, honorifics, added names, etc.- 🔂
keyis used to refer to an external authority file. Possible values are"orcid"and"gnd". If present,refshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 🔂
refcontains the URI to the external authority file entry. If present,keyshould be present as well. Note that this information is currently not ingested and shown in LAUDATIO. - 0️⃣
forenamecontains a forename, given or baptismal name. - 0️⃣
surnamecontains a family (inherited) name, as opposed to a given, baptismal, or nick name. - 0️⃣
orgName(organization name) contains the name of the organization a person is affiliated with
- 🔂
An example of the titleStmt looks like this:
<titleStmt>
<title>The great story of the plants</title>
<author>
<persName key="gnd" ref="http...">
<forename>Max</forename>
<surname>Mustermann</surname>
</persName>
</author>
<editor>
<persName>
<forename>Sabine</forename>
<surname>Schulz</surname>
</persName>
</editor>
<respStmt>
<resp>Metadata</resp>
<persName>
<forename>Jane</forename>
<surname>Doe</surname>
</persName>
<orgName type="Department">Department of Linguistics</orgName>
<orgName type="Institution">XYZ</orgName>
</respStmt>
</titleStmt>
extent
The ‼️ extent provides information about the size of the document. The attribute type defines the counting unit, which can be "Tokens" or "Words".
extentdescribes the approximate size of a text stored on some carrier medium or of some other object, digital or non-digital, specified in any convenient units.typeCharacterizes the element in some sense, using any convenient classification scheme or typology. Possible values are"Tokens"or"Words".
An example for this tag is:
<extent type="Tokens">1234</extent>
publicationStmt
The publicationStmt refers to bibliographic metadata, usually a printed publication, either an edition or the first publication. If this exemplar contains a historical source, provide metadata for this source in sourceDesc.
publisherprovides the name of the organization responsible for the publication or distribution of a bibliographic item.- 0️⃣
pubPlace(publication place) contains the name of the place where a bibliographic item was published. - 0️⃣
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. This is not ingested/shown in LAUDATIO. - 0️⃣
datecontains a date in any format. If this tag is not provided, LAUDATIO will show"YY".whensupplies the value of the date or time in a standard form, e.g. yyyy or yyyy-mm-dd. Note that what gets shown in LAUDATIO is this, NOT what the text ofdatecontains.
- 0️⃣
biblScope(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work.
A simple publicationStmt looks like this:
<publicationStmt>
<publisher>ABC Druck</publisher>
<pubPlace>Berlin</pubPlace>
<idno></idno>
<date when="1674">1674</date>
<biblScope>pp.1-80</biblScope>
</publicationStmt>
seriesStmt
A publication may be published within a series. 0️⃣ seriesStmt provides information about the publication series of the publication of the document:
titlecontains a title for any kind of work.- 0️⃣
editorcontains the editor of the series as a free text. - 0️⃣
biblScope(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work.- 0️⃣
unitidentifies the type of information conveyed by the element, e.g. columns, pages, volume. We default to treating the text ofbiblScopeas the volume information, sounitis ignored.
- 0️⃣
An example for a seriesStmt is given here:
<seriesStmt>
<title>Zeitschrift für Pflanzen</title>
<editor>Königliche Akademie der Wissenschaften. Historische Komission, München</editor>
<biblScope unit="vol">2</biblScope>
</seriesStmt>
sourceDesc
If a historical original is not applicable or known, you still need to provide this tag! However, you can leave it blank like this:
<sourceDesc>
<msDesc>
<msIdentifier>
<msName>NA</msName>
</msIdentifier>
</msDesc>
</sourceDesc>
sourceDesc provides metadata of the historical original, if applicable and known.
The elements it includes are:
- 0️⃣
n(number) gives a number (or other label) for an element, which is not necessarily unique within the document. This is simply an incrementing document counter. - ‼️
msDesc(manuscript description) contains a description of a single identifiable manuscript or other text-bearing object.msIdentifier(manuscript identifier)- ‼️
msName(manuscript name) contains any form of unstructured name used for a manuscript. This gets shown as "Classification" under "Source Description" in LAUDATIO. - 0️⃣
altIdentifiercontains any form of unstructured alternative name used for a manuscript, such as an ‘ocellus nominum’, or nickname. This is not ingested/shown in LAUDATIO.- 0️⃣
repositorycontains the name of a repository within which manuscripts are stored, possibly forming part of an institution. - 0️⃣
collectioncontains the name of a collection of manuscripts, not necessarily located within a single repository. idnois an identifier.
- 0️⃣
- ‼️
- 0️⃣
historygroups elements describing the full history of a manuscript or manuscript part.- 0️⃣
origincontains any descriptive or other information concerning the origin of a manuscript or manuscript part.- 0️⃣
objectTypecontains a word or phrase describing the type of object being referred to. - 0️⃣
origDate(origin date) contains any form of date, used to identify the date of origin for a manuscript or manuscript part. Note that we use two custom attributes here:- 0️⃣
notBefore-customindicates that the manuscript was not created before this date (lower bound of date range). This is given in the format yyyy. - 0️⃣
notAfter-customindicates that the manuscript was not created after this date (upper bound of date range). This is given in the format yyyy. - 0️⃣
precisionindicated how certain the date information is. Possible values are:"high","medium","low","unknown"
- 0️⃣
- 0️⃣
origPlace(origin place) contains any form of place name, used to identify the place of origin for a manuscript or manuscript part. - 0️⃣
titlecontains a title for any kind of work. - 0️⃣
locusdefines a location within a manuscript or manuscript part, usually as a (possibly discontinuous) sequence of folio references.
- 0️⃣
- 0️⃣
- 0️⃣
recordHist(recorded history) provides information about the source and revision status of the parent manuscript description itself. This is not ingested/shown in LAUDATIO.sourcefacs(facsimile)- 0️⃣
ref(reference) defines a reference to another location, possibly modified by additional text or comment.- 0️⃣
targetspecifies the destination of the reference by supplying one or more URI References
- 0️⃣
msDesc shall only give a short overview over the publication history of each document of the corpus in order to use the view and search functions of LAUDATIO. Thus, recordHist is used to provide references to resources where much more detailed information about the manuscript history is given.
An example for this tag looks like this:
<sourceDesc n="1">
<msDesc>
<msIdentifier>
<msName>Base manuscript for the transcription (A). Continuation (1434-1441) and some
Additions come from ms. a: Nürnberg, Stadtbibliothek, Cod. Amb. 237.4°</msName>
<altIdentifier>
<repository>Nürnberg. Staatsarchiv</repository>
<collection>Rep. 52a (Reichsstadt Nürnberg)</collection>
<idno>Hs. Nr. 14</idno>
</altIdentifier>
</msIdentifier>
<history>
<origin>
<objectType>Chronicle of the history of the city of Nuremberg (Franconia) from 1126 to
1434, with an extension until 1441. It provides detailed information about imperial
history and city history, particularly from around 1420 onwards. The work underwent
multiple revisions and was used by later Nuremberg chroniclers.</objectType>
<origDate notAfter-custom="1441" notBefore-custom="1400" precision="medium">The text
was certainly written around 1434 with extension until 1441</origDate>
<origPlace>Nuremberg</origPlace>
<title>Chronik aus Kaiser Sigmund's Zeit</title>
<locus />
</origin>
</history>
</msDesc>
<recordHist>
<source facs="urn:nbn:de:bvb:12-bsb10798054-4">
<ref target="https://www.digitale-sammlungen.de/en/view/bsb10798054">
Bayerische Staatsbibliothek digital
</ref>
</source>
</recordHist>
</sourceDesc>
profileDesc
Include at most three language tags and make sure to use each style only once!
The ‼️ profileDesc only contains metadata concerning the language of the document including remarks on language type and lanuage area.
langUsage(language usage) describes the languages, sub-languages, registers, dialects, etc. represented within a text.languagecharacterizes a single language or sublanguage used within a text.stylecontains an expression in some formal style definition language which defines the rendering or presentation used for this element in the source text; possible values:"Language","LanguageType","LanguageArea"ident(identifier) supplies a language code constructed as defined in BCP 47 which is used to identify the language documented by this element, and which is referenced by the global xml:lang attribute.2
A concrete example of profileDesc would be:
<profileDesc>
<langUsage>
<language ident="de" style="Language">Early New High German</language>
<language ident="de" style="LanguageArea">Southern dialects</language>
<language ident="de" style="LanguageType">Bavarian</language>
</langUsage>
</profileDesc>
encodingDesc
Note that encodingDesc contains one schemaSpec tag, but schemaSpec can contain multiple elementSpec tags!
The ‼️ encodingDesc contains a list of annotation keys sorted by rough linguistic categories:
schemaSpec(schema specification) generates a TEI-conformant schema and documentation for the annotations.identsupplies the identifier by which this element may be referenced. Possible value:"AnnotationKey"- ‼️
elementSpec(element specification) documents the structure, content, and purpose of a single element type. This basically denotes a group of annotations of the same categroy (e.g."MarkUp").identsupplies the identifier by which this element may be referenced. Corresponds to the annotation layer classification used intagsDecltag ofencodingDescof the corpus metadata:"Transcription""Lexical""Morphological""Syntactic""Graphical""MarkUp""Meta""Other"
- ‼️
valList(value list) contains one or more valItem elements defining possible values. Here, all annotation layers of the specified annotation category are listed.- ‼️
valItemdocuments a single value in a predefined list of values.correspID of the annotation layer as given incorrespof the annotation metadata model (should also correspond to file name)identfree identifier.3
- ‼️
An example is thus:
<encodingDesc>
<schemaSpec ident="AnnotationKey">
<elementSpec ident="Transcription">
<valList>
<valItem corresp="clean" ident="clean"/>
<valItem corresp="dipl" ident="dipl"/>
<valItem corresp="norm" ident="norm"/>
</valList>
</elementSpec>
<elementSpec ident="Lexical">
<valList>
<valItem corresp="lemma" ident="lemma"/>
<valItem corresp="pos" ident="pos"/>
</valList>
</elementSpec>
<elementSpec ident="Graphical">
<valList>
<valItem corresp="lb" ident="lb"/>
<valItem corresp="head" ident="head"/>
</valList>
</elementSpec>
<elementSpec ident="Syntactic">
<valList>
<valItem corresp="attr_gen" ident="attr_gen"/>
<valItem corresp="morph_ellipsis" ident="morph_ellipsis"/>
<valItem corresp="gram" ident="gram"/>
</valList>
</elementSpec>
</schemaSpec>
</encodingDesc>
revisionDesc
‼️ revisionDesc refers to the version history of the whole corpus. Corpora in LAUDATIO may have several versions. The changes between these versions will be provided here with the focus on the singular document.
- ‼️
revisionDesc(revision description) summarizes the revision history for a file.changedocuments a change or set of changes made during the production of a source document, or during the revision of an electronic file. A text within the tag should also be provided!- ‼️
n(number) gives a number (or other label) for an element, which is not necessarily unique within the document. Note that this is not a counter, but means the corpus version numbers, e.g."1.0". - ‼️
whensupplies the value of the date or time in a standard form, e.g. yyyy or yyyy-mm-dd. - 0️⃣
typespecifies the kind of corpus revision undertaken. This is not ingested/shown in LAUDATIO. - 0️⃣
whoindicates the person, or group of people, to whom the element content is ascribed. This is not ingested/shown in LAUDATIO.
- ‼️
<revisionDesc>
<change n="4.0" type="QualityCheck" when="2014-04-01" who="LAUDATIO">Documents added,
consistency check and unifying list of annotation keys.
</change>
<change n="4.1" type="Extension" when="2014-10-27" who="LAUDATIO">Annotation keys were added.</change>
<change n="5.0" type="CorpusExtension" when="2016-06-07" who="LAUDATIO">Additional texts were
added to the corpus. Conversion steps were changed. The corpus is now converted directly
from EXCEL to PAULA and from EXCEL to ANNIS. Selective corrections of several annotation
keys.
</change>
</revisionDesc>
Footnotes
<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:tei="http://www.tei-c.org/ns/1.0"
xmlns:teix="http://www.tei-c.org/ns/Examples"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
ns="http://www.tei-c.org/ns/1.0">
<!--
Schema generated from ODD source 2018-10-04T13:13:25Z. .
TEI Edition: Version 3.4.0. Last updated on
23rd July 2018, revision 1fa0b54
TEI Edition Location: http://www.tei-c.org/Vault/P5/Version 3.4.0/
--><!--Creative
Commons Attribution 4.0.-->
<define name="macro.paraContent">
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.phrase" />
<ref name="model.inter" />
<ref name="model.global" />
<ref name="model.lLike" />
</choice>
</zeroOrMore>
</define>
<define name="macro.phraseSeq">
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.phrase" />
<ref name="model.global" />
</choice>
</zeroOrMore>
</define>
<define name="macro.phraseSeq.limited">
<zeroOrMore>
<choice>
<text />
<ref name="model.limitedPhrase" />
<ref name="model.global" />
</choice>
</zeroOrMore>
</define>
<define name="macro.specialPara">
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.phrase" />
<ref name="model.inter" />
<ref name="model.divPart" />
<ref name="model.global" />
</choice>
</zeroOrMore>
</define>
<define name="macro.xtext">
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
</choice>
</zeroOrMore>
</define>
<define name="data.temporal.iso">
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</define>
<define name="att.ascribed.attributes">
<ref name="att.ascribed.attribute.who" />
</define>
<define name="att.ascribed.attribute.who">
<optional>
<attribute name="who">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the person, or group of people, to whom the element content is ascribed.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.canonical.attributes">
<ref name="att.canonical.attribute.key" />
<ref name="att.canonical.attribute.ref" />
</define>
<define name="att.canonical.attribute.key">
<optional>
<attribute name="key">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides
an externally-defined means of identifying the entity (or entities) being named,
using a coded value of some kind.</a:documentation>
<data type="string" />
</attribute>
</optional>
</define>
<define name="att.canonical.attribute.ref">
<optional>
<attribute name="ref">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference)
provides an explicit means of locating a full definition or identity for the entity
being named by means of one or more URIs.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.ranging.attribute.atLeast">
<optional>
<attribute name="atLeast">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a
minimum estimated value for the approximate measurement.</a:documentation>
<choice>
<data type="double" />
<data type="token">
<param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
</data>
<data type="decimal" />
</choice>
</attribute>
</optional>
</define>
<define name="att.ranging.attribute.atMost">
<optional>
<attribute name="atMost">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a
maximum estimated value for the approximate measurement.</a:documentation>
<choice>
<data type="double" />
<data type="token">
<param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
</data>
<data type="decimal" />
</choice>
</attribute>
</optional>
</define>
<define name="att.ranging.attribute.min">
<optional>
<attribute name="min">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the
measurement summarizes more than one observation or a range, supplies the minimum
value observed.</a:documentation>
<choice>
<data type="double" />
<data type="token">
<param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
</data>
<data type="decimal" />
</choice>
</attribute>
</optional>
</define>
<define name="att.ranging.attribute.max">
<optional>
<attribute name="max">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">where the
measurement summarizes more than one observation or a range, supplies the maximum
value observed.</a:documentation>
<choice>
<data type="double" />
<data type="token">
<param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
</data>
<data type="decimal" />
</choice>
</attribute>
</optional>
</define>
<define name="att.ranging.attribute.confidence">
<optional>
<attribute name="confidence">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
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.</a:documentation>
<data type="double" />
</attribute>
</optional>
</define>
<define name="att.dimensions.attribute.precision">
<optional>
<attribute name="precision">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes
the precision of the values specified by the other attributes.</a:documentation>
<choice>
<value>high</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>medium</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>low</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>unknown</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</attribute>
</optional>
</define>
<define name="att.written.attributes">
<ref name="att.written.attribute.hand" />
</define>
<define name="att.written.attribute.hand">
<optional>
<attribute name="hand">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to
a handNote element describing the hand considered responsible for the content of the
element concerned.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<define name="att.cReferencing.attributes">
<ref name="att.cReferencing.attribute.cRef" />
</define>
<define name="att.cReferencing.attribute.cRef">
<optional>
<attribute name="cRef">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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</a:documentation>
<data type="string" />
</attribute>
</optional>
</define>
<define name="att.datable.w3c.attributes">
<ref name="att.datable.w3c.attribute.when" />
<ref name="att.datable.w3c.attribute.notBefore" />
<ref name="att.datable.w3c.attribute.notAfter" />
<ref name="att.datable.w3c.attribute.from" />
<ref name="att.datable.w3c.attribute.to" />
</define>
<define name="att.datable.w3c.attribute.when">
<optional>
<attribute name="when">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the value of the date or time in a standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.w3c.attribute.notBefore">
<optional>
<attribute name="notBefore">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.w3c.attribute.notAfter">
<optional>
<attribute name="notAfter">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the latest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.w3c.attribute.from">
<optional>
<attribute name="from">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the starting point of the period in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.w3c.attribute.to">
<optional>
<attribute name="to">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the ending point of the period in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
</choice>
</attribute>
</optional>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.datable.w3c-att-datable-w3c-when-constraint-rule-1">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
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>
</pattern>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.datable.w3c-att-datable-w3c-from-constraint-rule-2">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
context="tei:*[@from]">
<sch:report role="nonfatal" test="@notBefore">The @from and @notBefore attributes cannot be
used together.</sch:report>
</sch:rule>
</pattern>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.datable.w3c-att-datable-w3c-to-constraint-rule-3">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
context="tei:*[@to]">
<sch:report role="nonfatal" test="@notAfter">The @to and @notAfter attributes cannot be
used together.</sch:report>
</sch:rule>
</pattern>
<define name="att.datable.attributes">
<ref name="att.datable.w3c.attributes" />
<ref name="att.datable.iso.attributes" />
<ref name="att.datable.custom.attributes" />
<ref name="att.datable.attribute.calendar" />
<ref name="att.datable.attribute.period" />
</define>
<define name="att.datable.attribute.calendar">
<optional>
<attribute name="calendar">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the system or calendar to which the date represented by the content of this element
belongs.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.datable-calendar-calendar-constraint-rule-4">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
context="tei:*[@calendar]">
<sch:assert test="string-length(.) gt 0"> @calendar indicates the system or calendar 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>
</pattern>
<define name="att.datable.attribute.period">
<optional>
<attribute name="period">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
a pointer to some location defining a named period of time within which the datable
item is understood to have occurred.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<define name="att.declarable.attributes">
<ref name="att.declarable.attribute.default" />
</define>
<define name="att.declarable.attribute.default">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="default"
a:defaultValue="false">
<a:documentation>indicates whether or not this element is selected by default when its
parent is selected.</a:documentation>
<choice>
<value>true</value>
<a:documentation>This element is selected if its parent is selected</a:documentation>
<value>false</value>
<a:documentation>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.</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.declaring.attributes">
<ref name="att.declaring.attribute.decls" />
</define>
<define name="att.declaring.attribute.decls">
<optional>
<attribute name="decls">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies
one or more declarable elements within the header, which are understood to apply to
the element bearing this attribute and its content.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.fragmentable.attributes">
<ref name="att.fragmentable.attribute.part" />
</define>
<define name="att.fragmentable.attribute.part">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="part"
a:defaultValue="N">
<a:documentation>specifies 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.</a:documentation>
<choice>
<value>Y</value>
<a:documentation>(yes) the element is fragmented in some (unspecified) respect</a:documentation>
<value>N</value>
<a:documentation>(no) the element is not fragmented, or no claim is made as to its
completeness</a:documentation>
<value>I</value>
<a:documentation>(initial) this is the initial part of a fragmented element</a:documentation>
<value>M</value>
<a:documentation>(medial) this is a medial part of a fragmented element</a:documentation>
<value>F</value>
<a:documentation>(final) this is the final part of a fragmented element</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.docStatus.attributes">
<ref name="att.docStatus.attribute.status" />
</define>
<define name="att.docStatus.attribute.status">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="status"
a:defaultValue="draft">
<a:documentation>describes the status of a document either currently or, when associated
with a dated element, at the time indicated.
Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5]
draft; 6] embargoed; 7] expired; 8] frozen; 9] galley; 10] proposed; 11] published;
12] recommendation; 13] submitted; 14] unfinished; 15] withdrawn</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<define name="att.global.responsibility.attributes">
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
</define>
<define name="att.global.responsibility.attribute.cert">
<optional>
<attribute name="cert">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(certainty)
signifies the degree of certainty associated with the intervention or interpretation.</a:documentation>
<choice>
<data type="double" />
<choice>
<value>high</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>medium</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>low</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>unknown</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</choice>
</attribute>
</optional>
</define>
<define name="att.global.responsibility.attribute.resp">
<optional>
<attribute name="resp">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(responsible
party) indicates the agency responsible for the intervention or interpretation, for
example an editor or transcriber.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.editLike.attributes">
<ref name="att.editLike.attribute.evidence" />
<ref name="att.editLike.attribute.instant" />
</define>
<define name="att.editLike.attribute.evidence">
<optional>
<attribute name="evidence">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the nature of the evidence supporting the reliability or accuracy of the intervention
or interpretation.
Suggested values include: 1] internal; 2] external; 3] conjecture</a:documentation>
<list>
<oneOrMore>
<choice>
<value>internal</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there
is internal evidence to support the intervention.</a:documentation>
<value>external</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">there
is external evidence to support the intervention.</a:documentation>
<value>conjecture</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
intervention or interpretation has been made by the editor, cataloguer, or
scholar on the basis of their expertise.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</choice>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.editLike.attribute.instant">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="instant"
a:defaultValue="false">
<a:documentation>indicates whether this is an instant revision or not.</a:documentation>
<choice>
<data type="boolean" />
<choice>
<value>unknown</value>
<a:documentation />
<value>inapplicable</value>
<a:documentation />
</choice>
</choice>
</attribute>
</optional>
</define>
<define name="att.global.rendition.attributes">
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.rendition.attribute.style" />
<ref name="att.global.rendition.attribute.rendition" />
</define>
<define name="att.global.rendition.attribute.rend">
<optional>
<attribute name="rend">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(rendition)
indicates how the element in question was rendered or presented in the source text.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.global.rendition.attribute.style">
<optional>
<attribute name="style">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains
an expression in some formal style definition language which defines the rendering or
presentation used for this element in the source text</a:documentation>
<data type="string" />
</attribute>
</optional>
</define>
<define name="att.global.rendition.attribute.rendition">
<optional>
<attribute name="rendition">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to
a description of the rendering or presentation used for this element in the source
text.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.global.source.attributes">
<ref name="att.global.source.attribute.source" />
</define>
<define name="att.global.source.attribute.source">
<optional>
<attribute name="source">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the source from which some aspect of this element is drawn.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.global.attributes">
<ref name="att.global.rendition.attributes" />
<ref name="att.global.responsibility.attributes" />
<ref name="att.global.source.attributes" />
<ref name="att.global.attribute.xmlid" />
<ref name="att.global.attribute.n" />
<ref name="att.global.attribute.xmllang" />
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
</define>
<define name="att.global.attribute.xmlid">
<optional>
<attribute name="xml:id">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier)
provides a unique identifier for the element bearing the attribute.</a:documentation>
<data type="ID" />
</attribute>
</optional>
</define>
<define name="att.global.attribute.n">
<optional>
<attribute name="n">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number)
gives a number (or other label) for an element, which is not necessarily unique
within the document.</a:documentation>
<data type="string" />
</attribute>
</optional>
</define>
<define name="att.global.attribute.xmllang">
<optional>
<attribute name="xml:lang">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language)
indicates the language of the element content using a tag generated according to BCP
47.</a:documentation>
<choice>
<data type="language" />
<choice>
<value />
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</choice>
</attribute>
</optional>
</define>
<define name="att.global.attribute.xmlbase">
<optional>
<attribute name="xml:base">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides
a base URI reference with which applications can resolve relative URI references into
absolute URI references.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<define name="att.global.attribute.xmlspace">
<optional>
<attribute name="xml:space">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals
an intention about how white space should be managed by applications.</a:documentation>
<choice>
<value>default</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">signals
that the application's default white-space processing modes are acceptable</a:documentation>
<value>preserve</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the intent that applications preserve all white space</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.scribe">
<optional>
<attribute name="scribe">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a
name or other identifier for the scribe believed to be responsible for this hand.</a:documentation>
<data type="Name" />
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.scribeRef">
<optional>
<attribute name="scribeRef">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to
a full description of the scribe concerned, typically supplied by a person element
elsewhere in the description.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.script">
<optional>
<attribute name="script">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes
the particular script or writing style used by this hand, for example secretary,
copperplate, Chancery, Italian, etc.</a:documentation>
<list>
<oneOrMore>
<data type="Name" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.scriptRef">
<optional>
<attribute name="scriptRef">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to
a full description of the script or writing style used by this hand, typically
supplied by a scriptNote element elsewhere in the description.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.medium">
<optional>
<attribute name="medium">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes
the tint or type of ink, e.g. brown, or other writing medium, e.g. pencil</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.handFeatures.attribute.scope">
<optional>
<attribute name="scope">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
how widely this hand is used in the manuscript.</a:documentation>
<choice>
<value>sole</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">only
this hand is used throughout the manuscript</a:documentation>
<value>major</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this
hand is used through most of the manuscript</a:documentation>
<value>minor</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">this
hand is used occasionally in the manuscript</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.internetMedia.attributes">
<ref name="att.internetMedia.attribute.mimeType" />
</define>
<define name="att.internetMedia.attribute.mimeType">
<optional>
<attribute name="mimeType">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(MIME
media type) specifies the applicable multimedia internet mail extension (MIME) media
type</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.naming.attributes">
<ref name="att.canonical.attributes" />
<ref name="att.naming.attribute.role" />
<ref name="att.naming.attribute.nymRef" />
</define>
<define name="att.naming.attribute.role">
<optional>
<attribute name="role">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">may 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.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.naming.attribute.nymRef">
<optional>
<attribute name="nymRef">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.typed.attributes">
<ref name="att.typed.attribute.type" />
<ref name="att.typed.attribute.subtype" />
</define>
<define name="att.typed.attribute.type">
<optional>
<attribute name="type">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes
the element in some sense, using any convenient classification scheme or typology.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<define name="att.typed.attribute.subtype">
<optional>
<attribute name="subtype">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides
a sub-categorization of the element, if needed</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.typed-subtypeTyped-constraint-rule-5">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
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>
</pattern>
<define name="att.pointing.attributes">
<ref name="att.pointing.attribute.targetLang" />
<ref name="att.pointing.attribute.target" />
<ref name="att.pointing.attribute.evaluate" />
</define>
<define name="att.pointing.attribute.targetLang">
<optional>
<attribute name="targetLang">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the language of the content to be found at the destination referenced by target,
using a language tag generated according to BCP 47.</a:documentation>
<choice>
<data type="language" />
<choice>
<value />
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</choice>
</attribute>
</optional>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.pointing-targetLang-targetLang-constraint-rule-6">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
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>
</pattern>
<define name="att.pointing.attribute.target">
<optional>
<attribute name="target">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the destination of the reference by supplying one or more URI References</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.pointing.attribute.evaluate">
<optional>
<attribute name="evaluate">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the intended meaning when the target of a pointer is itself a pointer.</a:documentation>
<choice>
<value>all</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.</a:documentation>
<value>one</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.</a:documentation>
<value>none</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">no
further evaluation of targets is carried out beyond that needed to find the
element specified in the pointer's target.</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.sortable.attributes">
<ref name="att.sortable.attribute.sortKey" />
</define>
<define name="att.sortable.attribute.sortKey">
<optional>
<attribute name="sortKey">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the sort key for this element in an index, list or group which contains it.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<define name="att.citing.attributes">
<ref name="att.citing.attribute.unit" />
<ref name="att.citing.attribute.from" />
<ref name="att.citing.attribute.to" />
</define>
<define name="att.citing.attribute.unit">
<optional>
<attribute name="unit">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies
the unit of information conveyed by the element, e.g. columns, pages, volume, entry.
Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] part;
7] column; 8] entry</a:documentation>
<choice>
<value>volume</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element contains a volume number.</a:documentation>
<value>issue</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element contains an issue number, or volume and issue numbers.</a:documentation>
<value>page</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element contains a page number or page range.</a:documentation>
<value>line</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element contains a line number or line range.</a:documentation>
<value>chapter</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element contains a chapter indication (number and/or title)</a:documentation>
<value>part</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element identifies a part of a book or collection.</a:documentation>
<value>column</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element identifies a column.</a:documentation>
<value>entry</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">the
element identifies an entry number or label in a list of entries.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="att.citing.attribute.from">
<optional>
<attribute name="from">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the starting point of the range of units indicated by the unit attribute.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<define name="att.citing.attribute.to">
<optional>
<attribute name="to">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the end-point of the range of units indicated by the unit attribute.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
</define>
<define name="model.nameLike.agent">
<choice>
<ref name="orgName" />
<ref name="persName" />
</choice>
</define>
<define name="model.nameLike.agent_alternation">
<choice>
<ref name="orgName" />
<ref name="persName" />
</choice>
</define>
<define name="model.nameLike.agent_sequence">
<ref name="orgName" />
<ref name="persName" />
</define>
<define name="model.nameLike.agent_sequenceOptional">
<optional>
<ref name="orgName" />
</optional>
<optional>
<ref name="persName" />
</optional>
</define>
<define name="model.nameLike.agent_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="orgName" />
</zeroOrMore>
<zeroOrMore>
<ref name="persName" />
</zeroOrMore>
</define>
<define name="model.nameLike.agent_sequenceRepeatable">
<oneOrMore>
<ref name="orgName" />
</oneOrMore>
<oneOrMore>
<ref name="persName" />
</oneOrMore>
</define>
<define name="model.segLike">
<notAllowed />
</define>
<define name="model.hiLike">
<notAllowed />
</define>
<define name="model.hiLike_alternation">
<notAllowed />
</define>
<define name="model.hiLike_sequence">
<empty />
</define>
<define name="model.hiLike_sequenceOptional">
<empty />
</define>
<define name="model.hiLike_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.hiLike_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.emphLike">
<choice>
<ref name="title" />
</choice>
</define>
<define name="model.emphLike_alternation">
<choice>
<ref name="title" />
</choice>
</define>
<define name="model.emphLike_sequence">
<ref name="title" />
</define>
<define name="model.emphLike_sequenceOptional">
<optional>
<ref name="title" />
</optional>
</define>
<define name="model.emphLike_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="title" />
</zeroOrMore>
</define>
<define name="model.emphLike_sequenceRepeatable">
<oneOrMore>
<ref name="title" />
</oneOrMore>
</define>
<define name="model.highlighted">
<choice>
<ref name="model.hiLike" />
<ref name="model.emphLike" />
</choice>
</define>
<define name="model.dateLike">
<choice>
<ref name="date" />
</choice>
</define>
<define name="model.dateLike_alternation">
<choice>
<ref name="date" />
</choice>
</define>
<define name="model.dateLike_sequence">
<ref name="date" />
</define>
<define name="model.dateLike_sequenceOptional">
<optional>
<ref name="date" />
</optional>
</define>
<define name="model.dateLike_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="date" />
</zeroOrMore>
</define>
<define name="model.dateLike_sequenceRepeatable">
<oneOrMore>
<ref name="date" />
</oneOrMore>
</define>
<define name="model.measureLike">
<notAllowed />
</define>
<define name="model.measureLike_alternation">
<notAllowed />
</define>
<define name="model.measureLike_sequence">
<empty />
</define>
<define name="model.measureLike_sequenceOptional">
<empty />
</define>
<define name="model.measureLike_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.measureLike_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.egLike">
<notAllowed />
</define>
<define name="model.graphicLike">
<notAllowed />
</define>
<define name="model.offsetLike">
<notAllowed />
</define>
<define name="model.offsetLike_alternation">
<notAllowed />
</define>
<define name="model.offsetLike_sequence">
<empty />
</define>
<define name="model.offsetLike_sequenceOptional">
<empty />
</define>
<define name="model.offsetLike_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.offsetLike_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.pPart.msdesc">
<choice>
<ref name="locus" />
<ref name="locusGrp" />
<ref name="objectType" />
<ref name="origDate" />
<ref name="origPlace" />
</choice>
</define>
<define name="model.pPart.editorial">
<notAllowed />
</define>
<define name="model.pPart.editorial_alternation">
<notAllowed />
</define>
<define name="model.pPart.editorial_sequence">
<empty />
</define>
<define name="model.pPart.editorial_sequenceOptional">
<empty />
</define>
<define name="model.pPart.editorial_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.pPart.editorial_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.pPart.transcriptional">
<notAllowed />
</define>
<define name="model.pPart.transcriptional_alternation">
<notAllowed />
</define>
<define name="model.pPart.transcriptional_sequence">
<empty />
</define>
<define name="model.pPart.transcriptional_sequenceOptional">
<empty />
</define>
<define name="model.pPart.transcriptional_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.pPart.transcriptional_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.pPart.edit">
<choice>
<ref name="model.pPart.editorial" />
<ref name="model.pPart.transcriptional" />
</choice>
</define>
<define name="model.ptrLike">
<choice>
<ref name="ref" />
</choice>
</define>
<define name="model.lPart">
<notAllowed />
</define>
<define name="model.global.meta">
<notAllowed />
</define>
<define name="model.milestoneLike">
<notAllowed />
</define>
<define name="model.gLike">
<notAllowed />
</define>
<define name="model.oddDecl">
<choice>
<ref name="elementSpec" />
</choice>
</define>
<define name="model.oddRef">
<notAllowed />
</define>
<define name="model.phrase.xml">
<notAllowed />
</define>
<define name="model.specDescLike">
<notAllowed />
</define>
<define name="model.biblLike">
<choice>
<ref name="bibl" />
<ref name="msDesc" />
</choice>
</define>
<define name="model.headLike">
<notAllowed />
</define>
<define name="model.labelLike">
<notAllowed />
</define>
<define name="model.listLike">
<notAllowed />
</define>
<define name="model.noteLike">
<notAllowed />
</define>
<define name="model.lLike">
<notAllowed />
</define>
<define name="model.pLike">
<choice>
<ref name="p" />
</choice>
</define>
<define name="model.stageLike">
<notAllowed />
</define>
<define name="model.global.edit">
<notAllowed />
</define>
<define name="model.divPart">
<choice>
<ref name="model.lLike" />
<ref name="model.pLike" />
<ref name="schemaSpec" />
</choice>
</define>
<define name="model.placeNamePart">
<notAllowed />
</define>
<define name="model.placeNamePart_alternation">
<notAllowed />
</define>
<define name="model.placeNamePart_sequence">
<empty />
</define>
<define name="model.placeNamePart_sequenceOptional">
<empty />
</define>
<define name="model.placeNamePart_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.placeNamePart_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.placeStateLike">
<choice>
<ref name="model.placeNamePart" />
</choice>
</define>
<define name="model.placeStateLike_alternation">
<choice>
<ref name="model.placeNamePart_alternation" />
</choice>
</define>
<define name="model.placeStateLike_sequence">
<ref name="model.placeNamePart_sequence" />
</define>
<define name="model.placeStateLike_sequenceOptional">
<optional>
<ref name="model.placeNamePart_sequenceOptional" />
</optional>
</define>
<define name="model.placeStateLike_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="model.placeNamePart_sequenceOptionalRepeatable" />
</zeroOrMore>
</define>
<define name="model.placeStateLike_sequenceRepeatable">
<oneOrMore>
<ref name="model.placeNamePart_sequenceRepeatable" />
</oneOrMore>
</define>
<define name="model.publicationStmtPart.agency">
<choice>
<ref name="publisher" />
</choice>
</define>
<define name="model.publicationStmtPart.detail">
<choice>
<ref name="model.ptrLike" />
<ref name="date" />
<ref name="biblScope" />
<ref name="pubPlace" />
<ref name="idno" />
</choice>
</define>
<define name="model.descLike">
<notAllowed />
</define>
<define name="model.glossLike">
<notAllowed />
</define>
<define name="model.quoteLike">
<notAllowed />
</define>
<define name="model.quoteLike_alternation">
<notAllowed />
</define>
<define name="model.quoteLike_sequence">
<empty />
</define>
<define name="model.quoteLike_sequenceOptional">
<empty />
</define>
<define name="model.quoteLike_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.quoteLike_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.qLike">
<choice>
<ref name="model.quoteLike" />
</choice>
</define>
<define name="model.respLike">
<choice>
<ref name="author" />
<ref name="editor" />
<ref name="respStmt" />
</choice>
</define>
<define name="model.imprintPart">
<choice>
<ref name="publisher" />
<ref name="biblScope" />
<ref name="pubPlace" />
</choice>
</define>
<define name="model.addressLike">
<notAllowed />
</define>
<define name="model.addressLike_alternation">
<notAllowed />
</define>
<define name="model.addressLike_sequence">
<empty />
</define>
<define name="model.addressLike_sequenceOptional">
<empty />
</define>
<define name="model.addressLike_sequenceOptionalRepeatable">
<empty />
</define>
<define name="model.addressLike_sequenceRepeatable">
<notAllowed />
</define>
<define name="model.nameLike">
<choice>
<ref name="model.nameLike.agent" />
<ref name="model.offsetLike" />
<ref name="model.placeStateLike" />
<ref name="idno" />
<ref name="model.persNamePart" />
</choice>
</define>
<define name="model.nameLike_alternation">
<choice>
<ref name="model.nameLike.agent_alternation" />
<ref name="model.offsetLike_alternation" />
<ref name="model.placeStateLike_alternation" />
<ref name="idno" />
<ref name="model.persNamePart_alternation" />
</choice>
</define>
<define name="model.nameLike_sequence">
<ref name="model.nameLike.agent_sequence" />
<ref name="model.offsetLike_sequence" />
<ref name="model.placeStateLike_sequence" />
<ref name="idno" />
<ref name="model.persNamePart_sequence" />
</define>
<define name="model.nameLike_sequenceOptional">
<optional>
<ref name="model.nameLike.agent_sequenceOptional" />
</optional>
<optional>
<ref name="model.offsetLike_sequenceOptional" />
</optional>
<optional>
<ref name="model.placeStateLike_sequenceOptional" />
</optional>
<optional>
<ref name="idno" />
</optional>
<optional>
<ref name="model.persNamePart_sequenceOptional" />
</optional>
</define>
<define name="model.nameLike_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="model.nameLike.agent_sequenceOptionalRepeatable" />
</zeroOrMore>
<zeroOrMore>
<ref name="model.offsetLike_sequenceOptionalRepeatable" />
</zeroOrMore>
<zeroOrMore>
<ref name="model.placeStateLike_sequenceOptionalRepeatable" />
</zeroOrMore>
<zeroOrMore>
<ref name="idno" />
</zeroOrMore>
<zeroOrMore>
<ref name="model.persNamePart_sequenceOptionalRepeatable" />
</zeroOrMore>
</define>
<define name="model.nameLike_sequenceRepeatable">
<oneOrMore>
<ref name="model.nameLike.agent_sequenceRepeatable" />
</oneOrMore>
<oneOrMore>
<ref name="model.offsetLike_sequenceRepeatable" />
</oneOrMore>
<oneOrMore>
<ref name="model.placeStateLike_sequenceRepeatable" />
</oneOrMore>
<oneOrMore>
<ref name="idno" />
</oneOrMore>
<oneOrMore>
<ref name="model.persNamePart_sequenceRepeatable" />
</oneOrMore>
</define>
<define name="model.global">
<choice>
<ref name="model.global.meta" />
<ref name="model.milestoneLike" />
<ref name="model.noteLike" />
<ref name="model.global.edit" />
</choice>
</define>
<define name="model.biblPart">
<choice>
<ref name="model.respLike" />
<ref name="model.imprintPart" />
<ref name="bibl" />
<ref name="extent" />
<ref name="msIdentifier" />
</choice>
</define>
<define name="model.pPart.data">
<choice>
<ref name="model.dateLike" />
<ref name="model.measureLike" />
<ref name="model.addressLike" />
<ref name="model.nameLike" />
</choice>
</define>
<define name="model.inter">
<choice>
<ref name="model.egLike" />
<ref name="model.oddDecl" />
<ref name="model.biblLike" />
<ref name="model.labelLike" />
<ref name="model.listLike" />
<ref name="model.stageLike" />
<ref name="model.qLike" />
</choice>
</define>
<define name="model.phrase">
<choice>
<ref name="model.segLike" />
<ref name="model.highlighted" />
<ref name="model.graphicLike" />
<ref name="model.pPart.msdesc" />
<ref name="model.pPart.edit" />
<ref name="model.ptrLike" />
<ref name="model.lPart" />
<ref name="model.phrase.xml" />
<ref name="model.specDescLike" />
<ref name="model.pPart.data" />
</choice>
</define>
<define name="model.limitedPhrase">
<choice>
<ref name="model.hiLike" />
<ref name="model.emphLike" />
<ref name="model.pPart.msdesc" />
<ref name="model.pPart.editorial" />
<ref name="model.ptrLike" />
<ref name="model.phrase.xml" />
<ref name="model.pPart.data" />
</choice>
</define>
<define name="model.teiHeaderPart">
<choice>
<ref name="encodingDesc" />
<ref name="profileDesc" />
</choice>
</define>
<define name="model.sourceDescPart">
<choice>
<ref name="recordHist" />
</choice>
</define>
<define name="model.encodingDescPart">
<choice>
<ref name="schemaSpec" />
</choice>
</define>
<define name="model.profileDescPart">
<choice>
<ref name="langUsage" />
</choice>
</define>
<define name="model.resourceLike">
<choice>
<ref name="text" />
</choice>
</define>
<define name="att.personal.attributes">
<ref name="att.naming.attributes" />
<ref name="att.personal.attribute.full" />
<ref name="att.personal.attribute.sort" />
</define>
<define name="att.personal.attribute.full">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="full"
a:defaultValue="yes">
<a:documentation>indicates whether the name component is given in full, as an
abbreviation or simply as an initial.</a:documentation>
<choice>
<value>yes</value>
<a:documentation>the name component is spelled out in full.</a:documentation>
<value>abb</value>
<a:documentation>(abbreviated) the name component is given in an abbreviated form.</a:documentation>
<value>init</value>
<a:documentation>(initial letter) the name component is indicated only by one
initial.</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.personal.attribute.sort">
<optional>
<attribute name="sort">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the sort order of the name component in relation to others within the name.</a:documentation>
<data type="nonNegativeInteger" />
</attribute>
</optional>
</define>
<define name="p">
<element name="p">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(paragraph)
marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents]</a:documentation>
<ref name="macro.paraContent" />
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-p-abstractModel-structure-p-constraint-report-4">
<rule context="tei:p">
<report
test="not(ancestor::tei:floatingText) and (ancestor::tei:p or ancestor::tei:ab) and not(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.
</report>
</rule>
</pattern>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-p-abstractModel-structure-l-constraint-report-5">
<rule context="tei:p">
<report test="ancestor::tei:l[not(.//tei:note//tei:p[. = current()])]">
Abstract model violation: Lines may not contain higher-level structural elements
such as div, p, or ab.
</report>
</rule>
</pattern>
<ref name="att.global.attributes" />
<ref name="att.declaring.attributes" />
<ref name="att.fragmentable.attributes" />
<ref name="att.written.attributes" />
<empty />
</element>
</define>
<define name="date">
<element name="date">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a
date in any format. [3.5.4. Dates and Times 2.2.4. Publication, Distribution, Licensing,
etc. 2.6. The Revision Description 3.11.2.4. Imprint, Size of a Document, and Reprint
Information 15.2.3. The Setting Description 13.3.6. Dates and Times]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.phrase" />
<ref name="model.global" />
</choice>
</zeroOrMore>
<ref name="att.typed.attribute.type" />
<attribute name="when">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the value of the date or time in a standard form, e.g. yyyy-mm-dd.</a:documentation>
<ref name="data.temporal.iso" />
</attribute>
<empty />
</element>
</define>
<define name="ref">
<element name="ref">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(reference)
defines a reference to another location, possibly modified by additional text or
comment. [3.6. Simple Links and Cross-References 16.1. Links]</a:documentation>
<ref name="macro.paraContent" />
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-ref-refAtts-constraint-report-6">
<rule context="tei:ref">
<report test="@target and @cRef">Only one of the attributes @target' and @cRef' may
be supplied on <name />
</report>
</rule>
</pattern>
<ref name="att.global.attributes" />
<ref name="att.pointing.attributes" />
<ref name="att.internetMedia.attributes" />
<ref name="att.typed.attributes" />
<ref name="att.declaring.attributes" />
<ref name="att.cReferencing.attributes" />
<empty />
</element>
</define>
<define name="author">
<element name="author">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">in a
bibliographic reference, contains the name(s) of an author, personal or corporate, of a
work; for example in the same form as that provided by a recognized bibliographic name
authority. [3.11.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<optional>
<attribute name="n">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number)
gives a number (or other label) for an element, which is not necessarily unique
within the document.
Sample values include: </a:documentation>
<data type="string" />
</attribute>
</optional>
<empty />
</element>
</define>
<define name="editor">
<element name="editor">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.11.2.2. Titles, Authors, and Editors]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<optional>
<attribute name="n">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number)
gives a number (or other label) for an element, which is not necessarily unique
within the document.
Sample values include: </a:documentation>
<data type="string" />
</attribute>
</optional>
<empty />
</element>
</define>
<define name="respStmt">
<element name="respStmt">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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.11.2.2. Titles, Authors, and Editors 2.2.1. The
Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement]</a:documentation>
<group>
<choice>
<group>
<oneOrMore>
<ref name="resp" />
</oneOrMore>
<oneOrMore>
<ref name="model.nameLike.agent" />
</oneOrMore>
</group>
<group>
<oneOrMore>
<ref name="model.nameLike.agent" />
</oneOrMore>
<oneOrMore>
<ref name="resp" />
</oneOrMore>
</group>
</choice>
</group>
<ref name="att.global.attributes" />
<ref name="att.canonical.attributes" />
<empty />
</element>
</define>
<define name="resp">
<element name="resp">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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.11.2.2. Titles,
Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The
Series Statement]</a:documentation>
<ref name="macro.phraseSeq.limited" />
<ref name="att.global.attributes" />
<ref name="att.canonical.attributes" />
<ref name="att.datable.attributes" />
<empty />
</element>
</define>
<define name="title">
<element name="title">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a
title for any kind of work. [3.11.2.2. Titles, Authors, and Editors 2.2.1. The Title
Statement 2.2.5. The Series Statement]</a:documentation>
<ref name="macro.paraContent" />
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.datable.attributes" />
<optional>
<attribute name="type">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">classifies
the title according to some convenient typology.
Sample values include: 1] main; 2] sub (subordinate) ; 3] alt (alternate) ; 4]
short; 5] desc (descriptive) </a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="publisher">
<element name="publisher">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the
name of the organization responsible for the publication or distribution of a
bibliographic item. [3.11.2.4. Imprint, Size of a Document, and Reprint Information
2.2.4. Publication, Distribution, Licensing, etc.]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.attributes" />
<ref name="att.canonical.attributes" />
<empty />
</element>
</define>
<define name="biblScope">
<element name="biblScope">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(scope of
bibliographic reference) defines the scope of a bibliographic reference, for example as
a list of page numbers, or a named subdivision of a larger work. [3.11.2.5. Scopes and
Ranges in Bibliographic Citations]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.attributes" />
<ref name="att.citing.attributes" />
<empty />
</element>
</define>
<define name="pubPlace">
<element name="pubPlace">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(publication
place) contains the name of the place where a bibliographic item was published.
[3.11.2.4. Imprint, Size of a Document, and Reprint Information]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.attributes" />
<ref name="att.naming.attributes" />
<empty />
</element>
</define>
<define name="bibl">
<element name="bibl">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bibliographic
citation) contains a loosely-structured bibliographic citation of which the
sub-components may or may not be explicitly tagged. [3.11.1. Methods of Encoding
Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2.
Declarable Elements]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.highlighted" />
<ref name="model.pPart.data" />
<ref name="model.pPart.edit" />
<ref name="model.segLike" />
<ref name="model.ptrLike" />
<ref name="model.biblPart" />
<ref name="model.global" />
</choice>
</zeroOrMore>
<ref name="att.global.attributes" />
<ref name="att.declarable.attributes" />
<ref name="att.typed.attributes" />
<ref name="att.sortable.attributes" />
<ref name="att.docStatus.attributes" />
<empty />
</element>
</define>
<define name="teiHeader">
<element name="teiHeader">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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 15.1. Varieties of Composite
Text]</a:documentation>
<group>
<ref name="fileDesc" />
<zeroOrMore>
<ref name="model.teiHeaderPart" />
</zeroOrMore>
<optional>
<ref name="revisionDesc" />
</optional>
</group>
<ref name="att.global.attribute.n" />
<ref name="att.global.rendition.attribute.style" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<attribute name="type">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Identify
the type of metadata schema: CorpusHeader, DocumentHeader,
PreparationHeader) </a:documentation>
<choice>
<value>CorpusHeader</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>DocumentHeader</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>PreparationHeader</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</attribute>
<empty />
</element>
</define>
<define name="fileDesc">
<element name="fileDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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]</a:documentation>
<group>
<group>
<ref name="titleStmt" />
<optional>
<ref name="extent" />
</optional>
<ref name="publicationStmt" />
<optional>
<ref name="seriesStmt" />
</optional>
</group>
<oneOrMore>
<ref name="sourceDesc" />
</oneOrMore>
</group>
<ref name="att.global.attribute.xmlid" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="titleStmt">
<element name="titleStmt">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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]</a:documentation>
<group>
<oneOrMore>
<ref name="title" />
</oneOrMore>
<zeroOrMore>
<ref name="model.respLike" />
</zeroOrMore>
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="extent">
<element name="extent">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes
the approximate size of a text stored on some carrier medium or of some other object,
digital or non-digital, specified in any convenient units. [2.2.3. Type and Extent of
File 2.2. The File Description 3.11.2.4. Imprint, Size of a Document, and Reprint
Information 10.7.1. Object Description]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.typed.attribute.subtype" />
<attribute name="type">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Indicate
the type of measure you you to inform abput the size of the
corpus.) characterizes the element in some sense, using any convenient classification
scheme or typology.</a:documentation>
<choice>
<value>Tokens</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(The
size of the corpus is given in token.) </a:documentation>
<value>Words</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(The
size of the corpus is given in words.) </a:documentation>
</choice>
</attribute>
<empty />
</element>
</define>
<define name="publicationStmt">
<element name="publicationStmt">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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]</a:documentation>
<choice>
<oneOrMore>
<group>
<ref name="model.publicationStmtPart.agency" />
<zeroOrMore>
<ref name="model.publicationStmtPart.detail" />
</zeroOrMore>
</group>
</oneOrMore>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
</choice>
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="idno">
<element name="idno">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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. [2.2.4.
Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.11.2.4.
Imprint, Size of a Document, and Reprint Information]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="idno" />
</choice>
</zeroOrMore>
<ref name="att.global.attributes" />
<ref name="att.sortable.attributes" />
<ref name="att.datable.attributes" />
<ref name="att.typed.attribute.subtype" />
<optional>
<attribute name="type">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">categorizes
the identifier, for example as an ISBN, Social Security number, etc.
Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7]
OCLC</a:documentation>
<choice>
<value>ISBN</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.</a:documentation>
<value>ISSN</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">International
Standard Serial Number: an eight-digit number to uniquely identify a serial
publication.</a:documentation>
<value>DOI</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Digital
Object Identifier: a unique string of letters and numbers assigned to an
electronic document.</a:documentation>
<value>URI</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">Uniform
Resource Identifier: a string of characters to uniquely identify a resource
which usually contains indication of the means of accessing that resource, the
name of its host, and its filepath.</a:documentation>
<value>VIAF</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">A
data number in the Virtual Internet Authority File assigned to link different
names in catalogs around the world for the same entity.</a:documentation>
<value>ESTC</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">English
Short-Title Catalogue number: an identifying number assigned to a document in
English printed in the British Isles or North America before 1801.</a:documentation>
<value>OCLC</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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.</a:documentation>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</choice>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="seriesStmt">
<element name="seriesStmt">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(series
statement) groups information about the series, if any, to which a publication belongs.
[2.2.5. The Series Statement 2.2. The File Description]</a:documentation>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<group>
<oneOrMore>
<ref name="title" />
</oneOrMore>
<zeroOrMore>
<choice>
<ref name="editor" />
<ref name="respStmt" />
</choice>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="idno" />
<ref name="biblScope" />
</choice>
</zeroOrMore>
</group>
</choice>
<ref name="att.global.attributes" />
<empty />
</element>
</define>
<define name="sourceDesc">
<element name="sourceDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(source
description) describes the source 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]</a:documentation>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<oneOrMore>
<choice>
<ref name="model.biblLike" />
<ref name="model.sourceDescPart" />
<ref name="model.listLike" />
</choice>
</oneOrMore>
</choice>
<ref name="att.global.attributes" />
<ref name="att.declarable.attributes" />
<empty />
</element>
</define>
<define name="encodingDesc">
<element name="encodingDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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]</a:documentation>
<oneOrMore>
<choice>
<ref name="model.encodingDescPart" />
<ref name="model.pLike" />
</choice>
</oneOrMore>
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="profileDesc">
<element name="profileDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(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]</a:documentation>
<zeroOrMore>
<ref name="model.profileDescPart" />
</zeroOrMore>
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="langUsage">
<element name="langUsage">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language
usage) describes the languages, sublanguages, registers, dialects, etc. represented
within a text. [2.4.2. Language Usage 2.4. The Profile Description 15.3.2. Declarable
Elements]</a:documentation>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<oneOrMore>
<ref name="language" />
</oneOrMore>
</choice>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="language">
<element name="language">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">characterizes
a single language or sublanguage used within a text. [2.4.2. Language Usage]</a:documentation>
<ref name="macro.phraseSeq.limited" />
<ref name="att.global.attribute.n" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<attribute name="style">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains
an expression in some formal style definition language which defines the rendering or
presentation used for this element in the source text</a:documentation>
<choice>
<value>Language</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>LanguageType</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>LanguageArea</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</attribute>
<attribute name="ident">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier)
Supplies a language code constructed as defined in BCP 47 which is used to identify
the language documented by this element, and which is referenced by the global
xml:lang attribute.</a:documentation>
<choice>
<data type="language" />
<choice>
<value />
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</choice>
</attribute>
<empty />
</element>
</define>
<define name="revisionDesc">
<element name="revisionDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(revision
description) summarizes the revision history for a file. [2.6. The Revision Description
2.1.1. The TEI Header and Its Components]</a:documentation>
<choice>
<oneOrMore>
<ref name="change" />
</oneOrMore>
</choice>
<ref name="att.global.attribute.xmlbase" />
<ref name="att.global.attribute.xmlspace" />
<ref name="att.global.rendition.attribute.rend" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.docStatus.attributes" />
<empty />
</element>
</define>
<define name="change">
<element name="change">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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 11.7.
Identifying Changes and Revisions]</a:documentation>
<ref name="macro.specialPara" />
<ref name="att.ascribed.attributes" />
<ref name="att.datable.attributes" />
<ref name="att.docStatus.attributes" />
<ref name="att.global.attributes" />
<ref name="att.typed.attributes" />
<optional>
<attribute name="target">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points
to one or more elements that belong to this change.</a:documentation>
<list>
<oneOrMore>
<data type="anyURI" />
</oneOrMore>
</list>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="TEI">
<element name="TEI">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(TEI
document) contains a single TEI-conformant document, combining a single TEI header with
one or more members of the model.resourceLike class. Multiple TEI elements may be
combined to form a teiCorpus element. [4. Default Text Structure 15.1. Varieties of
Composite Text]</a:documentation>
<group>
<ref name="teiHeader" />
<oneOrMore>
<ref name="model.resourceLike" />
</oneOrMore>
</group>
<ns xmlns="http://purl.oclc.org/dsdl/schematron"
prefix="tei"
uri="http://www.tei-c.org/ns/1.0" />
<ns xmlns="http://purl.oclc.org/dsdl/schematron"
prefix="xs"
uri="http://www.w3.org/2001/XMLSchema" />
<ns xmlns="http://purl.oclc.org/dsdl/schematron"
prefix="rng"
uri="http://relaxng.org/ns/structure/1.0" />
<ref name="att.global.attributes" />
<ref name="att.typed.attributes" />
<optional>
<attribute name="version">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the version number of the TEI Guidelines against which this document is valid.</a:documentation>
<data type="token">
<param name="pattern">[\d]+(\.[\d]+){0,2}</param>
</data>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="text">
<element name="text">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">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 15.1. Varieties of Composite Text]</a:documentation>
<group>
<zeroOrMore>
<ref name="model.global" />
</zeroOrMore>
<empty />
<zeroOrMore>
<ref name="model.global" />
</zeroOrMore>
</group>
<ref name="att.global.attributes" />
<ref name="att.declaring.attributes" />
<ref name="att.typed.attributes" />
<ref name="att.written.attributes" />
<empty />
</element>
</define>
<define name="att.combinable.attribute.mode">
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="mode"
a:defaultValue="add">
<a:documentation>specifies the effect of this declaration on its parent object.</a:documentation>
<choice>
<value>add</value>
<a:documentation>this declaration is added to the current definitions</a:documentation>
<value>delete</value>
<a:documentation>if present already, the whole of the declaration for this object is
removed from the current setup</a:documentation>
<value>change</value>
<a:documentation>this declaration changes the declaration of the same name in the
current definition</a:documentation>
<value>replace</value>
<a:documentation>this declaration replaces the declaration of the same name in the
current definition</a:documentation>
</choice>
</attribute>
</optional>
</define>
<define name="att.identified.attribute.ident">
<attribute name="ident">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the
identifier by which this element may be referenced.</a:documentation>
<data type="Name" />
</attribute>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.identified-spec-in-module-constraint-rule-7">
<rule context="tei:elementSpec[@module]|tei:classSpec[@module]|tei:macroSpec[@module]">
<assert
test=" (not(ancestor::tei:schemaSpec | ancestor::tei:TEI | ancestor::tei:teiCorpus)) or (not(@module) or (not(//tei:moduleSpec) and not(//tei:moduleRef)) or (//tei:moduleSpec[@ident = current()/@module]) or (//tei:moduleRef[@key = current()/@module])) ">
Specification <value-of select="@ident" />: the value of the module attribute ("<value-of
select="@module" />") should correspond to an existing module, via a moduleSpec or
moduleRef</assert>
</rule>
</pattern>
<define name="att.deprecated.attributes">
<ref name="att.deprecated.attribute.validUntil" />
</define>
<define name="att.deprecated.attribute.validUntil">
<optional>
<attribute name="validUntil">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides
a date before which the construct being defined will not be removed.</a:documentation>
<data type="date" />
</attribute>
</optional>
</define>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-att.deprecated-validUntil-deprecated-constraint-rule-8">
<sch:rule xmlns:rng="http://relaxng.org/ns/structure/1.0"
xmlns:sch="http://purl.oclc.org/dsdl/schematron"
xmlns="http://www.tei-c.org/ns/1.0"
context="tei:*[@validUntil]">
<sch:assert test="@validUntil cast as xs:date ge current-date()">
<sch:value-of
select="if (@ident) then concat('The ',@ident) else concat('This ',local-name(.),' of ',ancestor::tei:*[@ident][1]/@ident)" />
construct is outdated (as of <sch:value-of select="@validUntil" />); ODD processors may
ignore it, and its use is no longer supported</sch:assert>
<sch:assert role="nonfatal"
test="@validUntil cast as xs:date ge (current-date() + (60*xs:dayTimeDuration('P1D')))">
<sch:value-of
select="if (@ident) then concat('The ',@ident) else concat('This ',local-name(.),' of ',ancestor::tei:*[@ident][1]/@ident)" />
construct becomes outdated on <sch:value-of select="@validUntil" />
</sch:assert>
</sch:rule>
</pattern>
<define name="schemaSpec">
<element name="schemaSpec">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(schema
specification) generates a TEI-conformant schema and documentation for it. [2.3. The
Encoding Description 22.2. Modules and Schemas 23.5.1. Making a Unified ODD]</a:documentation>
<group>
<zeroOrMore>
<choice>
<ref name="model.glossLike" />
<ref name="model.descLike" />
</choice>
</zeroOrMore>
<zeroOrMore>
<choice>
<ref name="model.oddRef" />
<ref name="model.oddDecl" />
</choice>
</zeroOrMore>
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.identified.attribute.ident" />
<ref name="att.deprecated.attribute.validUntil" />
<optional>
<attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
name="defaultExceptions"
a:defaultValue="http://www.tei-c.org/ns/1.0 teix:egXML">
<a:documentation>(default namespace exclusions) provides a list of namespaces and/or
prefixed element names to be excluded by default from anyName in RELAX NG schemas</a:documentation>
<list>
<oneOrMore>
<choice>
<data type="anyURI">
<param name="pattern">[^/]+:.*</param>
</data>
<data type="Name">
<param name="pattern">.+:.+</param>
</data>
</choice>
</oneOrMore>
</list>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="elementSpec">
<element name="elementSpec">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(element
specification) documents the structure, content, and purpose of a single element type.
[22.5. Element Specifications 22. Documentation Elements]</a:documentation>
<group>
<zeroOrMore>
<choice>
<ref name="model.glossLike" />
<ref name="model.descLike" />
</choice>
</zeroOrMore>
<optional>
<ref name="valList" />
</optional>
<zeroOrMore>
<empty />
</zeroOrMore>
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.deprecated.attribute.validUntil" />
<attribute name="ident">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the identifier by which this element may be referenced.</a:documentation>
<choice>
<value>Lexical</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Syntactic</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Morphological</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>MarkUp</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Graphical</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Transcription</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Other</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<value>Meta</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
</choice>
</attribute>
<empty />
</element>
</define>
<define name="valItem">
<element name="valItem">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">documents a
single value in a predefined list of values. [22.5.3. Attribute List Specification]</a:documentation>
<group>
<zeroOrMore>
<ref name="model.glossLike" />
</zeroOrMore>
<optional>
<group>
<oneOrMore>
<ref name="model.descLike" />
</oneOrMore>
<zeroOrMore>
<group>
<ref name="model.glossLike" />
<zeroOrMore>
<ref name="model.descLike" />
</zeroOrMore>
</group>
</zeroOrMore>
</group>
</optional>
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.deprecated.attribute.validUntil" />
<attribute name="corresp">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<text />
</attribute>
<attribute name="ident">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the value concerned.</a:documentation>
<data type="string" />
</attribute>
<empty />
</element>
</define>
<define name="valList">
<element name="valList">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value list)
contains one or more valItem elements defining possible values. [22.5.3. Attribute List
Specification]</a:documentation>
<zeroOrMore>
<ref name="valItem" />
</zeroOrMore>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.deprecated.attribute.validUntil" />
<empty />
</element>
</define>
<define name="att.datable.custom.attributes">
<ref name="att.datable.custom.attribute.when-custom" />
<ref name="att.datable.custom.attribute.notBefore-custom" />
<ref name="att.datable.custom.attribute.notAfter-custom" />
<ref name="att.datable.custom.attribute.from-custom" />
<ref name="att.datable.custom.attribute.to-custom" />
<ref name="att.datable.custom.attribute.datingPoint" />
<ref name="att.datable.custom.attribute.datingMethod" />
</define>
<define name="att.datable.custom.attribute.when-custom">
<optional>
<attribute name="when-custom">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the value of a date or time in some custom standard form.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.notBefore-custom">
<optional>
<attribute name="notBefore-custom">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the earliest possible date for the event in some custom standard form.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.notAfter-custom">
<optional>
<attribute name="notAfter-custom">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the latest possible date for the event in some custom standard form.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.from-custom">
<optional>
<attribute name="from-custom">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the starting point of the period in some custom standard form.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.to-custom">
<optional>
<attribute name="to-custom">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the ending point of the period in some custom standard form.</a:documentation>
<list>
<oneOrMore>
<data type="token">
<param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
</data>
</oneOrMore>
</list>
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.datingPoint">
<optional>
<attribute name="datingPoint">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
a pointer to some location defining a named point in time with reference to which the
datable item is understood to have occurred</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<define name="att.datable.custom.attribute.datingMethod">
<optional>
<attribute name="datingMethod">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
a pointer to a calendar element or other means of interpreting the values of the
custom dating attributes.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
</define>
<define name="model.persNamePart">
<choice>
<ref name="surname" />
<ref name="forename" />
</choice>
</define>
<define name="model.persNamePart_alternation">
<choice>
<ref name="surname" />
<ref name="forename" />
</choice>
</define>
<define name="model.persNamePart_sequence">
<ref name="surname" />
<ref name="forename" />
</define>
<define name="model.persNamePart_sequenceOptional">
<optional>
<ref name="surname" />
</optional>
<optional>
<ref name="forename" />
</optional>
</define>
<define name="model.persNamePart_sequenceOptionalRepeatable">
<zeroOrMore>
<ref name="surname" />
</zeroOrMore>
<zeroOrMore>
<ref name="forename" />
</zeroOrMore>
</define>
<define name="model.persNamePart_sequenceRepeatable">
<oneOrMore>
<ref name="surname" />
</oneOrMore>
<oneOrMore>
<ref name="forename" />
</oneOrMore>
</define>
<define name="att.datable.iso.attributes">
<ref name="att.datable.iso.attribute.when-iso" />
<ref name="att.datable.iso.attribute.notBefore-iso" />
<ref name="att.datable.iso.attribute.notAfter-iso" />
<ref name="att.datable.iso.attribute.from-iso" />
<ref name="att.datable.iso.attribute.to-iso" />
</define>
<define name="att.datable.iso.attribute.when-iso">
<optional>
<attribute name="when-iso">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies
the value of a date or time in a standard form.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.iso.attribute.notBefore-iso">
<optional>
<attribute name="notBefore-iso">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the earliest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.iso.attribute.notAfter-iso">
<optional>
<attribute name="notAfter-iso">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies
the latest possible date for the event in standard form, e.g. yyyy-mm-dd.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.iso.attribute.from-iso">
<optional>
<attribute name="from-iso">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the starting point of the period in standard form.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="att.datable.iso.attribute.to-iso">
<optional>
<attribute name="to-iso">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates
the ending point of the period in standard form.</a:documentation>
<choice>
<data type="date" />
<data type="gYear" />
<data type="gMonth" />
<data type="gDay" />
<data type="gYearMonth" />
<data type="gMonthDay" />
<data type="time" />
<data type="dateTime" />
<data type="token">
<param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</param>
</data>
</choice>
</attribute>
</optional>
</define>
<define name="orgName">
<element name="orgName">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization
name) contains an organizational name. [13.2.2. Organizational Names]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.attributes" />
<ref name="att.datable.attributes" />
<ref name="att.editLike.attributes" />
<ref name="att.personal.attributes" />
<ref name="att.typed.attributes" />
<empty />
</element>
</define>
<define name="persName">
<element name="persName">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(personal
name) contains a proper noun or proper-noun phrase referring to a person, possibly
including one or more of the person's forenames, surnames, honorifics, added names, etc.
[13.2.1. Personal Names]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.canonical.attribute.ref" />
<optional>
<attribute name="key">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Indicate
the type of external digital identifier to a person.) provides an
externally-defined means of identifying the entity (or entities) being named,
using a coded value of some kind.
Suggested values include: 1] gnd(Unique identifier provided by ORCID.) ; 2]
orcid(Unique identifier provided by Gemeinsame Normdatei (GND).) </a:documentation>
<choice>
<value>gnd</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Unique
identifier provided by ORCID.) </a:documentation>
<value>orcid</value>
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Unique
identifier provided by Gemeinsame Normdatei (GND).) </a:documentation>
<data type="string" />
</choice>
</attribute>
</optional>
<empty />
</element>
</define>
<define name="surname">
<element name="surname">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a
family (inherited) name, as opposed to a given, baptismal, or nick name. [13.2.1.
Personal Names]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="forename">
<element name="forename">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a
forename, given or baptismal name. [13.2.1. Personal Names]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="msDesc">
<element name="msDesc">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript
description) contains a description of a single identifiable manuscript or other
text-bearing object. [10.1. Overview]</a:documentation>
<group>
<ref name="msIdentifier" />
<zeroOrMore>
<ref name="model.headLike" />
</zeroOrMore>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<group>
<optional>
<ref name="history" />
</optional>
<choice>
<zeroOrMore>
<ref name="msFrag" />
</zeroOrMore>
</choice>
</group>
</choice>
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.declaring.attributes" />
<ref name="att.docStatus.attributes" />
<empty />
</element>
</define>
<define name="locus">
<element name="locus">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines a
location within a manuscript or manuscript part, usually as a (possibly discontinuous)
sequence of folio references. [10.3.5. References to Locations within a Manuscript]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="locus" />
</choice>
</zeroOrMore>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<ref name="att.typed.attributes" />
<empty />
</element>
</define>
<define name="locusGrp">
<element name="locusGrp">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups a
number of locations which together form a distinct but discontinuous item within a
manuscript or manuscript part, according to a specific foliation. [10.3.5. References to
Locations within a Manuscript]</a:documentation>
<oneOrMore>
<ref name="locus" />
</oneOrMore>
<ref name="att.global.attributes" />
<optional>
<attribute name="scheme">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies
the foliation scheme in terms of which all the locations contained by the group
are specified by pointing to some foliation element defining it, or to some other
equivalent resource.</a:documentation>
<data type="anyURI" />
</attribute>
</optional>
<empty />
</element>
</define>
<define name="objectType">
<element name="objectType">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains a
word or phrase describing the type of object being referred to. [10.3.2. Material and
Object Type]</a:documentation>
<ref name="macro.phraseSeq" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="origDate">
<element name="origDate">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(origin
date) contains any form of date, used to identify the date of origin for a manuscript or
manuscript part. [10.3.1. Origination]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
<ref name="model.phrase" />
<ref name="model.global" />
</choice>
</zeroOrMore>
<ref name="att.datable.custom.attribute.notBefore-custom" />
<ref name="att.datable.custom.attribute.notAfter-custom" />
<ref name="att.dimensions.attribute.precision" />
<empty />
</element>
</define>
<define name="origPlace">
<element name="origPlace">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(origin
place) contains any form of place name, used to identify the place of origin for a
manuscript or manuscript part. [10.3.1. Origination]</a:documentation>
<ref name="macro.phraseSeq" />
</element>
</define>
<define name="msIdentifier">
<element name="msIdentifier">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript
identifier) contains the information required to identify the manuscript being
described. [10.4. The Manuscript Identifier]</a:documentation>
<group>
<group>
<optional>
<ref name="repository" />
</optional>
<zeroOrMore>
<ref name="collection" />
</zeroOrMore>
<optional>
<ref name="idno" />
</optional>
</group>
<zeroOrMore>
<choice>
<ref name="msName" />
<ref name="altIdentifier" />
</choice>
</zeroOrMore>
</group>
<pattern xmlns="http://purl.oclc.org/dsdl/schematron"
id="teiODD_LAUDATIODocument_S8-msIdentifier-msId_minimal-constraint-report-7">
<rule context="tei:msIdentifier">
<report
test="not(parent::tei:msPart) and (local-name(*[1])='idno' or local-name(*[1])='altIdentifier' or normalize-space(.)='')">An
msIdentifier must contain either a repository or location of some type, or a
manuscript name</report>
</rule>
</pattern>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="repository">
<element name="repository">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the
name of a repository within which manuscripts are stored, possibly forming part of an
institution. [10.4. The Manuscript Identifier]</a:documentation>
<ref name="macro.xtext" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="collection">
<element name="collection">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains the
name of a collection of manuscripts, not necessarily located within a single repository.
[10.4. The Manuscript Identifier]</a:documentation>
<ref name="macro.xtext" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="altIdentifier">
<element name="altIdentifier">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternative
identifier) contains an alternative or former structured identifier used for a
manuscript, such as a former catalogue number. [10.4. The Manuscript Identifier]</a:documentation>
<group>
<optional>
<ref name="repository" />
</optional>
<optional>
<ref name="collection" />
</optional>
<ref name="idno" />
</group>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="msName">
<element name="msName">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(alternative
name) contains any form of unstructured alternative name used for a manuscript, such as
an ocellus nominum, or nickname. [10.4. The Manuscript Identifier]</a:documentation>
<zeroOrMore>
<choice>
<text />
<ref name="model.gLike" />
</choice>
</zeroOrMore>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="history">
<element name="history">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">groups
elements describing the full history of a manuscript or manuscript part. [10.8. History]</a:documentation>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<group>
<optional>
<ref name="origin" />
</optional>
</group>
</choice>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="origin">
<element name="origin">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">contains any
descriptive or other information concerning the origin of a manuscript or manuscript
part. [10.8. History]</a:documentation>
<ref name="macro.specialPara" />
</element>
</define>
<define name="recordHist">
<element name="recordHist">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(recorded
history) provides information about the source and revision status of the parent
manuscript description itself. [10.9.1. Administrative Information]</a:documentation>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<group>
<ref name="source" />
<zeroOrMore>
<ref name="change" />
</zeroOrMore>
</group>
</choice>
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<empty />
</element>
</define>
<define name="source">
<element name="source">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes
the original source for the information contained with a manuscript description.
[10.9.1.1. Record History]</a:documentation>
<ref name="macro.specialPara" />
<ref name="att.global.responsibility.attribute.cert" />
<ref name="att.global.responsibility.attribute.resp" />
<ref name="att.global.source.attribute.source" />
<attribute name="facs">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" />
<text />
</attribute>
<empty />
</element>
</define>
<define name="msFrag">
<element name="msFrag">
<a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(manuscript
fragment) contains information about a fragment of a scattered manuscript now held as a
single unit or bound into a larger manuscript. [10.11. Manuscript Fragments]</a:documentation>
<group>
<choice>
<ref name="altIdentifier" />
<ref name="msIdentifier" />
</choice>
<zeroOrMore>
<ref name="model.headLike" />
</zeroOrMore>
<choice>
<oneOrMore>
<ref name="model.pLike" />
</oneOrMore>
<group>
<optional>
<ref name="history" />
</optional>
</group>
</choice>
</group>
<ref name="att.global.attributes" />
<ref name="att.typed.attributes" />
<empty />
</element>
</define>
<start>
<ref name="TEI" />
</start>
</grammar>
The following attributes are present in ES, but not derived from document upload (i.e. not specified by data provider):
laudatio_corpus_gitlab_idlaudatio_corpus_idpublication_status(boolean)is_latest_publication(boolean)
The following symbols are used in the descriptions to denote special attributes:
- 🚨 = Exists, but is not used in LAUDATIO
- 🤖 = Automatically generated attribute (i.e. not specified by data provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://laudatio-repository.org/schemas/document.schema.json",
"title": "Document",
"description": "Document metadata for LAUDATIO",
"type": "object",
"properties": {
"_id": {
"description": "🤖 ES-internal identifier for this document. Included here as a helper if another attributes contains ID references.",
"type": "string"
},
"document_title": {
"description": "The title of the document that will be shown in LAUDATIO.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"publication_version": {
"description": "🚨🤖 The current corpus version this document belongs to.",
"type": "string"
},
"document_author_forename": {
"description": "The author forename of this document. If unknown, enter \"NN\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_author_surname": {
"description": "The author surname of this document. If unknown, enter \"NN\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_editor_forename": {
"description": "The editor forename of this document. If unknown, enter \"NN\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_editor_surname": {
"description": "The editor surname of this document. If unknown, enter \"NN\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_genre": {
"description": "The genre of the document. **This is currently a very broad concept.** Note that if a document should be a combination of genres, you still need to specify it within one string (we recommend separating by commas).",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_size_type": {
"description": "The counting measure that determines the size of the document. Can either be 'Tokens' or 'Words'.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Tokens",
"Words"
]
},
"minItems": 1,
"maxItems": 1
},
"document_size_extent": {
"description": "The count value for the size of the document.",
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"minItems": 1,
"maxItems": 1
},
"document_languages_style": {
"description": "Array that needs to contain 'Language', 'LanguageArea', and 'LanguageType' in this exact order.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Language",
"LanguageArea",
"LanguageType"
]
},
"minItems": 3,
"maxItems": 3
},
"document_languages_language": {
"description": "Languages in here must correspond to the 'Language', 'LanguageArea', and 'LanguageType' fields from document_languages_style. If a value cannot be given, please enter 'NA'. Adding less than three elements leads to blank fields in LAUDATIO (e.g. 'Middle High German' and 'Southern dialects' will necessarily map to 'Language' and 'LanguageArea', so 'LanguageType' will be empty).",
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3
},
"document_languages_iso_code": {
"description": "[Language ISO 639-1 identifiers](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) in here must correspond to the 'Language', 'LanguageArea', and 'LanguageType' fields from document_languages_style.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 3,
"maxItems": 3
},
"document_publication_place": {
"description": "The publication place of this document (edition) (optional).",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_publisher": {
"description": "The name of the publisher (company or person) of this document (edition). If unknown, enter \"NN\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_publishing_date": {
"description": "The date of publication of this document (edition) (optional). Is in the format YYYY-MM-DD or YYYY.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_date_information": {
"description": "🚨 The date of publication of this document (edition) (optional). Is a free text field.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_pages": {
"description": "The scope of this document (e.g. page numbers) (optional). Corresponds to the `biblScope` tag in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_series": {
"description": "The series this document belongs to. Corresponds to the `title` tag of `seriesStmt` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_editor": {
"description": "The editor of series this document belongs to. Corresponds to the `editor` tag of `seriesStmt` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_volume": {
"description": "The volume number of the series this document belongs to. TODO/BUG seems to be read from TEI!",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_publication_volume_pages": {
"description": "Should be the (total number of?) pages of the volume of the series the document belongs to. Corresponds to the `biblScope` tag of `seriesStmt` in TEI (TODO/BUG: this should probably be ingested as document_publication_volume).",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_title": {
"description": "The classification description of the source document (shown in LAUDATIO under SOURCE DESCRIPTION). Corresponds to the `msName` tag of `sourceDesc`->`msDesc`->`msIdentifier` in TEI. If unknown or not applicable, enter \"NA\".",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_original_title": {
"description": "The original title of the source document (shown in LAUDATIO under SOURCE DESCRIPTION). Corresponds to the `title` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_original_place": {
"description": "The original place of the source document (shown in LAUDATIO under SOURCE DESCRIPTION). Corresponds to the `origPlace` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_original_date": {
"description": "The free text field for the date of the source document (used as a fallback in LAUDATIO). Corresponds to the `origDate` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_not_before": {
"description": "The earliest date of the date range for the source document (format is YYYY). Corresponds to the `notBefore-custom` attribute of the `origDate` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_not_after": {
"description": "The latest date of the date range for the source document (format is YYYY). Corresponds to the `notAfter-custom` attribute of the `origDate` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_history_location_in_manuscript": {
"description": "🚨 The location in the manuscript of the source document. Corresponds to the `locus` tag of `sourceDesc`->`msDesc`->`history`->`origin` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"document_list_of_annotations_type": {
"description": "The annotation types/categories this document is associated with (e.g. Transcription/Graphical/Lexical).",
"type": "array",
"items": {
"type": "string"
}
},
"document_list_of_annotations_name": {
"description": "🚨 The names of the annotation layers this document is associated with (e.g. pos/lemma/pb).",
"type": "array",
"items": {
"type": "string"
}
},
"document_list_of_annotations_id": {
"description": "The identifiers of the annotation layers this document is associated with (e.g. pos/lemma/pb). Must correspond to the annotation header file names.",
"type": "array",
"items": {
"type": "string"
}
},
"revision_document_version": {
"description": "Array of corpus version numbers this document appears in. Corresponds to the `n` attribute of the `change` tags of `revisionDesc` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"revision_publishing_date": {
"description": "Array of corpus publication dates this document appears in. Is in the format YYYY-MM-DD or YYYY. Corresponds to the `when` attribute of the `change` tags of `revisionDesc` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"revision_description": {
"description": "Array of descriptions for the revisions this document appears in. Corresponds to `change` tags of `revisionDesc` in TEI.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"document_id": {
"description": "🤖 Document identifier that is derived from the TEI-XML header file name.",
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 1
},
"in_corpora": {
"description": "🤖 ES identifier (`_id`) of corpus this document belongs to.",
"type": "string"
},
"has_annotations": {
"description": "🤖 ES identifiers (`_id`) of annotation layers associated with this document.",
"type": "array",
"items": {
"type": "string"
}
},
"has_plaintexts": {
"description": "🤖 ES identifiers (`_id`) of (automatically-extracted) plaintext documents associated with this document.",
"type": "array",
"items": {
"type": "string"
}
},
"document_merged_languages": {
"description": "🤖 Combined (separated by commas) and de-duplicated string of all languages and language codes in attributes document_languages_language and document_languages_iso_code.",
"type": "string"
},
"document_merged_authors": {
"description": "🤖 Document author in the form \"SURNAME, FORENAME\".",
"type": "string"
},
"document_merged_editors": {
"description": "🤖 Document editor in the form \"FORENAME SURNAME\".",
"type": "string"
}
},
"required": [
"document_title",
"publication_version",
"document_author_forename",
"document_author_surname",
"document_editor_forename",
"document_editor_surname",
"document_genre",
"document_size_type",
"document_size_extent",
"document_languages_style",
"document_languages_language",
"document_languages_iso_code",
"document_publication_publisher",
"document_history_title",
"revision_document_version",
"revision_publishing_date",
"revision_description",
"document_id"
]
}