diff --git a/teiCorpusHeaderSkeleton.tei.xml b/teiCorpusHeaderSkeleton.tei.xml
new file mode 100644
index 0000000..16f0dbd
--- /dev/null
+++ b/teiCorpusHeaderSkeleton.tei.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE teiHeader SYSTEM "tei_all.dtd">
+<teiHeader>
+   <fileDesc>
+      <titleStmt>
+         <title>[Aamulehti2021] from [klk-fi-v2-vrt for] EuReCo</title>
+      </titleStmt>
+      <publicationStmt>
+         <distributor>NOT FOR DISTRIBUTION - to be used locally in EuReCo</distributor>
+      </publicationStmt>
+      <sourceDesc>
+         <bibl>[Aamulehti2021] from [klk-fi-v2-vrt]</bibl>
+      </sourceDesc>
+   </fileDesc>
+   <profileDesc>
+      <langUsage>
+         <language ident="fi">Finnish</language>
+      </langUsage>
+   </profileDesc>
+</teiHeader>
diff --git a/teiTextHeaderSkeleton.tei.xml b/teiTextHeaderSkeleton.tei.xml
new file mode 100644
index 0000000..ab82162
--- /dev/null
+++ b/teiTextHeaderSkeleton.tei.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<teiHeader>
+    <fileDesc n="[EuReCo-KLK-FIN_$ID]">
+        <titleStmt>
+            <title>[$LABEL, page $PAGENO]</title>
+            <respStmt>
+                <resp>compiled by EuReCo</resp>
+                <name>EuReCo: HL</name>
+            </respStmt>
+        </titleStmt>
+        <publicationStmt>
+            <distributor>
+                <note>NOT FOR DISTRIBUTION - to be used locally in EuReCo</note>
+            </distributor>
+            <availability>
+                <licence>CLARIN_RES</licence>
+            </availability>
+        </publicationStmt>
+        <sourceDesc>
+            <biblStruct>
+                <analytic>
+                    <title type="main">[$LABEL, page $PAGENO]</title>
+                    <date>[$DATE]</date>
+                    <date type="year">TODO</date>
+                    <date type="month">TODO</date>
+                    <date type="day">TODO</date>
+                    <idno type="PAGEID">$PAGEID</idno>
+                    <idno type="BINDINGID">$BID</idno>
+                    <idno type="ID">$ID</idno>
+                    <idno type="KIELIPANKKI_METAFILENAME">$METAFILENAME</idno>
+                    <idno type="KIELIPANKKI_ORIGFILENAME">$ORIGFILENAME</idno>
+                    <textLang>$LANGUAGE</textLang>
+                </analytic>
+                <monogr>
+                    <title>$PUBLTITLE</title>
+                    <imprint>
+                        <pubPlace>TODO</pubPlace>
+                        <publisher>TODO</publisher>
+                    </imprint>
+                    <biblScope unit="ISSUETITLE"/>
+                    <biblScope unit="ISSUENO"/>
+                    <biblScope unit="ISSUEDATE"/>
+                    <biblScope unit="pp">$PAGENO</biblScope>
+                </monogr>
+            </biblStruct>
+        </sourceDesc>
+    </fileDesc>
+    <encodingDesc>
+        <tagsDecl>
+            <namespace name="http://www.tei-c.org/ns/1.0">
+                <tagUsage gi="s" occurs="SENTCOUNT"/>
+                <tagUsage gi="w" occurs="TOKENCOUNT"/>
+            </namespace>
+        </tagsDecl>
+    </encodingDesc>
+    <profileDesc>
+        <langUsage>
+            <language ident="fi" usage="|xxx:44|fin:23|eng:3|"/>
+        </langUsage>
+        <textClass>
+            <classCode scheme="kielipankki_klk">$PUBLTYPE</classCode>
+            <classCode scheme="kielipankki_klk_mapped">TODO</classCode>
+        </textClass>
+    </profileDesc>
+    <revisionDesc>
+        <change when="TODO" who="HL">TEI version for EuReCo</change>
+    </revisionDesc>
+</teiHeader>
diff --git a/tei_all.dtd b/tei_all.dtd
new file mode 100644
index 0000000..95ded9a
--- /dev/null
+++ b/tei_all.dtd
@@ -0,0 +1,6221 @@
+
+<!--
+DTD generated from ODD source 2024-07-08T10:02:12Z. .TEI material can be licensed differently depending on the use you intend to make of it. Hence it is made available under both the CC+BY and BSD-2 licences. The CC+BY licence is generally appropriate for usages which treat TEI content as data or documentation. The BSD-2 licence is generally appropriate for usage of TEI content in a software environment. For further information or clarification, please contact the TEI Consortium (info@tei-c.org).
+TEI Edition: P5 Version 4.8.0. Last updated on 8th July 2024, revision 1f9891a87 
+TEI Edition Location: https://www.tei-c.org/Vault/P5/4.8.0/
+
+-->
+
+<!-- start datatypes -->
+
+<!ENTITY % teidata.certainty '(high|medium|low|unknown)' >
+
+<!ENTITY % teidata.probability ' CDATA ' >
+
+<!ENTITY % teidata.numeric ' CDATA ' >
+
+<!ENTITY % teidata.interval ' CDATA ' >
+
+<!ENTITY % teidata.count ' CDATA ' >
+
+<!ENTITY % teidata.temporal.w3c ' CDATA ' >
+
+<!ENTITY % teidata.temporal.working ' CDATA ' >
+
+<!ENTITY % teidata.duration.w3c ' CDATA ' >
+
+<!ENTITY % teidata.truthValue ' CDATA ' >
+
+<!ENTITY % teidata.xTruthValue ' CDATA ' >
+
+<!ENTITY % teidata.language ' CDATA ' >
+
+<!ENTITY % teidata.namespace ' CDATA ' >
+
+<!ENTITY % teidata.namespaceOrName ' CDATA ' >
+
+<!ENTITY % teidata.outputMeasurement ' CDATA ' >
+
+<!ENTITY % teidata.pattern ' CDATA ' >
+
+<!ENTITY % teidata.point ' CDATA ' >
+
+<!ENTITY % teidata.pointer ' CDATA ' >
+
+<!ENTITY % teidata.authority ' CDATA ' >
+
+<!ENTITY % teidata.version ' CDATA ' >
+
+<!ENTITY % teidata.versionNumber ' CDATA ' >
+
+<!ENTITY % teidata.replacement ' CDATA' >
+
+<!ENTITY % teidata.xpath ' CDATA' >
+
+<!ENTITY % teidata.word ' CDATA ' >
+
+<!ENTITY % teidata.text ' CDATA ' >
+
+<!ENTITY % teidata.name ' CDATA ' >
+
+<!ENTITY % teidata.xmlName ' CDATA ' >
+
+<!ENTITY % teidata.prefix ' CDATA ' >
+
+<!ENTITY % teidata.enumerated '%teidata.word;' >
+
+<!ENTITY % teidata.gender '%teidata.enumerated;' >
+
+<!ENTITY % teidata.sex '%teidata.enumerated;' >
+
+<!ENTITY % teidata.probCert ' CDATA ' >
+
+<!ENTITY % teidata.unboundedCount ' CDATA ' >
+
+<!ENTITY % teidata.temporal.iso ' CDATA ' >
+
+<!ENTITY % teidata.duration.iso ' CDATA ' >
+
+<!-- end datatypes -->
+
+<!-- predeclared classes -->
+
+<!ENTITY % att.duration.w3c.attribute.dur '
+dur %teidata.duration.w3c;  #IMPLIED'>
+<!ENTITY % att.duration.w3c.attributes '
+ %att.duration.w3c.attribute.dur;'> 
+<!ENTITY % att.global.responsibility.attribute.cert '
+cert %teidata.probCert;  #IMPLIED'>
+
+<!ENTITY % att.global.responsibility.attribute.resp '
+resp CDATA  #IMPLIED'>
+<!ENTITY % att.global.responsibility.attributes '
+ %att.global.responsibility.attribute.cert;
+ %att.global.responsibility.attribute.resp;'> 
+<!ENTITY % att.global.rendition.attribute.rend '
+rend CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.rendition.attribute.style '
+style %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.global.rendition.attribute.rendition '
+rendition CDATA  #IMPLIED'>
+<!ENTITY % att.global.rendition.attributes '
+ %att.global.rendition.attribute.rend;
+ %att.global.rendition.attribute.style;
+ %att.global.rendition.attribute.rendition;'> 
+<!ENTITY % att.global.source.attribute.source '
+source CDATA  #IMPLIED'>
+<!ENTITY % att.global.source.attributes '
+ %att.global.source.attribute.source;'> 
+<!ENTITY % att.typed.attribute.type '
+type %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.typed.attribute.subtype '
+subtype %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.typed.attributes '
+ %att.typed.attribute.type;
+ %att.typed.attribute.subtype;'> 
+<!ENTITY % model.entryPart "superEntry |hom |sense |form |orth |pron |hyph |syll |gramGrp |pos |subc |colloc |def |etym |usg |lbl |xr |re"> 
+<!ENTITY % model.entryPart_sequence "superEntry, hom, sense, form, orth, pron, hyph, syll, gramGrp, pos, subc, colloc, def, etym, usg, lbl, xr, re"> 
+<!ENTITY % model.entryPart_sequenceOptional "superEntry?, hom?, sense?, form?, orth?, pron?, hyph?, syll?, gramGrp?, pos?, subc?, colloc?, def?, etym?, usg?, lbl?, xr?, re?"> 
+<!ENTITY % model.entryPart_sequenceOptionalRepeatable "superEntry*, hom*, sense*, form*, orth*, pron*, hyph*, syll*, gramGrp*, pos*, subc*, colloc*, def*, etym*, usg*, lbl*, xr*, re*"> 
+<!ENTITY % model.entryPart_sequenceRepeatable "superEntry+, hom+, sense+, form+, orth+, pron+, hyph+, syll+, gramGrp+, pos+, subc+, colloc+, def+, etym+, usg+, lbl+, xr+, re+"> 
+<!ENTITY % model.eventLike "event |listEvent"> 
+<!ENTITY % model.eventLike_sequence "event, listEvent"> 
+<!ENTITY % model.eventLike_sequenceOptional "event?, listEvent?"> 
+<!ENTITY % model.eventLike_sequenceOptionalRepeatable "event*, listEvent*"> 
+<!ENTITY % model.eventLike_sequenceRepeatable "event+, listEvent+"> 
+<!ENTITY % model.placeNamePart "placeName |bloc |country |region |settlement |district |geogName"> 
+<!ENTITY % model.placeNamePart_sequence "placeName, bloc, country, region, settlement, district, geogName"> 
+<!ENTITY % model.placeNamePart_sequenceOptional "placeName?, bloc?, country?, region?, settlement?, district?, geogName?"> 
+<!ENTITY % model.placeNamePart_sequenceOptionalRepeatable "placeName*, bloc*, country*, region*, settlement*, district*, geogName*"> 
+<!ENTITY % model.placeNamePart_sequenceRepeatable "placeName+, bloc+, country+, region+, settlement+, district+, geogName+"> 
+<!ENTITY % model.placeStateLike "%model.placeNamePart; |climate |location |population |state |terrain |trait"> 
+<!ENTITY % model.placeStateLike_sequence "%model.placeNamePart;, climate, location, population, state, terrain, trait"> 
+<!ENTITY % model.placeStateLike_sequenceOptional "%model.placeNamePart;?, climate?, location?, population?, state?, terrain?, trait?"> 
+<!ENTITY % model.placeStateLike_sequenceOptionalRepeatable "%model.placeNamePart;*, climate*, location*, population*, state*, terrain*, trait*"> 
+<!ENTITY % model.placeStateLike_sequenceRepeatable "%model.placeNamePart;+, climate+, location+, population+, state+, terrain+, trait+"> 
+<!ENTITY % model.orgPart "%model.eventLike; |listOrg |listPerson |listPlace"> 
+<!ENTITY % model.orgPart_sequence "%model.eventLike;, listOrg, listPerson, listPlace"> 
+<!ENTITY % model.orgPart_sequenceOptional "%model.eventLike;?, listOrg?, listPerson?, listPlace?"> 
+<!ENTITY % model.orgPart_sequenceOptionalRepeatable "%model.eventLike;*, listOrg*, listPerson*, listPlace*"> 
+<!ENTITY % model.orgPart_sequenceRepeatable "%model.eventLike;+, listOrg+, listPerson+, listPlace+"> 
+<!ENTITY % att.locatable.attribute.where '
+where CDATA  #IMPLIED'>
+<!ENTITY % att.locatable.attributes '
+ %att.locatable.attribute.where;'> 
+<!ENTITY % model.resource "text |facsimile |sourceDoc |standOff |fsdDecl"> 
+<!ENTITY % model.resource_sequence "text, facsimile, sourceDoc, standOff, fsdDecl"> 
+<!ENTITY % model.resource_sequenceOptional "text?, facsimile?, sourceDoc?, standOff?, fsdDecl?"> 
+<!ENTITY % model.resource_sequenceOptionalRepeatable "text*, facsimile*, sourceDoc*, standOff*, fsdDecl*"> 
+<!ENTITY % model.resource_sequenceRepeatable "text+, facsimile+, sourceDoc+, standOff+, fsdDecl+"> 
+<!ENTITY % model.describedResource "teiCorpus |TEI"> 
+<!ENTITY % model.describedResource_sequence "teiCorpus, TEI"> 
+<!ENTITY % model.describedResource_sequenceOptional "teiCorpus?, TEI?"> 
+<!ENTITY % model.describedResource_sequenceOptionalRepeatable "teiCorpus*, TEI*"> 
+<!ENTITY % model.describedResource_sequenceRepeatable "teiCorpus+, TEI+"> 
+<!ENTITY % model.objectLike "object |listObject"> 
+<!ENTITY % model.objectLike_sequence "object, listObject"> 
+<!ENTITY % model.objectLike_sequenceOptional "object?, listObject?"> 
+<!ENTITY % model.objectLike_sequenceOptionalRepeatable "object*, listObject*"> 
+<!ENTITY % model.objectLike_sequenceRepeatable "object+, listObject+"> 
+<!ENTITY % att.duration.iso.attribute.dur-iso '
+dur-iso %teidata.duration.iso;  #IMPLIED'>
+<!ENTITY % att.duration.iso.attributes '
+ %att.duration.iso.attribute.dur-iso;'> 
+<!ENTITY % att.metrical.attribute.met '
+met CDATA #IMPLIED'>
+
+<!ENTITY % att.metrical.attribute.real '
+real CDATA #IMPLIED'>
+
+<!ENTITY % att.metrical.attribute.rhyme '
+rhyme CDATA #IMPLIED'>
+<!ENTITY % att.metrical.attributes '
+ %att.metrical.attribute.met;
+ %att.metrical.attribute.real;
+ %att.metrical.attribute.rhyme;'> 
+<!ENTITY % att.enjamb.attribute.enjamb '
+enjamb %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.enjamb.attributes '
+ %att.enjamb.attribute.enjamb;'> <!ENTITY % att.duration.attributes '%att.duration.w3c.attributes;%att.duration.iso.attributes;'> 
+<!ENTITY % model.global.spoken "pause |vocal |kinesic |incident |writing |shift"> 
+<!ENTITY % model.global.spoken_sequence "pause, vocal, kinesic, incident, writing, shift"> 
+<!ENTITY % model.global.spoken_sequenceOptional "pause?, vocal?, kinesic?, incident?, writing?, shift?"> 
+<!ENTITY % model.global.spoken_sequenceOptionalRepeatable "pause*, vocal*, kinesic*, incident*, writing*, shift*"> 
+<!ENTITY % model.global.spoken_sequenceRepeatable "pause+, vocal+, kinesic+, incident+, writing+, shift+"> 
+<!ENTITY % model.divPart.spoken "u |annotationBlock"> 
+<!ENTITY % model.divPart.spoken_sequence "u, annotationBlock"> 
+<!ENTITY % model.divPart.spoken_sequenceOptional "u?, annotationBlock?"> 
+<!ENTITY % model.divPart.spoken_sequenceOptionalRepeatable "u*, annotationBlock*"> 
+<!ENTITY % model.divPart.spoken_sequenceRepeatable "u+, annotationBlock+"> 
+<!ENTITY % att.global.analytic.attribute.ana '
+ana CDATA  #IMPLIED'>
+<!ENTITY % att.global.analytic.attributes '
+ %att.global.analytic.attribute.ana;'> 
+<!ENTITY % model.entryLike "superEntry |entry |entryFree"> 
+<!ENTITY % model.entryLike_sequence "superEntry, entry, entryFree"> 
+<!ENTITY % model.entryLike_sequenceOptional "superEntry?, entry?, entryFree?"> 
+<!ENTITY % model.entryLike_sequenceOptionalRepeatable "superEntry*, entry*, entryFree*"> 
+<!ENTITY % model.entryLike_sequenceRepeatable "superEntry+, entry+, entryFree+"> 
+<!ENTITY % model.ptrLike.form "oRef |pRef"> 
+<!ENTITY % model.ptrLike.form_sequence "oRef, pRef"> 
+<!ENTITY % model.ptrLike.form_sequenceOptional "oRef?, pRef?"> 
+<!ENTITY % model.ptrLike.form_sequenceOptionalRepeatable "oRef*, pRef*"> 
+<!ENTITY % model.ptrLike.form_sequenceRepeatable "oRef+, pRef+"> 
+<!ENTITY % att.msExcerpt.attribute.defective '
+defective %teidata.xTruthValue;  #IMPLIED'>
+<!ENTITY % att.msExcerpt.attributes '
+ %att.msExcerpt.attribute.defective;'> 
+<!ENTITY % att.global.facs.attribute.facs '
+facs CDATA  #IMPLIED'>
+<!ENTITY % att.global.facs.attributes '
+ %att.global.facs.attribute.facs;'> 
+<!ENTITY % att.global.change.attribute.change '
+change CDATA  #IMPLIED'>
+<!ENTITY % att.global.change.attributes '
+ %att.global.change.attribute.change;'> 
+<!ENTITY % att.datable.custom.attribute.when-custom '
+when-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.notBefore-custom '
+notBefore-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.notAfter-custom '
+notAfter-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.from-custom '
+from-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.to-custom '
+to-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.datingPoint '
+datingPoint %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.datingMethod '
+datingMethod %teidata.pointer;  #IMPLIED'>
+<!ENTITY % att.datable.custom.attributes '
+ %att.datable.custom.attribute.when-custom;
+ %att.datable.custom.attribute.notBefore-custom;
+ %att.datable.custom.attribute.notAfter-custom;
+ %att.datable.custom.attribute.from-custom;
+ %att.datable.custom.attribute.to-custom;
+ %att.datable.custom.attribute.datingPoint;
+ %att.datable.custom.attribute.datingMethod;'> 
+<!ENTITY % model.persNamePart "surname |forename |genName |nameLink |addName |roleName |persPronouns"> 
+<!ENTITY % model.persNamePart_sequence "surname, forename, genName, nameLink, addName, roleName, persPronouns"> 
+<!ENTITY % model.persNamePart_sequenceOptional "surname?, forename?, genName?, nameLink?, addName?, roleName?, persPronouns?"> 
+<!ENTITY % model.persNamePart_sequenceOptionalRepeatable "surname*, forename*, genName*, nameLink*, addName*, roleName*, persPronouns*"> 
+<!ENTITY % model.persNamePart_sequenceRepeatable "surname+, forename+, genName+, nameLink+, addName+, roleName+, persPronouns+"> 
+<!ENTITY % att.datable.iso.attribute.when-iso '
+when-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.notBefore-iso '
+notBefore-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.notAfter-iso '
+notAfter-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.from-iso '
+from-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.to-iso '
+to-iso %teidata.temporal.iso;  #IMPLIED'>
+<!ENTITY % att.datable.iso.attributes '
+ %att.datable.iso.attribute.when-iso;
+ %att.datable.iso.attribute.notBefore-iso;
+ %att.datable.iso.attribute.notAfter-iso;
+ %att.datable.iso.attribute.from-iso;
+ %att.datable.iso.attribute.to-iso;'> 
+<!ENTITY % att.global.linking.attribute.corresp '
+corresp CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.synch '
+synch CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.sameAs '
+sameAs %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.copyOf '
+copyOf %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.next '
+next %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.prev '
+prev %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.exclude '
+exclude CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.select '
+select CDATA  #IMPLIED'>
+<!ENTITY % att.global.linking.attributes '
+ %att.global.linking.attribute.corresp;
+ %att.global.linking.attribute.synch;
+ %att.global.linking.attribute.sameAs;
+ %att.global.linking.attribute.copyOf;
+ %att.global.linking.attribute.next;
+ %att.global.linking.attribute.prev;
+ %att.global.linking.attribute.exclude;
+ %att.global.linking.attribute.select;'> 
+<!ENTITY % att.translatable.attribute.versionDate '
+versionDate %teidata.temporal.working;  #IMPLIED'>
+<!ENTITY % att.translatable.attributes '
+ %att.translatable.attribute.versionDate;'> 
+<!ENTITY % att.deprecated.attribute.validUntil '
+validUntil CDATA #IMPLIED'>
+<!ENTITY % att.deprecated.attributes '
+ %att.deprecated.attribute.validUntil;'> 
+<!-- end of predeclared classes -->
+
+<!ENTITY % att.anchoring.attribute.anchored '
+anchored %teidata.truthValue;  "true" '>
+
+<!ENTITY % att.anchoring.attribute.targetEnd '
+targetEnd CDATA  #IMPLIED'>
+<!ENTITY % att.anchoring.attributes '
+ %att.anchoring.attribute.anchored;
+ %att.anchoring.attribute.targetEnd;'> 
+<!ENTITY % att.ascribed.attribute.who '
+who CDATA  #IMPLIED'>
+<!ENTITY % att.ascribed.attributes '
+ %att.ascribed.attribute.who;'> 
+<!ENTITY % att.ascribed.directed.attribute.toWhom '
+toWhom CDATA  #IMPLIED'>
+<!ENTITY % att.ascribed.directed.attributes '%att.ascribed.attributes;
+ %att.ascribed.directed.attribute.toWhom;'> 
+<!ENTITY % att.canonical.attribute.key '
+key %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.canonical.attribute.ref '
+ref CDATA  #IMPLIED'>
+<!ENTITY % att.canonical.attributes '
+ %att.canonical.attribute.key;
+ %att.canonical.attribute.ref;'> 
+<!ENTITY % att.ranging.attribute.atLeast '
+atLeast %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.ranging.attribute.atMost '
+atMost %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.ranging.attribute.min '
+min %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.ranging.attribute.max '
+max %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.ranging.attribute.confidence '
+confidence %teidata.probability;  #IMPLIED'>
+<!ENTITY % att.ranging.attributes '
+ %att.ranging.attribute.atLeast;
+ %att.ranging.attribute.atMost;
+ %att.ranging.attribute.min;
+ %att.ranging.attribute.max;
+ %att.ranging.attribute.confidence;'> 
+<!ENTITY % att.dimensions.attribute.unit '
+unit %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.dimensions.attribute.quantity '
+quantity %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.dimensions.attribute.extent '
+extent %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.dimensions.attribute.precision '
+precision %teidata.certainty;  #IMPLIED'>
+
+<!ENTITY % att.dimensions.attribute.scope '
+scope %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.dimensions.attributes '%att.ranging.attributes;
+ %att.dimensions.attribute.unit;
+ %att.dimensions.attribute.quantity;
+ %att.dimensions.attribute.extent;
+ %att.dimensions.attribute.precision;
+ %att.dimensions.attribute.scope;'> 
+<!ENTITY % att.written.attribute.hand '
+hand %teidata.pointer;  #IMPLIED'>
+<!ENTITY % att.written.attributes '
+ %att.written.attribute.hand;'> 
+<!ENTITY % att.damaged.attribute.agent '
+agent %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.damaged.attribute.degree '
+degree %teidata.probCert;  #IMPLIED'>
+
+<!ENTITY % att.damaged.attribute.group '
+group %teidata.count;  #IMPLIED'>
+<!ENTITY % att.damaged.attributes '%att.dimensions.attributes;%att.written.attributes;
+ %att.damaged.attribute.agent;
+ %att.damaged.attribute.degree;
+ %att.damaged.attribute.group;'> 
+<!ENTITY % att.breaking.attribute.break '
+break %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.breaking.attributes '
+ %att.breaking.attribute.break;'> 
+<!ENTITY % att.cmc.attribute.generatedBy '
+generatedBy %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.cmc.attributes '
+ %att.cmc.attribute.generatedBy;'> 
+<!ENTITY % att.cReferencing.attribute.cRef '
+cRef %teidata.text;  #IMPLIED'>
+<!ENTITY % att.cReferencing.attributes '
+ %att.cReferencing.attribute.cRef;'> 
+<!ENTITY % att.datable.w3c.attribute.when '
+when %teidata.temporal.w3c;  #IMPLIED'>
+
+<!ENTITY % att.datable.w3c.attribute.notBefore '
+notBefore %teidata.temporal.w3c;  #IMPLIED'>
+
+<!ENTITY % att.datable.w3c.attribute.notAfter '
+notAfter %teidata.temporal.w3c;  #IMPLIED'>
+
+<!ENTITY % att.datable.w3c.attribute.from '
+from %teidata.temporal.w3c;  #IMPLIED'>
+
+<!ENTITY % att.datable.w3c.attribute.to '
+to %teidata.temporal.w3c;  #IMPLIED'>
+<!ENTITY % att.datable.w3c.attributes '
+ %att.datable.w3c.attribute.when;
+ %att.datable.w3c.attribute.notBefore;
+ %att.datable.w3c.attribute.notAfter;
+ %att.datable.w3c.attribute.from;
+ %att.datable.w3c.attribute.to;'> 
+<!ENTITY % att.datable.attribute.period '
+period CDATA  #IMPLIED'>
+<!ENTITY % att.datable.attributes '%att.datable.w3c.attributes;%att.datable.iso.attributes;%att.datable.custom.attributes;
+ %att.datable.attribute.period;'> 
+<!ENTITY % att.datcat.attribute.datcat '
+datcat CDATA  #IMPLIED'>
+
+<!ENTITY % att.datcat.attribute.valueDatcat '
+valueDatcat CDATA  #IMPLIED'>
+
+<!ENTITY % att.datcat.attribute.targetDatcat '
+targetDatcat CDATA  #IMPLIED'>
+<!ENTITY % att.datcat.attributes '
+ %att.datcat.attribute.datcat;
+ %att.datcat.attribute.valueDatcat;
+ %att.datcat.attribute.targetDatcat;'> 
+<!ENTITY % att.declarable.attribute.default '
+default (true|false) "false" '>
+<!ENTITY % att.declarable.attributes '
+ %att.declarable.attribute.default;'> 
+<!ENTITY % att.declaring.attribute.decls '
+decls CDATA  #IMPLIED'>
+<!ENTITY % att.declaring.attributes '
+ %att.declaring.attribute.decls;'> 
+<!ENTITY % att.fragmentable.attribute.part '
+part (Y|N|I|M|F) "N" '>
+<!ENTITY % att.fragmentable.attributes '
+ %att.fragmentable.attribute.part;'> 
+<!ENTITY % att.divLike.attribute.org '
+org (composite|uniform) "uniform" '>
+
+<!ENTITY % att.divLike.attribute.sample '
+sample (initial|medial|final|unknown|complete) "complete" '>
+<!ENTITY % att.divLike.attributes '%att.metrical.attributes;%att.fragmentable.attributes;
+ %att.divLike.attribute.org;
+ %att.divLike.attribute.sample;'> 
+<!ENTITY % att.docStatus.attribute.status '
+status %teidata.enumerated;  "draft" '>
+<!ENTITY % att.docStatus.attributes '
+ %att.docStatus.attribute.status;'> 
+<!ENTITY % att.duration.w3c.attribute.dur '
+dur %teidata.duration.w3c;  #IMPLIED'>
+<!ENTITY % att.duration.w3c.attributes '
+ %att.duration.w3c.attribute.dur;'> 
+<!ENTITY % att.global.responsibility.attribute.cert '
+cert %teidata.probCert;  #IMPLIED'>
+
+<!ENTITY % att.global.responsibility.attribute.resp '
+resp CDATA  #IMPLIED'>
+<!ENTITY % att.global.responsibility.attributes '
+ %att.global.responsibility.attribute.cert;
+ %att.global.responsibility.attribute.resp;'> 
+<!ENTITY % att.editLike.attribute.evidence '
+evidence NMTOKENS  #IMPLIED'>
+
+<!ENTITY % att.editLike.attribute.instant '
+instant %teidata.xTruthValue;  "false" '>
+<!ENTITY % att.editLike.attributes '
+ %att.editLike.attribute.evidence;
+ %att.editLike.attribute.instant;'> 
+<!ENTITY % att.global.rendition.attribute.rend '
+rend CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.rendition.attribute.style '
+style %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.global.rendition.attribute.rendition '
+rendition CDATA  #IMPLIED'>
+<!ENTITY % att.global.rendition.attributes '
+ %att.global.rendition.attribute.rend;
+ %att.global.rendition.attribute.style;
+ %att.global.rendition.attribute.rendition;'> 
+<!ENTITY % att.global.source.attribute.source '
+source CDATA  #IMPLIED'>
+<!ENTITY % att.global.source.attributes '
+ %att.global.source.attribute.source;'> 
+<!ENTITY % att.global.attribute.xmlid '
+xml:id ID #IMPLIED'>
+
+<!ENTITY % att.global.attribute.n '
+n %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.global.attribute.xmllang '
+xml:lang %teidata.language;  #IMPLIED'>
+
+<!ENTITY % att.global.attribute.xmlbase '
+xml:base %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.attribute.xmlspace '
+xml:space (default|preserve) #IMPLIED'>
+<!ENTITY % att.global.attributes '%att.global.rendition.attributes;%att.global.linking.attributes;%att.global.analytic.attributes;%att.global.facs.attributes;%att.global.change.attributes;%att.global.responsibility.attributes;%att.global.source.attributes;
+ %att.global.attribute.xmlid;
+ %att.global.attribute.n;
+ %att.global.attribute.xmllang;
+ %att.global.attribute.xmlbase;
+ %att.global.attribute.xmlspace;'> 
+<!ENTITY % att.handFeatures.attribute.scribe '
+scribe %teidata.name;  #IMPLIED'>
+
+<!ENTITY % att.handFeatures.attribute.scribeRef '
+scribeRef CDATA  #IMPLIED'>
+
+<!ENTITY % att.handFeatures.attribute.script '
+script NMTOKENS  #IMPLIED'>
+
+<!ENTITY % att.handFeatures.attribute.scriptRef '
+scriptRef CDATA  #IMPLIED'>
+
+<!ENTITY % att.handFeatures.attribute.medium '
+medium NMTOKENS  #IMPLIED'>
+
+<!ENTITY % att.handFeatures.attribute.scope '
+scope (sole|major|minor) #IMPLIED'>
+<!ENTITY % att.handFeatures.attributes '
+ %att.handFeatures.attribute.scribe;
+ %att.handFeatures.attribute.scribeRef;
+ %att.handFeatures.attribute.script;
+ %att.handFeatures.attribute.scriptRef;
+ %att.handFeatures.attribute.medium;
+ %att.handFeatures.attribute.scope;'> 
+<!ENTITY % att.internetMedia.attribute.mimeType '
+mimeType CDATA  #IMPLIED'>
+<!ENTITY % att.internetMedia.attributes '
+ %att.internetMedia.attribute.mimeType;'> 
+<!ENTITY % att.media.attribute.width '
+width %teidata.outputMeasurement;  #IMPLIED'>
+
+<!ENTITY % att.media.attribute.height '
+height %teidata.outputMeasurement;  #IMPLIED'>
+
+<!ENTITY % att.media.attribute.scale '
+scale %teidata.numeric;  #IMPLIED'>
+<!ENTITY % att.media.attributes '%att.internetMedia.attributes;
+ %att.media.attribute.width;
+ %att.media.attribute.height;
+ %att.media.attribute.scale;'> 
+<!ENTITY % att.resourced.attribute.url '
+url %teidata.pointer;  #REQUIRED'>
+<!ENTITY % att.resourced.attributes '
+ %att.resourced.attribute.url;'> 
+<!ENTITY % att.interpLike.attribute.type '
+type %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.interpLike.attribute.subtype '
+subtype %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.interpLike.attribute.inst '
+inst CDATA  #IMPLIED'>
+<!ENTITY % att.interpLike.attributes '
+ %att.interpLike.attribute.type;
+ %att.interpLike.attribute.subtype;
+ %att.interpLike.attribute.inst;'> 
+<!ENTITY % att.measurement.attribute.unit '
+unit %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.measurement.attribute.unitRef '
+unitRef %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.measurement.attribute.quantity '
+quantity %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.measurement.attribute.commodity '
+commodity CDATA  #IMPLIED'>
+<!ENTITY % att.measurement.attributes '
+ %att.measurement.attribute.unit;
+ %att.measurement.attribute.unitRef;
+ %att.measurement.attribute.quantity;
+ %att.measurement.attribute.commodity;'> 
+<!ENTITY % att.naming.attribute.role '
+role NMTOKENS  #IMPLIED'>
+
+<!ENTITY % att.naming.attribute.nymRef '
+nymRef CDATA  #IMPLIED'>
+<!ENTITY % att.naming.attributes '%att.canonical.attributes;
+ %att.naming.attribute.role;
+ %att.naming.attribute.nymRef;'> 
+<!ENTITY % att.notated.attribute.notation '
+notation %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.notated.attributes '
+ %att.notated.attribute.notation;'> 
+<!ENTITY % att.placement.attribute.place '
+place NMTOKENS  #IMPLIED'>
+<!ENTITY % att.placement.attributes '
+ %att.placement.attribute.place;'> 
+<!ENTITY % att.indentation.attribute.indentLevel '
+indentLevel CDATA #IMPLIED'>
+<!ENTITY % att.indentation.attributes '
+ %att.indentation.attribute.indentLevel;'> 
+<!ENTITY % att.typed.attribute.type '
+type %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.typed.attribute.subtype '
+subtype %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.typed.attributes '
+ %att.typed.attribute.type;
+ %att.typed.attribute.subtype;'> 
+<!ENTITY % att.pointing.attribute.targetLang '
+targetLang %teidata.language;  #IMPLIED'>
+
+<!ENTITY % att.pointing.attribute.target '
+target CDATA  #IMPLIED'>
+
+<!ENTITY % att.pointing.attribute.evaluate '
+evaluate (all|one|none) #IMPLIED'>
+<!ENTITY % att.pointing.attributes '
+ %att.pointing.attribute.targetLang;
+ %att.pointing.attribute.target;
+ %att.pointing.attribute.evaluate;'> 
+<!ENTITY % att.pointing.group.attribute.domains '
+domains CDATA  #IMPLIED'>
+
+<!ENTITY % att.pointing.group.attribute.targFunc '
+targFunc CDATA  #IMPLIED'>
+<!ENTITY % att.pointing.group.attributes '%att.pointing.attributes;%att.typed.attributes;
+ %att.pointing.group.attribute.domains;
+ %att.pointing.group.attribute.targFunc;'> 
+<!ENTITY % att.scoping.attribute.target '
+target CDATA  #IMPLIED'>
+
+<!ENTITY % att.scoping.attribute.match '
+match %teidata.xpath;  #IMPLIED'>
+<!ENTITY % att.scoping.attributes '
+ %att.scoping.attribute.target;
+ %att.scoping.attribute.match;'> 
+<!ENTITY % att.segLike.attribute.function '
+function %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.segLike.attributes '%att.metrical.attributes;%att.datcat.attributes;%att.fragmentable.attributes;
+ %att.segLike.attribute.function;'> 
+<!ENTITY % att.sortable.attribute.sortKey '
+sortKey %teidata.word;  #IMPLIED'>
+<!ENTITY % att.sortable.attributes '
+ %att.sortable.attribute.sortKey;'> 
+<!ENTITY % att.edition.attribute.ed '
+ed CDATA  #IMPLIED'>
+
+<!ENTITY % att.edition.attribute.edRef '
+edRef CDATA  #IMPLIED'>
+<!ENTITY % att.edition.attributes '
+ %att.edition.attribute.ed;
+ %att.edition.attribute.edRef;'> 
+<!ENTITY % att.spanning.attribute.spanTo '
+spanTo %teidata.pointer;  #IMPLIED'>
+<!ENTITY % att.spanning.attributes '
+ %att.spanning.attribute.spanTo;'> 
+<!ENTITY % att.styleDef.attribute.scheme '
+scheme (css|xslfo|free|other) #IMPLIED'>
+
+<!ENTITY % att.styleDef.attribute.schemeVersion '
+schemeVersion %teidata.versionNumber;  #IMPLIED'>
+<!ENTITY % att.styleDef.attributes '
+ %att.styleDef.attribute.scheme;
+ %att.styleDef.attribute.schemeVersion;'> 
+<!ENTITY % att.timed.attribute.start '
+start %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.timed.attribute.end '
+end %teidata.pointer;  #IMPLIED'>
+<!ENTITY % att.timed.attributes '%att.duration.attributes;
+ %att.timed.attribute.start;
+ %att.timed.attribute.end;'> 
+<!ENTITY % att.transcriptional.attribute.status '
+status %teidata.enumerated;  "unremarkable" '>
+
+<!ENTITY % att.transcriptional.attribute.cause '
+cause %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.transcriptional.attribute.seq '
+seq %teidata.count;  #IMPLIED'>
+<!ENTITY % att.transcriptional.attributes '%att.editLike.attributes;%att.written.attributes;
+ %att.transcriptional.attribute.status;
+ %att.transcriptional.attribute.cause;
+ %att.transcriptional.attribute.seq;'> 
+<!ENTITY % att.citing.attribute.unit '
+unit %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.citing.attribute.from '
+from %teidata.word;  #IMPLIED'>
+
+<!ENTITY % att.citing.attribute.to '
+to %teidata.word;  #IMPLIED'>
+<!ENTITY % att.citing.attributes '
+ %att.citing.attribute.unit;
+ %att.citing.attribute.from;
+ %att.citing.attribute.to;'> 
+<!ENTITY % model.nameLike.agent "name |orgName |persName"> 
+<!ENTITY % model.nameLike.agent_sequence "name, orgName, persName"> 
+<!ENTITY % model.nameLike.agent_sequenceOptional "name?, orgName?, persName?"> 
+<!ENTITY % model.nameLike.agent_sequenceOptionalRepeatable "name*, orgName*, persName*"> 
+<!ENTITY % model.nameLike.agent_sequenceRepeatable "name+, orgName+, persName+"> 
+<!ENTITY % model.segLike "s |cl |phr |w |m |c |pc |seg"> 
+<!ENTITY % model.segLike_sequence "s, cl, phr, w, m, c, pc, seg"> 
+<!ENTITY % model.segLike_sequenceOptional "s?, cl?, phr?, w?, m?, c?, pc?, seg?"> 
+<!ENTITY % model.segLike_sequenceOptionalRepeatable "s*, cl*, phr*, w*, m*, c*, pc*, seg*"> 
+<!ENTITY % model.segLike_sequenceRepeatable "s+, cl+, phr+, w+, m+, c+, pc+, seg+"> 
+<!ENTITY % model.hiLike "hi |q"> 
+<!ENTITY % model.hiLike_sequence "hi, q"> 
+<!ENTITY % model.hiLike_sequenceOptional "hi?, q?"> 
+<!ENTITY % model.hiLike_sequenceOptionalRepeatable "hi*, q*"> 
+<!ENTITY % model.hiLike_sequenceRepeatable "hi+, q+"> 
+<!ENTITY % model.emphLike "foreign |emph |distinct |mentioned |soCalled |gloss |term |title |code |ident"> 
+<!ENTITY % model.emphLike_sequence "foreign, emph, distinct, mentioned, soCalled, gloss, term, title, code, ident"> 
+<!ENTITY % model.emphLike_sequenceOptional "foreign?, emph?, distinct?, mentioned?, soCalled?, gloss?, term?, title?, code?, ident?"> 
+<!ENTITY % model.emphLike_sequenceOptionalRepeatable "foreign*, emph*, distinct*, mentioned*, soCalled*, gloss*, term*, title*, code*, ident*"> 
+<!ENTITY % model.emphLike_sequenceRepeatable "foreign+, emph+, distinct+, mentioned+, soCalled+, gloss+, term+, title+, code+, ident+"> 
+<!ENTITY % model.highlighted "%model.hiLike; |%model.emphLike;"> 
+<!ENTITY % model.highlighted_sequence "%model.hiLike;, %model.emphLike;"> 
+<!ENTITY % model.highlighted_sequenceOptional "%model.hiLike;?, %model.emphLike;?"> 
+<!ENTITY % model.highlighted_sequenceOptionalRepeatable "%model.hiLike;*, %model.emphLike;*"> 
+<!ENTITY % model.highlighted_sequenceRepeatable "%model.hiLike;+, %model.emphLike;+"> 
+<!ENTITY % model.dateLike "date |time"> 
+<!ENTITY % model.dateLike_sequence "date, time"> 
+<!ENTITY % model.dateLike_sequenceOptional "date?, time?"> 
+<!ENTITY % model.dateLike_sequenceOptionalRepeatable "date*, time*"> 
+<!ENTITY % model.dateLike_sequenceRepeatable "date+, time+"> 
+<!ENTITY % model.dimLike "height |depth |width"> 
+<!ENTITY % model.dimLike_sequence "height, depth, width"> 
+<!ENTITY % model.dimLike_sequenceOptional "height?, depth?, width?"> 
+<!ENTITY % model.dimLike_sequenceOptionalRepeatable "height*, depth*, width*"> 
+<!ENTITY % model.dimLike_sequenceRepeatable "height+, depth+, width+"> 
+<!ENTITY % model.measureLike "num |measure |measureGrp |unit |dim |height |depth |width |geo"> 
+<!ENTITY % model.measureLike_sequence "num, measure, measureGrp, unit, dim, height, depth, width, geo"> 
+<!ENTITY % model.measureLike_sequenceOptional "num?, measure?, measureGrp?, unit?, dim?, height?, depth?, width?, geo?"> 
+<!ENTITY % model.measureLike_sequenceOptionalRepeatable "num*, measure*, measureGrp*, unit*, dim*, height*, depth*, width*, geo*"> 
+<!ENTITY % model.measureLike_sequenceRepeatable "num+, measure+, measureGrp+, unit+, dim+, height+, depth+, width+, geo+"> 
+<!ENTITY % model.egLike "eg |egXML"> 
+<!ENTITY % model.egLike_sequence "eg, egXML"> 
+<!ENTITY % model.egLike_sequenceOptional "eg?, egXML?"> 
+<!ENTITY % model.egLike_sequenceOptionalRepeatable "eg*, egXML*"> 
+<!ENTITY % model.egLike_sequenceRepeatable "eg+, egXML+"> 
+<!ENTITY % model.graphicLike "media |graphic |binaryObject |formula"> 
+<!ENTITY % model.graphicLike_sequence "media, graphic, binaryObject, formula"> 
+<!ENTITY % model.graphicLike_sequenceOptional "media?, graphic?, binaryObject?, formula?"> 
+<!ENTITY % model.graphicLike_sequenceOptionalRepeatable "media*, graphic*, binaryObject*, formula*"> 
+<!ENTITY % model.graphicLike_sequenceRepeatable "media+, graphic+, binaryObject+, formula+"> 
+<!ENTITY % model.offsetLike "offset |geogFeat"> 
+<!ENTITY % model.offsetLike_sequence "offset, geogFeat"> 
+<!ENTITY % model.offsetLike_sequenceOptional "offset?, geogFeat?"> 
+<!ENTITY % model.offsetLike_sequenceOptionalRepeatable "offset*, geogFeat*"> 
+<!ENTITY % model.offsetLike_sequenceRepeatable "offset+, geogFeat+"> 
+<!ENTITY % model.pPart.msdesc "catchwords |dimensions |heraldry |locus |locusGrp |material |objectType |origDate |origPlace |secFol |signatures |stamp |watermark"> 
+<!ENTITY % model.pPart.msdesc_sequence "catchwords, dimensions, heraldry, locus, locusGrp, material, objectType, origDate, origPlace, secFol, signatures, stamp, watermark"> 
+<!ENTITY % model.pPart.msdesc_sequenceOptional "catchwords?, dimensions?, heraldry?, locus?, locusGrp?, material?, objectType?, origDate?, origPlace?, secFol?, signatures?, stamp?, watermark?"> 
+<!ENTITY % model.pPart.msdesc_sequenceOptionalRepeatable "catchwords*, dimensions*, heraldry*, locus*, locusGrp*, material*, objectType*, origDate*, origPlace*, secFol*, signatures*, stamp*, watermark*"> 
+<!ENTITY % model.pPart.msdesc_sequenceRepeatable "catchwords+, dimensions+, heraldry+, locus+, locusGrp+, material+, objectType+, origDate+, origPlace+, secFol+, signatures+, stamp+, watermark+"> 
+<!ENTITY % model.pPart.editorial "choice |abbr |expan |ex |am |subst"> 
+<!ENTITY % model.pPart.editorial_sequence "choice, abbr, expan, ex, am, subst"> 
+<!ENTITY % model.pPart.editorial_sequenceOptional "choice?, abbr?, expan?, ex?, am?, subst?"> 
+<!ENTITY % model.pPart.editorial_sequenceOptionalRepeatable "choice*, abbr*, expan*, ex*, am*, subst*"> 
+<!ENTITY % model.pPart.editorial_sequenceRepeatable "choice+, abbr+, expan+, ex+, am+, subst+"> 
+<!ENTITY % model.pPart.transcriptional "sic |corr |reg |orig |add |del |unclear |damage |handShift |restore |supplied |surplus |secl |mod |redo |retrace |undo"> 
+<!ENTITY % model.pPart.transcriptional_sequence "sic, corr, reg, orig, add, del, unclear, damage, handShift, restore, supplied, surplus, secl, mod, redo, retrace, undo"> 
+<!ENTITY % model.pPart.transcriptional_sequenceOptional "sic?, corr?, reg?, orig?, add?, del?, unclear?, damage?, handShift?, restore?, supplied?, surplus?, secl?, mod?, redo?, retrace?, undo?"> 
+<!ENTITY % model.pPart.transcriptional_sequenceOptionalRepeatable "sic*, corr*, reg*, orig*, add*, del*, unclear*, damage*, handShift*, restore*, supplied*, surplus*, secl*, mod*, redo*, retrace*, undo*"> 
+<!ENTITY % model.pPart.transcriptional_sequenceRepeatable "sic+, corr+, reg+, orig+, add+, del+, unclear+, damage+, handShift+, restore+, supplied+, surplus+, secl+, mod+, redo+, retrace+, undo+"> 
+<!ENTITY % model.pPart.edit "%model.pPart.editorial; |%model.pPart.transcriptional;"> 
+<!ENTITY % model.pPart.edit_sequence "%model.pPart.editorial;, %model.pPart.transcriptional;"> 
+<!ENTITY % model.pPart.edit_sequenceOptional "%model.pPart.editorial;?, %model.pPart.transcriptional;?"> 
+<!ENTITY % model.pPart.edit_sequenceOptionalRepeatable "%model.pPart.editorial;*, %model.pPart.transcriptional;*"> 
+<!ENTITY % model.pPart.edit_sequenceRepeatable "%model.pPart.editorial;+, %model.pPart.transcriptional;+"> 
+<!ENTITY % model.linePart "%model.hiLike; |choice |add |del |unclear |w |c |pc |zone |path |damage |handShift |restore |line |mod |redo |retrace |undo |seg"> 
+<!ENTITY % model.linePart_sequence "%model.hiLike;, choice, add, del, unclear, w, c, pc, zone, path, damage, handShift, restore, line, mod, redo, retrace, undo, seg"> 
+<!ENTITY % model.linePart_sequenceOptional "%model.hiLike;?, choice?, add?, del?, unclear?, w?, c?, pc?, zone?, path?, damage?, handShift?, restore?, line?, mod?, redo?, retrace?, undo?, seg?"> 
+<!ENTITY % model.linePart_sequenceOptionalRepeatable "%model.hiLike;*, choice*, add*, del*, unclear*, w*, c*, pc*, zone*, path*, damage*, handShift*, restore*, line*, mod*, redo*, retrace*, undo*, seg*"> 
+<!ENTITY % model.linePart_sequenceRepeatable "%model.hiLike;+, choice+, add+, del+, unclear+, w+, c+, pc+, zone+, path+, damage+, handShift+, restore+, line+, mod+, redo+, retrace+, undo+, seg+"> 
+<!ENTITY % model.ptrLike "ptr |ref |listRef"> 
+<!ENTITY % model.ptrLike_sequence "ptr, ref, listRef"> 
+<!ENTITY % model.ptrLike_sequenceOptional "ptr?, ref?, listRef?"> 
+<!ENTITY % model.ptrLike_sequenceOptionalRepeatable "ptr*, ref*, listRef*"> 
+<!ENTITY % model.ptrLike_sequenceRepeatable "ptr+, ref+, listRef+"> 
+<!ENTITY % model.lPart "caesura |rhyme"> 
+<!ENTITY % model.lPart_sequence "caesura, rhyme"> 
+<!ENTITY % model.lPart_sequenceOptional "caesura?, rhyme?"> 
+<!ENTITY % model.lPart_sequenceOptionalRepeatable "caesura*, rhyme*"> 
+<!ENTITY % model.lPart_sequenceRepeatable "caesura+, rhyme+"> 
+<!ENTITY % model.global.meta "index |span |spanGrp |interp |interpGrp |substJoin |listTranspose |link |linkGrp |timeline |join |joinGrp |alt |altGrp |fs |fLib |fvLib |precision |certainty |respons"> 
+<!ENTITY % model.global.meta_sequence "index, span, spanGrp, interp, interpGrp, substJoin, listTranspose, link, linkGrp, timeline, join, joinGrp, alt, altGrp, fs, fLib, fvLib, precision, certainty, respons"> 
+<!ENTITY % model.global.meta_sequenceOptional "index?, span?, spanGrp?, interp?, interpGrp?, substJoin?, listTranspose?, link?, linkGrp?, timeline?, join?, joinGrp?, alt?, altGrp?, fs?, fLib?, fvLib?, precision?, certainty?, respons?"> 
+<!ENTITY % model.global.meta_sequenceOptionalRepeatable "index*, span*, spanGrp*, interp*, interpGrp*, substJoin*, listTranspose*, link*, linkGrp*, timeline*, join*, joinGrp*, alt*, altGrp*, fs*, fLib*, fvLib*, precision*, certainty*, respons*"> 
+<!ENTITY % model.global.meta_sequenceRepeatable "index+, span+, spanGrp+, interp+, interpGrp+, substJoin+, listTranspose+, link+, linkGrp+, timeline+, join+, joinGrp+, alt+, altGrp+, fs+, fLib+, fvLib+, precision+, certainty+, respons+"> 
+<!ENTITY % model.milestoneLike "milestone |gb |pb |lb |cb |fw |anchor"> 
+<!ENTITY % model.milestoneLike_sequence "milestone, gb, pb, lb, cb, fw, anchor"> 
+<!ENTITY % model.milestoneLike_sequenceOptional "milestone?, gb?, pb?, lb?, cb?, fw?, anchor?"> 
+<!ENTITY % model.milestoneLike_sequenceOptionalRepeatable "milestone*, gb*, pb*, lb*, cb*, fw*, anchor*"> 
+<!ENTITY % model.milestoneLike_sequenceRepeatable "milestone+, gb+, pb+, lb+, cb+, fw+, anchor+"> 
+<!ENTITY % model.gLike "g"> 
+<!ENTITY % model.gLike_sequence "g"> 
+<!ENTITY % model.gLike_sequenceOptional "g?"> 
+<!ENTITY % model.gLike_sequenceOptionalRepeatable "g*"> 
+<!ENTITY % model.gLike_sequenceRepeatable "g+"> 
+<!ENTITY % model.oddDecl "moduleSpec |specGrp |specGrpRef |elementSpec |classSpec |dataSpec |macroSpec |outputRendition |constraintSpec"> 
+<!ENTITY % model.oddDecl_sequence "moduleSpec, specGrp, specGrpRef, elementSpec, classSpec, dataSpec, macroSpec, outputRendition, constraintSpec"> 
+<!ENTITY % model.oddDecl_sequenceOptional "moduleSpec?, specGrp?, specGrpRef?, elementSpec?, classSpec?, dataSpec?, macroSpec?, outputRendition?, constraintSpec?"> 
+<!ENTITY % model.oddDecl_sequenceOptionalRepeatable "moduleSpec*, specGrp*, specGrpRef*, elementSpec*, classSpec*, dataSpec*, macroSpec*, outputRendition*, constraintSpec*"> 
+<!ENTITY % model.oddDecl_sequenceRepeatable "moduleSpec+, specGrp+, specGrpRef+, elementSpec+, classSpec+, dataSpec+, macroSpec+, outputRendition+, constraintSpec+"> 
+<!ENTITY % model.oddRef "classRef |elementRef |macroRef |moduleRef |dataRef"> 
+<!ENTITY % model.oddRef_sequence "classRef, elementRef, macroRef, moduleRef, dataRef"> 
+<!ENTITY % model.oddRef_sequenceOptional "classRef?, elementRef?, macroRef?, moduleRef?, dataRef?"> 
+<!ENTITY % model.oddRef_sequenceOptionalRepeatable "classRef*, elementRef*, macroRef*, moduleRef*, dataRef*"> 
+<!ENTITY % model.oddRef_sequenceRepeatable "classRef+, elementRef+, macroRef+, moduleRef+, dataRef+"> 
+<!ENTITY % model.phrase.xml "att |gi |tag |val"> 
+<!ENTITY % model.phrase.xml_sequence "att, gi, tag, val"> 
+<!ENTITY % model.phrase.xml_sequenceOptional "att?, gi?, tag?, val?"> 
+<!ENTITY % model.phrase.xml_sequenceOptionalRepeatable "att*, gi*, tag*, val*"> 
+<!ENTITY % model.phrase.xml_sequenceRepeatable "att+, gi+, tag+, val+"> 
+<!ENTITY % model.specDescLike "specList |specDesc"> 
+<!ENTITY % model.specDescLike_sequence "specList, specDesc"> 
+<!ENTITY % model.specDescLike_sequenceOptional "specList?, specDesc?"> 
+<!ENTITY % model.specDescLike_sequenceOptionalRepeatable "specList*, specDesc*"> 
+<!ENTITY % model.specDescLike_sequenceRepeatable "specList+, specDesc+"> 
+<!ENTITY % model.biblLike "bibl |biblStruct |listBibl |biblFull |msDesc"> 
+<!ENTITY % model.biblLike_sequence "bibl, biblStruct, listBibl, biblFull, msDesc"> 
+<!ENTITY % model.biblLike_sequenceOptional "bibl?, biblStruct?, listBibl?, biblFull?, msDesc?"> 
+<!ENTITY % model.biblLike_sequenceOptionalRepeatable "bibl*, biblStruct*, listBibl*, biblFull*, msDesc*"> 
+<!ENTITY % model.biblLike_sequenceRepeatable "bibl+, biblStruct+, listBibl+, biblFull+, msDesc+"> 
+<!ENTITY % model.headLike "head"> 
+<!ENTITY % model.headLike_sequence "head"> 
+<!ENTITY % model.headLike_sequenceOptional "head?"> 
+<!ENTITY % model.headLike_sequenceOptionalRepeatable "head*"> 
+<!ENTITY % model.headLike_sequenceRepeatable "head+"> 
+<!ENTITY % model.labelLike "desc |label"> 
+<!ENTITY % model.labelLike_sequence "desc, label"> 
+<!ENTITY % model.labelLike_sequenceOptional "desc?, label?"> 
+<!ENTITY % model.labelLike_sequenceOptionalRepeatable "desc*, label*"> 
+<!ENTITY % model.labelLike_sequenceRepeatable "desc+, label+"> 
+<!ENTITY % model.listLike "list |listApp |listWit |listOrg |listEvent |listPerson |listPlace |listRelation |listObject |listNym |table"> 
+<!ENTITY % model.listLike_sequence "list, listApp, listWit, listOrg, listEvent, listPerson, listPlace, listRelation, listObject, listNym, table"> 
+<!ENTITY % model.listLike_sequenceOptional "list?, listApp?, listWit?, listOrg?, listEvent?, listPerson?, listPlace?, listRelation?, listObject?, listNym?, table?"> 
+<!ENTITY % model.listLike_sequenceOptionalRepeatable "list*, listApp*, listWit*, listOrg*, listEvent*, listPerson*, listPlace*, listRelation*, listObject*, listNym*, table*"> 
+<!ENTITY % model.listLike_sequenceRepeatable "list+, listApp+, listWit+, listOrg+, listEvent+, listPerson+, listPlace+, listRelation+, listObject+, listNym+, table+"> 
+<!ENTITY % model.noteLike "note |noteGrp"> 
+<!ENTITY % model.noteLike_sequence "note, noteGrp"> 
+<!ENTITY % model.noteLike_sequenceOptional "note?, noteGrp?"> 
+<!ENTITY % model.noteLike_sequenceOptionalRepeatable "note*, noteGrp*"> 
+<!ENTITY % model.noteLike_sequenceRepeatable "note+, noteGrp+"> 
+<!ENTITY % model.lLike "l"> 
+<!ENTITY % model.lLike_sequence "l"> 
+<!ENTITY % model.lLike_sequenceOptional "l?"> 
+<!ENTITY % model.lLike_sequenceOptionalRepeatable "l*"> 
+<!ENTITY % model.lLike_sequenceRepeatable "l+"> 
+<!ENTITY % model.pLike "p |ab"> 
+<!ENTITY % model.pLike_sequence "p, ab"> 
+<!ENTITY % model.pLike_sequenceOptional "p?, ab?"> 
+<!ENTITY % model.pLike_sequenceOptionalRepeatable "p*, ab*"> 
+<!ENTITY % model.pLike_sequenceRepeatable "p+, ab+"> 
+<!ENTITY % model.stageLike "stage |move |view |camera |sound |caption |tech"> 
+<!ENTITY % model.stageLike_sequence "stage, move, view, camera, sound, caption, tech"> 
+<!ENTITY % model.stageLike_sequenceOptional "stage?, move?, view?, camera?, sound?, caption?, tech?"> 
+<!ENTITY % model.stageLike_sequenceOptionalRepeatable "stage*, move*, view*, camera*, sound*, caption*, tech*"> 
+<!ENTITY % model.stageLike_sequenceRepeatable "stage+, move+, view+, camera+, sound+, caption+, tech+"> 
+<!ENTITY % model.featureVal.complex "fs |vColl |vNot |vMerge"> 
+<!ENTITY % model.featureVal.complex_sequence "fs, vColl, vNot, vMerge"> 
+<!ENTITY % model.featureVal.complex_sequenceOptional "fs?, vColl?, vNot?, vMerge?"> 
+<!ENTITY % model.featureVal.complex_sequenceOptionalRepeatable "fs*, vColl*, vNot*, vMerge*"> 
+<!ENTITY % model.featureVal.complex_sequenceRepeatable "fs+, vColl+, vNot+, vMerge+"> 
+<!ENTITY % model.featureVal.single "binary |symbol |numeric |string |vLabel |default |vAlt"> 
+<!ENTITY % model.featureVal.single_sequence "binary, symbol, numeric, string, vLabel, default, vAlt"> 
+<!ENTITY % model.featureVal.single_sequenceOptional "binary?, symbol?, numeric?, string?, vLabel?, default?, vAlt?"> 
+<!ENTITY % model.featureVal.single_sequenceOptionalRepeatable "binary*, symbol*, numeric*, string*, vLabel*, default*, vAlt*"> 
+<!ENTITY % model.featureVal.single_sequenceRepeatable "binary+, symbol+, numeric+, string+, vLabel+, default+, vAlt+"> 
+<!ENTITY % model.entryPart "superEntry |hom |sense |form |orth |pron |hyph |syll |gramGrp |pos |subc |colloc |def |etym |usg |lbl |xr |re"> 
+<!ENTITY % model.entryPart_sequence "superEntry, hom, sense, form, orth, pron, hyph, syll, gramGrp, pos, subc, colloc, def, etym, usg, lbl, xr, re"> 
+<!ENTITY % model.entryPart_sequenceOptional "superEntry?, hom?, sense?, form?, orth?, pron?, hyph?, syll?, gramGrp?, pos?, subc?, colloc?, def?, etym?, usg?, lbl?, xr?, re?"> 
+<!ENTITY % model.entryPart_sequenceOptionalRepeatable "superEntry*, hom*, sense*, form*, orth*, pron*, hyph*, syll*, gramGrp*, pos*, subc*, colloc*, def*, etym*, usg*, lbl*, xr*, re*"> 
+<!ENTITY % model.entryPart_sequenceRepeatable "superEntry+, hom+, sense+, form+, orth+, pron+, hyph+, syll+, gramGrp+, pos+, subc+, colloc+, def+, etym+, usg+, lbl+, xr+, re+"> 
+<!ENTITY % model.entryPart.top "%model.biblLike; |cit |entry |dictScrap |form |gramGrp |def |etym |usg |lbl |xr |re"> 
+<!ENTITY % model.entryPart.top_sequence "%model.biblLike;, cit, entry, dictScrap, form, gramGrp, def, etym, usg, lbl, xr, re"> 
+<!ENTITY % model.entryPart.top_sequenceOptional "%model.biblLike;?, cit?, entry?, dictScrap?, form?, gramGrp?, def?, etym?, usg?, lbl?, xr?, re?"> 
+<!ENTITY % model.entryPart.top_sequenceOptionalRepeatable "%model.biblLike;*, cit*, entry*, dictScrap*, form*, gramGrp*, def*, etym*, usg*, lbl*, xr*, re*"> 
+<!ENTITY % model.entryPart.top_sequenceRepeatable "%model.biblLike;+, cit+, entry+, dictScrap+, form+, gramGrp+, def+, etym+, usg+, lbl+, xr+, re+"> 
+<!ENTITY % model.eventLike "event |listEvent"> 
+<!ENTITY % model.eventLike_sequence "event, listEvent"> 
+<!ENTITY % model.eventLike_sequenceOptional "event?, listEvent?"> 
+<!ENTITY % model.eventLike_sequenceOptionalRepeatable "event*, listEvent*"> 
+<!ENTITY % model.eventLike_sequenceRepeatable "event+, listEvent+"> 
+<!ENTITY % model.global.edit "gap |ellipsis |addSpan |damageSpan |delSpan |space |app |witDetail"> 
+<!ENTITY % model.global.edit_sequence "gap, ellipsis, addSpan, damageSpan, delSpan, space, app, witDetail"> 
+<!ENTITY % model.global.edit_sequenceOptional "gap?, ellipsis?, addSpan?, damageSpan?, delSpan?, space?, app?, witDetail?"> 
+<!ENTITY % model.global.edit_sequenceOptionalRepeatable "gap*, ellipsis*, addSpan*, damageSpan*, delSpan*, space*, app*, witDetail*"> 
+<!ENTITY % model.global.edit_sequenceRepeatable "gap+, ellipsis+, addSpan+, damageSpan+, delSpan+, space+, app+, witDetail+"> 
+<!ENTITY % model.divPart "%model.lLike; |%model.pLike; |lg |sp |spGrp |%model.divPart.spoken; |graph |tree |eTree |forest |listForest"> 
+<!ENTITY % model.divPart_sequence "%model.lLike;, %model.pLike;, lg, sp, spGrp, %model.divPart.spoken;, graph, tree, eTree, forest, listForest"> 
+<!ENTITY % model.divPart_sequenceOptional "%model.lLike;?, %model.pLike;?, lg?, sp?, spGrp?, %model.divPart.spoken;?, graph?, tree?, eTree?, forest?, listForest?"> 
+<!ENTITY % model.divPart_sequenceOptionalRepeatable "%model.lLike;*, %model.pLike;*, lg*, sp*, spGrp*, %model.divPart.spoken;*, graph*, tree*, eTree*, forest*, listForest*"> 
+<!ENTITY % model.divPart_sequenceRepeatable "%model.lLike;+, %model.pLike;+, lg+, sp+, spGrp+, %model.divPart.spoken;+, graph+, tree+, eTree+, forest+, listForest+"> 
+<!ENTITY % model.persStateLike "persName |affiliation |age |education |faith |floruit |gender |langKnowledge |nationality |occupation |persona |persPronouns |residence |sex |socecStatus |state |trait"> 
+<!ENTITY % model.persStateLike_sequence "persName, affiliation, age, education, faith, floruit, gender, langKnowledge, nationality, occupation, persona, persPronouns, residence, sex, socecStatus, state, trait"> 
+<!ENTITY % model.persStateLike_sequenceOptional "persName?, affiliation?, age?, education?, faith?, floruit?, gender?, langKnowledge?, nationality?, occupation?, persona?, persPronouns?, residence?, sex?, socecStatus?, state?, trait?"> 
+<!ENTITY % model.persStateLike_sequenceOptionalRepeatable "persName*, affiliation*, age*, education*, faith*, floruit*, gender*, langKnowledge*, nationality*, occupation*, persona*, persPronouns*, residence*, sex*, socecStatus*, state*, trait*"> 
+<!ENTITY % model.persStateLike_sequenceRepeatable "persName+, affiliation+, age+, education+, faith+, floruit+, gender+, langKnowledge+, nationality+, occupation+, persona+, persPronouns+, residence+, sex+, socecStatus+, state+, trait+"> 
+<!ENTITY % model.personLike "org |person |personGrp"> 
+<!ENTITY % model.personLike_sequence "org, person, personGrp"> 
+<!ENTITY % model.personLike_sequenceOptional "org?, person?, personGrp?"> 
+<!ENTITY % model.personLike_sequenceOptionalRepeatable "org*, person*, personGrp*"> 
+<!ENTITY % model.personLike_sequenceRepeatable "org+, person+, personGrp+"> 
+<!ENTITY % model.personPart "%model.biblLike; |%model.eventLike; |%model.persStateLike; |name |idno |birth |death"> 
+<!ENTITY % model.personPart_sequence "%model.biblLike;, %model.eventLike;, %model.persStateLike;, name, idno, birth, death"> 
+<!ENTITY % model.personPart_sequenceOptional "%model.biblLike;?, %model.eventLike;?, %model.persStateLike;?, name?, idno?, birth?, death?"> 
+<!ENTITY % model.personPart_sequenceOptionalRepeatable "%model.biblLike;*, %model.eventLike;*, %model.persStateLike;*, name*, idno*, birth*, death*"> 
+<!ENTITY % model.personPart_sequenceRepeatable "%model.biblLike;+, %model.eventLike;+, %model.persStateLike;+, name+, idno+, birth+, death+"> 
+<!ENTITY % model.placeNamePart "placeName |bloc |country |region |settlement |district |geogName"> 
+<!ENTITY % model.placeNamePart_sequence "placeName, bloc, country, region, settlement, district, geogName"> 
+<!ENTITY % model.placeNamePart_sequenceOptional "placeName?, bloc?, country?, region?, settlement?, district?, geogName?"> 
+<!ENTITY % model.placeNamePart_sequenceOptionalRepeatable "placeName*, bloc*, country*, region*, settlement*, district*, geogName*"> 
+<!ENTITY % model.placeNamePart_sequenceRepeatable "placeName+, bloc+, country+, region+, settlement+, district+, geogName+"> 
+<!ENTITY % model.placeStateLike "%model.placeNamePart; |climate |location |population |state |terrain |trait"> 
+<!ENTITY % model.placeStateLike_sequence "%model.placeNamePart;, climate, location, population, state, terrain, trait"> 
+<!ENTITY % model.placeStateLike_sequenceOptional "%model.placeNamePart;?, climate?, location?, population?, state?, terrain?, trait?"> 
+<!ENTITY % model.placeStateLike_sequenceOptionalRepeatable "%model.placeNamePart;*, climate*, location*, population*, state*, terrain*, trait*"> 
+<!ENTITY % model.placeStateLike_sequenceRepeatable "%model.placeNamePart;+, climate+, location+, population+, state+, terrain+, trait+"> 
+<!ENTITY % model.orgPart "%model.eventLike; |listOrg |listPerson |listPlace"> 
+<!ENTITY % model.orgPart_sequence "%model.eventLike;, listOrg, listPerson, listPlace"> 
+<!ENTITY % model.orgPart_sequenceOptional "%model.eventLike;?, listOrg?, listPerson?, listPlace?"> 
+<!ENTITY % model.orgPart_sequenceOptionalRepeatable "%model.eventLike;*, listOrg*, listPerson*, listPlace*"> 
+<!ENTITY % model.orgPart_sequenceRepeatable "%model.eventLike;+, listOrg+, listPerson+, listPlace+"> 
+<!ENTITY % model.publicationStmtPart.agency "publisher |distributor |authority"> 
+<!ENTITY % model.publicationStmtPart.agency_sequence "publisher, distributor, authority"> 
+<!ENTITY % model.publicationStmtPart.agency_sequenceOptional "publisher?, distributor?, authority?"> 
+<!ENTITY % model.publicationStmtPart.agency_sequenceOptionalRepeatable "publisher*, distributor*, authority*"> 
+<!ENTITY % model.publicationStmtPart.agency_sequenceRepeatable "publisher+, distributor+, authority+"> 
+<!ENTITY % model.publicationStmtPart.detail "%model.ptrLike; |address |date |pubPlace |idno |availability"> 
+<!ENTITY % model.publicationStmtPart.detail_sequence "%model.ptrLike;, address, date, pubPlace, idno, availability"> 
+<!ENTITY % model.publicationStmtPart.detail_sequenceOptional "%model.ptrLike;?, address?, date?, pubPlace?, idno?, availability?"> 
+<!ENTITY % model.publicationStmtPart.detail_sequenceOptionalRepeatable "%model.ptrLike;*, address*, date*, pubPlace*, idno*, availability*"> 
+<!ENTITY % model.publicationStmtPart.detail_sequenceRepeatable "%model.ptrLike;+, address+, date+, pubPlace+, idno+, availability+"> 
+<!ENTITY % model.availabilityPart "licence"> 
+<!ENTITY % model.availabilityPart_sequence "licence"> 
+<!ENTITY % model.availabilityPart_sequenceOptional "licence?"> 
+<!ENTITY % model.availabilityPart_sequenceOptionalRepeatable "licence*"> 
+<!ENTITY % model.availabilityPart_sequenceRepeatable "licence+"> 
+<!ENTITY % model.certLike "precision |certainty |respons"> 
+<!ENTITY % model.certLike_sequence "precision, certainty, respons"> 
+<!ENTITY % model.certLike_sequenceOptional "precision?, certainty?, respons?"> 
+<!ENTITY % model.certLike_sequenceOptionalRepeatable "precision*, certainty*, respons*"> 
+<!ENTITY % model.certLike_sequenceRepeatable "precision+, certainty+, respons+"> 
+<!ENTITY % model.descLike "desc"> 
+<!ENTITY % model.descLike_sequence "desc"> 
+<!ENTITY % model.descLike_sequenceOptional "desc?"> 
+<!ENTITY % model.descLike_sequenceOptionalRepeatable "desc*"> 
+<!ENTITY % model.descLike_sequenceRepeatable "desc+"> 
+<!ENTITY % model.identEquiv "gloss |equiv"> 
+<!ENTITY % model.identEquiv_sequence "gloss, equiv"> 
+<!ENTITY % model.identEquiv_sequenceOptional "gloss?, equiv?"> 
+<!ENTITY % model.identEquiv_sequenceOptionalRepeatable "gloss*, equiv*"> 
+<!ENTITY % model.identEquiv_sequenceRepeatable "gloss+, equiv+"> 
+<!ENTITY % model.identSynonyms "%model.identEquiv; |altIdent"> 
+<!ENTITY % model.identSynonyms_sequence "%model.identEquiv;, altIdent"> 
+<!ENTITY % model.identSynonyms_sequenceOptional "%model.identEquiv;?, altIdent?"> 
+<!ENTITY % model.identSynonyms_sequenceOptionalRepeatable "%model.identEquiv;*, altIdent*"> 
+<!ENTITY % model.identSynonyms_sequenceRepeatable "%model.identEquiv;+, altIdent+"> 
+<!ENTITY % model.quoteLike "quote |cit"> 
+<!ENTITY % model.quoteLike_sequence "quote, cit"> 
+<!ENTITY % model.quoteLike_sequenceOptional "quote?, cit?"> 
+<!ENTITY % model.quoteLike_sequenceOptionalRepeatable "quote*, cit*"> 
+<!ENTITY % model.quoteLike_sequenceRepeatable "quote+, cit+"> 
+<!ENTITY % model.attributable "%model.quoteLike; |said |floatingText"> 
+<!ENTITY % model.attributable_sequence "%model.quoteLike;, said, floatingText"> 
+<!ENTITY % model.attributable_sequenceOptional "%model.quoteLike;?, said?, floatingText?"> 
+<!ENTITY % model.attributable_sequenceOptionalRepeatable "%model.quoteLike;*, said*, floatingText*"> 
+<!ENTITY % model.attributable_sequenceRepeatable "%model.quoteLike;+, said+, floatingText+"> 
+<!ENTITY % model.respLike "author |editor |respStmt |meeting |sponsor |funder |principal"> 
+<!ENTITY % model.respLike_sequence "author, editor, respStmt, meeting, sponsor, funder, principal"> 
+<!ENTITY % model.respLike_sequenceOptional "author?, editor?, respStmt?, meeting?, sponsor?, funder?, principal?"> 
+<!ENTITY % model.respLike_sequenceOptionalRepeatable "author*, editor*, respStmt*, meeting*, sponsor*, funder*, principal*"> 
+<!ENTITY % model.respLike_sequenceRepeatable "author+, editor+, respStmt+, meeting+, sponsor+, funder+, principal+"> 
+<!ENTITY % model.divWrapper "meeting |byline |dateline |argument |epigraph |salute |docAuthor |docDate"> 
+<!ENTITY % model.divWrapper_sequence "meeting, byline, dateline, argument, epigraph, salute, docAuthor, docDate"> 
+<!ENTITY % model.divWrapper_sequenceOptional "meeting?, byline?, dateline?, argument?, epigraph?, salute?, docAuthor?, docDate?"> 
+<!ENTITY % model.divWrapper_sequenceOptionalRepeatable "meeting*, byline*, dateline*, argument*, epigraph*, salute*, docAuthor*, docDate*"> 
+<!ENTITY % model.divWrapper_sequenceRepeatable "meeting+, byline+, dateline+, argument+, epigraph+, salute+, docAuthor+, docDate+"> 
+<!ENTITY % model.divTopPart "%model.headLike; |opener |signed"> 
+<!ENTITY % model.divTopPart_sequence "%model.headLike;, opener, signed"> 
+<!ENTITY % model.divTopPart_sequenceOptional "%model.headLike;?, opener?, signed?"> 
+<!ENTITY % model.divTopPart_sequenceOptionalRepeatable "%model.headLike;*, opener*, signed*"> 
+<!ENTITY % model.divTopPart_sequenceRepeatable "%model.headLike;+, opener+, signed+"> 
+<!ENTITY % model.divTop "%model.divWrapper; |%model.divTopPart;"> 
+<!ENTITY % model.divTop_sequence "%model.divWrapper;, %model.divTopPart;"> 
+<!ENTITY % model.divTop_sequenceOptional "%model.divWrapper;?, %model.divTopPart;?"> 
+<!ENTITY % model.divTop_sequenceOptionalRepeatable "%model.divWrapper;*, %model.divTopPart;*"> 
+<!ENTITY % model.divTop_sequenceRepeatable "%model.divWrapper;+, %model.divTopPart;+"> 
+<!ENTITY % model.frontPart.drama "set |prologue |epilogue |performance |castList"> 
+<!ENTITY % model.frontPart.drama_sequence "set, prologue, epilogue, performance, castList"> 
+<!ENTITY % model.frontPart.drama_sequenceOptional "set?, prologue?, epilogue?, performance?, castList?"> 
+<!ENTITY % model.frontPart.drama_sequenceOptionalRepeatable "set*, prologue*, epilogue*, performance*, castList*"> 
+<!ENTITY % model.frontPart.drama_sequenceRepeatable "set+, prologue+, epilogue+, performance+, castList+"> 
+<!ENTITY % model.pLike.front "head |byline |dateline |argument |epigraph |docTitle |titlePart |docAuthor |docEdition |docImprint |docDate"> 
+<!ENTITY % model.pLike.front_sequence "head, byline, dateline, argument, epigraph, docTitle, titlePart, docAuthor, docEdition, docImprint, docDate"> 
+<!ENTITY % model.pLike.front_sequenceOptional "head?, byline?, dateline?, argument?, epigraph?, docTitle?, titlePart?, docAuthor?, docEdition?, docImprint?, docDate?"> 
+<!ENTITY % model.pLike.front_sequenceOptionalRepeatable "head*, byline*, dateline*, argument*, epigraph*, docTitle*, titlePart*, docAuthor*, docEdition*, docImprint*, docDate*"> 
+<!ENTITY % model.pLike.front_sequenceRepeatable "head+, byline+, dateline+, argument+, epigraph+, docTitle+, titlePart+, docAuthor+, docEdition+, docImprint+, docDate+"> 
+<!ENTITY % model.divBottomPart "trailer |closer |signed |postscript"> 
+<!ENTITY % model.divBottomPart_sequence "trailer, closer, signed, postscript"> 
+<!ENTITY % model.divBottomPart_sequenceOptional "trailer?, closer?, signed?, postscript?"> 
+<!ENTITY % model.divBottomPart_sequenceOptionalRepeatable "trailer*, closer*, signed*, postscript*"> 
+<!ENTITY % model.divBottomPart_sequenceRepeatable "trailer+, closer+, signed+, postscript+"> 
+<!ENTITY % model.divBottom "%model.divWrapper; |%model.divBottomPart;"> 
+<!ENTITY % model.divBottom_sequence "%model.divWrapper;, %model.divBottomPart;"> 
+<!ENTITY % model.divBottom_sequenceOptional "%model.divWrapper;?, %model.divBottomPart;?"> 
+<!ENTITY % model.divBottom_sequenceOptionalRepeatable "%model.divWrapper;*, %model.divBottomPart;*"> 
+<!ENTITY % model.divBottom_sequenceRepeatable "%model.divWrapper;+, %model.divBottomPart;+"> 
+<!ENTITY % model.titlepagePart "graphic |binaryObject |byline |argument |epigraph |docTitle |titlePart |docAuthor |imprimatur |docEdition |docImprint |docDate"> 
+<!ENTITY % model.titlepagePart_sequence "graphic, binaryObject, byline, argument, epigraph, docTitle, titlePart, docAuthor, imprimatur, docEdition, docImprint, docDate"> 
+<!ENTITY % model.titlepagePart_sequenceOptional "graphic?, binaryObject?, byline?, argument?, epigraph?, docTitle?, titlePart?, docAuthor?, imprimatur?, docEdition?, docImprint?, docDate?"> 
+<!ENTITY % model.titlepagePart_sequenceOptionalRepeatable "graphic*, binaryObject*, byline*, argument*, epigraph*, docTitle*, titlePart*, docAuthor*, imprimatur*, docEdition*, docImprint*, docDate*"> 
+<!ENTITY % model.titlepagePart_sequenceRepeatable "graphic+, binaryObject+, byline+, argument+, epigraph+, docTitle+, titlePart+, docAuthor+, imprimatur+, docEdition+, docImprint+, docDate+"> 
+<!ENTITY % model.msQuoteLike "title |colophon |explicit |finalRubric |incipit |rubric"> 
+<!ENTITY % model.msQuoteLike_sequence "title, colophon, explicit, finalRubric, incipit, rubric"> 
+<!ENTITY % model.msQuoteLike_sequenceOptional "title?, colophon?, explicit?, finalRubric?, incipit?, rubric?"> 
+<!ENTITY % model.msQuoteLike_sequenceOptionalRepeatable "title*, colophon*, explicit*, finalRubric*, incipit*, rubric*"> 
+<!ENTITY % model.msQuoteLike_sequenceRepeatable "title+, colophon+, explicit+, finalRubric+, incipit+, rubric+"> 
+<!ENTITY % model.msItemPart "%model.biblLike; |%model.quoteLike; |%model.respLike; |%model.msQuoteLike; |textLang |idno |filiation |msItem |msItemStruct |decoNote"> 
+<!ENTITY % model.msItemPart_sequence "%model.biblLike;, %model.quoteLike;, %model.respLike;, %model.msQuoteLike;, textLang, idno, filiation, msItem, msItemStruct, decoNote"> 
+<!ENTITY % model.msItemPart_sequenceOptional "%model.biblLike;?, %model.quoteLike;?, %model.respLike;?, %model.msQuoteLike;?, textLang?, idno?, filiation?, msItem?, msItemStruct?, decoNote?"> 
+<!ENTITY % model.msItemPart_sequenceOptionalRepeatable "%model.biblLike;*, %model.quoteLike;*, %model.respLike;*, %model.msQuoteLike;*, textLang*, idno*, filiation*, msItem*, msItemStruct*, decoNote*"> 
+<!ENTITY % model.msItemPart_sequenceRepeatable "%model.biblLike;+, %model.quoteLike;+, %model.respLike;+, %model.msQuoteLike;+, textLang+, idno+, filiation+, msItem+, msItemStruct+, decoNote+"> 
+<!ENTITY % model.choicePart "sic |corr |reg |orig |unclear |abbr |expan |ex |am |supplied |seg"> 
+<!ENTITY % model.choicePart_sequence "sic, corr, reg, orig, unclear, abbr, expan, ex, am, supplied, seg"> 
+<!ENTITY % model.choicePart_sequenceOptional "sic?, corr?, reg?, orig?, unclear?, abbr?, expan?, ex?, am?, supplied?, seg?"> 
+<!ENTITY % model.choicePart_sequenceOptionalRepeatable "sic*, corr*, reg*, orig*, unclear*, abbr*, expan*, ex*, am*, supplied*, seg*"> 
+<!ENTITY % model.choicePart_sequenceRepeatable "sic+, corr+, reg+, orig+, unclear+, abbr+, expan+, ex+, am+, supplied+, seg+"> 
+<!ENTITY % model.imprintPart "publisher |biblScope |pubPlace |distributor"> 
+<!ENTITY % model.imprintPart_sequence "publisher, biblScope, pubPlace, distributor"> 
+<!ENTITY % model.imprintPart_sequenceOptional "publisher?, biblScope?, pubPlace?, distributor?"> 
+<!ENTITY % model.imprintPart_sequenceOptionalRepeatable "publisher*, biblScope*, pubPlace*, distributor*"> 
+<!ENTITY % model.imprintPart_sequenceRepeatable "publisher+, biblScope+, pubPlace+, distributor+"> 
+<!ENTITY % model.catDescPart "textDesc"> 
+<!ENTITY % model.catDescPart_sequence "textDesc"> 
+<!ENTITY % model.catDescPart_sequenceOptional "textDesc?"> 
+<!ENTITY % model.catDescPart_sequenceOptionalRepeatable "textDesc*"> 
+<!ENTITY % model.catDescPart_sequenceRepeatable "textDesc+"> 
+<!ENTITY % model.settingPart "placeName |locale |activity"> 
+<!ENTITY % model.settingPart_sequence "placeName, locale, activity"> 
+<!ENTITY % model.settingPart_sequenceOptional "placeName?, locale?, activity?"> 
+<!ENTITY % model.settingPart_sequenceOptionalRepeatable "placeName*, locale*, activity*"> 
+<!ENTITY % model.settingPart_sequenceRepeatable "placeName+, locale+, activity+"> 
+<!ENTITY % model.textDescPart "channel |constitution |derivation |domain |factuality |interaction |preparedness"> 
+<!ENTITY % model.textDescPart_sequence "channel, constitution, derivation, domain, factuality, interaction, preparedness"> 
+<!ENTITY % model.textDescPart_sequenceOptional "channel?, constitution?, derivation?, domain?, factuality?, interaction?, preparedness?"> 
+<!ENTITY % model.textDescPart_sequenceOptionalRepeatable "channel*, constitution*, derivation*, domain*, factuality*, interaction*, preparedness*"> 
+<!ENTITY % model.textDescPart_sequenceRepeatable "channel+, constitution+, derivation+, domain+, factuality+, interaction+, preparedness+"> 
+<!ENTITY % model.castItemPart "role |roleDesc |actor"> 
+<!ENTITY % model.castItemPart_sequence "role, roleDesc, actor"> 
+<!ENTITY % model.castItemPart_sequenceOptional "role?, roleDesc?, actor?"> 
+<!ENTITY % model.castItemPart_sequenceOptionalRepeatable "role*, roleDesc*, actor*"> 
+<!ENTITY % model.castItemPart_sequenceRepeatable "role+, roleDesc+, actor+"> 
+<!ENTITY % model.addressLike "email |address |affiliation"> 
+<!ENTITY % model.addressLike_sequence "email, address, affiliation"> 
+<!ENTITY % model.addressLike_sequenceOptional "email?, address?, affiliation?"> 
+<!ENTITY % model.addressLike_sequenceOptionalRepeatable "email*, address*, affiliation*"> 
+<!ENTITY % model.addressLike_sequenceRepeatable "email+, address+, affiliation+"> 
+<!ENTITY % model.nameLike "%model.nameLike.agent; |%model.offsetLike; |%model.placeStateLike; |rs |idno |lang |%model.persNamePart; |eventName |objectName"> 
+<!ENTITY % model.nameLike_sequence "%model.nameLike.agent;, %model.offsetLike;, %model.placeStateLike;, rs, idno, lang, %model.persNamePart;, eventName, objectName"> 
+<!ENTITY % model.nameLike_sequenceOptional "%model.nameLike.agent;?, %model.offsetLike;?, %model.placeStateLike;?, rs?, idno?, lang?, %model.persNamePart;?, eventName?, objectName?"> 
+<!ENTITY % model.nameLike_sequenceOptionalRepeatable "%model.nameLike.agent;*, %model.offsetLike;*, %model.placeStateLike;*, rs*, idno*, lang*, %model.persNamePart;*, eventName*, objectName*"> 
+<!ENTITY % model.nameLike_sequenceRepeatable "%model.nameLike.agent;+, %model.offsetLike;+, %model.placeStateLike;+, rs+, idno+, lang+, %model.persNamePart;+, eventName+, objectName+"> 
+<!ENTITY % model.global "%model.global.meta; |%model.milestoneLike; |%model.noteLike; |%model.global.edit; |%model.global.spoken; |metamark |notatedMusic |figure"> 
+<!ENTITY % model.global_sequence "%model.global.meta;, %model.milestoneLike;, %model.noteLike;, %model.global.edit;, %model.global.spoken;, metamark, notatedMusic, figure"> 
+<!ENTITY % model.global_sequenceOptional "%model.global.meta;?, %model.milestoneLike;?, %model.noteLike;?, %model.global.edit;?, %model.global.spoken;?, metamark?, notatedMusic?, figure?"> 
+<!ENTITY % model.global_sequenceOptionalRepeatable "%model.global.meta;*, %model.milestoneLike;*, %model.noteLike;*, %model.global.edit;*, %model.global.spoken;*, metamark*, notatedMusic*, figure*"> 
+<!ENTITY % model.global_sequenceRepeatable "%model.global.meta;+, %model.milestoneLike;+, %model.noteLike;+, %model.global.edit;+, %model.global.spoken;+, metamark+, notatedMusic+, figure+"> 
+<!ENTITY % model.featureVal "%model.featureVal.complex; |%model.featureVal.single;"> 
+<!ENTITY % model.featureVal_sequence "%model.featureVal.complex;, %model.featureVal.single;"> 
+<!ENTITY % model.featureVal_sequenceOptional "%model.featureVal.complex;?, %model.featureVal.single;?"> 
+<!ENTITY % model.featureVal_sequenceOptionalRepeatable "%model.featureVal.complex;*, %model.featureVal.single;*"> 
+<!ENTITY % model.featureVal_sequenceRepeatable "%model.featureVal.complex;+, %model.featureVal.single;+"> 
+<!ENTITY % model.biblPart "%model.respLike; |%model.imprintPart; |quote |series |citedRange |bibl |relatedItem |textLang |edition |extent |availability |msIdentifier |explicit |incipit |decoNote |listRelation |objectIdentifier"> 
+<!ENTITY % model.biblPart_sequence "%model.respLike;, %model.imprintPart;, quote, series, citedRange, bibl, relatedItem, textLang, edition, extent, availability, msIdentifier, explicit, incipit, decoNote, listRelation, objectIdentifier"> 
+<!ENTITY % model.biblPart_sequenceOptional "%model.respLike;?, %model.imprintPart;?, quote?, series?, citedRange?, bibl?, relatedItem?, textLang?, edition?, extent?, availability?, msIdentifier?, explicit?, incipit?, decoNote?, listRelation?, objectIdentifier?"> 
+<!ENTITY % model.biblPart_sequenceOptionalRepeatable "%model.respLike;*, %model.imprintPart;*, quote*, series*, citedRange*, bibl*, relatedItem*, textLang*, edition*, extent*, availability*, msIdentifier*, explicit*, incipit*, decoNote*, listRelation*, objectIdentifier*"> 
+<!ENTITY % model.biblPart_sequenceRepeatable "%model.respLike;+, %model.imprintPart;+, quote+, series+, citedRange+, bibl+, relatedItem+, textLang+, edition+, extent+, availability+, msIdentifier+, explicit+, incipit+, decoNote+, listRelation+, objectIdentifier+"> 
+<!ENTITY % model.frontPart "%model.frontPart.drama; |listBibl |divGen |titlePage |schemaSpec"> 
+<!ENTITY % model.frontPart_sequence "%model.frontPart.drama;, listBibl, divGen, titlePage, schemaSpec"> 
+<!ENTITY % model.frontPart_sequenceOptional "%model.frontPart.drama;?, listBibl?, divGen?, titlePage?, schemaSpec?"> 
+<!ENTITY % model.frontPart_sequenceOptionalRepeatable "%model.frontPart.drama;*, listBibl*, divGen*, titlePage*, schemaSpec*"> 
+<!ENTITY % model.frontPart_sequenceRepeatable "%model.frontPart.drama;+, listBibl+, divGen+, titlePage+, schemaSpec+"> 
+<!ENTITY % model.addrPart "%model.nameLike; |addrLine |street |postCode |postBox"> 
+<!ENTITY % model.addrPart_sequence "%model.nameLike;, addrLine, street, postCode, postBox"> 
+<!ENTITY % model.addrPart_sequenceOptional "%model.nameLike;?, addrLine?, street?, postCode?, postBox?"> 
+<!ENTITY % model.addrPart_sequenceOptionalRepeatable "%model.nameLike;*, addrLine*, street*, postCode*, postBox*"> 
+<!ENTITY % model.addrPart_sequenceRepeatable "%model.nameLike;+, addrLine+, street+, postCode+, postBox+"> 
+<!ENTITY % model.pPart.data "%model.dateLike; |%model.measureLike; |%model.addressLike; |%model.nameLike;"> 
+<!ENTITY % model.pPart.data_sequence "%model.dateLike;, %model.measureLike;, %model.addressLike;, %model.nameLike;"> 
+<!ENTITY % model.pPart.data_sequenceOptional "%model.dateLike;?, %model.measureLike;?, %model.addressLike;?, %model.nameLike;?"> 
+<!ENTITY % model.pPart.data_sequenceOptionalRepeatable "%model.dateLike;*, %model.measureLike;*, %model.addressLike;*, %model.nameLike;*"> 
+<!ENTITY % model.pPart.data_sequenceRepeatable "%model.dateLike;+, %model.measureLike;+, %model.addressLike;+, %model.nameLike;+"> 
+<!ENTITY % model.inter "%model.egLike; |%model.oddDecl; |%model.biblLike; |%model.labelLike; |%model.listLike; |%model.stageLike; |%model.attributable; |castList"> 
+<!ENTITY % model.inter_sequence "%model.egLike;, %model.oddDecl;, %model.biblLike;, %model.labelLike;, %model.listLike;, %model.stageLike;, %model.attributable;, castList"> 
+<!ENTITY % model.inter_sequenceOptional "%model.egLike;?, %model.oddDecl;?, %model.biblLike;?, %model.labelLike;?, %model.listLike;?, %model.stageLike;?, %model.attributable;?, castList?"> 
+<!ENTITY % model.inter_sequenceOptionalRepeatable "%model.egLike;*, %model.oddDecl;*, %model.biblLike;*, %model.labelLike;*, %model.listLike;*, %model.stageLike;*, %model.attributable;*, castList*"> 
+<!ENTITY % model.inter_sequenceRepeatable "%model.egLike;+, %model.oddDecl;+, %model.biblLike;+, %model.labelLike;+, %model.listLike;+, %model.stageLike;+, %model.attributable;+, castList+"> 
+<!ENTITY % model.cmc "post"> 
+<!ENTITY % model.cmc_sequence "post"> 
+<!ENTITY % model.cmc_sequenceOptional "post?"> 
+<!ENTITY % model.cmc_sequenceOptionalRepeatable "post*"> 
+<!ENTITY % model.cmc_sequenceRepeatable "post+"> 
+<!ENTITY % model.common "%model.divPart; |%model.inter; |%model.cmc; |q |%model.entryLike;"> 
+<!ENTITY % model.common_sequence "%model.divPart;, %model.inter;, %model.cmc;, q, %model.entryLike;"> 
+<!ENTITY % model.common_sequenceOptional "%model.divPart;?, %model.inter;?, %model.cmc;?, q?, %model.entryLike;?"> 
+<!ENTITY % model.common_sequenceOptionalRepeatable "%model.divPart;*, %model.inter;*, %model.cmc;*, q*, %model.entryLike;*"> 
+<!ENTITY % model.common_sequenceRepeatable "%model.divPart;+, %model.inter;+, %model.cmc;+, q+, %model.entryLike;+"> 
+<!ENTITY % model.phrase "%model.segLike; |%model.highlighted; |%model.graphicLike; |%model.pPart.msdesc; |%model.pPart.edit; |%model.ptrLike; |%model.lPart; |%model.phrase.xml; |%model.specDescLike; |%model.pPart.data; |ruby |%model.ptrLike.form;"> 
+<!ENTITY % model.phrase_sequence "%model.segLike;, %model.highlighted;, %model.graphicLike;, %model.pPart.msdesc;, %model.pPart.edit;, %model.ptrLike;, %model.lPart;, %model.phrase.xml;, %model.specDescLike;, %model.pPart.data;, ruby, %model.ptrLike.form;"> 
+<!ENTITY % model.phrase_sequenceOptional "%model.segLike;?, %model.highlighted;?, %model.graphicLike;?, %model.pPart.msdesc;?, %model.pPart.edit;?, %model.ptrLike;?, %model.lPart;?, %model.phrase.xml;?, %model.specDescLike;?, %model.pPart.data;?, ruby?, %model.ptrLike.form;?"> 
+<!ENTITY % model.phrase_sequenceOptionalRepeatable "%model.segLike;*, %model.highlighted;*, %model.graphicLike;*, %model.pPart.msdesc;*, %model.pPart.edit;*, %model.ptrLike;*, %model.lPart;*, %model.phrase.xml;*, %model.specDescLike;*, %model.pPart.data;*, ruby*, %model.ptrLike.form;*"> 
+<!ENTITY % model.phrase_sequenceRepeatable "%model.segLike;+, %model.highlighted;+, %model.graphicLike;+, %model.pPart.msdesc;+, %model.pPart.edit;+, %model.ptrLike;+, %model.lPart;+, %model.phrase.xml;+, %model.specDescLike;+, %model.pPart.data;+, ruby+, %model.ptrLike.form;+"> 
+<!ENTITY % model.paraPart "%model.gLike; |%model.lLike; |%model.global; |%model.inter; |%model.phrase; |lg"> 
+<!ENTITY % model.paraPart_sequence "%model.gLike;, %model.lLike;, %model.global;, %model.inter;, %model.phrase;, lg"> 
+<!ENTITY % model.paraPart_sequenceOptional "%model.gLike;?, %model.lLike;?, %model.global;?, %model.inter;?, %model.phrase;?, lg?"> 
+<!ENTITY % model.paraPart_sequenceOptionalRepeatable "%model.gLike;*, %model.lLike;*, %model.global;*, %model.inter;*, %model.phrase;*, lg*"> 
+<!ENTITY % model.paraPart_sequenceRepeatable "%model.gLike;+, %model.lLike;+, %model.global;+, %model.inter;+, %model.phrase;+, lg+"> 
+<!ENTITY % model.limitedPhrase "%model.hiLike; |%model.emphLike; |%model.pPart.msdesc; |%model.pPart.editorial; |%model.ptrLike; |%model.phrase.xml; |%model.pPart.data;"> 
+<!ENTITY % model.limitedPhrase_sequence "%model.hiLike;, %model.emphLike;, %model.pPart.msdesc;, %model.pPart.editorial;, %model.ptrLike;, %model.phrase.xml;, %model.pPart.data;"> 
+<!ENTITY % model.limitedPhrase_sequenceOptional "%model.hiLike;?, %model.emphLike;?, %model.pPart.msdesc;?, %model.pPart.editorial;?, %model.ptrLike;?, %model.phrase.xml;?, %model.pPart.data;?"> 
+<!ENTITY % model.limitedPhrase_sequenceOptionalRepeatable "%model.hiLike;*, %model.emphLike;*, %model.pPart.msdesc;*, %model.pPart.editorial;*, %model.ptrLike;*, %model.phrase.xml;*, %model.pPart.data;*"> 
+<!ENTITY % model.limitedPhrase_sequenceRepeatable "%model.hiLike;+, %model.emphLike;+, %model.pPart.msdesc;+, %model.pPart.editorial;+, %model.ptrLike;+, %model.phrase.xml;+, %model.pPart.data;+"> 
+<!ENTITY % model.divLike "div"> 
+<!ENTITY % model.divLike_sequence "div"> 
+<!ENTITY % model.divLike_sequenceOptional "div?"> 
+<!ENTITY % model.divLike_sequenceOptionalRepeatable "div*"> 
+<!ENTITY % model.divLike_sequenceRepeatable "div+"> 
+<!ENTITY % model.divGenLike "divGen"> 
+<!ENTITY % model.divGenLike_sequence "divGen"> 
+<!ENTITY % model.divGenLike_sequenceOptional "divGen?"> 
+<!ENTITY % model.divGenLike_sequenceOptionalRepeatable "divGen*"> 
+<!ENTITY % model.divGenLike_sequenceRepeatable "divGen+"> 
+<!ENTITY % model.div1Like "div1"> 
+<!ENTITY % model.div1Like_sequence "div1"> 
+<!ENTITY % model.div1Like_sequenceOptional "div1?"> 
+<!ENTITY % model.div1Like_sequenceOptionalRepeatable "div1*"> 
+<!ENTITY % model.div1Like_sequenceRepeatable "div1+"> 
+<!ENTITY % model.div2Like "div2"> 
+<!ENTITY % model.div2Like_sequence "div2"> 
+<!ENTITY % model.div2Like_sequenceOptional "div2?"> 
+<!ENTITY % model.div2Like_sequenceOptionalRepeatable "div2*"> 
+<!ENTITY % model.div2Like_sequenceRepeatable "div2+"> 
+<!ENTITY % model.div3Like "div3"> 
+<!ENTITY % model.div3Like_sequence "div3"> 
+<!ENTITY % model.div3Like_sequenceOptional "div3?"> 
+<!ENTITY % model.div3Like_sequenceOptionalRepeatable "div3*"> 
+<!ENTITY % model.div3Like_sequenceRepeatable "div3+"> 
+<!ENTITY % model.div4Like "div4"> 
+<!ENTITY % model.div4Like_sequence "div4"> 
+<!ENTITY % model.div4Like_sequenceOptional "div4?"> 
+<!ENTITY % model.div4Like_sequenceOptionalRepeatable "div4*"> 
+<!ENTITY % model.div4Like_sequenceRepeatable "div4+"> 
+<!ENTITY % model.div5Like "div5"> 
+<!ENTITY % model.div5Like_sequence "div5"> 
+<!ENTITY % model.div5Like_sequenceOptional "div5?"> 
+<!ENTITY % model.div5Like_sequenceOptionalRepeatable "div5*"> 
+<!ENTITY % model.div5Like_sequenceRepeatable "div5+"> 
+<!ENTITY % model.div6Like "div6"> 
+<!ENTITY % model.div6Like_sequence "div6"> 
+<!ENTITY % model.div6Like_sequenceOptional "div6?"> 
+<!ENTITY % model.div6Like_sequenceOptionalRepeatable "div6*"> 
+<!ENTITY % model.div6Like_sequenceRepeatable "div6+"> 
+<!ENTITY % model.div7Like "div7"> 
+<!ENTITY % model.div7Like_sequence "div7"> 
+<!ENTITY % model.div7Like_sequenceOptional "div7?"> 
+<!ENTITY % model.div7Like_sequenceOptionalRepeatable "div7*"> 
+<!ENTITY % model.div7Like_sequenceRepeatable "div7+"> 
+<!ENTITY % model.annotationLike "note |annotationBlock |annotation"> 
+<!ENTITY % model.annotationLike_sequence "note, annotationBlock, annotation"> 
+<!ENTITY % model.annotationLike_sequenceOptional "note?, annotationBlock?, annotation?"> 
+<!ENTITY % model.annotationLike_sequenceOptionalRepeatable "note*, annotationBlock*, annotation*"> 
+<!ENTITY % model.annotationLike_sequenceRepeatable "note+, annotationBlock+, annotation+"> 
+<!ENTITY % model.annotationPart.body "ptr |ref |note"> 
+<!ENTITY % model.annotationPart.body_sequence "ptr, ref, note"> 
+<!ENTITY % model.annotationPart.body_sequenceOptional "ptr?, ref?, note?"> 
+<!ENTITY % model.annotationPart.body_sequenceOptionalRepeatable "ptr*, ref*, note*"> 
+<!ENTITY % model.annotationPart.body_sequenceRepeatable "ptr+, ref+, note+"> 
+<!ENTITY % model.applicationLike "application"> 
+<!ENTITY % model.applicationLike_sequence "application"> 
+<!ENTITY % model.applicationLike_sequenceOptional "application?"> 
+<!ENTITY % model.applicationLike_sequenceOptionalRepeatable "application*"> 
+<!ENTITY % model.applicationLike_sequenceRepeatable "application+"> 
+<!ENTITY % model.teiHeaderPart "encodingDesc |profileDesc |xenoData"> 
+<!ENTITY % model.teiHeaderPart_sequence "encodingDesc, profileDesc, xenoData"> 
+<!ENTITY % model.teiHeaderPart_sequenceOptional "encodingDesc?, profileDesc?, xenoData?"> 
+<!ENTITY % model.teiHeaderPart_sequenceOptionalRepeatable "encodingDesc*, profileDesc*, xenoData*"> 
+<!ENTITY % model.teiHeaderPart_sequenceRepeatable "encodingDesc+, profileDesc+, xenoData+"> 
+<!ENTITY % model.sourceDescPart "scriptStmt |recordingStmt"> 
+<!ENTITY % model.sourceDescPart_sequence "scriptStmt, recordingStmt"> 
+<!ENTITY % model.sourceDescPart_sequenceOptional "scriptStmt?, recordingStmt?"> 
+<!ENTITY % model.sourceDescPart_sequenceOptionalRepeatable "scriptStmt*, recordingStmt*"> 
+<!ENTITY % model.sourceDescPart_sequenceRepeatable "scriptStmt+, recordingStmt+"> 
+<!ENTITY % model.encodingDescPart "schemaRef |projectDesc |samplingDecl |editorialDecl |tagsDecl |styleDefDecl |refsDecl |listPrefixDef |classDecl |geoDecl |unitDecl |appInfo |charDecl |metDecl |transcriptionDesc |variantEncoding |fsdDecl |schemaSpec"> 
+<!ENTITY % model.encodingDescPart_sequence "schemaRef, projectDesc, samplingDecl, editorialDecl, tagsDecl, styleDefDecl, refsDecl, listPrefixDef, classDecl, geoDecl, unitDecl, appInfo, charDecl, metDecl, transcriptionDesc, variantEncoding, fsdDecl, schemaSpec"> 
+<!ENTITY % model.encodingDescPart_sequenceOptional "schemaRef?, projectDesc?, samplingDecl?, editorialDecl?, tagsDecl?, styleDefDecl?, refsDecl?, listPrefixDef?, classDecl?, geoDecl?, unitDecl?, appInfo?, charDecl?, metDecl?, transcriptionDesc?, variantEncoding?, fsdDecl?, schemaSpec?"> 
+<!ENTITY % model.encodingDescPart_sequenceOptionalRepeatable "schemaRef*, projectDesc*, samplingDecl*, editorialDecl*, tagsDecl*, styleDefDecl*, refsDecl*, listPrefixDef*, classDecl*, geoDecl*, unitDecl*, appInfo*, charDecl*, metDecl*, transcriptionDesc*, variantEncoding*, fsdDecl*, schemaSpec*"> 
+<!ENTITY % model.encodingDescPart_sequenceRepeatable "schemaRef+, projectDesc+, samplingDecl+, editorialDecl+, tagsDecl+, styleDefDecl+, refsDecl+, listPrefixDef+, classDecl+, geoDecl+, unitDecl+, appInfo+, charDecl+, metDecl+, transcriptionDesc+, variantEncoding+, fsdDecl+, schemaSpec+"> 
+<!ENTITY % model.editorialDeclPart "correction |normalization |quotation |hyphenation |segmentation |stdVals |interpretation |punctuation"> 
+<!ENTITY % model.editorialDeclPart_sequence "correction, normalization, quotation, hyphenation, segmentation, stdVals, interpretation, punctuation"> 
+<!ENTITY % model.editorialDeclPart_sequenceOptional "correction?, normalization?, quotation?, hyphenation?, segmentation?, stdVals?, interpretation?, punctuation?"> 
+<!ENTITY % model.editorialDeclPart_sequenceOptionalRepeatable "correction*, normalization*, quotation*, hyphenation*, segmentation*, stdVals*, interpretation*, punctuation*"> 
+<!ENTITY % model.editorialDeclPart_sequenceRepeatable "correction+, normalization+, quotation+, hyphenation+, segmentation+, stdVals+, interpretation+, punctuation+"> 
+<!ENTITY % model.profileDescPart "abstract |creation |langUsage |textClass |calendarDesc |correspDesc |handNotes |listTranspose |textDesc |particDesc |settingDesc"> 
+<!ENTITY % model.profileDescPart_sequence "abstract, creation, langUsage, textClass, calendarDesc, correspDesc, handNotes, listTranspose, textDesc, particDesc, settingDesc"> 
+<!ENTITY % model.profileDescPart_sequenceOptional "abstract?, creation?, langUsage?, textClass?, calendarDesc?, correspDesc?, handNotes?, listTranspose?, textDesc?, particDesc?, settingDesc?"> 
+<!ENTITY % model.profileDescPart_sequenceOptionalRepeatable "abstract*, creation*, langUsage*, textClass*, calendarDesc*, correspDesc*, handNotes*, listTranspose*, textDesc*, particDesc*, settingDesc*"> 
+<!ENTITY % model.profileDescPart_sequenceRepeatable "abstract+, creation+, langUsage+, textClass+, calendarDesc+, correspDesc+, handNotes+, listTranspose+, textDesc+, particDesc+, settingDesc+"> 
+<!ENTITY % model.standOffPart "%model.global.meta; |%model.biblLike; |%model.listLike; |%model.annotationLike; |xenoData |listChange |castList |u |%model.entryLike; |zone |seg |listAnnotation |graph |tree |eTree |forest |listForest"> 
+<!ENTITY % model.standOffPart_sequence "%model.global.meta;, %model.biblLike;, %model.listLike;, %model.annotationLike;, xenoData, listChange, castList, u, %model.entryLike;, zone, seg, listAnnotation, graph, tree, eTree, forest, listForest"> 
+<!ENTITY % model.standOffPart_sequenceOptional "%model.global.meta;?, %model.biblLike;?, %model.listLike;?, %model.annotationLike;?, xenoData?, listChange?, castList?, u?, %model.entryLike;?, zone?, seg?, listAnnotation?, graph?, tree?, eTree?, forest?, listForest?"> 
+<!ENTITY % model.standOffPart_sequenceOptionalRepeatable "%model.global.meta;*, %model.biblLike;*, %model.listLike;*, %model.annotationLike;*, xenoData*, listChange*, castList*, u*, %model.entryLike;*, zone*, seg*, listAnnotation*, graph*, tree*, eTree*, forest*, listForest*"> 
+<!ENTITY % model.standOffPart_sequenceRepeatable "%model.global.meta;+, %model.biblLike;+, %model.listLike;+, %model.annotationLike;+, xenoData+, listChange+, castList+, u+, %model.entryLike;+, zone+, seg+, listAnnotation+, graph+, tree+, eTree+, forest+, listForest+"> 
+<!ENTITY % att.formula.attribute.formula '
+formula %teidata.xpath;  #IMPLIED'>
+<!ENTITY % att.formula.attributes '
+ %att.formula.attribute.formula;'> 
+<!ENTITY % att.locatable.attribute.where '
+where CDATA  #IMPLIED'>
+<!ENTITY % att.locatable.attributes '
+ %att.locatable.attribute.where;'> 
+<!ENTITY % model.correspActionPart "%model.dateLike; |%model.addressLike; |%model.nameLike; |note |noteGrp"> 
+<!ENTITY % model.correspActionPart_sequence "%model.dateLike;, %model.addressLike;, %model.nameLike;, note, noteGrp"> 
+<!ENTITY % model.correspActionPart_sequenceOptional "%model.dateLike;?, %model.addressLike;?, %model.nameLike;?, note?, noteGrp?"> 
+<!ENTITY % model.correspActionPart_sequenceOptionalRepeatable "%model.dateLike;*, %model.addressLike;*, %model.nameLike;*, note*, noteGrp*"> 
+<!ENTITY % model.correspActionPart_sequenceRepeatable "%model.dateLike;+, %model.addressLike;+, %model.nameLike;+, note+, noteGrp+"> 
+<!ENTITY % model.correspContextPart "%model.ptrLike; |%model.pLike; |note |noteGrp"> 
+<!ENTITY % model.correspContextPart_sequence "%model.ptrLike;, %model.pLike;, note, noteGrp"> 
+<!ENTITY % model.correspContextPart_sequenceOptional "%model.ptrLike;?, %model.pLike;?, note?, noteGrp?"> 
+<!ENTITY % model.correspContextPart_sequenceOptionalRepeatable "%model.ptrLike;*, %model.pLike;*, note*, noteGrp*"> 
+<!ENTITY % model.correspContextPart_sequenceRepeatable "%model.ptrLike;+, %model.pLike;+, note+, noteGrp+"> 
+<!ENTITY % model.correspDescPart "note |noteGrp |correspAction |correspContext"> 
+<!ENTITY % model.correspDescPart_sequence "note, noteGrp, correspAction, correspContext"> 
+<!ENTITY % model.correspDescPart_sequenceOptional "note?, noteGrp?, correspAction?, correspContext?"> 
+<!ENTITY % model.correspDescPart_sequenceOptionalRepeatable "note*, noteGrp*, correspAction*, correspContext*"> 
+<!ENTITY % model.correspDescPart_sequenceRepeatable "note+, noteGrp+, correspAction+, correspContext+"> 
+<!ENTITY % att.partials.attribute.extent '
+extent %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.partials.attributes '
+ %att.partials.attribute.extent;'> 
+<!ENTITY % model.resource "text |facsimile |sourceDoc |standOff |fsdDecl"> 
+<!ENTITY % model.resource_sequence "text, facsimile, sourceDoc, standOff, fsdDecl"> 
+<!ENTITY % model.resource_sequenceOptional "text?, facsimile?, sourceDoc?, standOff?, fsdDecl?"> 
+<!ENTITY % model.resource_sequenceOptionalRepeatable "text*, facsimile*, sourceDoc*, standOff*, fsdDecl*"> 
+<!ENTITY % model.resource_sequenceRepeatable "text+, facsimile+, sourceDoc+, standOff+, fsdDecl+"> 
+<!ENTITY % model.describedResource "teiCorpus |TEI"> 
+<!ENTITY % model.describedResource_sequence "teiCorpus, TEI"> 
+<!ENTITY % model.describedResource_sequenceOptional "teiCorpus?, TEI?"> 
+<!ENTITY % model.describedResource_sequenceOptionalRepeatable "teiCorpus*, TEI*"> 
+<!ENTITY % model.describedResource_sequenceRepeatable "teiCorpus+, TEI+"> 
+<!ENTITY % model.objectLike "object |listObject"> 
+<!ENTITY % model.objectLike_sequence "object, listObject"> 
+<!ENTITY % model.objectLike_sequenceOptional "object?, listObject?"> 
+<!ENTITY % model.objectLike_sequenceOptionalRepeatable "object*, listObject*"> 
+<!ENTITY % model.objectLike_sequenceRepeatable "object+, listObject+"> 
+<!ENTITY % att.personal.attribute.full '
+full (yes|abb|init) "yes" '>
+
+<!ENTITY % att.personal.attribute.sort '
+sort %teidata.count;  #IMPLIED'>
+<!ENTITY % att.personal.attributes '%att.naming.attributes;
+ %att.personal.attribute.full;
+ %att.personal.attribute.sort;'> 
+<!ENTITY % model.placeLike "place"> 
+<!ENTITY % model.placeLike_sequence "place"> 
+<!ENTITY % model.placeLike_sequenceOptional "place?"> 
+<!ENTITY % model.placeLike_sequenceOptionalRepeatable "place*"> 
+<!ENTITY % model.placeLike_sequenceRepeatable "place+"> 
+<!ENTITY % att.calendarSystem.attribute.calendar '
+calendar CDATA  #IMPLIED'>
+<!ENTITY % att.calendarSystem.attributes '
+ %att.calendarSystem.attribute.calendar;'> 
+<!ENTITY % att.duration.iso.attribute.dur-iso '
+dur-iso %teidata.duration.iso;  #IMPLIED'>
+<!ENTITY % att.duration.iso.attributes '
+ %att.duration.iso.attribute.dur-iso;'> 
+<!ENTITY % att.milestoneUnit.attribute.unit '
+unit %teidata.enumerated;  #REQUIRED'>
+<!ENTITY % att.milestoneUnit.attributes '
+ %att.milestoneUnit.attribute.unit;'> 
+<!ENTITY % att.citeStructurePart.attribute.use '
+use %teidata.xpath;  #REQUIRED'>
+<!ENTITY % att.citeStructurePart.attributes '
+ %att.citeStructurePart.attribute.use;'> 
+<!ENTITY % att.patternReplacement.attribute.matchPattern '
+matchPattern %teidata.pattern;  #REQUIRED'>
+
+<!ENTITY % att.patternReplacement.attribute.replacementPattern '
+replacementPattern %teidata.replacement;  #REQUIRED'>
+<!ENTITY % att.patternReplacement.attributes '
+ %att.patternReplacement.attribute.matchPattern;
+ %att.patternReplacement.attribute.replacementPattern;'> 
+<!ENTITY % att.gaijiProp.attribute.name '
+name %teidata.xmlName;  #REQUIRED'>
+
+<!ENTITY % att.gaijiProp.attribute.value '
+value %teidata.text;  #REQUIRED'>
+
+<!ENTITY % att.gaijiProp.attribute.version '
+version %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.gaijiProp.attribute.scheme '
+scheme %teidata.enumerated;  "Unicode" '>
+<!ENTITY % att.gaijiProp.attributes '%att.datable.attributes;
+ %att.gaijiProp.attribute.name;
+ %att.gaijiProp.attribute.value;
+ %att.gaijiProp.attribute.version;
+ %att.gaijiProp.attribute.scheme;'> 
+<!ENTITY % att.metrical.attribute.met '
+met CDATA #IMPLIED'>
+
+<!ENTITY % att.metrical.attribute.real '
+real CDATA #IMPLIED'>
+
+<!ENTITY % att.metrical.attribute.rhyme '
+rhyme CDATA #IMPLIED'>
+<!ENTITY % att.metrical.attributes '
+ %att.metrical.attribute.met;
+ %att.metrical.attribute.real;
+ %att.metrical.attribute.rhyme;'> 
+<!ENTITY % att.enjamb.attribute.enjamb '
+enjamb %teidata.enumerated;  #IMPLIED'>
+<!ENTITY % att.enjamb.attributes '
+ %att.enjamb.attribute.enjamb;'> <!ENTITY % att.duration.attributes '%att.duration.w3c.attributes;%att.duration.iso.attributes;'> 
+<!ENTITY % model.global.spoken "pause |vocal |kinesic |incident |writing |shift"> 
+<!ENTITY % model.global.spoken_sequence "pause, vocal, kinesic, incident, writing, shift"> 
+<!ENTITY % model.global.spoken_sequenceOptional "pause?, vocal?, kinesic?, incident?, writing?, shift?"> 
+<!ENTITY % model.global.spoken_sequenceOptionalRepeatable "pause*, vocal*, kinesic*, incident*, writing*, shift*"> 
+<!ENTITY % model.global.spoken_sequenceRepeatable "pause+, vocal+, kinesic+, incident+, writing+, shift+"> 
+<!ENTITY % model.recordingPart "%model.dateLike; |media |respStmt |equipment |broadcast"> 
+<!ENTITY % model.recordingPart_sequence "%model.dateLike;, media, respStmt, equipment, broadcast"> 
+<!ENTITY % model.recordingPart_sequenceOptional "%model.dateLike;?, media?, respStmt?, equipment?, broadcast?"> 
+<!ENTITY % model.recordingPart_sequenceOptionalRepeatable "%model.dateLike;*, media*, respStmt*, equipment*, broadcast*"> 
+<!ENTITY % model.recordingPart_sequenceRepeatable "%model.dateLike;+, media+, respStmt+, equipment+, broadcast+"> 
+<!ENTITY % model.divPart.spoken "u |annotationBlock"> 
+<!ENTITY % model.divPart.spoken_sequence "u, annotationBlock"> 
+<!ENTITY % model.divPart.spoken_sequenceOptional "u?, annotationBlock?"> 
+<!ENTITY % model.divPart.spoken_sequenceOptionalRepeatable "u*, annotationBlock*"> 
+<!ENTITY % model.divPart.spoken_sequenceRepeatable "u+, annotationBlock+"> 
+<!ENTITY % att.lexicographic.normalized.attribute.norm '
+norm %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.normalized.attribute.orig '
+orig %teidata.text;  #IMPLIED'>
+<!ENTITY % att.lexicographic.normalized.attributes '
+ %att.lexicographic.normalized.attribute.norm;
+ %att.lexicographic.normalized.attribute.orig;'> 
+<!ENTITY % att.linguistic.attribute.lemma '
+lemma %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.linguistic.attribute.lemmaRef '
+lemmaRef %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.linguistic.attribute.pos '
+pos %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.linguistic.attribute.msd '
+msd %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.linguistic.attribute.join '
+join (no|left|right|both|overlap) #IMPLIED'>
+<!ENTITY % att.linguistic.attributes '%att.lexicographic.normalized.attributes;
+ %att.linguistic.attribute.lemma;
+ %att.linguistic.attribute.lemmaRef;
+ %att.linguistic.attribute.pos;
+ %att.linguistic.attribute.msd;
+ %att.linguistic.attribute.join;'> 
+<!ENTITY % att.global.analytic.attribute.ana '
+ana CDATA  #IMPLIED'>
+<!ENTITY % att.global.analytic.attributes '
+ %att.global.analytic.attribute.ana;'> 
+<!ENTITY % model.entryLike "superEntry |entry |entryFree"> 
+<!ENTITY % model.entryLike_sequence "superEntry, entry, entryFree"> 
+<!ENTITY % model.entryLike_sequenceOptional "superEntry?, entry?, entryFree?"> 
+<!ENTITY % model.entryLike_sequenceOptionalRepeatable "superEntry*, entry*, entryFree*"> 
+<!ENTITY % model.entryLike_sequenceRepeatable "superEntry+, entry+, entryFree+"> 
+<!ENTITY % att.entryLike.attribute.type '
+type %teidata.enumerated;  "main" '>
+<!ENTITY % att.entryLike.attributes '
+ %att.entryLike.attribute.type;'> 
+<!ENTITY % att.lexicographic.attribute.expand '
+expand %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.attribute.split '
+split %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.attribute.value '
+value %teidata.text;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.attribute.location '
+location %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.attribute.mergedIn '
+mergedIn %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.lexicographic.attribute.opt '
+opt %teidata.truthValue;  "false" '>
+<!ENTITY % att.lexicographic.attributes '%att.datcat.attributes;%att.lexicographic.normalized.attributes;
+ %att.lexicographic.attribute.expand;
+ %att.lexicographic.attribute.split;
+ %att.lexicographic.attribute.value;
+ %att.lexicographic.attribute.location;
+ %att.lexicographic.attribute.mergedIn;
+ %att.lexicographic.attribute.opt;'> 
+<!ENTITY % model.morphLike "gram |gen |number |case |per |tns |mood |iType"> 
+<!ENTITY % model.morphLike_sequence "gram, gen, number, case, per, tns, mood, iType"> 
+<!ENTITY % model.morphLike_sequenceOptional "gram?, gen?, number?, case?, per?, tns?, mood?, iType?"> 
+<!ENTITY % model.morphLike_sequenceOptionalRepeatable "gram*, gen*, number*, case*, per*, tns*, mood*, iType*"> 
+<!ENTITY % model.morphLike_sequenceRepeatable "gram+, gen+, number+, case+, per+, tns+, mood+, iType+"> 
+<!ENTITY % model.lexicalRefinement "gramGrp |pos |subc |colloc |usg |lbl"> 
+<!ENTITY % model.lexicalRefinement_sequence "gramGrp, pos, subc, colloc, usg, lbl"> 
+<!ENTITY % model.lexicalRefinement_sequenceOptional "gramGrp?, pos?, subc?, colloc?, usg?, lbl?"> 
+<!ENTITY % model.lexicalRefinement_sequenceOptionalRepeatable "gramGrp*, pos*, subc*, colloc*, usg*, lbl*"> 
+<!ENTITY % model.lexicalRefinement_sequenceRepeatable "gramGrp+, pos+, subc+, colloc+, usg+, lbl+"> 
+<!ENTITY % model.gramPart "%model.morphLike; |%model.lexicalRefinement;"> 
+<!ENTITY % model.gramPart_sequence "%model.morphLike;, %model.lexicalRefinement;"> 
+<!ENTITY % model.gramPart_sequenceOptional "%model.morphLike;?, %model.lexicalRefinement;?"> 
+<!ENTITY % model.gramPart_sequenceOptionalRepeatable "%model.morphLike;*, %model.lexicalRefinement;*"> 
+<!ENTITY % model.gramPart_sequenceRepeatable "%model.morphLike;+, %model.lexicalRefinement;+"> 
+<!ENTITY % model.formPart "%model.gramPart; |form |orth |pron |hyph |syll |stress"> 
+<!ENTITY % model.formPart_sequence "%model.gramPart;, form, orth, pron, hyph, syll, stress"> 
+<!ENTITY % model.formPart_sequenceOptional "%model.gramPart;?, form?, orth?, pron?, hyph?, syll?, stress?"> 
+<!ENTITY % model.formPart_sequenceOptionalRepeatable "%model.gramPart;*, form*, orth*, pron*, hyph*, syll*, stress*"> 
+<!ENTITY % model.formPart_sequenceRepeatable "%model.gramPart;+, form+, orth+, pron+, hyph+, syll+, stress+"> 
+<!ENTITY % model.ptrLike.form "oRef |pRef"> 
+<!ENTITY % model.ptrLike.form_sequence "oRef, pRef"> 
+<!ENTITY % model.ptrLike.form_sequenceOptional "oRef?, pRef?"> 
+<!ENTITY % model.ptrLike.form_sequenceOptionalRepeatable "oRef*, pRef*"> 
+<!ENTITY % model.ptrLike.form_sequenceRepeatable "oRef+, pRef+"> 
+<!ENTITY % model.physDescPart "objectDesc |handDesc |typeDesc |scriptDesc |musicNotation |decoDesc |additions |bindingDesc |sealDesc |accMat"> 
+<!ENTITY % model.physDescPart_sequence "objectDesc, handDesc, typeDesc, scriptDesc, musicNotation, decoDesc, additions, bindingDesc, sealDesc, accMat"> 
+<!ENTITY % model.physDescPart_sequenceOptional "objectDesc?, handDesc?, typeDesc?, scriptDesc?, musicNotation?, decoDesc?, additions?, bindingDesc?, sealDesc?, accMat?"> 
+<!ENTITY % model.physDescPart_sequenceOptionalRepeatable "objectDesc*, handDesc*, typeDesc*, scriptDesc*, musicNotation*, decoDesc*, additions*, bindingDesc*, sealDesc*, accMat*"> 
+<!ENTITY % model.physDescPart_sequenceRepeatable "objectDesc+, handDesc+, typeDesc+, scriptDesc+, musicNotation+, decoDesc+, additions+, bindingDesc+, sealDesc+, accMat+"> 
+<!ENTITY % att.msExcerpt.attribute.defective '
+defective %teidata.xTruthValue;  #IMPLIED'>
+<!ENTITY % att.msExcerpt.attributes '
+ %att.msExcerpt.attribute.defective;'> 
+<!ENTITY % att.msClass.attribute.class '
+class CDATA  #IMPLIED'>
+<!ENTITY % att.msClass.attributes '
+ %att.msClass.attribute.class;'> 
+<!ENTITY % att.global.facs.attribute.facs '
+facs CDATA  #IMPLIED'>
+<!ENTITY % att.global.facs.attributes '
+ %att.global.facs.attribute.facs;'> 
+<!ENTITY % att.global.change.attribute.change '
+change CDATA  #IMPLIED'>
+<!ENTITY % att.global.change.attributes '
+ %att.global.change.attribute.change;'> 
+<!ENTITY % att.coordinated.attribute.start '
+start %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.coordinated.attribute.ulx '
+ulx %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.coordinated.attribute.uly '
+uly %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.coordinated.attribute.lrx '
+lrx %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.coordinated.attribute.lry '
+lry %teidata.numeric;  #IMPLIED'>
+
+<!ENTITY % att.coordinated.attribute.points '
+points CDATA  #IMPLIED'>
+<!ENTITY % att.coordinated.attributes '
+ %att.coordinated.attribute.start;
+ %att.coordinated.attribute.ulx;
+ %att.coordinated.attribute.uly;
+ %att.coordinated.attribute.lrx;
+ %att.coordinated.attribute.lry;
+ %att.coordinated.attribute.points;'> 
+<!ENTITY % model.rdgLike "rdg"> 
+<!ENTITY % model.rdgLike_sequence "rdg"> 
+<!ENTITY % model.rdgLike_sequenceOptional "rdg?"> 
+<!ENTITY % model.rdgLike_sequenceOptionalRepeatable "rdg*"> 
+<!ENTITY % model.rdgLike_sequenceRepeatable "rdg+"> 
+<!ENTITY % model.rdgPart "wit |witStart |witEnd |lacunaStart |lacunaEnd"> 
+<!ENTITY % model.rdgPart_sequence "wit, witStart, witEnd, lacunaStart, lacunaEnd"> 
+<!ENTITY % model.rdgPart_sequenceOptional "wit?, witStart?, witEnd?, lacunaStart?, lacunaEnd?"> 
+<!ENTITY % model.rdgPart_sequenceOptionalRepeatable "wit*, witStart*, witEnd*, lacunaStart*, lacunaEnd*"> 
+<!ENTITY % model.rdgPart_sequenceRepeatable "wit+, witStart+, witEnd+, lacunaStart+, lacunaEnd+"> 
+<!ENTITY % att.rdgPart.attribute.wit '
+wit CDATA  #IMPLIED'>
+<!ENTITY % att.rdgPart.attributes '
+ %att.rdgPart.attribute.wit;'> 
+<!ENTITY % att.witnessed.attribute.wit '
+wit CDATA  #IMPLIED'>
+<!ENTITY % att.witnessed.attributes '
+ %att.witnessed.attribute.wit;'> 
+<!ENTITY % att.textCritical.attribute.type '
+type %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.textCritical.attribute.cause '
+cause %teidata.enumerated;  #IMPLIED'>
+
+<!ENTITY % att.textCritical.attribute.varSeq '
+varSeq %teidata.count;  #IMPLIED'>
+
+<!ENTITY % att.textCritical.attribute.require '
+require CDATA  #IMPLIED'>
+<!ENTITY % att.textCritical.attributes '%att.written.attributes;
+ %att.textCritical.attribute.type;
+ %att.textCritical.attribute.cause;
+ %att.textCritical.attribute.varSeq;
+ %att.textCritical.attribute.require;'> 
+<!ENTITY % att.datable.custom.attribute.when-custom '
+when-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.notBefore-custom '
+notBefore-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.notAfter-custom '
+notAfter-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.from-custom '
+from-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.to-custom '
+to-custom CDATA  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.datingPoint '
+datingPoint %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.datable.custom.attribute.datingMethod '
+datingMethod %teidata.pointer;  #IMPLIED'>
+<!ENTITY % att.datable.custom.attributes '
+ %att.datable.custom.attribute.when-custom;
+ %att.datable.custom.attribute.notBefore-custom;
+ %att.datable.custom.attribute.notAfter-custom;
+ %att.datable.custom.attribute.from-custom;
+ %att.datable.custom.attribute.to-custom;
+ %att.datable.custom.attribute.datingPoint;
+ %att.datable.custom.attribute.datingMethod;'> 
+<!ENTITY % model.persNamePart "surname |forename |genName |nameLink |addName |roleName |persPronouns"> 
+<!ENTITY % model.persNamePart_sequence "surname, forename, genName, nameLink, addName, roleName, persPronouns"> 
+<!ENTITY % model.persNamePart_sequenceOptional "surname?, forename?, genName?, nameLink?, addName?, roleName?, persPronouns?"> 
+<!ENTITY % model.persNamePart_sequenceOptionalRepeatable "surname*, forename*, genName*, nameLink*, addName*, roleName*, persPronouns*"> 
+<!ENTITY % model.persNamePart_sequenceRepeatable "surname+, forename+, genName+, nameLink+, addName+, roleName+, persPronouns+"> 
+<!ENTITY % att.datable.iso.attribute.when-iso '
+when-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.notBefore-iso '
+notBefore-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.notAfter-iso '
+notAfter-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.from-iso '
+from-iso %teidata.temporal.iso;  #IMPLIED'>
+
+<!ENTITY % att.datable.iso.attribute.to-iso '
+to-iso %teidata.temporal.iso;  #IMPLIED'>
+<!ENTITY % att.datable.iso.attributes '
+ %att.datable.iso.attribute.when-iso;
+ %att.datable.iso.attribute.notBefore-iso;
+ %att.datable.iso.attribute.notAfter-iso;
+ %att.datable.iso.attribute.from-iso;
+ %att.datable.iso.attribute.to-iso;'> 
+<!ENTITY % att.tableDecoration.attribute.role '
+role %teidata.enumerated;  "data" '>
+
+<!ENTITY % att.tableDecoration.attribute.rows '
+rows %teidata.count;  "1" '>
+
+<!ENTITY % att.tableDecoration.attribute.cols '
+cols %teidata.count;  "1" '>
+<!ENTITY % att.tableDecoration.attributes '
+ %att.tableDecoration.attribute.role;
+ %att.tableDecoration.attribute.rows;
+ %att.tableDecoration.attribute.cols;'> 
+<!ENTITY % att.global.linking.attribute.corresp '
+corresp CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.synch '
+synch CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.sameAs '
+sameAs %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.copyOf '
+copyOf %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.next '
+next %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.prev '
+prev %teidata.pointer;  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.exclude '
+exclude CDATA  #IMPLIED'>
+
+<!ENTITY % att.global.linking.attribute.select '
+select CDATA  #IMPLIED'>
+<!ENTITY % att.global.linking.attributes '
+ %att.global.linking.attribute.corresp;
+ %att.global.linking.attribute.synch;
+ %att.global.linking.attribute.sameAs;
+ %att.global.linking.attribute.copyOf;
+ %att.global.linking.attribute.next;
+ %att.global.linking.attribute.prev;
+ %att.global.linking.attribute.exclude;
+ %att.global.linking.attribute.select;'> 
+<!ENTITY % model.fsdDeclPart "fsDecl |fsdLink |fLib |fvLib"> 
+<!ENTITY % model.fsdDeclPart_sequence "fsDecl, fsdLink, fLib, fvLib"> 
+<!ENTITY % model.fsdDeclPart_sequenceOptional "fsDecl?, fsdLink?, fLib?, fvLib?"> 
+<!ENTITY % model.fsdDeclPart_sequenceOptionalRepeatable "fsDecl*, fsdLink*, fLib*, fvLib*"> 
+<!ENTITY % model.fsdDeclPart_sequenceRepeatable "fsDecl+, fsdLink+, fLib+, fvLib+"> 
+<!ENTITY % att.translatable.attribute.versionDate '
+versionDate %teidata.temporal.working;  #IMPLIED'>
+<!ENTITY % att.translatable.attributes '
+ %att.translatable.attribute.versionDate;'> 
+<!ENTITY % att.predicate.attribute.predicate '
+predicate %teidata.xpath;  #IMPLIED'>
+<!ENTITY % att.predicate.attributes '
+ %att.predicate.attribute.predicate;'> 
+<!ENTITY % att.repeatable.attribute.minOccurs '
+minOccurs %teidata.count;  "1" '>
+
+<!ENTITY % att.repeatable.attribute.maxOccurs '
+maxOccurs %teidata.unboundedCount;  "1" '>
+<!ENTITY % att.repeatable.attributes '
+ %att.repeatable.attribute.minOccurs;
+ %att.repeatable.attribute.maxOccurs;'> 
+<!ENTITY % model.contentPart "classRef |elementRef |macroRef |sequence |alternate |dataRef |textNode |anyElement |empty"> 
+<!ENTITY % model.contentPart_sequence "classRef, elementRef, macroRef, sequence, alternate, dataRef, textNode, anyElement, empty"> 
+<!ENTITY % model.contentPart_sequenceOptional "classRef?, elementRef?, macroRef?, sequence?, alternate?, dataRef?, textNode?, anyElement?, empty?"> 
+<!ENTITY % model.contentPart_sequenceOptionalRepeatable "classRef*, elementRef*, macroRef*, sequence*, alternate*, dataRef*, textNode*, anyElement*, empty*"> 
+<!ENTITY % model.contentPart_sequenceRepeatable "classRef+, elementRef+, macroRef+, sequence+, alternate+, dataRef+, textNode+, anyElement+, empty+"> 
+<!ENTITY % att.combinable.attribute.mode '
+mode (add|delete|change|replace) "add" '>
+<!ENTITY % att.combinable.attributes '%att.deprecated.attributes;
+ %att.combinable.attribute.mode;'> 
+<!ENTITY % att.identified.attribute.ident '
+ident %teidata.name;  #REQUIRED'>
+
+<!ENTITY % att.identified.attribute.predeclare '
+predeclare %teidata.truthValue;  "false" '>
+
+<!ENTITY % att.identified.attribute.module '
+module %teidata.xmlName;  #IMPLIED'>
+<!ENTITY % att.identified.attributes '%att.combinable.attributes;
+ %att.identified.attribute.ident;
+ %att.identified.attribute.predeclare;
+ %att.identified.attribute.module;'> 
+<!ENTITY % att.deprecated.attribute.validUntil '
+validUntil CDATA #IMPLIED'>
+<!ENTITY % att.deprecated.attributes '
+ %att.deprecated.attribute.validUntil;'> 
+<!ENTITY % att.namespaceable.attribute.ns '
+ns CDATA  "http://www.tei-c.org/ns/1.0" '>
+<!ENTITY % att.namespaceable.attributes '
+ %att.namespaceable.attribute.ns;'> 
+<!-- start rest of patterns -->
+
+<!ENTITY % macro.abContent '(#PCDATA|%model.paraPart;|ab)*' >
+
+<!ENTITY % macro.paraContent '(#PCDATA|%model.paraPart;)*' >
+
+<!ENTITY % macro.limitedContent '(#PCDATA|%model.limitedPhrase;|%model.inter;)*' >
+
+<!ENTITY % macro.phraseSeq '(#PCDATA|%model.gLike;|%model.attributable;|%model.phrase;|%model.global;)*' >
+
+<!ENTITY % macro.phraseSeq.limited '(#PCDATA|%model.limitedPhrase;|%model.global;)*' >
+
+<!ENTITY % macro.specialPara '(#PCDATA|%model.gLike;|%model.phrase;|%model.inter;|%model.divPart;|%model.global;)*' >
+
+<!ENTITY % macro.xtext '(#PCDATA|%model.gLike;)*' >
+
+<!-- end patterns -->
+
+<!-- start elements -->
+
+<!--doc:(TEI document) contains a single TEI-conformant document, combining a single TEI header with one or more members of the model.resource class. Multiple TEI elements may be combined within a TEI (or teiCorpus) element. [4. Default Text Structure 16.1. Varieties of Composite Text] -->
+<!ELEMENT TEI ((teiHeader,(((%model.resource;)+,(TEI)*)|(TEI)+)))>
+<!ATTLIST TEI xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST TEI
+ %att.global.attributes;
+ %att.typed.attributes;
+version %teidata.version;  #IMPLIED >
+<!ATTLIST TEI xsi:schemaLocation CDATA #IMPLIED
+ xmlns:xsi CDATA #FIXED 'http://www.w3.org/2001/XMLSchema-instance'
+ >
+<!--doc:(anonymous block) contains any component-level unit of text, acting as a container for phrase or inter level elements analogous to, but without the same constraints as, a paragraph. [17.3. Blocks, Segments, and Anchors] -->
+<!ELEMENT ab %macro.abContent;>
+<!ATTLIST ab xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ab
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes;
+ %att.fragmentable.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(abbreviation) contains an abbreviation of any sort. [3.6.5. Abbreviations and Their Expansions] -->
+<!ELEMENT abbr %macro.phraseSeq;>
+<!ATTLIST abbr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST abbr
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:contains a summary or formal abstract prefixed to an existing source document by the encoder. [2.4.4. Abstracts] -->
+<!ELEMENT abstract (%model.pLike;|%model.listLike;|listBibl)+>
+<!ATTLIST abstract xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST abstract
+ %att.global.attributes; >
+<!--doc:(accompanying material) contains details of any significant additional material which may be closely associated with the manuscript or object being described, such as non-contemporaneous documents or fragments bound in with it at some earlier historical period. [11.7.3.3. Accompanying Material] -->
+<!ELEMENT accMat %macro.specialPara;>
+<!ATTLIST accMat xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST accMat
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(acquisition) contains any descriptive or other information concerning the process by which a manuscript or manuscript part or other object entered the holding institution. [11.8. History] -->
+<!ELEMENT acquisition %macro.specialPara;>
+<!ATTLIST acquisition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST acquisition
+ %att.global.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(activity) contains a brief informal description of what a participant in a language interaction is doing other than speaking, if anything. [16.2.3. The Setting Description] -->
+<!ELEMENT activity %macro.phraseSeq.limited;>
+<!ATTLIST activity xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST activity
+ %att.global.attributes; >
+<!--doc:contains the name of an actor appearing within a cast list. [7.1.4. Cast Lists] -->
+<!ELEMENT actor %macro.phraseSeq;>
+<!ATTLIST actor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST actor
+ %att.global.attributes;
+ %att.canonical.attributes;
+sex CDATA  #IMPLIED
+gender CDATA  #IMPLIED >
+<!--doc:(addition) contains letters, words, or phrases inserted in the source text by an author, scribe, or a previous annotator or corrector. [3.5.3. Additions, Deletions, and Omissions] -->
+<!ELEMENT add %macro.paraContent;>
+<!ATTLIST add xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST add
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.placement.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes; >
+<!--doc:(additional name) contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name. [14.2.1. Personal Names] -->
+<!ELEMENT addName %macro.phraseSeq;>
+<!ATTLIST addName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST addName
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(added span of text) marks the beginning of a longer sequence of text added by an author, scribe, annotator or corrector (see also add). [12.3.1.4. Additions and Deletions] -->
+<!ELEMENT addSpan  EMPTY>
+<!ATTLIST addSpan xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST addSpan
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.placement.attributes;
+ %att.typed.attributes;
+ %att.spanning.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(additional) groups additional information, combining bibliographic information about a manuscript or other object, or surrogate copies of it, with curatorial or administrative information. [11.9. Additional Information] -->
+<!ELEMENT additional (((adminInfo)?,(surrogates)?,(listBibl)?)|(%model.pLike;)+)>
+<!ATTLIST additional xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST additional
+ %att.global.attributes; >
+<!--doc:(additions) contains a description of any significant additions found within a manuscript or other object, such as marginalia or other annotations. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT additions %macro.specialPara;>
+<!ATTLIST additions xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST additions
+ %att.global.attributes; >
+<!--doc:(address line) contains one line of a postal address. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. 3.12.2.4. Imprint, Size of a Document, and Reprint Information] -->
+<!ELEMENT addrLine %macro.phraseSeq;>
+<!ATTLIST addrLine xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST addrLine
+ %att.global.attributes; >
+<!--doc:(address) contains a postal address, for example of a publisher, an organization, or an individual. [3.6.2. Addresses 2.2.4. Publication, Distribution, Licensing, etc. 3.12.2.4. Imprint, Size of a Document, and Reprint Information] -->
+<!ELEMENT address (((%model.global;)*,((%model.addrPart;),(%model.global;)*)+))>
+<!ATTLIST address xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST address
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(administrative information) contains information about the present custody and availability of the manuscript or other object, and also about the record description itself. [11.9.1. Administrative Information] -->
+<!ELEMENT adminInfo (((recordHist)?,(availability)?,(custodialHist)?,((%model.noteLike;)?)))>
+<!ATTLIST adminInfo xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST adminInfo
+ %att.global.attributes; >
+<!--doc:(affiliation) contains an informal description of a person's present or past affiliation with some organization, for example an employer or sponsor. [16.2.2. The Participant Description] -->
+<!ELEMENT affiliation %macro.phraseSeq;>
+<!ATTLIST affiliation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST affiliation
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(age) specifies the age of a person. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT age %macro.phraseSeq.limited;>
+<!ATTLIST age xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST age
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.typed.attribute.subtype;
+ %att.dimensions.attributes;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+value %teidata.count;  #IMPLIED >
+<!--doc:(alternation) identifies an alternation or a set of choices among elements or passages. [17.8. Alternation] -->
+<!ELEMENT alt  EMPTY>
+<!ATTLIST alt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST alt
+ %att.global.attributes;
+ %att.pointing.attribute.targetLang;
+ %att.pointing.attribute.evaluate;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+target CDATA  #IMPLIED
+mode (excl|incl) #IMPLIED
+weights CDATA  #IMPLIED >
+<!--doc:(alternation group) groups a collection of alt elements and possibly pointers. [17.8. Alternation] -->
+<!ELEMENT altGrp (((%model.descLike;)*,(alt|ptr)*))>
+<!ATTLIST altGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST altGrp
+ %att.global.attributes;
+ %att.pointing.group.attributes;
+ %att.cmc.attributes;
+mode (excl|incl) "excl"  >
+<!--doc:(alternate identifier) supplies the recommended XML name for an element, class, attribute, etc. in some language. [3.4.1. Terms and Glosses 23.4.1. Description of Components] -->
+<!ELEMENT altIdent  (#PCDATA)>
+<!ATTLIST altIdent xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST altIdent
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(alternative identifier) contains an alternative or former structured identifier used for a manuscript or other object, such as a former catalogue number. [11.4. The Manuscript Identifier] -->
+<!ELEMENT altIdentifier (((%model.placeNamePart_sequenceOptional;),(institution)?,(repository)?,(collection)?,idno,(note)?))>
+<!ATTLIST altIdentifier xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST altIdentifier
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:indicates that the constructs referenced by its children form an alternation [23.5.1. Defining Content Models] -->
+<!ELEMENT alternate (valList|%model.contentPart;)+>
+<!ATTLIST alternate xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST alternate
+ %att.global.attributes;
+ %att.repeatable.attributes; >
+<!--doc:(abbreviation marker) contains a sequence of letters or signs present in an abbreviation which are omitted or replaced in the expanded form of the abbreviation. [12.3.1.2. Abbreviation and Expansion] -->
+<!ELEMENT am (#PCDATA|%model.gLike;|%model.pPart.transcriptional;)*>
+<!ATTLIST am xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST am
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.editLike.attributes; >
+<!--doc:(analytic level) contains bibliographic elements describing an item (e.g. an article or poem) published within a monograph or journal and not as an independent publication. [3.12.2.1. Analytic, Monographic, and Series Levels] -->
+<!ELEMENT analytic (author|editor|respStmt|title|%model.ptrLike;|date|textLang|idno|availability)*>
+<!ATTLIST analytic xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST analytic
+ %att.global.attributes; >
+<!--doc:(anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. Synchronization and Overlap 17.5. Correspondence and Alignment] -->
+<!ELEMENT anchor  EMPTY>
+<!ATTLIST anchor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST anchor
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:represents an annotation following the Web Annotation Data Model. [17.10. The standOff Container] -->
+<!ELEMENT annotation (((respStmt)*,(revisionDesc)*,(licence)*,(%model.annotationPart.body;)*))>
+<!ATTLIST annotation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST annotation
+ %att.global.attribute.n;
+ %att.global.attribute.xmllang;
+ %att.global.attribute.xmlbase;
+ %att.global.attribute.xmlspace;
+ %att.global.rendition.attribute.rend;
+ %att.global.rendition.attribute.style;
+ %att.global.rendition.attribute.rendition;
+ %att.global.linking.attribute.corresp;
+ %att.global.linking.attribute.synch;
+ %att.global.linking.attribute.sameAs;
+ %att.global.linking.attribute.copyOf;
+ %att.global.linking.attribute.next;
+ %att.global.linking.attribute.prev;
+ %att.global.linking.attribute.exclude;
+ %att.global.linking.attribute.select;
+ %att.global.analytic.attribute.ana;
+ %att.global.facs.attribute.facs;
+ %att.global.change.attribute.change;
+ %att.global.responsibility.attribute.cert;
+ %att.global.responsibility.attribute.resp;
+ %att.global.source.attribute.source;
+ %att.pointing.attribute.targetLang;
+ %att.pointing.attribute.evaluate;
+xml:id ID #REQUIRED
+target CDATA  #REQUIRED
+motivation NMTOKENS  #IMPLIED >
+<!--doc:groups together various annotations, e.g. for parallel interpretations of a spoken segment. [8.4.6. Analytic Coding] -->
+<!ELEMENT annotationBlock (u|spanGrp|%model.global.spoken;)*>
+<!ATTLIST annotationBlock xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST annotationBlock
+ %att.ascribed.attributes;
+ %att.timed.attributes;
+ %att.global.attributes; >
+<!--doc:indicates the presence of any elements in a content model [23. Documentation Elements] -->
+<!ELEMENT anyElement  EMPTY>
+<!ATTLIST anyElement xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST anyElement
+ %att.global.attributes;
+ %att.repeatable.attributes;
+require CDATA  #IMPLIED
+except CDATA  #IMPLIED >
+<!--doc:(apparatus entry) contains one entry in a critical apparatus, with an optional lemma and usually one or more readings or notes on the relevant passage. [13.1.1. The Apparatus Entry] -->
+<!ELEMENT app (((lem)?,(%model.rdgLike;|%model.noteLike;|witDetail|wit|rdgGrp)*))>
+<!ATTLIST app xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST app
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+from %teidata.pointer;  #IMPLIED
+to %teidata.pointer;  #IMPLIED
+loc CDATA  #IMPLIED >
+<!--doc:(application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element] -->
+<!ELEMENT appInfo (%model.applicationLike;)+>
+<!ATTLIST appInfo xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST appInfo
+ %att.global.attributes; >
+<!--doc:provides information about an application which has acted upon the document. [2.3.11. The Application Information Element] -->
+<!ELEMENT application (((%model.labelLike;)+,((%model.ptrLike;)*|(%model.pLike;)*)))>
+<!ATTLIST application xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST application
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED
+ident %teidata.name;  #REQUIRED
+version %teidata.versionNumber;  #REQUIRED >
+<!--doc:(arc) encodes an arc, the connection from one node to another in a graph. [20.1. Graphs and Digraphs] -->
+<!ELEMENT arc ((label,(label)?)?)?>
+<!ATTLIST arc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST arc
+ %att.global.attributes;
+from %teidata.pointer;  #REQUIRED
+to %teidata.pointer;  #REQUIRED >
+<!--doc:(argument) contains a formal list or prose description of the topics addressed by a subdivision of a text. [4.2. Elements Common to All Divisions 4.6. Title Pages] -->
+<!ELEMENT argument (((%model.global;|%model.headLike;)*,((%model.common;),(%model.global;)*)+))>
+<!ATTLIST argument xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST argument
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(attribute) contains the name of an attribute appearing within running text. [23. Documentation Elements] -->
+<!ELEMENT att  (#PCDATA)>
+<!ATTLIST att xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST att
+ %att.global.attributes;
+scheme %teidata.enumerated;  "TEI"  >
+<!--doc:(attribute definition) contains the definition of a single attribute. [23.5.3. Attribute List Specification] -->
+<!ELEMENT attDef (((%model.identSynonyms;|%model.descLike;)*,(datatype)?,(constraintSpec)*,(defaultVal)?,(valList|(valDesc)+)?,(exemplum)*,(remarks)*))>
+<!ATTLIST attDef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST attDef
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.namespaceable.attributes;
+usage (req|rec|opt) "opt"  >
+<!--doc:(attribute list) contains documentation for all the attributes associated with this element, as a series of attDef elements. [23.5. Element Specifications 23.6. Class Specifications] -->
+<!ELEMENT attList (attRef|attDef|attList)+>
+<!ATTLIST attList xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST attList
+ %att.global.attributes;
+org (group|choice) "group"  >
+<!--doc:(attribute pointer) points to the definition of an attribute or group of attributes. [23.2. Modules and Schemas] -->
+<!ELEMENT attRef  EMPTY>
+<!ATTLIST attRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST attRef
+ %att.global.attributes;
+class %teidata.name;  #IMPLIED
+name %teidata.name;  #IMPLIED >
+<!--doc:(author) in a bibliographic reference, contains the name(s) of an author, personal or corporate, of a work; for example in the same form as that provided by a recognized bibliographic name authority. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement] -->
+<!ELEMENT author %macro.phraseSeq;>
+<!ATTLIST author xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST author
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(release authority) supplies the name of a person or other agency responsible for making a work available, other than a publisher or distributor. [2.2.4. Publication, Distribution, Licensing, etc.] -->
+<!ELEMENT authority %macro.phraseSeq.limited;>
+<!ATTLIST authority xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST authority
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(availability) supplies information about the availability of a text, for example any restrictions on its use or distribution, its copyright status, any licence applying to it, etc. [2.2.4. Publication, Distribution, Licensing, etc.] -->
+<!ELEMENT availability (%model.availabilityPart;|%model.pLike;)+>
+<!ATTLIST availability xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST availability
+ %att.global.attributes;
+ %att.declarable.attributes;
+status (free|unknown|restricted) #IMPLIED >
+<!--doc:(back matter) contains any appendixes, etc. following the main part of a text. [4.7. Back Matter 4. Default Text Structure] -->
+<!ELEMENT back (((%model.frontPart;|%model.pLike.front;|%model.pLike;|%model.listLike;|%model.global;)*,(((%model.div1Like;),(%model.frontPart;|%model.div1Like;|%model.global;)*)|((%model.divLike;),(%model.frontPart;|%model.divLike;|%model.global;)*))?,((%model.divBottomPart;),(%model.divBottomPart;|%model.global;)*)?))>
+<!ATTLIST back xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST back
+ %att.global.attributes;
+ %att.declaring.attributes; >
+<!--doc:(bibliographic citation) contains a loosely-structured bibliographic citation of which the sub-components may or may not be explicitly tagged. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements] -->
+<!ELEMENT bibl (#PCDATA|%model.gLike;|%model.highlighted;|%model.pPart.data;|%model.pPart.edit;|%model.segLike;|%model.ptrLike;|%model.biblPart;|%model.global;)*>
+<!ATTLIST bibl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST bibl
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.typed.attributes;
+ %att.sortable.attributes;
+ %att.docStatus.attributes;
+ %att.cmc.attributes; >
+<!--doc:(fully-structured bibliographic citation) contains a fully-structured bibliographic citation, in which all components of the TEI file description are present. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2. The File Description 2.2.7. The Source Description 16.3.2. Declarable Elements] -->
+<!ELEMENT biblFull (((titleStmt,(editionStmt)?,(extent)?,publicationStmt,(seriesStmt)*,(notesStmt)?),(sourceDesc)*)|(fileDesc,profileDesc))>
+<!ATTLIST biblFull xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST biblFull
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.docStatus.attributes;
+ %att.cmc.attributes; >
+<!--doc:(scope of bibliographic reference) defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work. [3.12.2.5. Scopes and Ranges in Bibliographic Citations] -->
+<!ELEMENT biblScope %macro.phraseSeq;>
+<!ATTLIST biblScope xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST biblScope
+ %att.global.attributes;
+ %att.citing.attributes; >
+<!--doc:(structured bibliographic citation) contains a structured bibliographic citation, in which only bibliographic sub-elements appear and in a specified order. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements] -->
+<!ELEMENT biblStruct (((analytic)*,(monogr,(series)*)+,(%model.noteLike;|%model.ptrLike;|relatedItem|citedRange)*))>
+<!ATTLIST biblStruct xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST biblStruct
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.typed.attributes;
+ %att.sortable.attributes;
+ %att.docStatus.attributes;
+ %att.cmc.attributes; >
+<!--doc:(bi-conditional feature-structure constraint) defines a biconditional feature-structure constraint; both consequent and antecedent are specified as feature structures or groups of feature structures; the constraint is satisfied if both subsume a given feature structure, or if both do not. [19.11. Feature System Declaration] -->
+<!ELEMENT bicond (((fs|f),iff,(fs|f)))>
+<!ATTLIST bicond xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST bicond
+ %att.global.attributes; >
+<!--doc:(binary value) represents the value part of a feature-value specification which can contain either of exactly two possible values. [19.2. Elementary Feature Structures and the Binary
+Feature Value] -->
+<!ELEMENT binary  EMPTY>
+<!ATTLIST binary xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST binary
+ %att.global.attributes;
+ %att.datcat.attributes;
+value %teidata.truthValue;  #REQUIRED >
+<!--doc:provides encoded binary data representing an inline graphic, audio, video or other object. [3.10. Graphics and Other Non-textual Components] -->
+<!ELEMENT binaryObject (#PCDATA)>
+<!ATTLIST binaryObject xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST binaryObject
+ %att.global.attributes;
+ %att.media.attributes;
+ %att.timed.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+encoding CDATA  #IMPLIED >
+<!--doc:(binding) contains a description of one binding, i.e. type of covering, boards, etc. applied to a manuscript or other object. [11.7.3.1. Binding Descriptions] -->
+<!ELEMENT binding (%model.pLike;|condition|decoNote)+>
+<!ATTLIST binding xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST binding
+ %att.global.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED
+contemporary %teidata.xTruthValue;  #IMPLIED >
+<!--doc:(binding description) describes the present and former bindings of a manuscript or other object, either as a series of paragraphs or as a series of distinct binding elements, one for each binding of the manuscript. [11.7.3.1. Binding Descriptions] -->
+<!ELEMENT bindingDesc ((%model.pLike;|decoNote|condition)+|(binding)+)>
+<!ATTLIST bindingDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST bindingDesc
+ %att.global.attributes; >
+<!--doc:(birth) contains information about a person's birth, such as its date and place. [16.2.2. The Participant Description] -->
+<!ELEMENT birth %macro.phraseSeq;>
+<!ATTLIST birth xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST birth
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.dimensions.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(bloc) contains the name of a geo-political unit consisting of two or more nation states or countries. [14.2.3. Place Names] -->
+<!ELEMENT bloc %macro.phraseSeq;>
+<!ATTLIST bloc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST bloc
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(text body) contains the whole body of a single unitary text, excluding any front or back matter. [4. Default Text Structure] -->
+<!ELEMENT body (((%model.global;)*,((%model.divTop;),(%model.global;|%model.divTop;)*)?,((%model.divGenLike;),(%model.global;|%model.divGenLike;)*)?,(((%model.divLike;),(%model.global;|%model.divGenLike;)*)+|((%model.div1Like;),(%model.global;|%model.divGenLike;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,(((%model.divLike;),(%model.global;|%model.divGenLike;)*)+|((%model.div1Like;),(%model.global;|%model.divGenLike;)*)+)?)),((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST body xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST body
+ %att.global.attributes;
+ %att.declaring.attributes; >
+<!--doc:(broadcast) describes a broadcast used as the source of a spoken text. [8.2. Documenting the Source of Transcribed Speech 16.3.2. Declarable Elements] -->
+<!ELEMENT broadcast ((%model.pLike;)+|%model.biblLike;|recording)>
+<!ATTLIST broadcast xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST broadcast
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(byline) contains the primary statement of responsibility given for a work on its title page or at the head or end of the work. [4.2.2. Openers and Closers 4.5. Front Matter] -->
+<!ELEMENT byline (#PCDATA|%model.gLike;|%model.phrase;|docAuthor|%model.global;)*>
+<!ATTLIST byline xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST byline
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(character) represents a character. [18.1. Linguistic Segment Categories] -->
+<!ELEMENT c %macro.xtext;>
+<!ATTLIST c xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST c
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(canonical reference pattern) specifies an expression and replacement pattern for transforming a canonical reference into a URI. [2.3.6.3. Milestone Method 2.3.6. The Reference System Declaration 2.3.6.2. Search-and-Replace Method] -->
+<!ELEMENT cRefPattern (%model.pLike;)*>
+<!ATTLIST cRefPattern xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cRefPattern
+ %att.global.attributes;
+ %att.patternReplacement.attributes; >
+<!--doc:marks the point at which a metrical line may be divided. [6.2. Components of the Verse Line] -->
+<!ELEMENT caesura  EMPTY>
+<!ATTLIST caesura xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST caesura
+ %att.global.attributes; >
+<!--doc:(calendar) describes a calendar or dating system used in a dating formula in the text. [2.4.5. Calendar Description] -->
+<!ELEMENT calendar (%model.pLike;)+>
+<!ATTLIST calendar xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST calendar
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes; >
+<!--doc:(calendar description) contains a description of the calendar system used in any dating expression found in the text. [2.4. The Profile Description 2.4.5. Calendar Description] -->
+<!ELEMENT calendarDesc (calendar)+>
+<!ATTLIST calendarDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST calendarDesc
+ %att.global.attributes; >
+<!--doc:(camera) describes a particular camera angle or viewpoint in a screen play. [7.3.1. Technical Information 7.3. Other Types of Performance Text] -->
+<!ELEMENT camera %macro.paraContent;>
+<!ATTLIST camera xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST camera
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(caption) contains the text of a caption or other text displayed as part of a film script or screenplay. [7.3.1. Technical Information 7.3. Other Types of Performance Text] -->
+<!ELEMENT caption %macro.paraContent;>
+<!ATTLIST caption xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST caption
+ %att.global.attributes; >
+<!--doc:(case) contains grammatical case information given by a dictionary for a given form. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT case %macro.paraContent;>
+<!ATTLIST case xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST case
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(cast list grouping) groups one or more individual castItem elements within a cast list. [7.1.4. Cast Lists] -->
+<!ELEMENT castGroup (((%model.global;|%model.headLike;)*,((castItem|castGroup|roleDesc),(%model.global;)*)+,(trailer,(%model.global;)*)?))>
+<!ATTLIST castGroup xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST castGroup
+ %att.global.attributes; >
+<!--doc:(cast list item) contains a single entry within a cast list, describing either a single role or a list of non-speaking roles. [7.1.4. Cast Lists] -->
+<!ELEMENT castItem (#PCDATA|%model.gLike;|%model.castItemPart;|%model.phrase;|%model.global;)*>
+<!ATTLIST castItem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST castItem
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  "role"  >
+<!--doc:(cast list) contains a single cast list or dramatis personae. [7.1.4. Cast Lists 7.1. Front and Back Matter
+ ] -->
+<!ELEMENT castList (((%model.divTop;|%model.global;)*,((%model.common;),(%model.global;)*)*,((castItem|castGroup),(%model.global;)*)+,((%model.common;),(%model.global;)*)*))>
+<!ATTLIST castList xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST castList
+ %att.global.attributes; >
+<!--doc:(category description) describes some category within a taxonomy or text typology, either in the form of a brief prose description or in terms of the situational parameters used by the TEI formal textDesc. [2.3.7. The Classification Declaration] -->
+<!ELEMENT catDesc (#PCDATA|%model.limitedPhrase;|%model.catDescPart;)*>
+<!ATTLIST catDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST catDesc
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(category reference) specifies one or more defined categories within some taxonomy or text typology. [2.4.3. The Text Classification] -->
+<!ELEMENT catRef  EMPTY>
+<!ATTLIST catRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST catRef
+ %att.global.attributes;
+ %att.pointing.attributes;
+scheme %teidata.pointer;  #IMPLIED >
+<!--doc:(catchwords) describes the system used to ensure correct ordering of the quires or similar making up a codex, incunable, or other object typically by means of annotations at the foot of the page. [11.3.7. Catchwords, Signatures, Secundo Folio] -->
+<!ELEMENT catchwords %macro.phraseSeq;>
+<!ATTLIST catchwords xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST catchwords
+ %att.global.attributes; >
+<!--doc:(category) contains an individual descriptive category, possibly nested within a superordinate category, within a user-defined taxonomy. [2.3.7. The Classification Declaration] -->
+<!ELEMENT category ((((catDesc)+|(%model.descLike;|equiv|gloss)*),(category)*))>
+<!ATTLIST category xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST category
+ %att.global.attributes;
+ %att.datcat.attributes; >
+<!--doc:(column beginning) marks the beginning of a new column of a text on a multi-column page. [3.11.3. Milestone
+Elements] -->
+<!ELEMENT cb  EMPTY>
+<!ATTLIST cb xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cb
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.edition.attributes;
+ %att.spanning.attributes;
+ %att.breaking.attributes;
+ %att.cmc.attributes; >
+<!--doc:(cell) contains one cell of a table. [15.1.1. TEI Tables] -->
+<!ELEMENT cell %macro.specialPara;>
+<!ATTLIST cell xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cell
+ %att.global.attributes;
+ %att.tableDecoration.attributes; >
+<!--doc:indicates the degree of certainty associated with some aspect of the text markup. [22.1.2. Structured Indications of Uncertainty] -->
+<!ELEMENT certainty (%model.descLike;|%model.certLike;)*>
+<!ATTLIST certainty xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST certainty
+ %att.global.attribute.xmlid;
+ %att.global.attribute.n;
+ %att.global.attribute.xmllang;
+ %att.global.attribute.xmlbase;
+ %att.global.attribute.xmlspace;
+ %att.global.rendition.attribute.rend;
+ %att.global.rendition.attribute.style;
+ %att.global.rendition.attribute.rendition;
+ %att.global.linking.attribute.corresp;
+ %att.global.linking.attribute.synch;
+ %att.global.linking.attribute.sameAs;
+ %att.global.linking.attribute.copyOf;
+ %att.global.linking.attribute.next;
+ %att.global.linking.attribute.prev;
+ %att.global.linking.attribute.exclude;
+ %att.global.linking.attribute.select;
+ %att.global.analytic.attribute.ana;
+ %att.global.facs.attribute.facs;
+ %att.global.change.attribute.change;
+ %att.global.responsibility.attribute.resp;
+ %att.global.source.attribute.source;
+ %att.scoping.attributes;
+ %att.typed.attribute.subtype;
+cert %teidata.certainty;  #IMPLIED
+type %teidata.enumerated;  #IMPLIED
+locus (name|start|end|location|value) #REQUIRED
+assertedValue %teidata.word;  #IMPLIED
+given CDATA  #IMPLIED
+degree %teidata.probability;  #IMPLIED >
+<!--doc:(change) documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 12.7. Identifying Changes and Revisions] -->
+<!ELEMENT change %macro.specialPara;>
+<!ATTLIST change xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST change
+ %att.ascribed.attributes;
+ %att.datable.attributes;
+ %att.docStatus.attributes;
+ %att.global.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED
+target CDATA  #IMPLIED >
+<!--doc:(primary channel) describes the medium or channel by which a text is delivered or experienced. For a written text, this might be print, manuscript, email, etc.; for a spoken one, radio, telephone, face-to-face, etc. [16.2.1. The Text Description] -->
+<!ELEMENT channel %macro.phraseSeq.limited;>
+<!ATTLIST channel xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST channel
+ %att.global.attributes;
+mode (s|w|sw|ws|m|x) "x"  >
+<!--doc:(character) provides descriptive information about a character. [5.2. Markup Constructs for Representation of Characters and Glyphs] -->
+<!ELEMENT char (unicodeProp|unihanProp|localProp|mapping|figure|%model.graphicLike;|%model.noteLike;|%model.descLike;)*>
+<!ATTLIST char xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST char
+ %att.global.attributes; >
+<!--doc:(character declarations) provides information about nonstandard characters and glyphs. [5.2. Markup Constructs for Representation of Characters and Glyphs] -->
+<!ELEMENT charDecl (((desc)?,(char|glyph)+))>
+<!ATTLIST charDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST charDecl
+ %att.global.attributes; >
+<!--doc:(choice) groups a number of alternative encodings for the same point in a text. [3.5. Simple Editorial Changes] -->
+<!ELEMENT choice (%model.choicePart;|choice)>
+<!ATTLIST choice xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST choice
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 10.3.5.1. Examples] -->
+<!ELEMENT cit (%model.biblLike;|%model.egLike;|%model.entryPart;|%model.global;|%model.graphicLike;|%model.ptrLike;|%model.attributable;|pc|q)+>
+<!ATTLIST cit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cit
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(citation data) specifies how information may be extracted from citation structures. [3.11.4. Declaring Reference Systems 17.2.5.4. Citation Structures] -->
+<!ELEMENT citeData  EMPTY>
+<!ATTLIST citeData xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST citeData
+ %att.global.attributes;
+ %att.citeStructurePart.attributes;
+property %teidata.pointer;  #REQUIRED >
+<!--doc:(citation structure) declares a structure and method for citing the current document. [3.11.4. Declaring Reference Systems 17.2.5.4. Citation Structures] -->
+<!ELEMENT citeStructure (((citeData)*,(citeStructure)*,(%model.descLike;)*))>
+<!ATTLIST citeStructure xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST citeStructure
+ %att.global.attributes;
+ %att.citeStructurePart.attributes;
+delim CDATA #IMPLIED
+match %teidata.xpath;  #REQUIRED
+unit %teidata.enumerated;  #IMPLIED >
+<!--doc:(cited range) defines the range of cited content, often represented by pages or other units [3.12.2.5. Scopes and Ranges in Bibliographic Citations] -->
+<!ELEMENT citedRange %macro.phraseSeq;>
+<!ATTLIST citedRange xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST citedRange
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.citing.attributes; >
+<!--doc:(clause) represents a grammatical clause. [18.1. Linguistic Segment Categories] -->
+<!ELEMENT cl %macro.phraseSeq;>
+<!ATTLIST cl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cl
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(classification code) contains the classification code used for this text in some standard classification system. [2.4.3. The Text Classification] -->
+<!ELEMENT classCode %macro.phraseSeq.limited;>
+<!ATTLIST classCode xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST classCode
+ %att.global.attributes;
+scheme %teidata.pointer;  #REQUIRED >
+<!--doc:(classification declarations) contains one or more taxonomies defining any classificatory codes used elsewhere in the text. [2.3.7. The Classification Declaration 2.3. The Encoding Description] -->
+<!ELEMENT classDecl (taxonomy)+>
+<!ATTLIST classDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST classDecl
+ %att.global.attributes; >
+<!--doc:points to the specification for an attribute or model class which is to be included in a schema [23.6. Class Specifications] -->
+<!ELEMENT classRef  EMPTY>
+<!ATTLIST classRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST classRef
+ %att.global.attributes;
+ %att.repeatable.attributes;
+key %teidata.xmlName;  #REQUIRED
+expand (alternation|sequence|sequenceOptional|sequenceOptionalRepeatable|sequenceRepeatable) #IMPLIED
+include CDATA  #IMPLIED
+except CDATA  #IMPLIED >
+<!--doc:(class specification) contains reference information for a TEI element class; that is a group of elements which appear together in content models, or which share some common attribute, or both. [23.3. Specification Elements 23.6. Class Specifications] -->
+<!ELEMENT classSpec (((%model.identSynonyms;|%model.descLike;)*,(classes)?,(constraintSpec)*,(attList)?,(exemplum)*,(remarks)*,(listRef)*))>
+<!ATTLIST classSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST classSpec
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #REQUIRED
+generate NMTOKENS  #IMPLIED >
+<!--doc:(classes) specifies all the classes of which the documented element or class is a member or subclass. [23.5. Element Specifications 23.6. Class Specifications] -->
+<!ELEMENT classes (memberOf)*>
+<!ATTLIST classes xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST classes
+ %att.global.attributes;
+mode (change|replace) "replace"  >
+<!--doc:(climate) contains information about the physical climate of a place. [14.3.4.3. States, Traits, and Events] -->
+<!ELEMENT climate (((precision)*,(%model.headLike;)*,((%model.pLike;)+|(%model.labelLike;)+),(%model.noteLike;|%model.biblLike;)*,(climate)*))>
+<!ATTLIST climate xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST climate
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(closer) groups together salutations, datelines, and similar phrases appearing as a final group at the end of a division, especially of a letter. [4.2.2. Openers and Closers 4.2. Elements Common to All Divisions] -->
+<!ELEMENT closer (#PCDATA|%model.gLike;|signed|dateline|salute|%model.phrase;|%model.global;)*>
+<!ATTLIST closer xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST closer
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:contains literal code from some formal language such as a programming language. [23.1.1. Phrase Level Terms] -->
+<!ELEMENT code (#PCDATA)>
+<!ATTLIST code xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST code
+ %att.global.attributes;
+lang %teidata.word;  #IMPLIED >
+<!--doc:(collation) contains a description of how the leaves, bifolia, or similar objects are physically arranged. [11.7.1. Object Description] -->
+<!ELEMENT collation %macro.specialPara;>
+<!ATTLIST collation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST collation
+ %att.global.attributes; >
+<!--doc:(collection) contains the name of a collection of manuscripts or other objects, not necessarily located within a single repository. [11.4. The Manuscript Identifier] -->
+<!ELEMENT collection %macro.phraseSeq.limited;>
+<!ATTLIST collection xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST collection
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes; >
+<!--doc:(collocate) contains any sequence of words that co-occur with the headword with significant frequency. [10.3.2. Grammatical Information] -->
+<!ELEMENT colloc %macro.paraContent;>
+<!ATTLIST colloc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST colloc
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.typed.attributes; >
+<!--doc:(colophon) contains the colophon of an item: that is, a statement providing information regarding the date, place, agency, or reason for production of the manuscript or other object. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT colophon %macro.phraseSeq;>
+<!ATTLIST colophon xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST colophon
+ %att.global.attributes;
+ %att.msExcerpt.attributes; >
+<!--doc:(conditional feature-structure constraint) defines a conditional feature-structure constraint; the consequent and the antecedent are specified as feature structures or feature-structure collections; the constraint is satisfied if both the antecedent and the consequent subsume a given feature structure, or if the antecedent does not. [19.11. Feature System Declaration] -->
+<!ELEMENT cond (((fs|f),then,(fs|f)))>
+<!ATTLIST cond xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST cond
+ %att.global.attributes; >
+<!--doc:(condition) contains a description of the physical condition of the manuscript or object. [11.7.1.5. Condition] -->
+<!ELEMENT condition %macro.specialPara;>
+<!ATTLIST condition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST condition
+ %att.global.attributes; >
+<!--doc:(constitution) describes the internal composition of a text or text sample, for example as fragmentary, complete, etc. [16.2.1. The Text Description] -->
+<!ELEMENT constitution %macro.phraseSeq.limited;>
+<!ATTLIST constitution xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST constitution
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  "single"  >
+<!--doc:(constraint rules) the formal rules of a constraint [23.5. Element Specifications] -->
+<!ELEMENT constraint (#PCDATA)*>
+<!ATTLIST constraint xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST constraint
+ %att.global.attributes; >
+<!--doc:(constraint on schema) contains a formal constraint, typically expressed in a rule-based schema language, to which a construct must conform in order to be considered valid [23.5. Element Specifications] -->
+<!ELEMENT constraintSpec (((%model.identSynonyms;|%model.descLike;)*,(constraint)?))>
+<!ATTLIST constraintSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST constraintSpec
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+scheme %teidata.enumerated;  #IMPLIED >
+<!--doc:(content model) contains a declaration of the intended content model for the element (or other construct) being specified. [23.5. Element Specifications] -->
+<!ELEMENT content (valList|%model.contentPart;)>
+<!ATTLIST content xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST content
+ %att.global.attributes;
+autoPrefix (true|false) "true"  >
+<!--doc:defines how to calculate one unit of measure in terms of another. [2.3.9. The Unit Declaration] -->
+<!ELEMENT conversion  EMPTY>
+<!ATTLIST conversion xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST conversion
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.formula.attributes;
+ %att.locatable.attributes;
+calendar CDATA  #IMPLIED
+fromUnit %teidata.pointer;  #REQUIRED
+toUnit %teidata.pointer;  #REQUIRED >
+<!--doc:(correction) contains the correct form of a passage apparently erroneous in the copy text. [3.5.1. Apparent Errors] -->
+<!ELEMENT corr %macro.paraContent;>
+<!ATTLIST corr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST corr
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(correction principles) states how and under what circumstances corrections have been made in the text. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT correction (%model.pLike;)+>
+<!ATTLIST correction xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST correction
+ %att.global.attributes;
+ %att.declarable.attributes;
+status (high|medium|low|unknown) #IMPLIED
+method (silent|markup) "silent"  >
+<!--doc:(correspondence action) contains a structured description of the place, the name of a person/organization and the date related to the sending/receiving of a message or any other action related to the correspondence. [2.4.6. Correspondence Description] -->
+<!ELEMENT correspAction ((%model.correspActionPart;)+|(%model.pLike;)+)>
+<!ATTLIST correspAction xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST correspAction
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.sortable.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(correspondence context) provides references to preceding or following correspondence related to this piece of correspondence. [2.4.6. Correspondence Description] -->
+<!ELEMENT correspContext (%model.correspContextPart;)+>
+<!ATTLIST correspContext xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST correspContext
+ %att.global.attributes; >
+<!--doc:(correspondence description) contains a description of the actions related to one act of correspondence. [2.4.6. Correspondence Description] -->
+<!ELEMENT correspDesc ((%model.correspDescPart;)+|(%model.pLike;)+)>
+<!ATTLIST correspDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST correspDesc
+ %att.declarable.attributes;
+ %att.canonical.attributes;
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(country) contains the name of a geo-political unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc. [14.2.3. Place Names] -->
+<!ELEMENT country %macro.phraseSeq;>
+<!ATTLIST country xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST country
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(creation) contains information about the creation of a text. [2.4.1. Creation 2.4. The Profile Description] -->
+<!ELEMENT creation (#PCDATA|%model.limitedPhrase;|listChange)*>
+<!ATTLIST creation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST creation
+ %att.global.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(custodial event) describes a single event during the custodial history of a manuscript or other object. [11.9.1.2. Availability and Custodial History] -->
+<!ELEMENT custEvent %macro.specialPara;>
+<!ATTLIST custEvent xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST custEvent
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(custodial history) contains a description of a manuscript or other object's custodial history, either as running prose or as a series of dated custodial events. [11.9.1.2. Availability and Custodial History] -->
+<!ELEMENT custodialHist ((%model.pLike;)+|(custEvent)+)>
+<!ATTLIST custodialHist xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST custodialHist
+ %att.global.attributes; >
+<!--doc:(damage) contains an area of damage to the text witness. [12.3.3.1. Damage, Illegibility, and Supplied Text] -->
+<!ELEMENT damage %macro.paraContent;>
+<!ATTLIST damage xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST damage
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.damaged.attributes; >
+<!--doc:(damaged span of text) marks the beginning of a longer sequence of text which is damaged in some way but still legible. [12.3.3.1. Damage, Illegibility, and Supplied Text] -->
+<!ELEMENT damageSpan  EMPTY>
+<!ATTLIST damageSpan xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST damageSpan
+ %att.global.attributes;
+ %att.damaged.attributes;
+ %att.typed.attributes;
+ %att.spanning.attributes; >
+<!--doc:Restricts the value of the strings used to represent values of a datatype, according to XML Schema Part 2: Datatypes Second Edition. [23.5.3.1. Datatypes] -->
+<!ELEMENT dataFacet  EMPTY>
+<!ATTLIST dataFacet xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dataFacet
+ %att.global.attributes;
+name (length|minLength|maxLength|pattern|enumeration|whiteSpace|maxInclusive|minInclusive|maxExclusive|minExclusive|totalDigits|fractionDigits) #REQUIRED
+value CDATA #REQUIRED >
+<!--doc:identifies the datatype of an attribute value, either by referencing an item in an externally defined datatype library, or by pointing to a TEI-defined data specification [23.5.3.1. Datatypes] -->
+<!ELEMENT dataRef (dataFacet)*>
+<!ATTLIST dataRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dataRef
+ %att.global.attributes;
+key %teidata.xmlName;  #IMPLIED
+name %teidata.xmlName;  #IMPLIED
+ref %teidata.pointer;  #IMPLIED
+restriction %teidata.pattern;  #IMPLIED >
+<!--doc:(datatype specification) documents a datatype. [23.3. Specification Elements 23.7. Macro Specifications] -->
+<!ELEMENT dataSpec (((%model.identSynonyms;|%model.descLike;)*,(content|valList)?,(constraintSpec)*,(exemplum)*,(remarks)*,(listRef)*))>
+<!ATTLIST dataSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dataSpec
+ %att.global.attributes;
+ %att.identified.attributes; >
+<!--doc:(datatype) specifies the declared value for an attribute, by referring to any datatype defined by the chosen schema language. [1.4.2. Datatype Specifications 23.5.3. Attribute List Specification] -->
+<!ELEMENT datatype (dataRef)>
+<!ATTLIST datatype xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST datatype
+ %att.global.attributes;
+minOccurs %teidata.count;  "1" 
+maxOccurs %teidata.unboundedCount;  "1"  >
+<!--doc:(date) contains a date in any format. [3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 16.2.3. The Setting Description 14.4. Dates] -->
+<!ELEMENT date (#PCDATA|%model.gLike;|%model.phrase;|%model.global;)*>
+<!ATTLIST date xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST date
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+ %att.calendarSystem.attributes;
+ %att.duration.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(dateline) contains a brief description of the place, date, time, etc. of production of a letter, newspaper story, or other work, prefixed or suffixed to it as a kind of heading or trailer. [4.2.2. Openers and Closers] -->
+<!ELEMENT dateline (#PCDATA|%model.gLike;|%model.phrase;|%model.global;|docDate)*>
+<!ATTLIST dateline xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dateline
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(death) contains information about a person's death, such as its date and place. [16.2.2. The Participant Description] -->
+<!ELEMENT death %macro.phraseSeq;>
+<!ATTLIST death xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST death
+ %att.datable.attributes;
+ %att.dimensions.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(decoration description) contains a description of the decoration of a manuscript or other object, either as in paragraphs, or as one or more decoNote elements. [11.7.3. Bindings, Seals, and Additional Material] -->
+<!ELEMENT decoDesc ((%model.pLike;)+|((summary)?,(decoNote)+))>
+<!ATTLIST decoDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST decoDesc
+ %att.global.attributes; >
+<!--doc:(note on decoration) contains a note describing either a decorative component of a manuscript or other object, or a fairly homogenous class of such components. [11.7.3. Bindings, Seals, and Additional Material] -->
+<!ELEMENT decoNote %macro.specialPara;>
+<!ATTLIST decoNote xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST decoNote
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(definition) contains definition text in a dictionary entry. [10.3.3.1. Definitions] -->
+<!ELEMENT def %macro.paraContent;>
+<!ATTLIST def xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST def
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(default feature value) represents the value part of a feature-value specification which contains a defaulted value. [19.9. Default Values] -->
+<!ELEMENT default  EMPTY>
+<!ATTLIST default xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST default
+ %att.global.attributes; >
+<!--doc:(default value) specifies the default declared value for an attribute. [23.5.3. Attribute List Specification] -->
+<!ELEMENT defaultVal (#PCDATA)>
+<!ATTLIST defaultVal xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST defaultVal
+ %att.global.attributes;
+ %att.combinable.attributes; >
+<!--doc:(deletion) contains a letter, word, or passage deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, or a previous annotator or corrector. [3.5.3. Additions, Deletions, and Omissions] -->
+<!ELEMENT del %macro.paraContent;>
+<!ATTLIST del xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST del
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes; >
+<!--doc:(deleted span of text) marks the beginning of a longer sequence of text deleted, marked as deleted, or otherwise signaled as superfluous or spurious by an author, scribe, annotator, or corrector. [12.3.1.4. Additions and Deletions] -->
+<!ELEMENT delSpan  EMPTY>
+<!ATTLIST delSpan xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST delSpan
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.typed.attributes;
+ %att.spanning.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(depth) contains a measurement from the front to the back of an object, perpendicular to the measurement given by the width element. [11.3.4. Dimensions] -->
+<!ELEMENT depth %macro.xtext;>
+<!ATTLIST depth xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST depth
+ %att.global.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(derivation) describes the nature and extent of originality of this text. [16.2.1. The Text Description] -->
+<!ELEMENT derivation %macro.phraseSeq.limited;>
+<!ATTLIST derivation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST derivation
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented.  [23.4.1. Description of Components] -->
+<!ELEMENT desc %macro.limitedContent;>
+<!ATTLIST desc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST desc
+ %att.global.attributes;
+ %att.translatable.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(dictionary scrap) encloses a part of a dictionary entry in which other phrase-level dictionary elements are freely combined. [10.1. Dictionary Body and Overall Structure 10.2. The Structure of Dictionary Entries] -->
+<!ELEMENT dictScrap (#PCDATA|%model.gLike;|%model.entryPart;|%model.morphLike;|%model.phrase;|%model.inter;|%model.global;)*>
+<!ATTLIST dictScrap xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dictScrap
+ %att.global.attributes; >
+<!--doc:contains any single measurement forming part of a dimensional specification of some sort. [11.3.4. Dimensions] -->
+<!ELEMENT dim %macro.xtext;>
+<!ATTLIST dim xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dim
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(dimensions) contains a dimensional specification. [11.3.4. Dimensions] -->
+<!ELEMENT dimensions (dim|%model.dimLike;)*>
+<!ATTLIST dimensions xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST dimensions
+ %att.global.attributes;
+ %att.dimensions.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:identifies any word or phrase which is regarded as linguistically distinct, for example as archaic, technical, dialectal, non-preferred, etc., or as forming part of a sublanguage. [3.3.2.3. Other Linguistically Distinct Material] -->
+<!ELEMENT distinct %macro.phraseSeq;>
+<!ATTLIST distinct xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST distinct
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+time %teidata.text;  #IMPLIED
+space %teidata.text;  #IMPLIED
+social %teidata.text;  #IMPLIED >
+<!--doc:(distributor) supplies the name of a person or other agency responsible for the distribution of a text. [2.2.4. Publication, Distribution, Licensing, etc.] -->
+<!ELEMENT distributor %macro.phraseSeq;>
+<!ATTLIST distributor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST distributor
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(district) contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit. [14.2.3. Place Names] -->
+<!ELEMENT district %macro.phraseSeq;>
+<!ATTLIST district xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST district
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(text division) contains a subdivision of the front, body, or back of a text. [4.1. Divisions of the Body] -->
+<!ELEMENT div (((%model.divTop;|%model.global;)*,((((%model.divLike;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.divLike;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes;
+ %att.written.attributes; >
+<!--doc:(level-1 text division) contains a first-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div1 (((%model.divTop;|%model.global;)*,((((%model.div2Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div2Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div1 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div1
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-2 text division) contains a second-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div2 (((%model.divTop;|%model.global;)*,((((%model.div3Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div3Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div2 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div2
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-3 text division) contains a third-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div3 (((%model.divTop;|%model.global;)*,((((%model.div4Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div4Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div3 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div3
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-4 text division) contains a fourth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div4 (((%model.divTop;|%model.global;)*,((((%model.div5Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div5Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div4 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div4
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-5 text division) contains a fifth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div5 (((%model.divTop;|%model.global;)*,((((%model.div6Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div6Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div5 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div5
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-6 text division) contains a sixth-level subdivision of the front, body, or back of a text. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div6 (((%model.divTop;|%model.global;)*,((((%model.div7Like;|%model.divGenLike;),(%model.global;)*)+|(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.div7Like;|%model.divGenLike;),(%model.global;)*)*)),((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div6 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div6
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(level-7 text division) contains the smallest possible subdivision of the front, body or back of a text, larger than a paragraph. [4.1.2. Numbered Divisions] -->
+<!ELEMENT div7 (((%model.divTop;|%model.global;)*,(((schemaSpec|%model.common;),(%model.global;)*)+,((%model.divBottom;),(%model.global;)*)*)?))>
+<!ATTLIST div7 xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST div7
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(automatically generated text division) indicates the location at which a textual division generated automatically by a text-processing application is to appear. [3.9.2. Index Entries] -->
+<!ELEMENT divGen (%model.headLike;)*>
+<!ATTLIST divGen xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST divGen
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(document author) contains the name of the author of the document, as given on the title page (often but not always contained in a byline). [4.6. Title Pages] -->
+<!ELEMENT docAuthor %macro.phraseSeq;>
+<!ATTLIST docAuthor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST docAuthor
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.cmc.attributes; >
+<!--doc:(document date) contains the date of a document, as given on a title page or in a dateline. [4.6. Title Pages] -->
+<!ELEMENT docDate %macro.phraseSeq;>
+<!ATTLIST docDate xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST docDate
+ %att.global.attributes;
+ %att.cmc.attributes;
+ %att.datable.attributes;
+ %att.calendarSystem.attributes; >
+<!--doc:(document edition) contains an edition statement as presented on a title page of a document. [4.6. Title Pages] -->
+<!ELEMENT docEdition %macro.paraContent;>
+<!ATTLIST docEdition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST docEdition
+ %att.global.attributes; >
+<!--doc:(document imprint) contains the imprint statement (place and date of publication, publisher name), as given (usually) at the foot of a title page. [4.6. Title Pages] -->
+<!ELEMENT docImprint (#PCDATA|%model.gLike;|%model.phrase;|pubPlace|docDate|publisher|%model.global;)*>
+<!ATTLIST docImprint xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST docImprint
+ %att.global.attributes; >
+<!--doc:(document title) contains the title of a document, including all its constituents, as given on a title page. [4.6. Title Pages] -->
+<!ELEMENT docTitle (((%model.global;)*,(titlePart,(%model.global;)*)+))>
+<!ATTLIST docTitle xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST docTitle
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(domain of use) describes the most important social context in which the text was realized or for which it is intended, for example private vs. public, education, religion, etc. [16.2.1. The Text Description] -->
+<!ELEMENT domain %macro.phraseSeq.limited;>
+<!ATTLIST domain xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST domain
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(leaf or terminal node of an embedding tree) provides explicitly for a leaf of an embedding tree, which may also be encoded with the eTree element. [20.3. Another Tree Notation] -->
+<!ELEMENT eLeaf (((label)?,((%model.ptrLike;)?)))>
+<!ATTLIST eLeaf xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST eLeaf
+ %att.global.attributes;
+ %att.typed.attributes;
+value %teidata.pointer;  #IMPLIED >
+<!--doc:(embedding tree) provides an alternative to the tree element for representing ordered rooted tree structures. [20.3. Another Tree Notation] -->
+<!ELEMENT eTree (((label)?,(eTree|triangle|eLeaf|%model.ptrLike;)*))>
+<!ATTLIST eTree xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST eTree
+ %att.global.attributes;
+ %att.typed.attributes;
+value %teidata.pointer;  #IMPLIED >
+<!--doc:(edition) describes the particularities of one edition of a text. [2.2.2. The Edition Statement] -->
+<!ELEMENT edition %macro.phraseSeq;>
+<!ATTLIST edition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST edition
+ %att.global.attributes; >
+<!--doc:(edition statement) groups information relating to one edition of a text. [2.2.2. The Edition Statement 2.2. The File Description] -->
+<!ELEMENT editionStmt ((%model.pLike;)+|(edition,(%model.respLike;)*))>
+<!ATTLIST editionStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST editionStmt
+ %att.global.attributes; >
+<!--doc:contains a secondary statement of responsibility for a bibliographic item, for example the name of an individual, institution or organization, (or of several such) acting as editor, compiler, translator, etc. [3.12.2.2. Titles, Authors, and Editors] -->
+<!ELEMENT editor %macro.phraseSeq;>
+<!ATTLIST editor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST editor
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(editorial practice declaration) provides details of editorial principles and practices applied during the encoding of a text. [2.3.3. The Editorial Practices Declaration 2.3. The Encoding Description 16.3.2. Declarable Elements] -->
+<!ELEMENT editorialDecl (%model.pLike;|%model.editorialDeclPart;)+>
+<!ATTLIST editorialDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST editorialDecl
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(education) contains a description of the educational experience of a person. [16.2.2. The Participant Description] -->
+<!ELEMENT education %macro.phraseSeq;>
+<!ATTLIST education xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST education
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(example) contains any kind of illustrative example. [23.5. Element Specifications 23.5.3. Attribute List Specification] -->
+<!ELEMENT eg %macro.phraseSeq;>
+<!ATTLIST eg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST eg
+ %att.global.attributes; >
+<!--doc:(example of XML) a single XML fragment demonstrating the use of some XML, such as elements, attributes, or processing instructions, etc., in which the egXML element functions as the root element. [23.1.1. Phrase Level Terms] -->
+<!ELEMENT egXML (#PCDATA)*>
+<!ATTLIST egXML xmlns CDATA "http://www.tei-c.org/ns/Examples">
+<!ATTLIST egXML
+ %att.global.attributes;
+valid (true|feasible|false) "true"  >
+<!--doc:points to the specification for some element which is to be included in a schema [23.2. Modules and Schemas] -->
+<!ELEMENT elementRef  EMPTY>
+<!ATTLIST elementRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST elementRef
+ %att.global.attributes;
+ %att.repeatable.attributes;
+key %teidata.xmlName;  #REQUIRED >
+<!--doc:(element specification) documents the structure, content, and purpose of a single element type. [23.5. Element Specifications 23. Documentation Elements] -->
+<!ELEMENT elementSpec (((%model.identSynonyms;|%model.descLike;)*,(classes)?,(content)?,(valList)?,(constraintSpec)*,(attList)?,(model|modelGrp|modelSequence)*,(exemplum)*,(remarks)*,(listRef)*))>
+<!ATTLIST elementSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST elementSpec
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.namespaceable.attributes;
+prefix CDATA  #IMPLIED >
+<!--doc:(deliberately marked omission) indicates a purposeful marking in the source document signalling that content has been omitted, and may also supply or describe the omitted content. [3.5.3. Additions, Deletions, and Omissions] -->
+<!ELEMENT ellipsis ((metamark,((%model.descLike;)?),(supplied)?))>
+<!ATTLIST ellipsis xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ellipsis
+ %att.global.attributes;
+ %att.dimensions.attributes;
+ %att.timed.attributes; >
+<!--doc:(electronic mail address) contains an email address identifying a location to which email messages can be delivered. [3.6.2. Addresses] -->
+<!ELEMENT email %macro.phraseSeq;>
+<!ATTLIST email xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST email
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(emphasized) marks words or phrases which are stressed or emphasized for linguistic or rhetorical effect. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language] -->
+<!ELEMENT emph %macro.paraContent;>
+<!ATTLIST emph xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST emph
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:indicates the presence of an empty node within a content model [23. Documentation Elements] -->
+<!ELEMENT empty  EMPTY>
+<!ATTLIST empty xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST empty
+ %att.global.attributes; >
+<!--doc:(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] -->
+<!ELEMENT encodingDesc (%model.encodingDescPart;|%model.pLike;)+>
+<!ATTLIST encodingDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST encodingDesc
+ %att.global.attributes; >
+<!--doc:(entry) contains a single structured entry in any kind of lexical resource, such as a dictionary or lexicon. [10.1. Dictionary Body and Overall Structure 10.2. The Structure of Dictionary Entries] -->
+<!ELEMENT entry (hom|sense|pc|%model.entryPart.top;|%model.global;|%model.ptrLike;)+>
+<!ATTLIST entry xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST entry
+ %att.global.attributes;
+ %att.entryLike.attributes;
+ %att.sortable.attributes; >
+<!--doc:(unstructured entry) contains a single unstructured entry in any kind of lexical resource, such as a dictionary or lexicon. [10.1. Dictionary Body and Overall Structure 10.2. The Structure of Dictionary Entries] -->
+<!ELEMENT entryFree (#PCDATA|%model.gLike;|%model.entryPart;|%model.morphLike;|%model.phrase;|%model.inter;|%model.global;)*>
+<!ATTLIST entryFree xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST entryFree
+ %att.global.attributes;
+ %att.entryLike.attributes;
+ %att.lexicographic.attributes;
+ %att.sortable.attributes; >
+<!--doc:(epigraph) contains a quotation, anonymous or attributed, appearing at the start or end of a section or on a title page. [4.2.3. Arguments, Epigraphs, and Postscripts 4.2. Elements Common to All Divisions 4.6. Title Pages] -->
+<!ELEMENT epigraph (%model.common;|%model.global;)*>
+<!ATTLIST epigraph xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST epigraph
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(epilogue) contains the epilogue to a drama, typically spoken by an actor out of character, possibly in association with a particular performance or venue. [7.1.2. Prologues and Epilogues 7.1. Front and Back Matter
+ ] -->
+<!ELEMENT epilogue (((%model.divTop;|%model.global;)*,((%model.common;),(%model.global;)*)+,((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST epilogue xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST epilogue
+ %att.global.attributes; >
+<!--doc:(equipment) provides technical details of the equipment and media used for an audio or video recording used as the source for a spoken text. [8.2. Documenting the Source of Transcribed Speech 16.3.2. Declarable Elements] -->
+<!ELEMENT equipment (%model.pLike;)+>
+<!ATTLIST equipment xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST equipment
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(equivalent) specifies a component which is considered equivalent to the parent element, either by co-reference, or by external link. [3.4.1. Terms and Glosses 23.4.1. Description of Components] -->
+<!ELEMENT equiv  EMPTY>
+<!ATTLIST equiv xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST equiv
+ %att.global.attributes;
+ %att.internetMedia.attributes;
+ %att.predicate.attributes;
+name %teidata.name;  #IMPLIED
+uri %teidata.pointer;  #IMPLIED
+filter %teidata.pointer;  #IMPLIED >
+<!--doc:(etymology) encloses the etymological information in a dictionary entry. [10.3.4. Etymological Information] -->
+<!ELEMENT etym (#PCDATA|%model.gLike;|%model.global;|%model.inter;|%model.phrase;|def|etym|gramGrp|lbl|usg|xr)*>
+<!ATTLIST etym xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST etym
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(event) contains data relating to anything of significance that happens in time. [14.3.1. Basic Principles] -->
+<!ELEMENT event (((idno)*,(%model.headLike;)*,((%model.pLike;)+|(%model.labelLike;)+|(eventName)+),(%model.noteLike;|%model.biblLike;|linkGrp|link|idno|ptr)*,(%model.eventLike;)*,(%model.personLike;|listPerson)*,(%model.placeLike;|listPlace)*,(%model.objectLike;)*,(relation|listRelation)*))>
+<!ATTLIST event xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST event
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.locatable.attributes;
+ %att.naming.attributes;
+ %att.sortable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(name of an event) contains a proper noun or noun phrase used to refer to an event. [14.2.4. Event Names] -->
+<!ELEMENT eventName %macro.phraseSeq;>
+<!ATTLIST eventName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST eventName
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes; >
+<!--doc:(editorial expansion) contains a sequence of letters added by an editor or transcriber when expanding an abbreviation. [12.3.1.2. Abbreviation and Expansion] -->
+<!ELEMENT ex %macro.xtext;>
+<!ATTLIST ex xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ex
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(exemplum) groups an example demonstrating the use of an element along with optional paragraphs of commentary. [23.5. Element Specifications] -->
+<!ELEMENT exemplum (((%model.pLike;)*,(egXML|eg),(%model.pLike;)*))>
+<!ATTLIST exemplum xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST exemplum
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.translatable.attributes; >
+<!--doc:(expansion) contains the expansion of an abbreviation. [3.6.5. Abbreviations and Their Expansions] -->
+<!ELEMENT expan %macro.phraseSeq;>
+<!ATTLIST expan xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST expan
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.cmc.attributes; >
+<!--doc:(explicit) contains the explicit of a item, that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT explicit %macro.phraseSeq;>
+<!ATTLIST explicit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST explicit
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.msExcerpt.attributes; >
+<!--doc:(extent) 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.12.2.4. Imprint, Size of a Document, and Reprint Information 11.7.1. Object Description] -->
+<!ELEMENT extent %macro.phraseSeq;>
+<!ATTLIST extent xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST extent
+ %att.global.attributes; >
+<!--doc:(feature) represents a feature value specification, that is, the association of a name with a value of any of several different types. [19.2. Elementary Feature Structures and the Binary
+Feature Value] -->
+<!ELEMENT f (#PCDATA|%model.featureVal;)*>
+<!ATTLIST f xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST f
+ %att.global.attributes;
+ %att.datcat.attributes;
+name %teidata.name;  #REQUIRED
+fVal %teidata.pointer;  #IMPLIED >
+<!--doc:(feature declaration) declares a single feature, specifying its name, organization, range of allowed values, and optionally its default value. [19.11. Feature System Declaration] -->
+<!ELEMENT fDecl (((fDescr)?,vRange,(vDefault)?))>
+<!ATTLIST fDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fDecl
+ %att.datcat.attributes;
+ %att.global.attributes;
+name %teidata.name;  #REQUIRED
+optional %teidata.truthValue;  "true"  >
+<!--doc:(feature description (in FSD)) describes in prose what is represented by the feature being declared and its values. [19.11. Feature System Declaration] -->
+<!ELEMENT fDescr %macro.limitedContent;>
+<!ATTLIST fDescr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fDescr
+ %att.global.attributes; >
+<!--doc:(feature library) assembles a library of f (feature) elements. [19.4. Feature Libraries and Feature-Value Libraries] -->
+<!ELEMENT fLib (f)+>
+<!ATTLIST fLib xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fLib
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:contains a representation of some written source in the form of a set of images rather than as transcribed or encoded text. [12.1. Digital Facsimiles] -->
+<!ELEMENT facsimile (((front)?,(%model.graphicLike;|surface|surfaceGrp)+,(back)?))>
+<!ATTLIST facsimile xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST facsimile
+ %att.global.attributes;
+ %att.declaring.attributes; >
+<!--doc:(factuality) describes the extent to which the text may be regarded as imaginative or non-imaginative, that is, as describing a fictional or a non-fictional world. [16.2.1. The Text Description] -->
+<!ELEMENT factuality %macro.phraseSeq.limited;>
+<!ATTLIST factuality xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST factuality
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(faith) specifies the faith, religion, or belief set of a person. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT faith %macro.phraseSeq;>
+<!ATTLIST faith xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST faith
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.canonical.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(description of figure) contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it. [15.4. Specific Elements for Graphic Images] -->
+<!ELEMENT figDesc %macro.limitedContent;>
+<!ATTLIST figDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST figDesc
+ %att.global.attributes; >
+<!--doc:(figure) groups elements representing or containing graphic information such as an illustration, formula, or figure. [15.4. Specific Elements for Graphic Images] -->
+<!ELEMENT figure (%model.headLike;|%model.common;|figDesc|%model.graphicLike;|%model.global;|%model.divBottom;)*>
+<!ATTLIST figure xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST figure
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.typed.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(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] -->
+<!ELEMENT fileDesc (((titleStmt,(editionStmt)?,(extent)?,publicationStmt,(seriesStmt)*,(notesStmt)?),(sourceDesc)+))>
+<!ATTLIST fileDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fileDesc
+ %att.global.attributes; >
+<!--doc:(filiation) contains information concerning the manuscript or other object's filiation, i.e. its relationship to other surviving manuscripts or other objects of the same text or contents, its protographs, antigraphs and apographs. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT filiation %macro.specialPara;>
+<!ATTLIST filiation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST filiation
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(final rubric) contains the string of words that denotes the end of a text division, often with an assertion as to its author and title, usually set off from the text itself by red ink, by a different size or type of script, or by some other such visual device. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT finalRubric %macro.phraseSeq;>
+<!ATTLIST finalRubric xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST finalRubric
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.msExcerpt.attributes; >
+<!--doc:(floating text) contains a single text of any kind, whether unitary or composite, which interrupts the text containing it at any point and after which the surrounding text resumes. [4.3.2. Floating Texts] -->
+<!ELEMENT floatingText (((%model.global;)*,(front,(%model.global;)*)?,(body|group),(%model.global;)*,(back,(%model.global;)*)?))>
+<!ATTLIST floatingText xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST floatingText
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(floruit) contains information about a person's period of activity. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT floruit %macro.phraseSeq;>
+<!ATTLIST floruit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST floruit
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.dimensions.attributes;
+ %att.editLike.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(foliation) describes the numbering system or systems used to count the leaves or pages in a codex or similar object. [11.7.1.4. Foliation] -->
+<!ELEMENT foliation %macro.specialPara;>
+<!ATTLIST foliation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST foliation
+ %att.global.attributes; >
+<!--doc:(foreign) identifies a word or phrase as belonging to some language other than that of the surrounding text. [3.3.2.1. Foreign Words or Expressions] -->
+<!ELEMENT foreign %macro.phraseSeq;>
+<!ATTLIST foreign xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST foreign
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(forename) contains a forename, given or baptismal name. [14.2.1. Personal Names] -->
+<!ELEMENT forename %macro.phraseSeq;>
+<!ATTLIST forename xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST forename
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(forest) provides for groups of rooted trees. [20.3. Another Tree Notation] -->
+<!ELEMENT forest (tree|eTree|triangle)+>
+<!ATTLIST forest xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST forest
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(form information group) groups all the information on the written and spoken forms of one headword. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT form (#PCDATA|%model.gLike;|%model.phrase;|%model.inter;|%model.formPart;|%model.global;)*>
+<!ATTLIST form xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST form
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(formula) contains a mathematical or other formula. [15.2. Formulæ and Mathematical Expressions] -->
+<!ELEMENT formula (#PCDATA|%model.graphicLike;|%model.hiLike;)*>
+<!ATTLIST formula xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST formula
+ %att.global.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(front matter) contains any prefatory matter (headers, abstracts, title page, prefaces, dedications, etc.) found at the start of a document, before the main body. [4.6. Title Pages 4. Default Text Structure] -->
+<!ELEMENT front (((%model.frontPart;|%model.pLike;|%model.pLike.front;|%model.global;)*,((((%model.div1Like;),(%model.div1Like;|%model.frontPart;|%model.global;)*)|((%model.divLike;),(%model.divLike;|%model.frontPart;|%model.global;)*)),((%model.divBottom;),(%model.divBottom;|%model.global;)*)?)?))>
+<!ATTLIST front xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST front
+ %att.global.attributes;
+ %att.declaring.attributes; >
+<!--doc:(feature structure) represents a feature structure, that is, a collection of feature-value pairs organized as a structural unit. [19.2. Elementary Feature Structures and the Binary
+Feature Value] -->
+<!ELEMENT fs (f)*>
+<!ATTLIST fs xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fs
+ %att.global.attributes;
+ %att.datcat.attributes;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+feats CDATA  #IMPLIED >
+<!--doc:(feature-structure constraints) specifies constraints on the content of valid feature structures. [19.11. Feature System Declaration] -->
+<!ELEMENT fsConstraints (cond|bicond)*>
+<!ATTLIST fsConstraints xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fsConstraints
+ %att.global.attributes; >
+<!--doc:(feature structure declaration) declares one type of feature structure. [19.11. Feature System Declaration] -->
+<!ELEMENT fsDecl (((fsDescr)?,(fDecl)+,(fsConstraints)?))>
+<!ATTLIST fsDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fsDecl
+ %att.global.attributes;
+ %att.datcat.attributes;
+type %teidata.enumerated;  #REQUIRED
+baseTypes NMTOKENS  #IMPLIED >
+<!--doc:(feature system description (in FSD)) describes in prose what is represented by the type of feature structure declared in the enclosing fsDecl. [19.11. Feature System Declaration] -->
+<!ELEMENT fsDescr %macro.limitedContent;>
+<!ATTLIST fsDescr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fsDescr
+ %att.global.attributes; >
+<!--doc:(feature system declaration) provides a feature system declaration comprising one or more feature structure declarations or feature structure declaration links. [19.11. Feature System Declaration] -->
+<!ELEMENT fsdDecl (%model.fsdDeclPart;)+>
+<!ATTLIST fsdDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fsdDecl
+ %att.global.attributes; >
+<!--doc:(feature structure declaration link) associates the name of a typed feature structure with a feature structure declaration for it. [19.11. Feature System Declaration] -->
+<!ELEMENT fsdLink  EMPTY>
+<!ATTLIST fsdLink xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fsdLink
+ %att.global.attributes;
+type %teidata.enumerated;  #REQUIRED
+target %teidata.pointer;  #REQUIRED >
+<!--doc:(funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. [2.2.1. The Title Statement] -->
+<!ELEMENT funder %macro.phraseSeq.limited;>
+<!ATTLIST funder xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST funder
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(feature-value library) assembles a library of reusable feature value elements (including complete feature structures). [19.4. Feature Libraries and Feature-Value Libraries] -->
+<!ELEMENT fvLib (%model.featureVal;)*>
+<!ATTLIST fvLib xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fvLib
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [12.6. Headers, Footers, and Similar Matter] -->
+<!ELEMENT fw %macro.phraseSeq;>
+<!ATTLIST fw xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST fw
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.placement.attributes;
+ %att.written.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(character or glyph) represents a glyph, or a non-standard character. [5. Characters, Glyphs, and Writing Modes] -->
+<!ELEMENT g (#PCDATA)>
+<!ATTLIST g xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST g
+ %att.global.attributes;
+ %att.typed.attributes;
+ref %teidata.pointer;  #IMPLIED >
+<!--doc:(gap) indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [3.5.3. Additions, Deletions, and Omissions] -->
+<!ELEMENT gap (%model.descLike;|%model.certLike;)*>
+<!ATTLIST gap xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gap
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+reason NMTOKENS  #IMPLIED
+agent %teidata.enumerated;  #IMPLIED >
+<!--doc:(gathering beginning) marks the beginning of a new gathering or quire in a transcribed codex. [3.11.3. Milestone
+Elements] -->
+<!ELEMENT gb  EMPTY>
+<!ATTLIST gb xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gb
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.spanning.attributes;
+ %att.breaking.attributes;
+ %att.edition.attributes;
+ %att.cmc.attributes; >
+<!--doc:(gender) identifies the morphological gender of a lexical item, as given in the dictionary. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT gen %macro.paraContent;>
+<!ATTLIST gen xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gen
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(generational name component) contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named. [14.2.1. Personal Names] -->
+<!ELEMENT genName %macro.phraseSeq;>
+<!ATTLIST genName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST genName
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(gender) specifies the gender identity of a person, persona, or character. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT gender %macro.phraseSeq;>
+<!ATTLIST gender xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gender
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED
+value CDATA  #IMPLIED >
+<!--doc:(geographical coordinates) contains any expression of a set of geographic coordinates, representing a point, line, or area on the surface of the earth in some notation. [14.3.4.1. Varieties of Location] -->
+<!ELEMENT geo (#PCDATA)>
+<!ATTLIST geo xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST geo
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.cmc.attributes; >
+<!--doc:(geographic coordinates declaration) documents the notation and the datum used for geographic coordinates expressed as content of the geo element elsewhere within the document. [2.3.8. The Geographic Coordinates Declaration] -->
+<!ELEMENT geoDecl %macro.phraseSeq;>
+<!ATTLIST geoDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST geoDecl
+ %att.global.attributes;
+ %att.declarable.attributes;
+datum %teidata.enumerated;  "WGS84"  >
+<!--doc:(geographical feature name) contains a common noun identifying some geographical feature contained within a geographic name, such as valley, mount, etc. [14.2.3. Place Names] -->
+<!ELEMENT geogFeat %macro.phraseSeq;>
+<!ATTLIST geogFeat xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST geogFeat
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(geographical name) identifies a name associated with some geographical feature such as Windrush Valley or Mount Sinai. [14.2.3. Place Names] -->
+<!ELEMENT geogName %macro.phraseSeq;>
+<!ATTLIST geogName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST geogName
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(element name) contains the name (generic identifier) of an element. [23. Documentation Elements 23.5. Element Specifications] -->
+<!ELEMENT gi  (#PCDATA)>
+<!ATTLIST gi xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gi
+ %att.global.attributes;
+scheme %teidata.enumerated;  "TEI"  >
+<!--doc:(gloss) identifies a phrase or word used to provide a gloss or definition for some other word or phrase. [3.4.1. Terms and Glosses 23.4.1. Description of Components] -->
+<!ELEMENT gloss %macro.phraseSeq;>
+<!ATTLIST gloss xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gloss
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.translatable.attributes;
+ %att.typed.attributes;
+ %att.pointing.attributes;
+ %att.cReferencing.attributes;
+ %att.cmc.attributes; >
+<!--doc:(character glyph) provides descriptive information about a character glyph. [5.2. Markup Constructs for Representation of Characters and Glyphs] -->
+<!ELEMENT glyph (unicodeProp|unihanProp|localProp|mapping|figure|%model.graphicLike;|%model.noteLike;|%model.descLike;)*>
+<!ATTLIST glyph xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST glyph
+ %att.global.attributes; >
+<!--doc:(grammatical information) within an entry in a dictionary or a terminological data file, contains grammatical information relating to a term, word, or form. [10.3.2. Grammatical Information] -->
+<!ELEMENT gram %macro.paraContent;>
+<!ATTLIST gram xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gram
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(grammatical information group) groups morpho-syntactic information about a lexical item, e.g. pos, gen, number, case, or iType (inflectional class). [10.3.2. Grammatical Information] -->
+<!ELEMENT gramGrp (#PCDATA|%model.gLike;|%model.phrase;|%model.inter;|%model.gramPart;|%model.global;)*>
+<!ATTLIST gramGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST gramGrp
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.typed.attributes; >
+<!--doc:(graph) encodes a graph, which is a collection of nodes, and arcs which connect the nodes. [20.1. Graphs and Digraphs] -->
+<!ELEMENT graph (((label,(%model.global;)*)?,(((node,(%model.global;)*)+,(arc,(%model.global;)*)*)|((arc,(%model.global;)*)+,(node,(%model.global;)*)+))))>
+<!ATTLIST graph xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST graph
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+order %teidata.count;  #IMPLIED
+size %teidata.count;  #IMPLIED >
+<!--doc:(graphic) indicates the location of a graphic or illustration, either forming part of a text, or providing an image of it. [3.10. Graphics and Other Non-textual Components 12.1. Digital Facsimiles] -->
+<!ELEMENT graphic (%model.descLike;)*>
+<!ATTLIST graphic xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST graphic
+ %att.global.attributes;
+ %att.media.attributes;
+ %att.resourced.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(group) contains the body of a composite text, grouping together a sequence of distinct texts (or groups of such texts) which are regarded as a unit for some purpose, for example the collected works of an author, a sequence of prose essays, etc. [4. Default Text Structure 4.3.1. Grouped Texts 16.1. Varieties of Composite Text] -->
+<!ELEMENT group (((%model.divTop;|%model.global;)*,((text|group),(text|group|%model.global;)*),(%model.divBottom;)*))>
+<!ATTLIST group xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST group
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes; >
+<!--doc:(description of hands) contains a description of all the different hands used in a manuscript or other object. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT handDesc ((%model.pLike;)+|((summary)?,(handNote)+))>
+<!ATTLIST handDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST handDesc
+ %att.global.attributes;
+hands %teidata.count;  #IMPLIED >
+<!--doc:(note on hand) describes a particular style or hand distinguished within a manuscript. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT handNote %macro.specialPara;>
+<!ATTLIST handNote xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST handNote
+ %att.global.attributes;
+ %att.handFeatures.attributes; >
+<!--doc:contains one or more handNote elements documenting the different hands identified within the source texts. [12.3.2.1. Document Hands] -->
+<!ELEMENT handNotes (handNote)+>
+<!ATTLIST handNotes xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST handNotes
+ %att.global.attributes; >
+<!--doc:(handwriting shift) marks the beginning of a sequence of text written in a new hand, or the beginning of a scribal stint. [12.3.2.1. Document Hands] -->
+<!ELEMENT handShift  EMPTY>
+<!ATTLIST handShift xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST handShift
+ %att.global.attributes;
+ %att.handFeatures.attributes;
+new %teidata.pointer;  #IMPLIED >
+<!--doc:(heading) contains any type of heading, for example the title of a section, or the heading of a list, glossary, manuscript description, etc. [4.2.1. Headings and Trailers] -->
+<!ELEMENT head (#PCDATA|lg|%model.gLike;|%model.phrase;|%model.inter;|%model.lLike;|%model.global;)*>
+<!ATTLIST head xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST head
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.placement.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(heading for list items) contains the heading for the item or gloss column in a glossary list or similar structured list. [3.8. Lists] -->
+<!ELEMENT headItem %macro.phraseSeq;>
+<!ATTLIST headItem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST headItem
+ %att.global.attributes; >
+<!--doc:(heading for list labels) contains the heading for the label or term column in a glossary list or similar structured list. [3.8. Lists] -->
+<!ELEMENT headLabel %macro.phraseSeq;>
+<!ATTLIST headLabel xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST headLabel
+ %att.global.attributes; >
+<!--doc:(height) contains a measurement measured along the axis at a right angle to the bottom of the object. [11.3.4. Dimensions] -->
+<!ELEMENT height %macro.xtext;>
+<!ATTLIST height xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST height
+ %att.global.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(heraldry) contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc. [11.3.8. Heraldry] -->
+<!ELEMENT heraldry %macro.phraseSeq;>
+<!ATTLIST heraldry xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST heraldry
+ %att.global.attributes; >
+<!--doc:(highlighted) marks a word or phrase as graphically distinct from the surrounding text, for reasons concerning which no claim is made. [3.3.2.2. Emphatic Words and Phrases 3.3.2. Emphasis, Foreign Words, and Unusual Language] -->
+<!ELEMENT hi %macro.paraContent;>
+<!ATTLIST hi xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST hi
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(history) groups elements describing the full history of a manuscript, manuscript part, or other object. [11.8. History] -->
+<!ELEMENT history ((%model.pLike;)+|((summary)?,(origin)?,(provenance)*,(acquisition)?))>
+<!ATTLIST history xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST history
+ %att.global.attributes; >
+<!--doc:(homograph) groups information relating to one homograph within an entry. [10.2. The Structure of Dictionary Entries] -->
+<!ELEMENT hom (sense|pc|%model.entryPart.top;|%model.global;)*>
+<!ATTLIST hom xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST hom
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(hyphenation) contains a hyphenated form of a dictionary headword, or hyphenation information in some other form. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT hyph %macro.paraContent;>
+<!ATTLIST hyph xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST hyph
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.notated.attributes; >
+<!--doc:(hyphenation) summarizes the way in which hyphenation in a source text has been treated in an encoded version of it. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT hyphenation (%model.pLike;)+>
+<!ATTLIST hyphenation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST hyphenation
+ %att.global.attributes;
+ %att.declarable.attributes;
+eol (all|some|hard|none) "some"  >
+<!--doc:(intermediate (or internal) node) represents an intermediate (or internal) node of a tree. [20.2. Trees] -->
+<!ELEMENT iNode (label)?>
+<!ATTLIST iNode xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST iNode
+ %att.global.attributes;
+value %teidata.pointer;  #IMPLIED
+children CDATA  #REQUIRED
+parent %teidata.pointer;  #IMPLIED
+ord %teidata.xTruthValue;  #IMPLIED
+follow %teidata.pointer;  #IMPLIED
+outDegree %teidata.count;  #IMPLIED >
+<!--doc:(inflectional class) indicates the inflectional class associated with a lexical item. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT iType %macro.paraContent;>
+<!ATTLIST iType xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST iType
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(identifier) contains an identifier or name for an object of some kind in a formal language. ident is used for tokens such as variable names, class names, type names, function names etc. in formal programming languages. [23.1.1. Phrase Level Terms] -->
+<!ELEMENT ident (#PCDATA)>
+<!ATTLIST ident xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ident
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(identifier) supplies any form of identifier used to identify some object, such as a bibliographic item, a person, a title, an organization, etc. in a standardized way. [14.3.1. Basic Principles 2.2.4. Publication, Distribution, Licensing, etc. 2.2.5. The Series Statement 3.12.2.4. Imprint, Size of a Document, and Reprint Information] -->
+<!ELEMENT idno (#PCDATA|%model.gLike;|idno)*>
+<!ATTLIST idno xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST idno
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.datable.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:defines a conditional default value for a feature; the condition is specified as a feature structure, and is met if it subsumes the feature structure in the text for which a default value is sought. [19.11. Feature System Declaration] -->
+<!ELEMENT if (((fs|f),then,(%model.featureVal;)))>
+<!ATTLIST if xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST if
+ %att.global.attributes; >
+<!--doc:(if and only if) separates the condition from the consequence in a bicond element. [19.11. Feature System Declaration] -->
+<!ELEMENT iff  EMPTY>
+<!ATTLIST iff xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST iff
+ %att.global.attributes; >
+<!--doc:(imprimatur) contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso. [4.6. Title Pages] -->
+<!ELEMENT imprimatur %macro.paraContent;>
+<!ATTLIST imprimatur xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST imprimatur
+ %att.global.attributes; >
+<!--doc:groups information relating to the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information] -->
+<!ELEMENT imprint (((classCode|catRef)*,((%model.imprintPart;|%model.dateLike;),(respStmt)*,(%model.global;)*)+))>
+<!ATTLIST imprint xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST imprint
+ %att.global.attributes; >
+<!--doc:(incident) marks any phenomenon or occurrence, not necessarily vocalized or communicative, for example incidental noises or other events affecting communication. [8.3.3. Vocal, Kinesic, Incident] -->
+<!ELEMENT incident (%model.descLike;)*>
+<!ATTLIST incident xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST incident
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.typed.attributes;
+ %att.ascribed.attributes;
+ %att.cmc.attributes; >
+<!--doc:contains the incipit of a manuscript or similar object item, that is the opening words of the text proper, exclusive of any rubric which might precede it, of sufficient length to identify the work uniquely; such incipits were, in former times, frequently used a means of reference to a work, in place of a title. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT incipit %macro.phraseSeq;>
+<!ATTLIST incipit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST incipit
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.msExcerpt.attributes; >
+<!--doc:(index entry) marks a location to be indexed for whatever purpose. [3.9.2. Index Entries] -->
+<!ELEMENT index ((term,(index)?)*)*>
+<!ATTLIST index xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST index
+ %att.global.attributes;
+ %att.spanning.attributes;
+ %att.cmc.attributes;
+indexName %teidata.name;  #IMPLIED >
+<!--doc:(institution) contains the name of an organization such as a university or library, with which a manuscript or other object is identified, generally its holding institution. [11.4. The Manuscript Identifier] -->
+<!ELEMENT institution %macro.phraseSeq.limited;>
+<!ATTLIST institution xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST institution
+ %att.global.attributes;
+ %att.naming.attributes; >
+<!--doc:(interaction) describes the extent, cardinality and nature of any interaction among those producing and experiencing the text, for example in the form of response or interjection, commentary, etc. [16.2.1. The Text Description] -->
+<!ELEMENT interaction %macro.phraseSeq.limited;>
+<!ATTLIST interaction xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST interaction
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+active %teidata.enumerated;  #IMPLIED
+passive %teidata.enumerated;  #IMPLIED >
+<!--doc:(interpretation) summarizes a specific interpretative annotation which can be linked to a span of text. [18.3. Spans and Interpretations] -->
+<!ELEMENT interp (#PCDATA|%model.gLike;|%model.descLike;|%model.certLike;)*>
+<!ATTLIST interp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST interp
+ %att.global.attributes;
+ %att.interpLike.attributes;
+ %att.cmc.attributes; >
+<!--doc:(interpretation group) collects together a set of related interpretations which share responsibility or type. [18.3. Spans and Interpretations] -->
+<!ELEMENT interpGrp (((%model.descLike;)*,(interp)+))>
+<!ATTLIST interpGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST interpGrp
+ %att.global.attributes;
+ %att.interpLike.attributes;
+ %att.cmc.attributes; >
+<!--doc:(interpretation) describes the scope of any analytic or interpretive information added to the text in addition to the transcription. [2.3.3. The Editorial Practices Declaration] -->
+<!ELEMENT interpretation (%model.pLike;)+>
+<!ATTLIST interpretation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST interpretation
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(item) contains one component of a list. [3.8. Lists 2.6. The Revision Description] -->
+<!ELEMENT item %macro.specialPara;>
+<!ATTLIST item xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST item
+ %att.global.attributes;
+ %att.sortable.attributes; >
+<!--doc:(join) identifies a possibly fragmented segment of text, by pointing at the possibly discontiguous elements which compose it. [17.7. Aggregation] -->
+<!ELEMENT join (%model.descLike;|%model.certLike;)*>
+<!ATTLIST join xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST join
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+result %teidata.name;  #IMPLIED
+scope (root|branches) "root"  >
+<!--doc:(join group) groups a collection of join elements and possibly pointers. [17.7. Aggregation] -->
+<!ELEMENT joinGrp (((equiv|gloss|%model.descLike;)*,(join|ptr)+))>
+<!ATTLIST joinGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST joinGrp
+ %att.global.attributes;
+ %att.pointing.group.attributes;
+ %att.cmc.attributes;
+result %teidata.name;  #IMPLIED >
+<!--doc:(keywords) contains a list of keywords or phrases identifying the topic or nature of a text. [2.4.3. The Text Classification] -->
+<!ELEMENT keywords ((term)+|list)>
+<!ATTLIST keywords xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST keywords
+ %att.global.attributes;
+scheme %teidata.pointer;  #IMPLIED >
+<!--doc:(kinesic) marks any communicative phenomenon, not necessarily vocalized, for example a gesture, frown, etc. [8.3.3. Vocal, Kinesic, Incident] -->
+<!ELEMENT kinesic (%model.descLike;)*>
+<!ATTLIST kinesic xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST kinesic
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.typed.attributes;
+ %att.ascribed.directed.attributes;
+ %att.cmc.attributes;
+iterated %teidata.xTruthValue;  "false"  >
+<!--doc:(verse line) contains a single, possibly incomplete, line of verse. [3.13.1. Core Tags for Verse 3.13. Passages of Verse or Drama 7.2.5. Speech Contents] -->
+<!ELEMENT l (#PCDATA|%model.gLike;|%model.phrase;|%model.inter;|%model.global;)*>
+<!ATTLIST l xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST l
+ %att.global.attributes;
+ %att.metrical.attributes;
+ %att.enjamb.attributes;
+ %att.fragmentable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(label) contains any label or heading used to identify part of a text, typically but not exclusively in a list or glossary. [3.8. Lists] -->
+<!ELEMENT label %macro.phraseSeq;>
+<!ATTLIST label xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST label
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.placement.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(lacuna end) indicates the end of a lacuna in a mostly complete textual witness. [13.1.5. Fragmentary Witnesses] -->
+<!ELEMENT lacunaEnd  EMPTY>
+<!ATTLIST lacunaEnd xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lacunaEnd
+ %att.global.attributes;
+ %att.rdgPart.attributes; >
+<!--doc:(lacuna start) indicates the beginning of a lacuna in the text of a mostly complete textual witness. [13.1.5. Fragmentary Witnesses] -->
+<!ELEMENT lacunaStart  EMPTY>
+<!ATTLIST lacunaStart xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lacunaStart
+ %att.global.attributes;
+ %att.rdgPart.attributes; >
+<!--doc:(language name) contains the name of a language mentioned in etymological or other linguistic discussion. [10.3.4. Etymological Information] -->
+<!ELEMENT lang %macro.paraContent;>
+<!ATTLIST lang xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lang
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT langKnowledge (((precision)*,(%model.pLike;|(langKnown)+)))>
+<!ATTLIST langKnowledge xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST langKnowledge
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+tags CDATA  #IMPLIED >
+<!--doc:(language known) summarizes the state of a person's linguistic competence, i.e., knowledge of a single language. [16.2.2. The Participant Description] -->
+<!ELEMENT langKnown %macro.phraseSeq.limited;>
+<!ATTLIST langKnown xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST langKnown
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+calendar CDATA  #IMPLIED
+tag %teidata.language;  #REQUIRED
+level %teidata.word;  #IMPLIED >
+<!--doc:(language usage) describes the languages, sublanguages, registers, dialects, etc. represented within a text. [2.4.2. Language Usage 2.4. The Profile Description 16.3.2. Declarable Elements] -->
+<!ELEMENT langUsage ((%model.pLike;)+|(language)+)>
+<!ATTLIST langUsage xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST langUsage
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(language) characterizes a single language or sublanguage used within a text. [2.4.2. Language Usage] -->
+<!ELEMENT language %macro.phraseSeq.limited;>
+<!ATTLIST language xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST language
+ %att.global.attributes;
+ident %teidata.language;  #REQUIRED
+usage CDATA #IMPLIED >
+<!--doc:(layout) describes how text is laid out on the page or surface of the object, including information about any ruling, pricking, or other evidence of page-preparation techniques. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT layout %macro.specialPara;>
+<!ATTLIST layout xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST layout
+ %att.global.attributes;
+columns CDATA  #IMPLIED
+streams CDATA  #IMPLIED
+ruledLines CDATA  #IMPLIED
+writtenLines CDATA  #IMPLIED >
+<!--doc:(layout description) collects the set of layout descriptions applicable to a manuscript or other object. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT layoutDesc ((%model.pLike;)+|((summary)?,(layout)+))>
+<!ATTLIST layoutDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST layoutDesc
+ %att.global.attributes; >
+<!--doc:(line beginning) marks the beginning of a new (typographic) line in some edition or version of a text. [3.11.3. Milestone
+Elements 7.2.5. Speech Contents] -->
+<!ELEMENT lb  EMPTY>
+<!ATTLIST lb xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lb
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.edition.attributes;
+ %att.spanning.attributes;
+ %att.breaking.attributes;
+ %att.cmc.attributes; >
+<!--doc:(label) contains a label for a form, example, translation, or other piece of information, e.g. abbreviation for, contraction of, literally, approximately, synonyms:, etc. [10.3.1. Information on Written and Spoken Forms 10.3.3.2. Translation Equivalents 10.3.5.3. Cross-References to Other Entries] -->
+<!ELEMENT lbl %macro.paraContent;>
+<!ATTLIST lbl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lbl
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(leaf) encodes the leaves (terminal nodes) of a tree. [20.2. Trees] -->
+<!ELEMENT leaf (label)?>
+<!ATTLIST leaf xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST leaf
+ %att.global.attributes;
+value %teidata.pointer;  #IMPLIED
+parent %teidata.pointer;  #IMPLIED
+follow %teidata.pointer;  #IMPLIED >
+<!--doc:(lemma) contains the lemma, or base text, of a textual variation. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT lem (#PCDATA|%model.divLike;|%model.divPart;|titlePage|argument|byline|docAuthor|docDate|docEdition|docImprint|docTitle|epigraph|imprimatur|titlePart|epilogue|performance|prologue|set|%model.gLike;|%model.phrase;|%model.inter;|%model.global;|%model.rdgPart;)*>
+<!ATTLIST lem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lem
+ %att.global.attributes;
+ %att.textCritical.attributes;
+ %att.witnessed.attributes; >
+<!--doc:(line group) contains one or more verse lines functioning as a formal unit, e.g. a stanza, refrain, verse paragraph, etc. [3.13.1. Core Tags for Verse 3.13. Passages of Verse or Drama 7.2.5. Speech Contents] -->
+<!ELEMENT lg (((%model.divTop;|%model.global;)*,(%model.lLike;|%model.stageLike;|%model.labelLike;|%model.pPart.transcriptional;|lg),(%model.lLike;|%model.stageLike;|%model.labelLike;|%model.pPart.transcriptional;|%model.global;|lg)*,((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST lg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST lg
+ %att.global.attributes;
+ %att.divLike.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes;
+ %att.cmc.attributes; >
+<!--doc:contains information about a licence or other legal agreement applicable to the text. [2.2.4. Publication, Distribution, Licensing, etc.] -->
+<!ELEMENT licence %macro.specialPara;>
+<!ATTLIST licence xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST licence
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:contains the transcription of a topographic line in the source document [12.2.2. Embedded Transcription] -->
+<!ELEMENT line (#PCDATA|%model.global;|%model.gLike;|%model.linePart;)*>
+<!ATTLIST line xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST line
+ %att.typed.attributes;
+ %att.global.attributes;
+ %att.coordinated.attributes;
+ %att.written.attributes; >
+<!--doc:(link) defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [17.1. Links] -->
+<!ELEMENT link  EMPTY>
+<!ATTLIST link xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST link
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(link group) defines a collection of associations or hypertextual links. [17.1. Links] -->
+<!ELEMENT linkGrp (((%model.descLike;)*,(link|ptr)+))>
+<!ATTLIST linkGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST linkGrp
+ %att.global.attributes;
+ %att.pointing.group.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list) contains any sequence of items organized as a list. [3.8. Lists] -->
+<!ELEMENT list (((%model.divTop;|%model.global;|(desc)*)*,((item,(%model.global;)*)+|((headLabel)?,(headItem)?,(label,(%model.global;)*,item,(%model.global;)*)+)),((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST list xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST list
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.typed.attribute.subtype;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:contains a list of annotations, typically encoded as annotation, annotationBlock, or note, possibly organized with nested listAnnotation elements. [17.10. The standOff Container] -->
+<!ELEMENT listAnnotation (((%model.headLike;)*,(%model.labelLike;)*,(%model.annotationLike;|listAnnotation)+))>
+<!ATTLIST listAnnotation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listAnnotation
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.declaring.attributes; >
+<!--doc:(list of apparatus entries) contains a list of apparatus entries. [13.2. Linking the Apparatus to the Text] -->
+<!ELEMENT listApp (((%model.headLike;)*,(desc)*,(app|listApp)+))>
+<!ATTLIST listApp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listApp
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.declarable.attributes;
+ %att.typed.attributes; >
+<!--doc:(citation list) contains a list of bibliographic citations of any kind. [3.12.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 16.3.2. Declarable Elements] -->
+<!ELEMENT listBibl (((%model.headLike;)*,(desc)*,(%model.milestoneLike;|relation|listRelation)*,((%model.biblLike;)+,(%model.milestoneLike;|relation|listRelation)*)+))>
+<!ATTLIST listBibl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listBibl
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.declarable.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 12.7. Identifying Changes and Revisions] -->
+<!ELEMENT listChange (((desc)*,(listChange|change)+))>
+<!ATTLIST listChange xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listChange
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.typed.attributes;
+ordered %teidata.truthValue;  "true"  >
+<!--doc:(list of events) contains a list of descriptions, each of which provides information about an identifiable event. [14.3.1. Basic Principles] -->
+<!ELEMENT listEvent (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((%model.eventLike;)+,(relation|listRelation)*)+))>
+<!ATTLIST listEvent xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listEvent
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:provides for lists of forests. [20.3. Another Tree Notation] -->
+<!ELEMENT listForest (((desc)*,(forest)+))>
+<!ATTLIST listForest xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listForest
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(list of canonical names) contains a list of nyms, that is, standardized names for any thing. [14.3.7. Names and Nyms] -->
+<!ELEMENT listNym (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((nym|listNym)+,(relation|listRelation)*)+))>
+<!ATTLIST listNym xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listNym
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list of objects) contains a list of descriptions, each of which provides information about an identifiable physical object. [14.3.6. Objects] -->
+<!ELEMENT listObject (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((%model.objectLike;)+,(relation|listRelation)*)+))>
+<!ATTLIST listObject xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listObject
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list of organizations) contains a list of elements, each of which provides information about an identifiable organization. [14.2.2. Organizational Names] -->
+<!ELEMENT listOrg (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((org|listOrg)+,(relation|listRelation)*)+))>
+<!ATTLIST listOrg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listOrg
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list of persons) contains a list of descriptions, each of which provides information about an identifiable person or a group of people, for example the participants in a language interaction, or the people referred to in a historical source. [14.3.2. The Person Element 16.2. Contextual Information 2.4. The Profile Description 16.3.2. Declarable Elements] -->
+<!ELEMENT listPerson (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((%model.personLike;|listPerson)+,(relation|listRelation)*)+))>
+<!ATTLIST listPerson xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listPerson
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list of places) contains a list of places, optionally followed by a list of relationships (other than containment) defined amongst them. [2.2.7. The Source Description 14.3.4. Places] -->
+<!ELEMENT listPlace (((%model.headLike;)*,(desc)*,(relation|listRelation)*,((%model.placeLike;|listPlace)+,(relation|listRelation)*)+))>
+<!ATTLIST listPlace xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listPlace
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declarable.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:(list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [17.2.3. Using Abbreviated Pointers] -->
+<!ELEMENT listPrefixDef (((desc)*,(prefixDef|listPrefixDef)+))>
+<!ATTLIST listPrefixDef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listPrefixDef
+ %att.global.attributes; >
+<!--doc:(list of references) supplies a list of significant references in the current document or elsewhere. -->
+<!ELEMENT listRef (((desc)*,(%model.ptrLike;)+))>
+<!ATTLIST listRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listRef
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:provides information about relationships identified amongst people, places, and organizations, either informally as prose or as formally expressed relation links. [14.3.2.3. Personal Relationships] -->
+<!ELEMENT listRelation (((%model.headLike;)*,(desc)*,(%model.pLike;|(relation|listRelation)+)))>
+<!ATTLIST listRelation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listRelation
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.sortable.attributes;
+ %att.cmc.attributes; >
+<!--doc:supplies a list of transpositions, each of which is indicated at some point in a document typically by means of metamarks. [12.3.4.5. Transpositions] -->
+<!ELEMENT listTranspose (((desc)*,(transpose)+))>
+<!ATTLIST listTranspose xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listTranspose
+ %att.global.attributes; >
+<!--doc:(witness list) lists definitions for all the witnesses referred to by a critical apparatus, optionally grouped hierarchically. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT listWit ((((%model.headLike;)?),(desc)*,(witness|listWit)+))>
+<!ATTLIST listWit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST listWit
+ %att.global.attributes;
+ %att.sortable.attributes; >
+<!--doc:(locally defined property) provides a locally defined character (or glyph) property. [5.2.1. Character Properties] -->
+<!ELEMENT localProp  EMPTY>
+<!ATTLIST localProp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST localProp
+ %att.global.attributes;
+ %att.gaijiProp.attributes; >
+<!--doc:contains a brief informal description of the kind of place concerned, for example: a room, a restaurant, a park bench, etc. [16.2.3. The Setting Description] -->
+<!ELEMENT locale %macro.phraseSeq.limited;>
+<!ATTLIST locale xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST locale
+ %att.global.attributes; >
+<!--doc:(location) defines the location of a place as a set of geographical coordinates, in terms of other named geo-political entities, or as an address. [14.3.4. Places] -->
+<!ELEMENT location (precision|%model.labelLike;|%model.placeNamePart;|%model.offsetLike;|%model.measureLike;|%model.addressLike;|%model.noteLike;|%model.biblLike;)*>
+<!ATTLIST location xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST location
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(locus) defines a location within a manuscript, manuscript part, or other object typically as a (possibly discontinuous) sequence of folio references. [11.3.5. References to Locations within a Manuscript] -->
+<!ELEMENT locus (#PCDATA|%model.gLike;|hi|locus)*>
+<!ATTLIST locus xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST locus
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+scheme %teidata.pointer;  #IMPLIED
+from %teidata.word;  #IMPLIED
+to %teidata.word;  #IMPLIED >
+<!--doc:(locus group) groups a number of locations which together form a distinct but discontinuous item within a manuscript, manuscript part, or other object. [11.3.5. References to Locations within a Manuscript] -->
+<!ELEMENT locusGrp (locus)+>
+<!ATTLIST locusGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST locusGrp
+ %att.global.attributes;
+scheme %teidata.pointer;  #IMPLIED >
+<!--doc:(morpheme) represents a grammatical morpheme. [18.1. Linguistic Segment Categories] -->
+<!ELEMENT m (#PCDATA|%model.gLike;|%model.hiLike;|seg|m|c|%model.global;)*>
+<!ATTLIST m xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST m
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes;
+baseForm %teidata.word;  #IMPLIED >
+<!--doc:points to the specification for some pattern which is to be included in a schema [23.7. Macro Specifications] -->
+<!ELEMENT macroRef  EMPTY>
+<!ATTLIST macroRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST macroRef
+ %att.global.attributes;
+key %teidata.xmlName;  #REQUIRED >
+<!--doc:(macro specification) documents the function and implementation of a pattern. [23.3. Specification Elements 23.7. Macro Specifications] -->
+<!ELEMENT macroSpec (((%model.identSynonyms;|%model.descLike;)*,(content|valList)?,(constraintSpec)*,(exemplum)*,(remarks)*,(listRef)*))>
+<!ATTLIST macroSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST macroSpec
+ %att.global.attributes;
+ %att.identified.attributes; >
+<!--doc:(character mapping) contains one or more characters which are related to the parent character or glyph in some respect, as specified by the type attribute. [5.2. Markup Constructs for Representation of Characters and Glyphs] -->
+<!ELEMENT mapping %macro.xtext;>
+<!ATTLIST mapping xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST mapping
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes; >
+<!--doc:(material) contains a word or phrase describing the material of which the object being described is composed. [11.3.2. Material and Object Type] -->
+<!ELEMENT material %macro.phraseSeq;>
+<!ATTLIST material xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST material
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.typed.attributes;
+function %teidata.enumerated;  #IMPLIED
+target CDATA  #IMPLIED >
+<!--doc:(measure) contains a word or phrase referring to some quantity of an object or commodity, usually comprising a number, a unit, and a commodity name. [3.6.3. Numbers and
+Measures] -->
+<!ELEMENT measure %macro.phraseSeq;>
+<!ATTLIST measure xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST measure
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.measurement.attributes;
+ %att.cmc.attributes;
+ %att.ranging.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(measure group) contains a group of dimensional specifications which relate to the same object, for example the height and width of a manuscript page. [11.3.4. Dimensions] -->
+<!ELEMENT measureGrp (#PCDATA|%model.gLike;|%model.measureLike;)*>
+<!ATTLIST measureGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST measureGrp
+ %att.global.attributes;
+ %att.measurement.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:indicates the location of any form of external media such as an audio or video clip etc. [3.10. Graphics and Other Non-textual Components] -->
+<!ELEMENT media (%model.descLike;)*>
+<!ATTLIST media xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST media
+ %att.typed.attributes;
+ %att.global.attributes;
+ %att.media.attribute.width;
+ %att.media.attribute.height;
+ %att.media.attribute.scale;
+ %att.resourced.attributes;
+ %att.declaring.attributes;
+ %att.timed.attributes;
+ %att.cmc.attributes;
+mimeType CDATA  #REQUIRED >
+<!--doc:contains the formalized descriptive title for a meeting or conference, for use in a bibliographic description for an item derived from such a meeting, or as a heading or preamble to publications emanating from it. [3.12.2.2. Titles, Authors, and Editors] -->
+<!ELEMENT meeting %macro.limitedContent;>
+<!ATTLIST meeting xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST meeting
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.canonical.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:specifies class membership of the documented element or class. [23.4.3. Classification of Components] -->
+<!ELEMENT memberOf %macro.xtext;>
+<!ATTLIST memberOf xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST memberOf
+ %att.global.attributes;
+key %teidata.name;  #IMPLIED
+mode (add|delete) "add" 
+max %teidata.numeric;  #IMPLIED
+min %teidata.numeric;  #IMPLIED >
+<!--doc:marks words or phrases mentioned, not used. [3.3.3. Quotation] -->
+<!ELEMENT mentioned %macro.phraseSeq;>
+<!ATTLIST mentioned xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST mentioned
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(metrical notation declaration) documents the notation employed to represent a metrical pattern when this is specified as the value of a met, real, or rhyme attribute on any structural element of a metrical text (e.g. lg, l, or seg). [6.6. Metrical Notation Declaration 6.4. Rhyme and Metrical Analysis] -->
+<!ELEMENT metDecl ((%model.pLike;|%model.noteLike;)+|(metSym)+)>
+<!ATTLIST metDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST metDecl
+ %att.global.attributes;
+ %att.declarable.attributes;
+type NMTOKENS  "met real" 
+pattern %teidata.pattern;  #IMPLIED >
+<!--doc:(metrical notation symbol) documents the intended significance of a particular character or character sequence within a metrical notation, either explicitly or in terms of other metSym elements in the same metDecl. [6.6. Metrical Notation Declaration] -->
+<!ELEMENT metSym %macro.phraseSeq.limited;>
+<!ATTLIST metSym xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST metSym
+ %att.global.attributes;
+value CDATA  #REQUIRED
+terminal %teidata.truthValue;  "true"  >
+<!--doc:contains or describes any kind of graphic or written signal within a document the function of which is to determine how it should be read rather than forming part of the actual content of the document. [12.3.4.2. Metamarks] -->
+<!ELEMENT metamark %macro.specialPara;>
+<!ATTLIST metamark xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST metamark
+ %att.spanning.attributes;
+ %att.placement.attributes;
+ %att.global.attributes;
+function %teidata.word;  #IMPLIED
+target CDATA  #IMPLIED >
+<!--doc:(milestone) marks a boundary point separating any kind of section of a text, typically but not necessarily indicating a point at which some part of a standard reference system changes, where the change is not represented by a structural element. [3.11.3. Milestone
+Elements] -->
+<!ELEMENT milestone  EMPTY>
+<!ATTLIST milestone xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST milestone
+ %att.global.attributes;
+ %att.milestoneUnit.attributes;
+ %att.typed.attributes;
+ %att.edition.attributes;
+ %att.spanning.attributes;
+ %att.breaking.attributes;
+ %att.cmc.attributes; >
+<!--doc:represents any kind of modification identified within a single document. [12.3.4.1. Generic Modification] -->
+<!ELEMENT mod %macro.paraContent;>
+<!ATTLIST mod xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST mod
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.typed.attributes;
+ %att.spanning.attributes;
+ %att.dimensions.attributes; >
+<!--doc:describes the processing intended for a specified element. [23.5.4.1. The TEI processing model] -->
+<!ELEMENT model (((%model.identEquiv;|%model.descLike;)*,(param)*,(outputRendition)*))>
+<!ATTLIST model xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST model
+ %att.global.attributes;
+ %att.predicate.attributes;
+behaviour %teidata.enumerated;  #REQUIRED
+useSourceRendition %teidata.truthValue;  #IMPLIED
+output %teidata.enumerated;  #IMPLIED
+cssClass NMTOKENS  #IMPLIED >
+<!--doc:(model group) any grouping of model or modelSequence elements with a common output method [23.5.4.4. Model Contexts and Outputs] -->
+<!ELEMENT modelGrp (((%model.identEquiv;|%model.descLike;)*,(outputRendition)?,(modelSequence|model)+))>
+<!ATTLIST modelGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST modelGrp
+ %att.global.attributes;
+useSourceRendition %teidata.truthValue;  #IMPLIED
+output %teidata.enumerated;  #IMPLIED >
+<!--doc:any sequence of model or modelSequence elements which is to be processed as a single set of actions [23.5.4.7. Model sequence] -->
+<!ELEMENT modelSequence (((%model.identEquiv;|%model.descLike;)*,(model,model)))>
+<!ATTLIST modelSequence xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST modelSequence
+ %att.global.attributes;
+predicate %teidata.xpath;  #IMPLIED
+useSourceRendition %teidata.truthValue;  #IMPLIED
+output %teidata.enumerated;  #IMPLIED >
+<!--doc:(module reference) references a module which is to be incorporated into a schema. [23.2. Modules and Schemas] -->
+<!ELEMENT moduleRef (content)?>
+<!ATTLIST moduleRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST moduleRef
+ %att.global.attributes;
+prefix CDATA  #IMPLIED
+include CDATA  #IMPLIED
+except CDATA  #IMPLIED
+key %teidata.xmlName;  #IMPLIED
+url %teidata.pointer;  #IMPLIED >
+<!--doc:(module specification) documents the structure, content, and purpose of a single module, i.e. a named and externally visible group of declarations. [23.2. Modules and Schemas] -->
+<!ELEMENT moduleSpec (((%model.identEquiv;|idno|%model.descLike;)*,(exemplum)*,(remarks)?,(listRef)*))>
+<!ATTLIST moduleSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST moduleSpec
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.typed.attributes; >
+<!--doc:(monographic level) contains bibliographic elements describing an item (e.g. a book or journal) published as an independent item (i.e. as a separate physical object). [3.12.2.1. Analytic, Monographic, and Series Levels] -->
+<!ELEMENT monogr (((((author|editor|meeting|respStmt),(author|editor|meeting|respStmt)*,(title)+,(%model.ptrLike;|idno|textLang|editor|respStmt)*)|((title|%model.ptrLike;|idno)+,(textLang|author|editor|meeting|respStmt)*)|(authority,idno))?,(availability)*,(%model.noteLike;)*,(edition,(idno|%model.ptrLike;|editor|sponsor|funder|respStmt)*)*,imprint,(imprint|extent|biblScope)*))>
+<!ATTLIST monogr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST monogr
+ %att.global.attributes; >
+<!--doc:(mood) contains information about the grammatical mood of verbs (e.g. indicative, subjunctive, imperative). [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT mood %macro.paraContent;>
+<!ATTLIST mood xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST mood
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(movement) marks the actual movement of one or more characters. [7.2.4. Stage Directions] -->
+<!ELEMENT move  EMPTY>
+<!ATTLIST move xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST move
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.ascribed.directed.attributes;
+type %teidata.enumerated;  #IMPLIED
+where CDATA  #IMPLIED
+perf CDATA  #IMPLIED >
+<!--doc:(manuscript contents) describes the intellectual content of a manuscript, manuscript part, or other object either as a series of paragraphs or as a series of structured manuscript items. [11.6. Intellectual Content] -->
+<!ELEMENT msContents ((%model.pLike;)+|((summary)?,(textLang)?,(titlePage)?,(msItem|msItemStruct)*))>
+<!ATTLIST msContents xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msContents
+ %att.global.attributes;
+ %att.msExcerpt.attributes;
+ %att.msClass.attributes; >
+<!--doc:(manuscript description) contains a description of a single identifiable manuscript or other text-bearing object such as an early printed book. [11.1. Overview] -->
+<!ELEMENT msDesc ((msIdentifier,(%model.headLike;)*,((%model.pLike;)+|(msContents|physDesc|history|additional|msPart|msFrag)*)))>
+<!ATTLIST msDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msDesc
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes;
+ %att.docStatus.attributes; >
+<!--doc:(manuscript fragment) contains information about a fragment described in relation to a prior context, typically as a description of a virtual reconstruction of a manuscript or other object whose fragments were catalogued separately [11.11. Manuscript Fragments] -->
+<!ELEMENT msFrag (((altIdentifier|msIdentifier),(%model.headLike;)*,((%model.pLike;)+|(msContents|physDesc|history|additional)*)))>
+<!ATTLIST msFrag xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msFrag
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(manuscript identifier) contains the information required to identify the manuscript or similar object being described. [11.4. The Manuscript Identifier] -->
+<!ELEMENT msIdentifier ((((%model.placeNamePart_sequenceOptional;),(institution)?,(repository)?,(collection)*,(idno)*),(msName|objectName|altIdentifier)*))>
+<!ATTLIST msIdentifier xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msIdentifier
+ %att.global.attributes; >
+<!--doc:(manuscript item) describes an individual work or item within the intellectual content of a manuscript, manuscript part, or other object. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT msItem (((locus|locusGrp)*,((%model.pLike;)+|(%model.titlepagePart;|%model.msItemPart;|%model.global;)+)))>
+<!ATTLIST msItem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msItem
+ %att.global.attributes;
+ %att.msExcerpt.attributes;
+ %att.msClass.attributes; >
+<!--doc:(structured manuscript item) contains a structured description for an individual work or item within the intellectual content of a manuscript, manuscript part, or other object. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT msItemStruct (((locus|locusGrp)?,((%model.pLike;)+|((author)*,(respStmt)*,(title)*,(rubric)?,(incipit)?,(msItemStruct)*,(explicit)?,(finalRubric)?,(colophon)*,(decoNote)*,(listBibl)*,(bibl|biblStruct)*,(filiation)?,(%model.noteLike;)*,(textLang)?))))>
+<!ATTLIST msItemStruct xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msItemStruct
+ %att.global.attributes;
+ %att.msExcerpt.attributes;
+ %att.msClass.attributes; >
+<!--doc:(alternative name) contains any form of unstructured alternative name used for a manuscript or other object, such as an ocellus nominum, or nickname. [11.4. The Manuscript Identifier] -->
+<!ELEMENT msName (#PCDATA|%model.gLike;|rs|name)*>
+<!ATTLIST msName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msName
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(manuscript part) contains information about an originally distinct manuscript or part of a manuscript, which is now part of a composite manuscript. [11.10. Manuscript Parts] -->
+<!ELEMENT msPart ((msIdentifier,(%model.headLike;)*,((%model.pLike;)+|(msContents|physDesc|history|additional|msPart)*)))>
+<!ATTLIST msPart xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST msPart
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(music notation) contains description of type of musical notation. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT musicNotation %macro.specialPara;>
+<!ATTLIST musicNotation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST musicNotation
+ %att.global.attributes; >
+<!--doc:(name, proper noun) contains a proper noun or noun phrase. [3.6.1. Referring Strings] -->
+<!ELEMENT name %macro.phraseSeq;>
+<!ATTLIST name xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST name
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(name link) contains a connecting phrase or link used within a name but not regarded as part of it, such as van der or of. [14.2.1. Personal Names] -->
+<!ELEMENT nameLink %macro.phraseSeq;>
+<!ATTLIST nameLink xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST nameLink
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(namespace) supplies the formal name of the namespace to which the elements documented by its children belong. [2.3.4. The Tagging Declaration] -->
+<!ELEMENT namespace (tagUsage)+>
+<!ATTLIST namespace xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST namespace
+ %att.global.attributes;
+name CDATA  #REQUIRED >
+<!--doc:(nationality) contains an informal description of a person's present or past nationality or citizenship. [16.2.2. The Participant Description] -->
+<!ELEMENT nationality %macro.phraseSeq;>
+<!ATTLIST nationality xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST nationality
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(node) encodes a node, a possibly labeled point in a graph. [20.1. Graphs and Digraphs] -->
+<!ELEMENT node ((label,(label)?)?)?>
+<!ATTLIST node xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST node
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+value %teidata.pointer;  #IMPLIED
+adjTo CDATA  #IMPLIED
+adjFrom CDATA  #IMPLIED
+adj CDATA  #IMPLIED
+inDegree %teidata.count;  #IMPLIED
+outDegree %teidata.count;  #IMPLIED
+degree %teidata.count;  #IMPLIED >
+<!--doc:(normalization) indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT normalization (%model.pLike;)+>
+<!ATTLIST normalization xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST normalization
+ %att.global.attributes;
+ %att.declarable.attributes;
+method (silent|markup) "silent"  >
+<!--doc:encodes the presence of music notation in a text [15.3. Notated Music in Written Text] -->
+<!ELEMENT notatedMusic (%model.labelLike;|%model.ptrLike;|graphic|binaryObject|seg)*>
+<!ATTLIST notatedMusic xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST notatedMusic
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(note) contains a note or annotation. [3.9.1. Notes and Simple Annotation 2.2.6. The Notes Statement 3.12.2.8. Notes and Statement of Language 10.3.5.4. Notes within Entries] -->
+<!ELEMENT note %macro.specialPara;>
+<!ATTLIST note xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST note
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.written.attributes;
+ %att.anchoring.attributes;
+ %att.cmc.attributes; >
+<!--doc:(note group) contains a group of notes [3.9.1.1. Encoding Grouped Notes] -->
+<!ELEMENT noteGrp (((desc)*,(note|noteGrp)+))>
+<!ATTLIST noteGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST noteGrp
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.written.attributes;
+ %att.anchoring.attributes;
+ %att.cmc.attributes; >
+<!--doc:(notes statement) collects together any notes providing information about a text additional to that recorded in other parts of the bibliographic description. [2.2.6. The Notes Statement 2.2. The File Description] -->
+<!ELEMENT notesStmt (%model.noteLike;|relatedItem)+>
+<!ATTLIST notesStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST notesStmt
+ %att.global.attributes; >
+<!--doc:(number) contains a number, written in any form. [3.6.3. Numbers and
+Measures] -->
+<!ELEMENT num %macro.phraseSeq;>
+<!ATTLIST num xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST num
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.ranging.attributes;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+value %teidata.numeric;  #IMPLIED >
+<!--doc:(number) indicates grammatical number associated with a form, as given in a dictionary. [10.3.1. Information on Written and Spoken Forms 10.3.2. Grammatical Information] -->
+<!ELEMENT number %macro.paraContent;>
+<!ATTLIST number xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST number
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(numeric value) represents the value part of a feature-value specification which contains a numeric value or range. [19.3. Other Atomic Feature Values] -->
+<!ELEMENT numeric  EMPTY>
+<!ATTLIST numeric xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST numeric
+ %att.global.attributes;
+ %att.datcat.attributes;
+value %teidata.numeric;  #REQUIRED
+max %teidata.numeric;  #IMPLIED
+trunc %teidata.truthValue;  #IMPLIED >
+<!--doc:(canonical name) contains the definition for a canonical name or name component of any kind. [14.3.7. Names and Nyms] -->
+<!ELEMENT nym (((idno)*,(%model.entryPart;)*,(%model.pLike;)*,(nym)*))>
+<!ATTLIST nym xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST nym
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.sortable.attributes;
+parts CDATA  #IMPLIED >
+<!--doc:(orthographic-form reference) in a dictionary example, indicates a reference to the orthographic form(s) of the headword. [10.4. Headword and Pronunciation References] -->
+<!ELEMENT oRef (#PCDATA|%model.gLike;|oRef)*>
+<!ATTLIST oRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST oRef
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+ %att.pointing.attributes;
+ %att.notated.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:contains a description of a single identifiable physical object. [14.3.6. Objects] -->
+<!ELEMENT object (((objectIdentifier)+,(%model.headLike;)*,((%model.pLike;)+|(msContents|physDesc|history|additional)*),(%model.noteLike;|%model.biblLike;|linkGrp|link)*,(object)*))>
+<!ATTLIST object xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST object
+ %att.global.attributes;
+ %att.sortable.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes;
+ %att.docStatus.attributes;
+ %att.canonical.attributes; >
+<!--doc:(object description) contains a description of the physical components making up the object which is being described. [11.7.1. Object Description] -->
+<!ELEMENT objectDesc ((%model.pLike;)+|((supportDesc)?,(layoutDesc)?))>
+<!ATTLIST objectDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST objectDesc
+ %att.global.attributes;
+form %teidata.enumerated;  #IMPLIED >
+<!--doc:(object identifier) groups one or more identifiers or pieces of locating information concerning a single object. [14.3.6. Objects] -->
+<!ELEMENT objectIdentifier (%model.placeNamePart;|institution|repository|collection|idno|msName|objectName|altIdentifier|address)+>
+<!ATTLIST objectIdentifier xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST objectIdentifier
+ %att.global.attributes; >
+<!--doc:(name of an object) contains a proper noun or noun phrase used to refer to an object. [14.2.5. Object Names] -->
+<!ELEMENT objectName %macro.phraseSeq;>
+<!ATTLIST objectName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST objectName
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(object type) contains a word or phrase describing the type of object being referred to. [11.3.2. Material and Object Type] -->
+<!ELEMENT objectType %macro.phraseSeq;>
+<!ATTLIST objectType xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST objectType
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(occupation) contains an informal description of a person's trade, profession or occupation. [16.2.2. The Participant Description] -->
+<!ELEMENT occupation %macro.specialPara;>
+<!ATTLIST occupation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST occupation
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+scheme %teidata.pointer;  #IMPLIED
+code %teidata.pointer;  #IMPLIED >
+<!--doc:(offset) marks that part of a relative temporal or spatial expression which indicates the direction of the offset between the two place names, dates, or times involved in the expression. [14.2.3. Place Names] -->
+<!ELEMENT offset %macro.phraseSeq;>
+<!ATTLIST offset xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST offset
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(opener) groups together dateline, byline, salutation, and similar phrases appearing as a preliminary group at the start of a division, especially of a letter. [4.2. Elements Common to All Divisions] -->
+<!ELEMENT opener (#PCDATA|%model.gLike;|%model.phrase;|argument|byline|dateline|epigraph|salute|signed|%model.global;)*>
+<!ATTLIST opener xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST opener
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(organization) provides information about an identifiable organization such as a business, a tribe, or any other grouping of people. [14.3.3. Organizational Data] -->
+<!ELEMENT org (((%model.headLike;)*,((%model.pLike;)*|(%model.labelLike;|%model.nameLike;|%model.placeLike;|%model.orgPart;|%model.milestoneLike;)*),(%model.noteLike;|%model.biblLike;|linkGrp|link|ptr)*,(%model.personLike;)*))>
+<!ATTLIST org xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST org
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.editLike.attributes;
+ %att.sortable.attributes;
+role NMTOKENS  #IMPLIED >
+<!--doc:(organization name) contains an organizational name. [14.2.2. Organizational Names] -->
+<!ELEMENT orgName %macro.phraseSeq;>
+<!ATTLIST orgName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST orgName
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(original form) contains a reading which is marked as following the original, rather than being normalized or corrected. [3.5.2. Regularization and
+Normalization 13. Critical Apparatus] -->
+<!ELEMENT orig %macro.paraContent;>
+<!ATTLIST orig xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST orig
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(origin date) contains any form of date, used to identify the date of origin for a manuscript, manuscript part, or other object. [11.3.1. Origination] -->
+<!ELEMENT origDate (#PCDATA|%model.gLike;|%model.phrase;|%model.global;)*>
+<!ATTLIST origDate xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST origDate
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.calendarSystem.attributes;
+ %att.dimensions.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes; >
+<!--doc:(origin place) contains any form of place name, used to identify the place of origin for a manuscript, manuscript part, or other object. [11.3.1. Origination] -->
+<!ELEMENT origPlace %macro.phraseSeq;>
+<!ATTLIST origPlace xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST origPlace
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(origin) contains any descriptive or other information concerning the origin of a manuscript, manuscript part, or other object. [11.8. History] -->
+<!ELEMENT origin %macro.specialPara;>
+<!ATTLIST origin xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST origin
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(orthographic form) gives the orthographic form of a dictionary headword. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT orth %macro.paraContent;>
+<!ATTLIST orth xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST orth
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+ %att.partials.attributes;
+ %att.notated.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:describes the rendering or appearance intended for all occurrences of an element in a specified context for a specified type of output. -->
+<!ELEMENT outputRendition (#PCDATA)>
+<!ATTLIST outputRendition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST outputRendition
+ %att.global.attributes;
+scope %teidata.enumerated;  #IMPLIED >
+<!--doc:(paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents] -->
+<!ELEMENT p %macro.paraContent;>
+<!ATTLIST p xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST p
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.fragmentable.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(pronunciation reference) in a dictionary example, indicates a reference to the pronunciation(s) of the headword. [10.4. Headword and Pronunciation References] -->
+<!ELEMENT pRef (#PCDATA|%model.gLike;|pRef)*>
+<!ATTLIST pRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pRef
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.lexicographic.attributes;
+ %att.notated.attributes; >
+<!--doc:provides a parameter for a model behaviour by supplying its name and an XPath expression identifying the location of its content. [23.5.4.5. Behaviours and their parameters] -->
+<!ELEMENT param  EMPTY>
+<!ATTLIST param xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST param
+ %att.global.attributes;
+name %teidata.enumerated;  #REQUIRED
+value %teidata.xpath;  #REQUIRED >
+<!--doc:list of parameter specifications -->
+<!ELEMENT paramList (paramSpec)*>
+<!ATTLIST paramList xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST paramList
+ %att.global.attributes; >
+<!--doc:supplies specification for one parameter of a model behaviour [23.5.4.8. Defining a processing model] -->
+<!ELEMENT paramSpec (%model.identEquiv;|%model.descLike;)*>
+<!ATTLIST paramSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST paramSpec
+ %att.global.attributes;
+ %att.identified.attributes; >
+<!--doc:(participation description) describes the identifiable speakers, voices, or other participants in any kind of text or other persons named or otherwise referred to in a text, edition, or metadata. [16.2. Contextual Information] -->
+<!ELEMENT particDesc ((%model.pLike;)+|(%model.personLike;|listPerson|listOrg)+)>
+<!ATTLIST particDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST particDesc
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(path) defines any line passing through two or more points within a surface element. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription] -->
+<!ELEMENT path  EMPTY>
+<!ATTLIST path xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST path
+ %att.global.attributes;
+ %att.coordinated.attribute.start;
+ %att.coordinated.attribute.ulx;
+ %att.coordinated.attribute.uly;
+ %att.coordinated.attribute.lrx;
+ %att.coordinated.attribute.lry;
+ %att.typed.attributes;
+ %att.written.attributes;
+points CDATA  #IMPLIED >
+<!--doc:(pause) marks a pause either between or within utterances. [8.3.2. Pausing] -->
+<!ELEMENT pause  EMPTY>
+<!ATTLIST pause xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pause
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.typed.attributes;
+ %att.ascribed.directed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(page beginning) marks the beginning of a new page in a paginated document. [3.11.3. Milestone
+Elements] -->
+<!ELEMENT pb  EMPTY>
+<!ATTLIST pb xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pb
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.edition.attributes;
+ %att.spanning.attributes;
+ %att.breaking.attributes;
+ %att.cmc.attributes; >
+<!--doc:(punctuation character) contains a character or string of characters regarded as constituting a single punctuation mark. [18.1.2. Below the Word Level 18.4.2. Lightweight Linguistic Annotation] -->
+<!ELEMENT pc (#PCDATA|%model.gLike;|c|%model.pPart.edit;)*>
+<!ATTLIST pc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pc
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.linguistic.attributes;
+ %att.cmc.attributes;
+force (strong|weak|inter) #IMPLIED
+unit %teidata.enumerated;  #IMPLIED
+pre %teidata.truthValue;  #IMPLIED >
+<!--doc:(person) contains an indication of the grammatical person (1st, 2nd, 3rd, etc.) associated with a given inflected form in a dictionary. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT per %macro.paraContent;>
+<!ATTLIST per xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST per
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(performance) contains a section of front or back matter describing how a dramatic piece is to be performed in general or how it was performed on some specific occasion. [7.1.3. Records of Performances 7.1. Front and Back Matter
+ ] -->
+<!ELEMENT performance (((%model.divTop;|%model.global;)*,((%model.common;),(%model.global;)*)+,((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST performance xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST performance
+ %att.global.attributes; >
+<!--doc:(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. [14.2.1. Personal Names] -->
+<!ELEMENT persName %macro.phraseSeq;>
+<!ATTLIST persName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST persName
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(personal pronouns) indicates the personal pronouns used, or assumed to be used, by the individual being described. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT persPronouns %macro.phraseSeq;>
+<!ATTLIST persPronouns xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST persPronouns
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+evidence %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+value NMTOKENS  #IMPLIED >
+<!--doc:(person) provides information about an identifiable individual, for example a participant in a language interaction, or a person referred to in a historical source. [14.3.2. The Person Element 16.2.2. The Participant Description] -->
+<!ELEMENT person ((%model.pLike;)+|(%model.personPart;|%model.global;|ptr)*)>
+<!ATTLIST person xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST person
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.sortable.attributes;
+role NMTOKENS  #IMPLIED
+sex CDATA  #IMPLIED
+gender CDATA  #IMPLIED
+age %teidata.enumerated;  #IMPLIED >
+<!--doc:(personal group) describes a group of individuals treated as a single person for analytic purposes. [16.2.2. The Participant Description] -->
+<!ELEMENT personGrp ((%model.pLike;)+|(%model.personPart;|%model.global;)*)>
+<!ATTLIST personGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST personGrp
+ %att.global.attributes;
+ %att.sortable.attributes;
+role %teidata.enumerated;  #IMPLIED
+sex CDATA  #IMPLIED
+gender CDATA  #IMPLIED
+age %teidata.enumerated;  #IMPLIED
+size CDATA  #IMPLIED >
+<!--doc:provides information about one of the personalities identified for a given individual, where an individual has multiple personalities. [14.3.2. The Person Element] -->
+<!ELEMENT persona ((%model.pLike;)+|(%model.personPart;|%model.global;)*)>
+<!ATTLIST persona xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST persona
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.sortable.attributes;
+role NMTOKENS  #IMPLIED
+sex CDATA  #IMPLIED
+gender CDATA  #IMPLIED
+age %teidata.enumerated;  #IMPLIED >
+<!--doc:(phrase) represents a grammatical phrase. [18.1. Linguistic Segment Categories] -->
+<!ELEMENT phr %macro.phraseSeq;>
+<!ATTLIST phr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST phr
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(physical description) contains a full physical description of a manuscript, manuscript part, or other object optionally subdivided using more specialized elements from the model.physDescPart class. [11.7. Physical Description] -->
+<!ELEMENT physDesc (((%model.pLike;)*,(%model.physDescPart_sequenceOptional;)))>
+<!ATTLIST physDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST physDesc
+ %att.global.attributes; >
+<!--doc:(place) contains data about a geographic location [14.3.4. Places] -->
+<!ELEMENT place (((%model.headLike;)*,((%model.pLike;)*|(%model.labelLike;|%model.placeStateLike;|%model.eventLike;|name)*),(%model.noteLike;|%model.biblLike;|idno|ptr|linkGrp|link)*,(%model.placeLike;|listPlace)*))>
+<!ATTLIST place xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST place
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.editLike.attributes;
+ %att.sortable.attributes; >
+<!--doc:(place name) contains an absolute or relative place name. [14.2.3. Place Names] -->
+<!ELEMENT placeName %macro.phraseSeq;>
+<!ATTLIST placeName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST placeName
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(population) contains information about the population of a place. [14.3.4.3. States, Traits, and Events] -->
+<!ELEMENT population (((precision)*,(%model.headLike;)*,(((%model.pLike;)+|(%model.labelLike;)+),(%model.noteLike;|%model.biblLike;)*)?,(population)*))>
+<!ATTLIST population xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST population
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(part of speech) indicates the part of speech assigned to a dictionary headword such as noun, verb, or adjective. [10.3.2. Grammatical Information] -->
+<!ELEMENT pos %macro.paraContent;>
+<!ATTLIST pos xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pos
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:a written (or spoken) contribution to a CMC interaction which has been composed (or recorded) by its author in its entirety before being transmitted over a network (e.g., the internet) and made available on the monitor or screen of the other parties en bloc. [9.3.1. CMC Posts] -->
+<!ELEMENT post (#PCDATA|%model.headLike;|opener|%model.pLike;|%model.gLike;|%model.phrase;|%model.inter;|%model.global;|lg|%model.lLike;|%model.divBottom;)*>
+<!ATTLIST post xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST post
+ %att.global.attributes;
+ %att.cmc.attributes;
+ %att.indentation.attributes;
+ %att.ascribed.attributes;
+ %att.datable.attributes;
+ %att.fragmentable.attributes;
+ %att.docStatus.attributes;
+ %att.timed.attributes;
+ %att.typed.attributes;
+ %att.canonical.attributes;
+modality %teidata.enumerated;  #IMPLIED
+replyTo CDATA  #IMPLIED >
+<!--doc:(postal box or post office box) contains a number or other identifier for some postal delivery point other than a street address. [3.6.2. Addresses] -->
+<!ELEMENT postBox (#PCDATA)>
+<!ATTLIST postBox xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST postBox
+ %att.global.attributes; >
+<!--doc:(postal code) contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail. [3.6.2. Addresses] -->
+<!ELEMENT postCode (#PCDATA)>
+<!ATTLIST postCode xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST postCode
+ %att.global.attributes; >
+<!--doc:contains a postscript, e.g. to a letter. [4.2. Elements Common to All Divisions] -->
+<!ELEMENT postscript (((%model.global;|%model.divTopPart;)*,(%model.common;),(%model.global;|%model.common;)*,((%model.divBottomPart;),(%model.global;)*)*))>
+<!ATTLIST postscript xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST postscript
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:indicates the numerical accuracy or precision associated with some aspect of the text markup. [22.2. Indications of Precision] -->
+<!ELEMENT precision (%model.descLike;|%model.certLike;)*>
+<!ATTLIST precision xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST precision
+ %att.global.attributes;
+ %att.scoping.attributes;
+ %att.ranging.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED
+precision %teidata.certainty;  #IMPLIED
+stdDeviation %teidata.numeric;  #IMPLIED >
+<!--doc:(prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [17.2.3. Using Abbreviated Pointers] -->
+<!ELEMENT prefixDef (%model.pLike;)*>
+<!ATTLIST prefixDef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST prefixDef
+ %att.global.attributes;
+ %att.patternReplacement.attributes;
+ident %teidata.prefix;  #REQUIRED >
+<!--doc:(preparedness) describes the extent to which a text may be regarded as prepared or spontaneous. [16.2.1. The Text Description] -->
+<!ELEMENT preparedness %macro.phraseSeq.limited;>
+<!ATTLIST preparedness xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST preparedness
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. The Title Statement] -->
+<!ELEMENT principal %macro.phraseSeq.limited;>
+<!ATTLIST principal xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST principal
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(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] -->
+<!ELEMENT profileDesc (%model.profileDescPart;)*>
+<!ATTLIST profileDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST profileDesc
+ %att.global.attributes; >
+<!--doc:(project description) describes in detail the aim or purpose for which an electronic file was encoded, together with any other relevant information concerning the process by which it was assembled or collected. [2.3.1. The Project Description 2.3. The Encoding Description 16.3.2. Declarable Elements] -->
+<!ELEMENT projectDesc (%model.pLike;)+>
+<!ATTLIST projectDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST projectDesc
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(prologue) contains the prologue to a drama, typically spoken by an actor out of character, possibly in association with a particular performance or venue. [7.1.2. Prologues and Epilogues 7.1. Front and Back Matter
+ ] -->
+<!ELEMENT prologue (((%model.divTop;|%model.global;)*,((%model.common;),(%model.global;)*)+,((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST prologue xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST prologue
+ %att.global.attributes; >
+<!--doc:(pronunciation) contains the pronunciation(s) of the word. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT pron %macro.paraContent;>
+<!ATTLIST pron xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pron
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.notated.attributes;
+ %att.partials.attributes;
+ %att.typed.attributes; >
+<!--doc:(provenance) contains any descriptive or other information concerning a single identifiable episode during the history of a manuscript, manuscript part, or other object after its creation but before its acquisition. [11.8. History] -->
+<!ELEMENT provenance %macro.specialPara;>
+<!ATTLIST provenance xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST provenance
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 17.1. Links] -->
+<!ELEMENT ptr  EMPTY>
+<!ATTLIST ptr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ptr
+ %att.cReferencing.attributes;
+ %att.declaring.attributes;
+ %att.global.attributes;
+ %att.internetMedia.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(publication place) contains the name of the place where a bibliographic item was published. [3.12.2.4. Imprint, Size of a Document, and Reprint Information] -->
+<!ELEMENT pubPlace %macro.phraseSeq;>
+<!ATTLIST pubPlace xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST pubPlace
+ %att.global.attributes;
+ %att.naming.attributes; >
+<!--doc:(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] -->
+<!ELEMENT publicationStmt (((%model.publicationStmtPart.agency;),(%model.publicationStmtPart.detail;)*)+|(%model.pLike;)+)>
+<!ATTLIST publicationStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST publicationStmt
+ %att.global.attributes; >
+<!--doc:(publisher) provides the name of the organization responsible for the publication or distribution of a bibliographic item. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 2.2.4. Publication, Distribution, Licensing, etc.] -->
+<!ELEMENT publisher %macro.phraseSeq;>
+<!ATTLIST publisher xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST publisher
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:specifies editorial practice adopted with respect to punctuation marks in the original. [2.3.3. The Editorial Practices Declaration 3.2. Treatment of Punctuation] -->
+<!ELEMENT punctuation (%model.pLike;)*>
+<!ATTLIST punctuation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST punctuation
+ %att.declarable.attributes;
+ %att.global.attributes;
+marks (none|some|all) #IMPLIED
+placement (internal|external) #IMPLIED >
+<!--doc:characterizes a single purpose or communicative function of the text. [16.2.1. The Text Description] -->
+<!ELEMENT purpose %macro.phraseSeq.limited;>
+<!ATTLIST purpose xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST purpose
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+degree %teidata.certainty;  #IMPLIED >
+<!--doc:(quoted) contains material which is distinguished from the surrounding text using quotation marks or a similar method, for any one of a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used. [3.3.3. Quotation] -->
+<!ELEMENT q %macro.specialPara;>
+<!ATTLIST q xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST q
+ %att.global.attributes;
+ %att.ascribed.directed.attributes;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(quotation) specifies editorial practice adopted with respect to quotation marks in the original. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT quotation (%model.pLike;)*>
+<!ATTLIST quotation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST quotation
+ %att.global.attributes;
+ %att.declarable.attributes;
+marks (none|some|all) #IMPLIED >
+<!--doc:(quotation) contains a phrase or passage attributed by the narrator or author to some agency external to the text. [3.3.3. Quotation 4.3.1. Grouped Texts] -->
+<!ELEMENT quote %macro.specialPara;>
+<!ATTLIST quote xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST quote
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.msExcerpt.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(ruby base) contains the base text annotated by a ruby gloss. [3.4.2. Ruby Annotations] -->
+<!ELEMENT rb %macro.phraseSeq;>
+<!ATTLIST rb xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rb
+ %att.global.attributes;
+ %att.typed.attributes; >
+<!--doc:(reading) contains a single reading within a textual variation. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT rdg (#PCDATA|%model.divLike;|%model.divPart;|titlePage|argument|byline|docAuthor|docDate|docEdition|docImprint|docTitle|epigraph|imprimatur|titlePart|epilogue|performance|prologue|set|%model.gLike;|%model.phrase;|%model.inter;|%model.global;|%model.rdgPart;)*>
+<!ATTLIST rdg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rdg
+ %att.global.attributes;
+ %att.textCritical.attributes;
+ %att.witnessed.attributes; >
+<!--doc:(reading group) within a textual variation, groups two or more readings perceived to have a genetic relationship or other affinity. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT rdgGrp (((lem)?,(%model.rdgLike;|%model.noteLike;|witDetail|wit|rdgGrp)*))>
+<!ATTLIST rdgGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rdgGrp
+ %att.global.attributes;
+ %att.textCritical.attributes; >
+<!--doc:(related entry) contains a dictionary entry for a lexical item related to the headword, such as a compound phrase or derived form, embedded inside a larger entry. [10.3.6. Related Entries] -->
+<!ELEMENT re (#PCDATA|%model.gLike;|sense|%model.entryPart.top;|%model.phrase;|%model.global;)*>
+<!ATTLIST re xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST re
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.typed.attributes; >
+<!--doc:(recorded history) provides information about the source and revision status of the parent manuscript or object description itself. [11.9.1. Administrative Information] -->
+<!ELEMENT recordHist ((%model.pLike;)+|(source,(change)*))>
+<!ATTLIST recordHist xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST recordHist
+ %att.global.attributes; >
+<!--doc:(recording event) provides details of an audio or video recording event used as the source of a spoken text, either directly or from a public broadcast. [8.2. Documenting the Source of Transcribed Speech 16.3.2. Declarable Elements] -->
+<!ELEMENT recording (%model.recordingPart;|%model.pLike;)*>
+<!ATTLIST recording xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST recording
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.duration.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  "audio"  >
+<!--doc:(recording statement) describes a set of recordings used as the basis for transcription of a spoken text. [8.2. Documenting the Source of Transcribed Speech 2.2.7. The Source Description] -->
+<!ELEMENT recordingStmt ((%model.pLike;)+|(recording)+)>
+<!ATTLIST recordingStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST recordingStmt
+ %att.global.attributes; >
+<!--doc:indicates one or more cancelled interventions in a document which have subsequently been marked as reaffirmed or repeated. [12.3.4.4. Confirmation, Cancellation, and Reinstatement of Modifications] -->
+<!ELEMENT redo  EMPTY>
+<!ATTLIST redo xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST redo
+ %att.global.attributes;
+ %att.spanning.attributes;
+ %att.transcriptional.attributes;
+ %att.dimensions.attributes;
+target CDATA  #IMPLIED >
+<!--doc:(reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 17.1. Links] -->
+<!ELEMENT ref %macro.paraContent;>
+<!ATTLIST ref xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ref
+ %att.cReferencing.attributes;
+ %att.declaring.attributes;
+ %att.global.attributes;
+ %att.internetMedia.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(reference state) specifies one component of a canonical reference defined by the milestone method. [2.3.6.3. Milestone Method 2.3.6. The Reference System Declaration] -->
+<!ELEMENT refState  EMPTY>
+<!ATTLIST refState xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST refState
+ %att.global.attributes;
+ %att.milestoneUnit.attributes;
+ %att.edition.attributes;
+length %teidata.count;  #IMPLIED
+delim %teidata.text;  #IMPLIED >
+<!--doc:(references declaration) specifies how canonical references are constructed for this text. [2.3.6.3. Milestone Method 2.3. The Encoding Description 2.3.6. The Reference System Declaration] -->
+<!ELEMENT refsDecl ((%model.pLike;)+|(citeStructure)+|(cRefPattern)+|(refState)+)>
+<!ATTLIST refsDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST refsDecl
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(regularization) contains a reading which has been regularized or normalized in some sense. [3.5.2. Regularization and
+Normalization 13. Critical Apparatus] -->
+<!ELEMENT reg %macro.paraContent;>
+<!ATTLIST reg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST reg
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(region) contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country. [14.2.3. Place Names] -->
+<!ELEMENT region %macro.phraseSeq;>
+<!ATTLIST region xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST region
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:contains or references some other bibliographic item which is related to the present one in some specified manner, for example as a constituent or alternative version of it. [3.12.2.7. Related Items] -->
+<!ELEMENT relatedItem (%model.biblLike;|%model.ptrLike;)?>
+<!ATTLIST relatedItem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST relatedItem
+ %att.global.attributes;
+ %att.typed.attributes;
+target %teidata.pointer;  #IMPLIED >
+<!--doc:(relationship) describes any kind of relationship or linkage amongst a specified group of places, events, persons, objects or other items. [14.3.2.3. Personal Relationships] -->
+<!ELEMENT relation (desc)?>
+<!ATTLIST relation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST relation
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.canonical.attributes;
+ %att.sortable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED
+name %teidata.enumerated;  #IMPLIED
+active CDATA  #IMPLIED
+mutual CDATA  #IMPLIED
+passive CDATA  #IMPLIED >
+<!--doc:(remarks) contains any commentary or discussion about the usage of an element, attribute, class, or entity not otherwise documented within the containing element. [23.5. Element Specifications 23.5.3. Attribute List Specification 23.6. Class Specifications 23.7. Macro Specifications] -->
+<!ELEMENT remarks (%model.pLike;)+>
+<!ATTLIST remarks xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST remarks
+ %att.global.attributes;
+ %att.combinable.attributes;
+ %att.translatable.attributes;
+ident %teidata.text;  #IMPLIED >
+<!--doc:(rendition) supplies information about the rendition or appearance of one or more elements in the source text. [2.3.4. The Tagging Declaration] -->
+<!ELEMENT rendition %macro.limitedContent;>
+<!ATTLIST rendition xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rendition
+ %att.global.attributes;
+ %att.styleDef.attributes;
+scope %teidata.enumerated;  #IMPLIED
+selector %teidata.text;  #IMPLIED >
+<!--doc:(repository) contains the name of a repository within which manuscripts or other objects are stored, possibly forming part of an institution. [11.4. The Manuscript Identifier] -->
+<!ELEMENT repository %macro.phraseSeq.limited;>
+<!ATTLIST repository xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST repository
+ %att.global.attributes;
+ %att.naming.attributes; >
+<!--doc:(residence) describes a person's present or past places of residence. [16.2.2. The Participant Description] -->
+<!ELEMENT residence %macro.phraseSeq;>
+<!ATTLIST residence xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST residence
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED >
+<!--doc:(responsibility) contains a phrase describing the nature of a person's intellectual responsibility, or an organization's role in the production or distribution of a work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement] -->
+<!ELEMENT resp %macro.phraseSeq.limited;>
+<!ATTLIST resp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST resp
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(statement of responsibility) supplies a statement of responsibility for the intellectual content of a text, edition, recording, or series, where the specialized elements for authors, editors, etc. do not suffice or do not apply. May also be used to encode information about individuals or organizations which have played a role in the production or distribution of a bibliographic work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.2. The Edition Statement 2.2.5. The Series Statement] -->
+<!ELEMENT respStmt (((((resp)+,(%model.nameLike.agent;)+)|((%model.nameLike.agent;)+,(resp)+)),(note)*))>
+<!ATTLIST respStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST respStmt
+ %att.global.attributes;
+ %att.canonical.attributes; >
+<!--doc:(responsibility) identifies the individual(s) responsible for some aspect of the content or markup of particular element(s). [22.3. Attribution of Responsibility] -->
+<!ELEMENT respons (%model.descLike;|%model.certLike;)*>
+<!ATTLIST respons xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST respons
+ %att.global.attributes;
+ %att.scoping.attributes;
+locus NMTOKENS  #REQUIRED >
+<!--doc:(restore) indicates restoration of text to an earlier state by cancellation of an editorial or authorial marking or instruction. [12.3.1.6. Cancellation of Deletions and Other Markings] -->
+<!ELEMENT restore %macro.paraContent;>
+<!ATTLIST restore xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST restore
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes; >
+<!--doc:contains a sequence of writing which has been retraced, for example by over-inking, to clarify or fix it. [12.3.4.3. Fixation and Clarification] -->
+<!ELEMENT retrace %macro.paraContent;>
+<!ATTLIST retrace xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST retrace
+ %att.global.attributes;
+ %att.spanning.attributes;
+ %att.transcriptional.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] -->
+<!ELEMENT revisionDesc ((list)+|(listChange)+|(change)+)>
+<!ATTLIST revisionDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST revisionDesc
+ %att.global.attributes;
+ %att.docStatus.attributes; >
+<!--doc:marks the rhyming part of a metrical line. [6.5. Rhyme] -->
+<!ELEMENT rhyme %macro.paraContent;>
+<!ATTLIST rhyme xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rhyme
+ %att.global.attributes;
+ %att.typed.attributes;
+label %teidata.word;  #IMPLIED >
+<!--doc:(role) contains the name of a dramatic role, as given in a cast list. [7.1.4. Cast Lists] -->
+<!ELEMENT role %macro.phraseSeq;>
+<!ATTLIST role xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST role
+ %att.global.attributes;
+gender CDATA  #IMPLIED >
+<!--doc:(role description) describes a character's role in a drama. [7.1.4. Cast Lists] -->
+<!ELEMENT roleDesc %macro.phraseSeq;>
+<!ATTLIST roleDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST roleDesc
+ %att.global.attributes; >
+<!--doc:(role name) contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank. [14.2.1. Personal Names] -->
+<!ELEMENT roleName %macro.phraseSeq;>
+<!ATTLIST roleName xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST roleName
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(root node) represents the root node of a tree. [20.2. Trees] -->
+<!ELEMENT root (label)?>
+<!ATTLIST root xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST root
+ %att.global.attributes;
+value %teidata.pointer;  #IMPLIED
+children CDATA  #REQUIRED
+ord %teidata.xTruthValue;  #IMPLIED
+outDegree %teidata.count;  #IMPLIED >
+<!--doc:(row) contains one row of a table. [15.1.1. TEI Tables] -->
+<!ELEMENT row (cell)+>
+<!ATTLIST row xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST row
+ %att.global.attributes;
+ %att.tableDecoration.attributes; >
+<!--doc:(referencing string) contains a general purpose name or referring string. [14.2.1. Personal Names 3.6.1. Referring Strings] -->
+<!ELEMENT rs %macro.phraseSeq;>
+<!ATTLIST rs xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rs
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(ruby text) contains a ruby text, an annotation closely associated with a passage of the main text. [3.4.2. Ruby Annotations] -->
+<!ELEMENT rt %macro.phraseSeq;>
+<!ATTLIST rt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rt
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.placement.attributes;
+ %att.transcriptional.attributes;
+target %teidata.pointer;  #IMPLIED
+from %teidata.pointer;  #IMPLIED
+to %teidata.pointer;  #IMPLIED >
+<!--doc:(rubric) contains the text of any rubric or heading attached to a particular manuscript item, that is, a string of words through which a manuscript or other object signals the beginning of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, typically in red ink, or by use of different size or type of script, or some other such visual device. [11.6.1. The msItem and msItemStruct Elements] -->
+<!ELEMENT rubric %macro.phraseSeq;>
+<!ATTLIST rubric xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST rubric
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.msExcerpt.attributes; >
+<!--doc:(ruby container) contains a passage of base text along with its associated ruby gloss(es). [3.4.2. Ruby Annotations] -->
+<!ELEMENT ruby ((rb,(rt)+))>
+<!ATTLIST ruby xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST ruby
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(s-unit) contains a sentence-like division of a text. [18.1. Linguistic Segment Categories 8.4.1. Segmentation] -->
+<!ELEMENT s %macro.phraseSeq;>
+<!ATTLIST s xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST s
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(speech or thought) indicates passages thought or spoken aloud, whether explicitly indicated in the source or not, whether directly or indirectly reported, whether by real people or fictional characters. [3.3.3. Quotation] -->
+<!ELEMENT said %macro.specialPara;>
+<!ATTLIST said xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST said
+ %att.global.attributes;
+ %att.ascribed.directed.attributes;
+ %att.cmc.attributes;
+aloud %teidata.xTruthValue;  #IMPLIED
+direct %teidata.xTruthValue;  "true"  >
+<!--doc:(salutation) contains a salutation or greeting prefixed to a foreword, dedicatory epistle, or other division of a text, or the salutation in the closing of a letter, preface, etc. [4.2.2. Openers and Closers] -->
+<!ELEMENT salute %macro.paraContent;>
+<!ATTLIST salute xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST salute
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(sampling declaration) contains a prose description of the rationale and methods used in selecting texts, or parts of a text, for inclusion in the resource. [2.3.2. The Sampling Declaration 2.3. The Encoding Description 16.3.2. Declarable Elements] -->
+<!ELEMENT samplingDecl (%model.pLike;)+>
+<!ATTLIST samplingDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST samplingDecl
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(schema reference) describes or points to a related customization or schema file [2.3.10. The Schema Specification] -->
+<!ELEMENT schemaRef (((%model.descLike;)?))>
+<!ATTLIST schemaRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST schemaRef
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.resourced.attributes;
+key %teidata.xmlName;  #IMPLIED >
+<!--doc:(schema specification) generates a TEI-conformant schema and documentation for it. [2.3. The Encoding Description 23.2. Modules and Schemas 24.5.1. Making a Unified ODD] -->
+<!ELEMENT schemaSpec (((%model.identEquiv;|%model.descLike;)*,(%model.oddRef;|%model.oddDecl;|listRef)*))>
+<!ATTLIST schemaSpec xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST schemaSpec
+ %att.global.attributes;
+ %att.identified.attributes;
+ %att.namespaceable.attributes;
+ %att.docStatus.attributes;
+start NMTOKENS  "TEI" 
+prefix CDATA  #IMPLIED
+targetLang %teidata.language;  #IMPLIED
+docLang CDATA  #IMPLIED
+defaultExceptions CDATA  "http://www.tei-c.org/ns/1.0 teix:egXML"  >
+<!--doc:(script description) contains a description of the scripts used in a manuscript or other object. [11.7.2.1. Writing] -->
+<!ELEMENT scriptDesc ((%model.pLike;)+|((summary)?,(scriptNote)+))>
+<!ATTLIST scriptDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST scriptDesc
+ %att.global.attributes; >
+<!--doc:describes a particular script distinguished within the description of a manuscript or similar resource. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT scriptNote %macro.specialPara;>
+<!ATTLIST scriptNote xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST scriptNote
+ %att.global.attributes;
+ %att.handFeatures.attributes; >
+<!--doc:(script statement) contains a citation giving details of the script used for a spoken text. [8.2. Documenting the Source of Transcribed Speech 2.2.7. The Source Description 16.3.2. Declarable Elements] -->
+<!ELEMENT scriptStmt ((%model.pLike;)+|%model.biblLike;)>
+<!ATTLIST scriptStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST scriptStmt
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(seal) contains a description of one seal or similar applied to the object described [11.7.3.2. Seals] -->
+<!ELEMENT seal (%model.pLike;|decoNote)+>
+<!ATTLIST seal xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST seal
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED
+contemporary %teidata.xTruthValue;  #IMPLIED >
+<!--doc:(seal description) describes the seals or similar items related to the object described, either as a series of paragraphs or as a series of seal elements. [11.7.3.2. Seals] -->
+<!ELEMENT sealDesc ((%model.pLike;)+|((summary)?,(decoNote|seal|condition)+))>
+<!ATTLIST sealDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sealDesc
+ %att.global.attributes; >
+<!--doc:(second folio) marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for it. [11.3.7. Catchwords, Signatures, Secundo Folio] -->
+<!ELEMENT secFol %macro.phraseSeq;>
+<!ATTLIST secFol xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST secFol
+ %att.global.attributes; >
+<!--doc:(secluded text) Secluded. Marks text present in the source which the editor believes to be genuine but out of its original place (which is unknown). [12.3.1.7. Text Omitted from or Supplied in the Transcription] -->
+<!ELEMENT secl %macro.paraContent;>
+<!ATTLIST secl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST secl
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+reason CDATA  #IMPLIED >
+<!--doc:(arbitrary segment) represents any segmentation of text below the chunk level. [17.3. Blocks, Segments, and Anchors 6.2. Components of the Verse Line 7.2.5. Speech Contents] -->
+<!ELEMENT seg %macro.paraContent;>
+<!ATTLIST seg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST seg
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.written.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(segmentation) describes the principles according to which the text has been segmented, for example into sentences, tone-units, graphemic strata, etc. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT segmentation (%model.pLike;)+>
+<!ATTLIST segmentation xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST segmentation
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:groups together all information relating to one word sense in a dictionary entry, for example definitions, examples, and translation equivalents. [10.2. The Structure of Dictionary Entries] -->
+<!ELEMENT sense (#PCDATA|%model.gLike;|sense|%model.entryPart.top;|%model.phrase;|%model.global;)*>
+<!ATTLIST sense xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sense
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+level %teidata.count;  #IMPLIED >
+<!--doc:indicates that the constructs referenced by its children form a sequence [23.5.1. Defining Content Models] -->
+<!ELEMENT sequence (%model.contentPart;)+>
+<!ATTLIST sequence xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sequence
+ %att.global.attributes;
+ %att.repeatable.attributes;
+preserveOrder %teidata.truthValue;  #IMPLIED >
+<!--doc:(series information) contains information about the series in which a book or other bibliographic item has appeared. [3.12.2.1. Analytic, Monographic, and Series Levels] -->
+<!ELEMENT series (#PCDATA|%model.gLike;|title|%model.ptrLike;|editor|respStmt|biblScope|idno|textLang|%model.global;|availability)*>
+<!ATTLIST series xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST series
+ %att.global.attributes; >
+<!--doc:(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] -->
+<!ELEMENT seriesStmt ((%model.pLike;)+|((title)+,(editor|respStmt)*,(idno|biblScope)*))>
+<!ATTLIST seriesStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST seriesStmt
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(setting) contains a description of the setting, time, locale, appearance, etc., of the action of a play, typically found in the front matter of a printed performance text (not a stage direction). [7.1. Front and Back Matter
+ ] -->
+<!ELEMENT set (((%model.headLike;|%model.global;)*,((%model.common;),(%model.global;)*)*))>
+<!ATTLIST set xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST set
+ %att.global.attributes; >
+<!--doc:describes one particular setting in which a language interaction takes place. [16.2.3. The Setting Description] -->
+<!ELEMENT setting ((%model.pLike;)+|(%model.nameLike.agent;|%model.dateLike;|%model.settingPart;)*)>
+<!ATTLIST setting xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST setting
+ %att.global.attributes;
+ %att.ascribed.attributes; >
+<!--doc:(setting description) describes the setting or settings within which a language interaction takes place, or other places otherwise referred to in a text, edition, or metadata. [16.2. Contextual Information 2.4. The Profile Description] -->
+<!ELEMENT settingDesc ((%model.pLike;)+|(setting|%model.placeLike;|listPlace)+)>
+<!ATTLIST settingDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST settingDesc
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(settlement) contains the name of a settlement such as a city, town, or village identified as a single geo-political or administrative unit. [14.2.3. Place Names] -->
+<!ELEMENT settlement %macro.phraseSeq;>
+<!ATTLIST settlement xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST settlement
+ %att.global.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(sex) specifies the sex of an organism. [14.3.2.1. Personal Characteristics] -->
+<!ELEMENT sex %macro.phraseSeq;>
+<!ATTLIST sex xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sex
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.datable.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED
+value CDATA  #IMPLIED >
+<!--doc:(shift) marks the point at which some paralinguistic feature of a series of utterances by any one speaker changes. [8.3.6. Shifts] -->
+<!ELEMENT shift  EMPTY>
+<!ATTLIST shift xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST shift
+ %att.global.attributes;
+ %att.ascribed.attributes;
+ %att.cmc.attributes;
+feature %teidata.enumerated;  #IMPLIED
+new %teidata.enumerated;  "normal"  >
+<!--doc:(Latin for thus or so) contains text reproduced although apparently incorrect or inaccurate. [3.5.1. Apparent Errors] -->
+<!ELEMENT sic %macro.paraContent;>
+<!ATTLIST sic xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sic
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(signatures) contains discussion of the leaf or quire signatures found within a codex or similar object. [11.3.7. Catchwords, Signatures, Secundo Folio] -->
+<!ELEMENT signatures %macro.specialPara;>
+<!ATTLIST signatures xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST signatures
+ %att.global.attributes; >
+<!--doc:(signature) contains the closing salutation, etc., appended to a foreword, dedicatory epistle, or other division of a text. [4.2.2. Openers and Closers] -->
+<!ELEMENT signed %macro.paraContent;>
+<!ATTLIST signed xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST signed
+ %att.global.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(so called) contains a word or phrase for which the author or narrator indicates a disclaiming of responsibility, for example by the use of scare quotes or italics. [3.3.3. Quotation] -->
+<!ELEMENT soCalled %macro.phraseSeq;>
+<!ATTLIST soCalled xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST soCalled
+ %att.global.attributes;
+ %att.cmc.attributes; >
+<!--doc:(socio-economic status) contains an informal description of a person's perceived social or economic status. [16.2.2. The Participant Description] -->
+<!ELEMENT socecStatus %macro.phraseSeq;>
+<!ATTLIST socecStatus xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST socecStatus
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+scheme %teidata.pointer;  #IMPLIED
+code %teidata.pointer;  #IMPLIED >
+<!--doc:(sound) describes a sound effect or musical sequence specified within a screen play or radio script. [7.3.1. Technical Information 7.3. Other Types of Performance Text] -->
+<!ELEMENT sound %macro.paraContent;>
+<!ATTLIST sound xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sound
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+discrete %teidata.xTruthValue;  #IMPLIED >
+<!--doc:(source) describes the original source for the information contained with a manuscript or object description. [11.9.1.1. Record History] -->
+<!ELEMENT source %macro.specialPara;>
+<!ATTLIST source xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST source
+ %att.global.attributes; >
+<!--doc:(source description) describes the source(s) from which an electronic text was derived or generated, typically a bibliographic description in the case of a digitized text, or a phrase such as born digital for a text which has no previous existence. [2.2.7. The Source Description] -->
+<!ELEMENT sourceDesc ((%model.pLike;)+|(%model.biblLike;|%model.sourceDescPart;|%model.listLike;)+)>
+<!ATTLIST sourceDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sourceDesc
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:contains a transcription or other representation of a single source document potentially forming part of a dossier génétique or collection of sources. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription] -->
+<!ELEMENT sourceDoc (%model.global;|%model.graphicLike;|surface|surfaceGrp)+>
+<!ATTLIST sourceDoc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sourceDoc
+ %att.global.attributes;
+ %att.declaring.attributes; >
+<!--doc:(speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [3.13.2. Core Tags for Drama 3.13. Passages of Verse or Drama 7.2.2. Speeches and Speakers] -->
+<!ELEMENT sp (((%model.global;)*,(speaker,(%model.global;)*)?,((lg|%model.lLike;|%model.pLike;|%model.listLike;|%model.stageLike;|%model.attributable;),((%model.global;)*|q))+))>
+<!ATTLIST sp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sp
+ %att.global.attributes;
+ %att.ascribed.directed.attributes; >
+<!--doc:(speech group) contains a group of speeches or songs in a performance text presented in a source as constituting a single unit or number. [7.2.3. Grouped Speeches] -->
+<!ELEMENT spGrp (((%model.headLike;)*,(%model.global;|sp|%model.stageLike;)+))>
+<!ATTLIST spGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST spGrp
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.ascribed.directed.attributes; >
+<!--doc:(space) indicates the location of a significant space in the text. [12.4.1. Space] -->
+<!ELEMENT space (%model.descLike;|%model.certLike;)*>
+<!ATTLIST space xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST space
+ %att.global.attribute.xmlid;
+ %att.global.attribute.n;
+ %att.global.attribute.xmllang;
+ %att.global.attribute.xmlbase;
+ %att.global.attribute.xmlspace;
+ %att.global.rendition.attribute.rend;
+ %att.global.rendition.attribute.style;
+ %att.global.rendition.attribute.rendition;
+ %att.global.linking.attribute.corresp;
+ %att.global.linking.attribute.synch;
+ %att.global.linking.attribute.sameAs;
+ %att.global.linking.attribute.copyOf;
+ %att.global.linking.attribute.next;
+ %att.global.linking.attribute.prev;
+ %att.global.linking.attribute.exclude;
+ %att.global.linking.attribute.select;
+ %att.global.analytic.attribute.ana;
+ %att.global.facs.attribute.facs;
+ %att.global.change.attribute.change;
+ %att.global.responsibility.attribute.cert;
+ %att.global.source.attribute.source;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+resp CDATA  #IMPLIED
+dim (horizontal|vertical) #IMPLIED >
+<!--doc:associates an interpretative annotation directly with a span of text. [18.3. Spans and Interpretations] -->
+<!ELEMENT span %macro.phraseSeq.limited;>
+<!ATTLIST span xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST span
+ %att.global.attributes;
+ %att.interpLike.attributes;
+ %att.pointing.attributes;
+ %att.cmc.attributes;
+from %teidata.pointer;  #IMPLIED
+to %teidata.pointer;  #IMPLIED >
+<!--doc:(span group) collects together span tags. [18.3. Spans and Interpretations] -->
+<!ELEMENT spanGrp (((%model.descLike;)*,(span)*))>
+<!ATTLIST spanGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST spanGrp
+ %att.global.attributes;
+ %att.interpLike.attributes;
+ %att.cmc.attributes; >
+<!--doc:contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. [3.13.2. Core Tags for Drama] -->
+<!ELEMENT speaker %macro.phraseSeq;>
+<!ATTLIST speaker xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST speaker
+ %att.global.attributes; >
+<!--doc:(specification description) indicates that a description of the specified element, class, or macro should be included at this point within a document. [23.1.2. Element and Attribute Descriptions] -->
+<!ELEMENT specDesc  EMPTY>
+<!ATTLIST specDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST specDesc
+ %att.global.attributes;
+key %teidata.name;  #REQUIRED
+atts NMTOKENS  #IMPLIED >
+<!--doc:(specification group) contains any convenient grouping of specifications for use within the current module. [23.2. Modules and Schemas] -->
+<!ELEMENT specGrp (%model.oddDecl;|%model.oddRef;|%model.divPart;|listRef)*>
+<!ATTLIST specGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST specGrp
+ %att.global.attributes; >
+<!--doc:(reference to a specification group) indicates that the declarations contained by the specGrp referenced should be inserted at this point. [23.2. Modules and Schemas] -->
+<!ELEMENT specGrpRef  EMPTY>
+<!ATTLIST specGrpRef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST specGrpRef
+ %att.global.attributes;
+target %teidata.pointer;  #REQUIRED >
+<!--doc:(specification list) marks where a list of descriptions is to be inserted into the prose documentation. [23.1.2. Element and Attribute Descriptions] -->
+<!ELEMENT specList (specDesc)+>
+<!ATTLIST specList xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST specList
+ %att.global.attributes; >
+<!--doc:(sponsor) specifies the name of a sponsoring organization or institution. [2.2.1. The Title Statement] -->
+<!ELEMENT sponsor %macro.phraseSeq.limited;>
+<!ATTLIST sponsor xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST sponsor
+ %att.global.attributes;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(stage direction) contains any kind of stage direction within a dramatic text or fragment. [3.13.2. Core Tags for Drama 3.13. Passages of Verse or Drama 7.2.4. Stage Directions] -->
+<!ELEMENT stage %macro.specialPara;>
+<!ATTLIST stage xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST stage
+ %att.ascribed.directed.attributes;
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes;
+type NMTOKENS  #IMPLIED >
+<!--doc:(stamp) contains a word or phrase describing a stamp or similar device. [11.3.3. Watermarks and Stamps] -->
+<!ELEMENT stamp %macro.phraseSeq;>
+<!ATTLIST stamp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST stamp
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.datable.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:Functions as a container element for linked data, contextual information, and stand-off annotations embedded in a TEI document. [17.10. The standOff Container] -->
+<!ELEMENT standOff (%model.standOffPart;)+>
+<!ATTLIST standOff xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST standOff
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.declaring.attributes; >
+<!--doc:(state) contains a description of some status or quality attributed to a person, place, or organization often at some specific time or for a specific date range. [14.3.1. Basic Principles 14.3.2.1. Personal Characteristics] -->
+<!ELEMENT state (((precision)*,((state)+|((%model.headLike;)*,(%model.pLike;)+,(%model.noteLike;|%model.biblLike;)*)|(%model.labelLike;|%model.noteLike;|%model.biblLike;)*)))>
+<!ATTLIST state xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST state
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.typed.attributes;
+ %att.naming.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(standard values) specifies the format used when standardized date or number values are supplied. [2.3.3. The Editorial Practices Declaration 16.3.2. Declarable Elements] -->
+<!ELEMENT stdVals (%model.pLike;)+>
+<!ATTLIST stdVals xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST stdVals
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:contains a full street address including any name or number identifying a building as well as the name of the street or route on which it is located. [3.6.2. Addresses] -->
+<!ELEMENT street %macro.phraseSeq;>
+<!ATTLIST street xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST street
+ %att.global.attributes; >
+<!--doc:(stress) contains the stress pattern for a dictionary headword, if given separately. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT stress %macro.paraContent;>
+<!ATTLIST stress xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST stress
+ %att.global.attributes;
+ %att.notated.attributes; >
+<!--doc:(string value) represents the value part of a feature-value specification which contains a string. [19.3. Other Atomic Feature Values] -->
+<!ELEMENT string %macro.xtext;>
+<!ATTLIST string xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST string
+ %att.global.attributes;
+ %att.datcat.attributes; >
+<!--doc:(style definition language declaration) specifies the name of the formal language in which style or renditional information is supplied elsewhere in the document. The specific version of the scheme may also be supplied. [2.3.5. The Default Style Definition Language Declaration] -->
+<!ELEMENT styleDefDecl (%model.pLike;)*>
+<!ATTLIST styleDefDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST styleDefDecl
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.styleDef.attributes; >
+<!--doc:(subcategorization) contains subcategorization information (transitive/intransitive, countable/non-countable, etc.) [10.3.2. Grammatical Information] -->
+<!ELEMENT subc %macro.paraContent;>
+<!ATTLIST subc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST subc
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:(substitution) groups one or more deletions (or surplus text) with one or more additions when the combination is to be regarded as a single intervention in the text. [12.3.1.5. Substitutions] -->
+<!ELEMENT subst (add|surplus|del|%model.milestoneLike;)+>
+<!ATTLIST subst xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST subst
+ %att.global.attributes;
+ %att.transcriptional.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(substitution join) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [12.3.1.5. Substitutions] -->
+<!ELEMENT substJoin (%model.descLike;|%model.certLike;)*>
+<!ATTLIST substJoin xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST substJoin
+ %att.global.attributes;
+ %att.pointing.attributes;
+ %att.transcriptional.attributes;
+ %att.dimensions.attributes; >
+<!--doc:contains an overview of the available information concerning some aspect of an item or object (for example, its intellectual content, history, layout, typography etc.) as a complement or alternative to the more detailed information carried by more specific elements. [11.6. Intellectual Content] -->
+<!ELEMENT summary %macro.specialPara;>
+<!ATTLIST summary xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST summary
+ %att.global.attributes; >
+<!--doc:(super entry) groups a sequence of entries within any kind of lexical resource, such as a dictionary or lexicon which function as a single unit, for example a set of homographs. [10.1. Dictionary Body and Overall Structure] -->
+<!ELEMENT superEntry (((form)?,(entry)+)|dictScrap)>
+<!ATTLIST superEntry xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST superEntry
+ %att.global.attributes;
+ %att.entryLike.attributes;
+ %att.sortable.attributes; >
+<!--doc:(supplied) signifies text supplied by the transcriber or editor for any reason; for example because the original cannot be read due to physical damage, or because of an obvious omission by the author or scribe. [12.3.3.1. Damage, Illegibility, and Supplied Text] -->
+<!ELEMENT supplied %macro.paraContent;>
+<!ATTLIST supplied xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST supplied
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+reason CDATA  #IMPLIED >
+<!--doc:(support) contains a description of the materials etc. which make up the physical support for the written part of a manuscript or other object. [11.7.1. Object Description] -->
+<!ELEMENT support %macro.specialPara;>
+<!ATTLIST support xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST support
+ %att.global.attributes; >
+<!--doc:(support description) groups elements describing the physical support for the written part of a manuscript or other object. [11.7.1. Object Description] -->
+<!ELEMENT supportDesc ((%model.pLike;)+|((support)?,(extent)?,(foliation)*,(collation)?,(condition)?))>
+<!ATTLIST supportDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST supportDesc
+ %att.global.attributes;
+material %teidata.enumerated;  #IMPLIED >
+<!--doc:defines a written surface as a two-dimensional coordinate space, optionally grouping one or more graphic representations of that space, zones of interest within that space, and, when using an embedded transcription approach, transcriptions of the writing within them. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription] -->
+<!ELEMENT surface (((%model.global;|%model.labelLike;|%model.graphicLike;)*,((zone|line|path|surface|surfaceGrp),(%model.global;)*)*))>
+<!ATTLIST surface xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST surface
+ %att.global.attributes;
+ %att.coordinated.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes;
+attachment %teidata.enumerated;  #IMPLIED
+flipping %teidata.truthValue;  #IMPLIED >
+<!--doc:(surface group) defines any kind of useful grouping of written surfaces, for example the recto and verso of a single leaf, which the encoder wishes to treat as a single unit. [12.1. Digital Facsimiles] -->
+<!ELEMENT surfaceGrp (%model.global;|surface|surfaceGrp)+>
+<!ATTLIST surfaceGrp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST surfaceGrp
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes; >
+<!--doc:(surname) contains a family (inherited) name, as opposed to a given, baptismal, or nick name. [14.2.1. Personal Names] -->
+<!ELEMENT surname %macro.phraseSeq;>
+<!ATTLIST surname xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST surname
+ %att.global.attributes;
+ %att.personal.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(surplus) marks text present in the source which the editor believes to be superfluous or redundant. [12.3.3.1. Damage, Illegibility, and Supplied Text] -->
+<!ELEMENT surplus %macro.paraContent;>
+<!ATTLIST surplus xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST surplus
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+reason CDATA  #IMPLIED >
+<!--doc:(surrogates) contains information about any representations of the manuscript or other object being described which may exist in the holding institution or elsewhere. [11.9. Additional Information] -->
+<!ELEMENT surrogates %macro.specialPara;>
+<!ATTLIST surrogates xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST surrogates
+ %att.global.attributes; >
+<!--doc:(syllabification) contains the syllabification of the headword. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT syll %macro.paraContent;>
+<!ATTLIST syll xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST syll
+ %att.global.attributes;
+ %att.lexicographic.attributes;
+ %att.notated.attributes; >
+<!--doc:(symbolic value) represents the value part of a feature-value specification which contains one of a finite list of symbols. [19.3. Other Atomic Feature Values] -->
+<!ELEMENT symbol  EMPTY>
+<!ATTLIST symbol xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST symbol
+ %att.global.attributes;
+ %att.datcat.attributes;
+value %teidata.word;  #REQUIRED >
+<!--doc:(table) contains text displayed in tabular form, in rows and columns. [15.1.1. TEI Tables] -->
+<!ELEMENT table (((%model.headLike;|%model.global;)*,((row,(%model.global;)*)+|((%model.graphicLike;),(%model.global;)*)+),((%model.divBottom;),(%model.global;)*)*))>
+<!ATTLIST table xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST table
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+rows %teidata.count;  #IMPLIED
+cols %teidata.count;  #IMPLIED >
+<!--doc:(tag) contains text of a complete start- or end-tag, possibly including attribute specifications, but excluding the opening and closing markup delimiter characters. [23. Documentation Elements] -->
+<!ELEMENT tag (#PCDATA)>
+<!ATTLIST tag xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tag
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+scheme %teidata.enumerated;  "TEI"  >
+<!--doc:(element usage) documents the usage of a specific element within a specified document. [2.3.4. The Tagging Declaration] -->
+<!ELEMENT tagUsage %macro.limitedContent;>
+<!ATTLIST tagUsage xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tagUsage
+ %att.global.attributes;
+ %att.datcat.attributes;
+gi %teidata.name;  #REQUIRED
+occurs %teidata.count;  #IMPLIED
+withId %teidata.count;  #IMPLIED >
+<!--doc:(tagging declaration) provides detailed information about the tagging applied to a document. [2.3.4. The Tagging Declaration 2.3. The Encoding Description] -->
+<!ELEMENT tagsDecl (((rendition)*,(namespace)*))>
+<!ATTLIST tagsDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tagsDecl
+ %att.global.attributes;
+partial %teidata.truthValue;  #IMPLIED >
+<!--doc:(taxonomy) defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy. [2.3.7. The Classification Declaration] -->
+<!ELEMENT taxonomy (((category|taxonomy)+|((%model.descLike;|equiv|gloss)+,(category|taxonomy)*))|((%model.biblLike;),(category|taxonomy)*))>
+<!ATTLIST taxonomy xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST taxonomy
+ %att.global.attributes;
+ %att.datcat.attributes; >
+<!--doc:(technical stage direction) describes a special-purpose stage direction that is not meant for the actors. [7.3.1. Technical Information] -->
+<!ELEMENT tech %macro.paraContent;>
+<!ATTLIST tech xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tech
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+perf CDATA  #IMPLIED >
+<!--doc:(TEI corpus) contains the whole of a TEI encoded corpus, comprising a single corpus header and one or more TEI elements, each containing a single text header and a text. [4. Default Text Structure 16.1. Varieties of Composite Text] -->
+<!ELEMENT teiCorpus ((teiHeader,(%model.resource;)*,(%model.describedResource;)+))>
+<!ATTLIST teiCorpus xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST teiCorpus
+ %att.global.attributes;
+ %att.typed.attributes;
+version %teidata.version;  #IMPLIED >
+<!ATTLIST teiCorpus xsi:schemaLocation CDATA #IMPLIED
+ xmlns:xsi CDATA #FIXED 'http://www.w3.org/2001/XMLSchema-instance'
+ >
+<!--doc:(TEI header) supplies descriptive and declarative metadata associated with a digital resource or set of resources. [2.1.1. The TEI Header and Its Components 16.1. Varieties of Composite Text] -->
+<!ELEMENT teiHeader ((fileDesc,(%model.teiHeaderPart;)*,(revisionDesc)?))>
+<!ATTLIST teiHeader xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST teiHeader
+ %att.global.attributes; >
+<!--doc:(term) contains a single-word, multi-word, or symbolic designation which is regarded as a technical term. [3.4.1. Terms and Glosses] -->
+<!ELEMENT term %macro.phraseSeq;>
+<!ATTLIST term xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST term
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.pointing.attributes;
+ %att.typed.attributes;
+ %att.canonical.attributes;
+ %att.sortable.attributes;
+ %att.cReferencing.attributes;
+ %att.cmc.attributes; >
+<!--doc:(terrain) contains information about the physical terrain of a place. [14.3.4.3. States, Traits, and Events] -->
+<!ELEMENT terrain (((precision)*,(%model.headLike;)*,((%model.pLike;)+|(%model.labelLike;)+),(%model.noteLike;|%model.biblLike;)*,(terrain)*))>
+<!ATTLIST terrain xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST terrain
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(text) contains a single text of any kind, whether unitary or composite, for example a poem or drama, a collection of essays, a novel, a dictionary, or a corpus sample. [4. Default Text Structure 16.1. Varieties of Composite Text] -->
+<!ELEMENT text (((%model.global;)*,(front,(%model.global;)*)?,(body|group),(%model.global;)*,(back,(%model.global;)*)?))>
+<!ATTLIST text xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST text
+ %att.global.attributes;
+ %att.declaring.attributes;
+ %att.typed.attributes;
+ %att.written.attributes; >
+<!--doc:(text classification) groups information which describes the nature or topic of a text in terms of a standard classification scheme, thesaurus, etc. [2.4.3. The Text Classification] -->
+<!ELEMENT textClass (classCode|catRef|keywords)*>
+<!ATTLIST textClass xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST textClass
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(text description) provides a description of a text in terms of its situational parameters. [16.2.1. The Text Description] -->
+<!ELEMENT textDesc (((%model.textDescPart_sequence;),(purpose)+))>
+<!ATTLIST textDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST textDesc
+ %att.global.attributes;
+ %att.declarable.attributes; >
+<!--doc:(text language) describes the languages and writing systems identified within the bibliographic work being described, rather than its description. [3.12.2.4. Imprint, Size of a Document, and Reprint Information 11.6.6. Languages and Writing Systems] -->
+<!ELEMENT textLang %macro.specialPara;>
+<!ATTLIST textLang xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST textLang
+ %att.global.attributes;
+mainLang %teidata.language;  #IMPLIED
+otherLangs CDATA  #IMPLIED >
+<!--doc:indicates the presence of a text node in a content model [23. Documentation Elements] -->
+<!ELEMENT textNode  EMPTY>
+<!ATTLIST textNode xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST textNode
+ %att.global.attributes; >
+<!--doc:separates the condition from the default in an if, or the antecedent and the consequent in a cond element. [19.11. Feature System Declaration] -->
+<!ELEMENT then  EMPTY>
+<!ATTLIST then xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST then
+ %att.global.attributes; >
+<!--doc:(time) contains a phrase defining a time of day in any format. [3.6.4. Dates and Times] -->
+<!ELEMENT time (#PCDATA|%model.gLike;|%model.phrase;|%model.global;)*>
+<!ATTLIST time xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST time
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.calendarSystem.attributes;
+ %att.canonical.attributes;
+ %att.duration.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes; >
+<!--doc:(timeline) provides a set of ordered points in time which can be linked to elements of a spoken text to create a temporal alignment of that text. [17.4.2. Placing Synchronous Events in Time] -->
+<!ELEMENT timeline (when)+>
+<!ATTLIST timeline xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST timeline
+ %att.global.attributes;
+ %att.cmc.attributes;
+origin %teidata.pointer;  #IMPLIED
+unit %teidata.enumerated;  #IMPLIED
+interval %teidata.interval;  #IMPLIED >
+<!--doc:(title) contains a title for any kind of work. [3.12.2.2. Titles, Authors, and Editors 2.2.1. The Title Statement 2.2.5. The Series Statement] -->
+<!ELEMENT title %macro.paraContent;>
+<!ATTLIST title xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST title
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.canonical.attributes;
+ %att.datable.attributes;
+ %att.cmc.attributes;
+type %teidata.enumerated;  #IMPLIED
+calendar CDATA  #IMPLIED
+level (a|m|j|s|u) #IMPLIED >
+<!--doc:(title page) contains the title page of a text, appearing within the front or back matter. [4.6. Title Pages] -->
+<!ELEMENT titlePage (((%model.global;)*,(%model.titlepagePart;),(%model.titlepagePart;|%model.global;)*))>
+<!ATTLIST titlePage xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST titlePage
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(title part) contains a subsection or division of the title of a work, as indicated on a title page. [4.6. Title Pages] -->
+<!ELEMENT titlePart %macro.paraContent;>
+<!ATTLIST titlePart xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST titlePart
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  "main"  >
+<!--doc:(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] -->
+<!ELEMENT titleStmt (((title)+,(%model.respLike;)*))>
+<!ATTLIST titleStmt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST titleStmt
+ %att.global.attributes; >
+<!--doc:(tense) indicates the grammatical tense associated with a given inflected form in a dictionary. [10.3.1. Information on Written and Spoken Forms] -->
+<!ELEMENT tns %macro.paraContent;>
+<!ATTLIST tns xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tns
+ %att.global.attributes;
+ %att.lexicographic.attributes; >
+<!--doc:contains a closing title or footer appearing at the end of a division of a text. [4.2.4. Content of Textual Divisions 4.2. Elements Common to All Divisions] -->
+<!ELEMENT trailer (#PCDATA|lg|%model.gLike;|%model.phrase;|%model.inter;|%model.lLike;|%model.global;)*>
+<!ATTLIST trailer xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST trailer
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.placement.attributes;
+ %att.written.attributes;
+ %att.cmc.attributes; >
+<!--doc:(trait) contains a description of some status or quality attributed to a person, place, or organization typically, but not necessarily, independent of the volition or action of the holder and usually not at some specific time or for a specific date range. [14.3.1. Basic Principles 14.3.2.1. Personal Characteristics] -->
+<!ELEMENT trait (((precision)*,((trait)+|((%model.headLike;)*,(%model.pLike;)+,(%model.noteLike;|%model.biblLike;)*)|(%model.labelLike;|%model.noteLike;|%model.biblLike;)*)))>
+<!ATTLIST trait xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST trait
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.editLike.attributes;
+ %att.naming.attributes;
+ %att.typed.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(transcription description) describes the set of transcription conventions used, particularly for spoken material. [8.2. Documenting the Source of Transcribed Speech] -->
+<!ELEMENT transcriptionDesc (%model.labelLike;|%model.ptrLike;|%model.pLike;)*>
+<!ATTLIST transcriptionDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST transcriptionDesc
+ %att.global.attributes;
+ident %teidata.name;  #REQUIRED
+version %teidata.versionNumber;  #IMPLIED >
+<!--doc:describes a single textual transposition as an ordered list of at least two pointers specifying the order in which the elements indicated should be re-combined. [12.3.4.5. Transpositions] -->
+<!ELEMENT transpose (ptr,ptr)>
+<!ATTLIST transpose xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST transpose
+ %att.global.attributes; >
+<!--doc:(tree) encodes a tree, which is made up of a root, internal nodes, leaves, and arcs from root to leaves. [20.2. Trees] -->
+<!ELEMENT tree (((label)?,((leaf|iNode)*,root,(leaf|iNode)*)))>
+<!ATTLIST tree xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST tree
+ %att.global.attributes;
+arity %teidata.count;  #IMPLIED
+ord (true|partial|false) #REQUIRED
+order %teidata.count;  #IMPLIED >
+<!--doc:(underspecified embedding tree, so called because of its
+  characteristic shape when drawn) provides for an underspecified eTree, that is, an eTree with information left out. [20.3. Another Tree Notation] -->
+<!ELEMENT triangle (((label)?,(eTree|triangle|eLeaf)*))>
+<!ATTLIST triangle xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST triangle
+ %att.global.attributes;
+value %teidata.pointer;  #IMPLIED >
+<!--doc:(typeface description) contains a description of the typefaces or other aspects of the printing of an incunable or other printed source. [11.7.2.1. Writing] -->
+<!ELEMENT typeDesc ((%model.pLike;)+|((summary)?,(typeNote)+))>
+<!ATTLIST typeDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST typeDesc
+ %att.global.attributes; >
+<!--doc:(typographic note) describes a particular font or other significant typographic feature distinguished within the description of a printed resource. [11.7.2. Writing, Decoration, and Other Notations] -->
+<!ELEMENT typeNote %macro.specialPara;>
+<!ATTLIST typeNote xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST typeNote
+ %att.global.attributes;
+ %att.handFeatures.attributes; >
+<!--doc:(utterance) contains a stretch of speech usually preceded and followed by silence or by a change of speaker. [8.3.1. Utterances] -->
+<!ELEMENT u %macro.paraContent;>
+<!ATTLIST u xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST u
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.declaring.attributes;
+ %att.ascribed.directed.attributes;
+ %att.notated.attributes;
+trans (smooth|latching|overlap|pause) "smooth"  >
+<!--doc:(unclear) contains a word, phrase, or passage which cannot be transcribed with certainty because it is illegible or inaudible in the source. [12.3.3.1. Damage, Illegibility, and Supplied Text 3.5.3. Additions, Deletions, and Omissions] -->
+<!ELEMENT unclear %macro.paraContent;>
+<!ATTLIST unclear xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unclear
+ %att.global.attributes;
+ %att.editLike.attributes;
+ %att.dimensions.attributes;
+ %att.cmc.attributes;
+reason NMTOKENS  #IMPLIED
+agent %teidata.enumerated;  #IMPLIED >
+<!--doc:indicates one or more marked-up interventions in a document which have subsequently been marked for cancellation. [12.3.4.4. Confirmation, Cancellation, and Reinstatement of Modifications] -->
+<!ELEMENT undo  EMPTY>
+<!ATTLIST undo xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST undo
+ %att.global.attributes;
+ %att.spanning.attributes;
+ %att.transcriptional.attributes;
+ %att.dimensions.attributes;
+target CDATA  #IMPLIED >
+<!--doc:(unicode property) provides a Unicode property for a character (or glyph). [5.2.1. Character Properties] -->
+<!ELEMENT unicodeProp  EMPTY>
+<!ATTLIST unicodeProp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unicodeProp
+ %att.global.attributes;
+ %att.gaijiProp.attribute.version;
+ %att.gaijiProp.attribute.scheme;
+ %att.datable.attribute.period;
+ %att.datable.w3c.attribute.when;
+ %att.datable.w3c.attribute.notBefore;
+ %att.datable.w3c.attribute.notAfter;
+ %att.datable.w3c.attribute.from;
+ %att.datable.w3c.attribute.to;
+ %att.datable.iso.attribute.when-iso;
+ %att.datable.iso.attribute.notBefore-iso;
+ %att.datable.iso.attribute.notAfter-iso;
+ %att.datable.iso.attribute.from-iso;
+ %att.datable.iso.attribute.to-iso;
+ %att.datable.custom.attribute.when-custom;
+ %att.datable.custom.attribute.notBefore-custom;
+ %att.datable.custom.attribute.notAfter-custom;
+ %att.datable.custom.attribute.from-custom;
+ %att.datable.custom.attribute.to-custom;
+ %att.datable.custom.attribute.datingPoint;
+ %att.datable.custom.attribute.datingMethod;
+name (Age|AHex|Alpha|Alphabetic|ASCII_Hex_Digit|bc|Bidi_C|Bidi_Class|Bidi_Control|Bidi_M|Bidi_Mirrored|Bidi_Mirroring_Glyph|Bidi_Paired_Bracket|Bidi_Paired_Bracket_Type|blk|Block|bmg|bpb|bpt|Canonical_Combining_Class|Case_Folding|Case_Ignorable|Cased|ccc|CE|cf|Changes_When_Casefolded|Changes_When_Casemapped|Changes_When_Lowercased|Changes_When_NFKC_Casefolded|Changes_When_Titlecased|Changes_When_Uppercased|CI|Comp_Ex|Composition_Exclusion|CWCF|CWCM|CWKCF|CWL|CWT|CWU|Dash|Decomposition_Mapping|Decomposition_Type|Default_Ignorable_Code_Point|Dep|Deprecated|DI|Dia|Diacritic|dm|dt|ea|East_Asian_Width|EqUIdeo|Equivalent_Unified_Ideograph|Expands_On_NFC|Expands_On_NFD|Expands_On_NFKC|Expands_On_NFKD|Ext|Extender|FC_NFKC|FC_NFKC_Closure|Full_Composition_Exclusion|gc|GCB|General_Category|Gr_Base|Gr_Ext|Gr_Link|Grapheme_Base|Grapheme_Cluster_Break|Grapheme_Extend|Grapheme_Link|Hangul_Syllable_Type|Hex|Hex_Digit|hst|Hyphen|ID_Continue|ID_Start|IDC|Ideo|Ideographic|IDS|IDS_Binary_Operator|IDS_Trinary_Operator|IDSB|IDST|Indic_Positional_Category|Indic_Syllabic_Category|InPC|InSC|isc|ISO_Comment|Jamo_Short_Name|jg|Join_C|Join_Control|Joining_Group|Joining_Type|JSN|jt|kAccountingNumeric|kCompatibilityVariant|kIICore|kIRG_GSource|kIRG_HSource|kIRG_JSource|kIRG_KPSource|kIRG_KSource|kIRG_MSource|kIRG_TSource|kIRG_USource|kIRG_VSource|kOtherNumeric|kPrimaryNumeric|kRSUnicode|lb|lc|Line_Break|LOE|Logical_Order_Exception|Lower|Lowercase|Lowercase_Mapping|Math|na|na1|Name|Name_Alias|NChar|NFC_QC|NFC_Quick_Check|NFD_QC|NFD_Quick_Check|NFKC_Casefold|NFKC_CF|NFKC_QC|NFKC_Quick_Check|NFKD_QC|NFKD_Quick_Check|Noncharacter_Code_Point|nt|Numeric_Type|Numeric_Value|nv|OAlpha|ODI|OGr_Ext|OIDC|OIDS|OLower|OMath|Other_Alphabetic|Other_Default_Ignorable_Code_Point|Other_Grapheme_Extend|Other_ID_Continue|Other_ID_Start|Other_Lowercase|Other_Math|Other_Uppercase|OUpper|Pat_Syn|Pat_WS|Pattern_Syntax|Pattern_White_Space|PCM|Prepended_Concatenation_Mark|QMark|Quotation_Mark|Radical|Regional_Indicator|RI|SB|sc|scf|Script|Script_Extensions|scx|SD|Sentence_Break|Sentence_Terminal|Simple_Case_Folding|Simple_Lowercase_Mapping|Simple_Titlecase_Mapping|Simple_Uppercase_Mapping|slc|Soft_Dotted|stc|STerm|suc|tc|Term|Terminal_Punctuation|Titlecase_Mapping|uc|UIdeo|Unicode_1_Name|Unified_Ideograph|Upper|Uppercase|Uppercase_Mapping|Variation_Selector|Vertical_Orientation|vo|VS|WB|White_Space|Word_Break|WSpace|XID_Continue|XID_Start|XIDC|XIDS|XO_NFC|XO_NFD|XO_NFKC|XO_NFKD) #REQUIRED
+value %teidata.text;  #REQUIRED >
+<!--doc:(unihan property) holds the name and value of a normative or informative Unihan character (or glyph) property as part of its attributes. [5.2.1. Character Properties] -->
+<!ELEMENT unihanProp  EMPTY>
+<!ATTLIST unihanProp xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unihanProp
+ %att.global.attributes;
+ %att.gaijiProp.attribute.version;
+ %att.gaijiProp.attribute.scheme;
+ %att.datable.attribute.period;
+ %att.datable.w3c.attribute.when;
+ %att.datable.w3c.attribute.notBefore;
+ %att.datable.w3c.attribute.notAfter;
+ %att.datable.w3c.attribute.from;
+ %att.datable.w3c.attribute.to;
+ %att.datable.iso.attribute.when-iso;
+ %att.datable.iso.attribute.notBefore-iso;
+ %att.datable.iso.attribute.notAfter-iso;
+ %att.datable.iso.attribute.from-iso;
+ %att.datable.iso.attribute.to-iso;
+ %att.datable.custom.attribute.when-custom;
+ %att.datable.custom.attribute.notBefore-custom;
+ %att.datable.custom.attribute.notAfter-custom;
+ %att.datable.custom.attribute.from-custom;
+ %att.datable.custom.attribute.to-custom;
+ %att.datable.custom.attribute.datingPoint;
+ %att.datable.custom.attribute.datingMethod;
+name (kZVariant|kAccountingNumeric|kBigFive|kCCCII|kCNS1986|kCNS1992|kCangjie|kCantonese|kCheungBauer|kCheungBauerIndex|kCihaiT|kCompatibilityVariant|kCowles|kDaeJaweon|kDefinition|kEACC|kFenn|kFennIndex|kFourCornerCode|kFrequency|kGB0|kGB1|kGB3|kGB5|kGB7|kGB8|kGSR|kGradeLevel|kHDZRadBreak|kHKGlyph|kHKSCS|kHanYu|kHangul|kHanyuPinlu|kHanyuPinyin|kIBMJapan|kIICore|kIRGDaeJaweon|kIRGDaiKanwaZiten|kIRGHanyuDaZidian|kIRGKangXi|kIRG_GSource|kIRG_HSource|kIRG_JSource|kIRG_KPSource|kIRG_KSource|kIRG_MSource|kIRG_TSource|kIRG_USource|kIRG_VSource|kJIS0213|kJa|kJapaneseKun|kJapaneseOn|kJinmeiyoKanji|kJis0|kJis1|kJoyoKanji|kKPS0|kKPS1|kKSC0|kKSC1|kKangXi|kKarlgren|kKorean|kKoreanEducationHanja|kKoreanName|kLau|kMainlandTelegraph|kMandarin|kMatthews|kMeyerWempe|kMorohashi|kNelson|kOtherNumeric|kPhonetic|kPrimaryNumeric|kPseudoGB1|kRSAdobe_Japan1_6|kRSJapanese|kRSKanWa|kRSKangXi|kRSKorean|kRSUnicode|kSBGY|kSemanticVariant|kSimplifiedVariant|kSpecializedSemanticVariant|kTGH|kTaiwanTelegraph|kTang|kTotalStrokes|kTraditionalVariant|kVietnamese|kXHC1983|kXerox) #REQUIRED
+value %teidata.word;  #REQUIRED >
+<!--doc:contains a symbol, a word or a phrase referring to a unit of measurement in any kind of formal or informal system. [3.6.3. Numbers and
+Measures] -->
+<!ELEMENT unit %macro.phraseSeq;>
+<!ATTLIST unit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unit
+ %att.global.attributes;
+ %att.typed.attributes;
+ %att.measurement.attributes;
+ %att.cmc.attributes; >
+<!--doc:(unit declarations) provides information about units of measurement that are not members of the International System of Units. [2.3.9. The Unit Declaration] -->
+<!ELEMENT unitDecl (unitDef)+>
+<!ATTLIST unitDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unitDecl
+ %att.canonical.attributes;
+ %att.datable.attributes;
+ %att.global.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(unit definition) contains descriptive information related to a specific unit of measurement. [2.3.9. The Unit Declaration] -->
+<!ELEMENT unitDef (%model.labelLike;|(%model.placeNamePart;)?|(conversion)?|(unit)?)+>
+<!ATTLIST unitDef xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST unitDef
+ %att.global.attributes;
+ %att.datable.attributes;
+ %att.canonical.attributes;
+ %att.typed.attributes;
+calendar CDATA  #IMPLIED >
+<!--doc:(usage) contains usage information in a dictionary entry. [10.3.5.2. Usage Information and Other Labels] -->
+<!ELEMENT usg %macro.paraContent;>
+<!ATTLIST usg xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST usg
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:(value alternation) represents the value part of a feature-value specification which contains a set of values, only one of which can be valid. [19.8.1. Alternation] -->
+<!ELEMENT vAlt (((%model.featureVal;),(%model.featureVal;)+))>
+<!ATTLIST vAlt xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vAlt
+ %att.global.attributes; >
+<!--doc:(collection of values) represents the value part of a feature-value specification which contains multiple values organized as a set, bag, or list. [19.7. Collections as Complex Feature Values] -->
+<!ELEMENT vColl (fs|%model.featureVal.single;|vColl)*>
+<!ATTLIST vColl xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vColl
+ %att.global.attributes;
+org (set|bag|list) #IMPLIED >
+<!--doc:(value default) declares the default value to be supplied when a feature structure does not contain an instance of f for this name; if unconditional, it is specified as one (or, depending on the value of the org attribute of the enclosing fDecl) more fs elements or primitive values; if conditional, it is specified as one or more if elements; if no default is specified, or no condition matches, the value none is assumed. [19.11. Feature System Declaration] -->
+<!ELEMENT vDefault ((%model.featureVal;)+|(if)+)>
+<!ATTLIST vDefault xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vDefault
+ %att.global.attributes; >
+<!--doc:(value label) represents the value part of a feature-value specification which appears at more than one point in a feature structure. [19.6. Re-entrant Feature Structures] -->
+<!ELEMENT vLabel (((%model.featureVal;)?))>
+<!ATTLIST vLabel xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vLabel
+ %att.global.attributes;
+name %teidata.word;  #REQUIRED >
+<!--doc:(merged collection of values) represents a feature value which is the result of merging together the feature values contained by its children, using the organization specified by the org attribute. [19.8.3. Collection of Values] -->
+<!ELEMENT vMerge (%model.featureVal;)+>
+<!ATTLIST vMerge xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vMerge
+ %att.global.attributes;
+org (set|bag|list) #IMPLIED >
+<!--doc:(value negation) represents a feature value which is the negation of its content. [19.8.2. Negation] -->
+<!ELEMENT vNot ((%model.featureVal;))>
+<!ATTLIST vNot xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vNot
+ %att.global.attributes; >
+<!--doc:(value range) defines the range of allowed values for a feature, in the form of an fs, vAlt, or primitive value; for the value of an f to be valid, it must be subsumed by the specified range; if the f contains multiple values (as sanctioned by the org attribute), then each value must be subsumed by the vRange. [19.11. Feature System Declaration] -->
+<!ELEMENT vRange ((%model.featureVal;))>
+<!ATTLIST vRange xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vRange
+ %att.global.attributes; >
+<!--doc:(value) contains a single attribute value. [23. Documentation Elements 23.5.3. Attribute List Specification] -->
+<!ELEMENT val (#PCDATA)>
+<!ATTLIST val xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST val
+ %att.global.attributes; >
+<!--doc:(value description) specifies any semantic or syntactic constraint on the value that an attribute may take, additional to the information carried by the datatype element. [23.5.3. Attribute List Specification] -->
+<!ELEMENT valDesc %macro.phraseSeq.limited;>
+<!ATTLIST valDesc xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST valDesc
+ %att.global.attributes;
+ %att.translatable.attributes;
+ %att.combinable.attributes; >
+<!--doc:documents a single value in a predefined list of values. [23.5.3. Attribute List Specification] -->
+<!ELEMENT valItem (((%model.identSynonyms;)*,((%model.descLike;)+,((%model.identSynonyms;),(%model.descLike;)*)*,(remarks)*)?,(paramList)?))>
+<!ATTLIST valItem xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST valItem
+ %att.global.attributes;
+ %att.combinable.attributes;
+ident %teidata.text;  #REQUIRED >
+<!--doc:(value list) contains one or more valItem elements defining possible values. [23.5.3. Attribute List Specification] -->
+<!ELEMENT valList (valItem)*>
+<!ATTLIST valList xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST valList
+ %att.global.attributes;
+ %att.combinable.attributes;
+type (closed|semi|open) "open"  >
+<!--doc:(variant encoding) declares the method used to encode text-critical variants. [13.1.1. The Apparatus Entry] -->
+<!ELEMENT variantEncoding  EMPTY>
+<!ATTLIST variantEncoding xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST variantEncoding
+ %att.global.attributes;
+method (location-referenced|double-end-point|parallel-segmentation) #REQUIRED
+location (internal|external) #REQUIRED >
+<!--doc:(view) describes the visual context of some part of a screen play in terms of what the spectator sees, generally independent of any dialogue. [7.3.1. Technical Information 7.3. Other Types of Performance Text] -->
+<!ELEMENT view %macro.specialPara;>
+<!ATTLIST view xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST view
+ %att.global.attributes; >
+<!--doc:(vocal) marks any vocalized but not necessarily lexical phenomenon, for example voiced pauses, non-lexical backchannels, etc. [8.3.3. Vocal, Kinesic, Incident] -->
+<!ELEMENT vocal (%model.descLike;)*>
+<!ATTLIST vocal xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST vocal
+ %att.global.attributes;
+ %att.timed.attributes;
+ %att.ascribed.directed.attributes;
+ %att.typed.attributes;
+ %att.cmc.attributes;
+iterated %teidata.xTruthValue;  "false"  >
+<!--doc:(word) represents a grammatical (not necessarily orthographic) word. [18.1. Linguistic Segment Categories 18.4.2. Lightweight Linguistic Annotation] -->
+<!ELEMENT w (#PCDATA|%model.gLike;|seg|w|m|c|pc|%model.global;|%model.lPart;|%model.hiLike;|%model.pPart.edit;)*>
+<!ATTLIST w xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST w
+ %att.global.attributes;
+ %att.segLike.attributes;
+ %att.typed.attributes;
+ %att.linguistic.attributes;
+ %att.notated.attributes;
+ %att.cmc.attributes; >
+<!--doc:(watermark) contains a word or phrase describing a watermark or similar device. [11.3.3. Watermarks and Stamps] -->
+<!ELEMENT watermark %macro.phraseSeq;>
+<!ATTLIST watermark xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST watermark
+ %att.global.attributes; >
+<!--doc:indicates a point in time either relative to other elements in the same timeline tag, or absolutely. [17.4.2. Placing Synchronous Events in Time] -->
+<!ELEMENT when  EMPTY>
+<!ATTLIST when xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST when
+ %att.global.attributes;
+absolute %teidata.temporal.w3c;  #IMPLIED
+unit %teidata.enumerated;  #IMPLIED
+interval %teidata.interval;  #IMPLIED
+since %teidata.pointer;  #IMPLIED >
+<!--doc:(width) contains a measurement of an object along the axis parallel to its bottom, e.g. perpendicular to the spine of a book or codex. [11.3.4. Dimensions] -->
+<!ELEMENT width %macro.xtext;>
+<!ATTLIST width xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST width
+ %att.global.attributes;
+ %att.dimensions.attributes; >
+<!--doc:(wit) contains a list of one or more sigla of witnesses attesting a given reading, in a textual variation. [13.1.4. Witness Information] -->
+<!ELEMENT wit %macro.phraseSeq;>
+<!ATTLIST wit xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST wit
+ %att.global.attributes;
+ %att.rdgPart.attributes; >
+<!--doc:(witness detail) gives further information about a particular witness, or witnesses, to a particular reading. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT witDetail (#PCDATA|%model.gLike;|%model.phrase;|%model.global;|bibl)*>
+<!ATTLIST witDetail xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST witDetail
+ %att.global.attributes;
+ %att.placement.attributes;
+ %att.pointing.attributes;
+ %att.typed.attribute.subtype;
+type %teidata.enumerated;  #IMPLIED
+wit CDATA  #REQUIRED >
+<!--doc:(fragmented witness end) indicates the end, or suspension, of the text of a fragmentary witness. [13.1.5. Fragmentary Witnesses] -->
+<!ELEMENT witEnd  EMPTY>
+<!ATTLIST witEnd xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST witEnd
+ %att.global.attributes;
+ %att.rdgPart.attributes; >
+<!--doc:(fragmented witness start) indicates the beginning, or resumption, of the text of a fragmentary witness. [13.1.5. Fragmentary Witnesses] -->
+<!ELEMENT witStart  EMPTY>
+<!ATTLIST witStart xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST witStart
+ %att.global.attributes;
+ %att.rdgPart.attributes; >
+<!--doc:(witness) contains either a description of a single witness referred to within the critical apparatus, or a list of witnesses which is to be referred to by a single sigil. [13.1. The Apparatus Entry, Readings, and Witnesses] -->
+<!ELEMENT witness (#PCDATA|%model.limitedPhrase;|%model.inter;|note|object)*>
+<!ATTLIST witness xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST witness
+ %att.global.attributes;
+ %att.sortable.attributes; >
+<!--doc:(writing) contains a passage of written text revealed to participants in the course of a spoken text. [8.3.4. Writing] -->
+<!ELEMENT writing %macro.paraContent;>
+<!ATTLIST writing xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST writing
+ %att.global.attributes;
+ %att.ascribed.directed.attributes;
+ %att.typed.attributes;
+ %att.timed.attributes;
+ %att.cmc.attributes;
+gradual %teidata.xTruthValue;  #IMPLIED >
+<!--doc:(non-TEI metadata) provides a container element into which metadata in non-TEI formats may be placed. [2.5. Non-TEI Metadata] -->
+<!ELEMENT xenoData (#PCDATA)*>
+<!ATTLIST xenoData xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST xenoData
+ %att.global.attributes;
+ %att.declarable.attributes;
+ %att.typed.attributes; >
+<!--doc:(cross-reference phrase) contains a phrase, sentence, or icon referring the reader to some other location in this or another text. [10.3.5.3. Cross-References to Other Entries] -->
+<!ELEMENT xr (#PCDATA|%model.gLike;|%model.phrase;|%model.inter;|usg|lbl|%model.global;)*>
+<!ATTLIST xr xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST xr
+ %att.global.attributes;
+ %att.typed.attribute.subtype;
+ %att.lexicographic.attributes;
+type %teidata.enumerated;  #IMPLIED >
+<!--doc:defines any two-dimensional area within a surface element. [12.1. Digital Facsimiles 12.2.2. Embedded Transcription] -->
+<!ELEMENT zone (#PCDATA|%model.gLike;|%model.graphicLike;|%model.global;|surface|%model.linePart;)*>
+<!ATTLIST zone xmlns CDATA "http://www.tei-c.org/ns/1.0">
+<!ATTLIST zone
+ %att.global.attributes;
+ %att.coordinated.attributes;
+ %att.typed.attributes;
+ %att.written.attributes;
+rotate %teidata.count;  "0"  >
+<!-- end elements -->
diff --git a/vrt2tei.pl b/vrt2tei.pl
index 67227d2..dd1cffa 100755
--- a/vrt2tei.pl
+++ b/vrt2tei.pl
@@ -18,7 +18,7 @@
 # TODO: 
 # 1  insert dtd spec, or ref to TEI
 
-# 3a UPLOAD in GITHUB
+# 3a remove the vrt positional attribute comment line / all comment lines
 # 3b add @head and @deprel to I5 sowie auch @msd
 # 3c bearbeitung von @head und @deprel in tei2korapxml durch Nils?
 # 3d build 30 billion corpus
@@ -28,7 +28,6 @@
 # 5 abfangen von unerwarteten elementen dh andere als <sentence> und <paragraph>
 # 5a wort reihenfolge nochmal checken
 # 6 checks and balances
-# 6a output nach stdout machen
 # 7  How to encode Kielipankki and National Library of Finland? in teiCorpus Header
 # 8  construct <idsDoc>s for the months (or go for TEI)
 # 9  parallelisation in bash and application on sub corpora of KLK
@@ -64,6 +63,8 @@
 use Time::Piece;
 use Tie::IxHash;
 
+
+
 #----------------------
 # check file arguments:
 #----------------------
@@ -83,30 +84,75 @@
 my $textcounter = 0;
 
 
+
+my $twig="";   
+my $teiCorpusHeaderDoc="";
+
+
+#------------------------------------------------------------------
+# read corpusHeaderSkeleton document and get header out of it
+#------------------------------------------------------------------
+
+my $teiCorpusHeaderDocTwig = new XML::Twig(
+    keep_spaces => 1,
+    keep_atts_order => 1,
+    comments => 'drop',
+    );
+
+
+$teiCorpusHeaderDocTwig->parsefile("teiCorpusHeaderSkeleton.tei.xml");
+my $corpusHeader = $teiCorpusHeaderDocTwig->root;                  # getting the teiHeader for corpus out of the teiCorpusHeaderSkeleton document
+
+
+#------------------------------------------------------------------
+# read textHeaderSkeleton document adn get header out of it
+#------------------------------------------------------------------
+
+my $teiTextHeaderDocTwig = new XML::Twig(
+    keep_spaces => 1,
+    keep_atts_order => 1,
+    comments => 'drop',
+    );
+
+$teiTextHeaderDocTwig->parsefile("teiTextHeaderSkeleton.tei.xml");
+my $textHeader = $teiTextHeaderDocTwig->root;                      # getting the teiHeader for corpus out of the teiTextHeaderSkeleton document
+
+
+#----------------------------------
+# read input VRT-XML document
+#----------------------------------
+
+open(my $IN,  "< $ARGV[0]") || die("$0: cannot open file for reading: $ARGV[0]");     # open input  file and initialise filehandel, actually does not seem to be needed
+                                                                                      # as parsefile() (s.b.) is applied to the filename
+
+#-----------------------------------------------------
+# global variables pertaining to the original corpus 
+#-----------------------------------------------------
+
+my $kielipankkiCorpus = "klk-fi-v2-vrt";
+
+
+
+
 #####################
 #     M A I N  
 #####################
 
-open(my $IN,  "< $ARGV[0]") || die("$0: cannot open file for reading: $ARGV[0]");     # open input  file and initialise filehandel, actually does not seem to be needed
-                                                                                      # as parsefile() (s.b.) is applied to the filename
-## open(my $OUT, "> $ARGV[1]") || die("$0: cannot open file: $ARGV[1]");              # open result file and initialise filehandle
-                                                                                      # currently not used but flushed to "/dev/stdout"
+#-------------------------------------------------------------------------------------------------------------
+# start twig for input and call start tag handler for root and twig handler for each <text> in the VRT
+#-------------------------------------------------------------------------------------------------------------
 
-#-----------------------------------------------------------------------------------
-# start twig and call start tag handler for root and twig handler for each <text>
-#-----------------------------------------------------------------------------------
-
-my $twig="";   
 
 $twig = new XML::Twig(
     keep_spaces => 1,           # dadurch auch whitespaces an ehemeligen elementgrenzen im output
     keep_atts_order => 1,       # requires Tie::IxHash
-    pretty_print => 'indented',
+    comments => 'drop',
     start_tag_handlers => {
-    	texts => \&root
+	texts => sub{root(@_, $corpusHeader)}
     },
     twig_handlers =>  {
-	text => \&text
+#	text => \&text
+	text =>  sub{text(@_, $textHeader)}
     },
     # dtd_handlers =>   {       # ToDo for I5
     #	\&set_dtd;
@@ -117,7 +163,8 @@
 
 $twig->parsefile($ARGV[0]);
 
-##TMP close($OUT);
+
+
 
 
 ###########
@@ -141,53 +188,54 @@
 
 
 sub root {
-    my ($twig, $root) =@_;
+    my ($twig, $root, $corpusHeader) =@_;
 
     $root->set_gi('teiCorpus');
     $root->set_att("xmlns", 'http://www.tei-c.org/ns/1.0');
 
-    &insertCorpusHeader($root);
+    &insertCorpusHeader($root, $corpusHeader);
 }
 
 
+
 sub insertCorpusHeader{
-    my ($root) =@_;
+    my ($root, $corpusHeader) =@_;
 
+    #---------------------------------------------------------------------------
+    # get some metadata for the current output corpus based on source and year
+    #---------------------------------------------------------------------------
+    
     my @array = split(/\//, $ARGV[0]);
     my $l = scalar(@array);
     my $source = $array[$l-1];
-    $source =~ s/\.xml//;
-    $source = $source . " from klk-fi-v2-vrt";       # for the time being; TODO
-    
-    my $teiHeader        = $root           ->insert_new_elt("first_child", 'teiHeader');    
-    my $fileDesc         = $teiHeader      ->insert_new_elt("last_child", 'fileDesc');
-    my $profileDesc      = $teiHeader      ->insert_new_elt("last_child", 'profileDesc');
-    
-    my $titleStmt        = $fileDesc       ->insert_new_elt("last_child", 'titleStmt');
-    my $title            = $titleStmt      ->insert_new_elt("last_child", 'title');
-    $title               ->set_text($source . " from KLK-fi-2021 for EuReCo");
-    
-    my $publicationStmt  = $fileDesc       ->insert_new_elt("last_child", 'publicationStmt');
-    my $distributor      = $publicationStmt->insert_new_elt("last_child", 'distributor');
-    $distributor         ->set_text("NOT FOR DISTRIBUTION - to be used locally in EuReCo");
+    $source =~ s/([0-9][0-9][0-9][0-9])\.xml$//;
 
-    my $sourceDesc       = $fileDesc       ->insert_new_elt("last_child", 'sourceDesc');
-    my $bibl             = $sourceDesc     ->insert_new_elt("last_child", 'bibl');
-    $bibl                ->set_text($source);
+    my $language="Finnish";
+    my $lang_tla="fi";
+    
+    my $yy = $1;   # $1 now containts substring in first bracket in regex above
 
-    my $langUsage        = $profileDesc    ->insert_new_elt("last_child", 'langUsage');
-    my $language         = $langUsage      ->insert_new_elt("last_child", 'language');
-    $language            ->set_att("ident",'fi');
-    $language            ->set_text("Finnish");
+    my $ctitle = $source . " " . $yy . ", from ". $kielipankkiCorpus . " for EuReCo";    # to do: also get name of corpus (klk-fi-v2-vrt)
+
+
+    #-----------------------
+    # set corpus header
+    #-----------------------
+    
+    &set_title(     $corpusHeader, $source, $yy, $kielipankkiCorpus);
+    &set_sourceDesc($corpusHeader, $source, $yy, $kielipankkiCorpus);
+
+    my $teiCorpusHeader        = $corpusHeader->paste("first_child", $root);
+
 }
     
-    
+
 #----------------------------
 # handler &text for <text>
 #----------------------------
 
 sub text {
-    my ($twig, $text) = @_;
+    my ($twig, $text, $textHeader) = @_;
 
     $textcounter++;               # global variable
 
@@ -199,7 +247,8 @@
     
     my $textattsref = $text->atts();               # $textattsref is now a reference to a hash and should be used with '->'
 
-    &createTextHeader($text, $textattsref);
+
+    &createTextHeader($text, $textattsref, $textHeader);
 
     #--------------------------
     # create <TEI> from <text>
@@ -266,13 +315,13 @@
 	} # end sentences
     } # end paragraphs
 
-    $twig->set_pretty_print( 'record');
+    # $twig->set_pretty_print( 'record');
     # $twig->flush($OUT);
     $twig->flush("/dev/stdout");
 }
 
 sub createTextHeader{
-    my ($text, $textattsref) = @_;
+    my ($text, $textattsref, $textHeader) = @_;
     
     # USE 01 binding_id="2246025"
     # USE 02 date="2021-01-15"
@@ -332,140 +381,208 @@
     my @namearray = split(/[\.\/]/, $ORIGFILENAME);  # use $namearray[4] as ID for the page
     
 
+
     #-----------------------------------------------------------------------
-    # CREATE text-teiHeader ACCORDING TO THE SKELETON in klk-header.tei.xml
+    # CREATE text-teiHeader ACCORDING TO THE SKELETON in $textHeader
     #-----------------------------------------------------------------------
 
-    # create <teiHeader> inside <TEI>
-    my $teiHeader = XML::Twig::Elt->new('teiHeader');
-    $teiHeader->paste('first_child', $text);
 
-    ## insert_new_elt is a combo of new and paste, cf. xml::twig docu:
-    ## insert_new_elt ($opt_position, $gi, $opt_atts_hashref, @opt_content)
+    $textHeader->paste('first_child', $text);
+
+    #-----------------------------------------------
+    # <teiHeader>
+    #   <fileDesc n="[EuReCo-KLK-FIN_$ID]">
+    #     <titleStmt>
+    #       <title>[$LABEL, page $PAGENO]</title>	
+
+    $textHeader->first_child("fileDesc")->first_child("titleStmt")->first_child("title")
+	->set_text($LABEL . ", Text #" . $textcounter);    # Case KLK
+
+    #-----------------------------------------------
+    # <fileDesc>
+    #  <sourceDesc>
+    #   <biblStruct>
+    #      <analytic>
+    #         <title type="main">[$LABEL, page $PAGENO]</title>
+    #         <date>[$DATE]</date>
+    #         <date type="year">TODO</date>
+    #         <date type="month">TODO</date>
+    #         <date type="day">TODO</date>
+    #         <idno type="PAGEID">$PAGEID</idno>
+    #         <idno type="BINDINGID">$BID</idno>
+    #         <idno type="ID">$ID</idno>
+    #         <idno type="KIELIPANKKI_METAFILENAME">$METAFILENAME</idno>
+    #         <idno type="KIELIPANKKI_ORIGFILENAME">$ORIGFILENAME</idno>
+    #         <textLang>$LANGUAGE</textLang>
+    #       </analytic>
+
+    my $analytic  = $textHeader->get_xpath("./fileDesc/sourceDesc/biblStruct/analytic", 0);
+
+    $analytic->first_child("title")                    ->set_text($LABEL . ", Text #" . $textcounter);   # Case KLK
+    $analytic->get_xpath('./date[@type="year"]',   0)  ->set_text($datearray[0]);
+    $analytic->get_xpath('./date[@type="month"]',  0)  ->set_text($datearray[1]);
+    $analytic->get_xpath('./date[@type="day"]',    0)  ->set_text($datearray[2]);    
+    $analytic->get_xpath('./idno[@type="PAGEID"]',       0)     ->set_text($PAGEID);
+    $analytic->get_xpath('./idno[@type="BINDINGID"]',    0)     ->set_text($BID);
+    $analytic->get_xpath('./idno[@type="ID"]',           0)     ->set_text($ID);
+    $analytic->get_xpath('./idno[@type="KIELIPANKKI_METAFILENAME"]', 0)     ->set_text($METAFILENAME);
+    $analytic->get_xpath('./idno[@type="KIELIPANKKI_ORIGFILENAME"]', 0)     ->set_text($ORIGFILENAME);
+    $analytic->first_child('textLang')                        ->set_text($LANGUAGE);
     
-    my $fileDesc     = $teiHeader->insert_new_elt('fileDesc'                           => {n => "EuReCo_KLK-fi_" . $namearray[4]});
-    my $encodingDesc = $teiHeader->insert_new_elt("last_child", 'encodingDesc');
-    my $profileDesc  = $teiHeader->insert_new_elt("last_child", 'profileDesc');
-    my $revisionDesc = $teiHeader->insert_new_elt("last_child", 'revisionDesc');
+    #  <monogr>
+    #    <title>$PUBLTITLE</title>
+    #    <imprint>
+    #      <pubPlace>TODO</pubPlace>
+    #        <publisher>TODO</publisher>
+    #    </imprint>
+    #    <biblScope unit="ISSUETITLE"/>
+    #    <biblScope unit="ISSUENO"/>
+    #    <biblScope unit="ISSUEDATE"/>
+    #    <biblScope unit="pp">$PAGENO</biblScope>
+    #  <monogr>
 
-    #---------------------
-    # fileDesc/titleStmt
-    #---------------------
-    my $titleStmt = $fileDesc ->insert_new_elt('titleStmt');
-    my $title     = $titleStmt->insert_new_elt("last_child", 'title');
-    my $respStmt  = $titleStmt->insert_new_elt("last_child", 'respStmt');
-    my $resp      = $respStmt ->insert_new_elt("last_child", 'resp');
-    my $name      = $respStmt ->insert_new_elt("last_child", 'name');
+    my $monogr  = $textHeader->get_xpath("./fileDesc/sourceDesc/biblStruct/monogr", 0);
 
-    # set texts for titleStmt
-    # $title->set_text($LABEL . ", page " . $PAGENO);           # Achtung - PAGENO scheint meist "None" zu sein
-    $title->set_text($LABEL . ", Text #" . $textcounter);    # at least for Suomen Kuvalehti
-    $resp ->set_text("compiled by EuReCo");
-    $name ->set_text("EuReCo: HL");
 
-    #--------------------------
-    # fileDesc/publicationStmt
-    #--------------------------
-    my $publicationStmt = $fileDesc       ->insert_new_elt("last_child", 'publicationStmt');
-    my $distributor     = $publicationStmt->insert_new_elt("last_child", 'distributor');
-    my $note            = $distributor    ->insert_new_elt("last_child", 'note');
-    my $availability    = $publicationStmt->insert_new_elt("last_child", 'availability'); 
-    my $licence         = $availability   ->insert_new_elt("last_child", 'licence');
 
-    # set texts for publicationStmt
-    $note   ->set_text("NOT FOR DISTRIBUTION - to be used locally in EuReCo");
-    $licence->set_text("CLARIN-RES");  # TODO: Ausfuherlichere Licence info in KLK Metadata Record
 
-    #------------------------------
-    # fileDesc/sourceDesc/biblStruct
-    #------------------------------
-    my $sourceDesc = $fileDesc  ->insert_new_elt("last_child", 'sourceDesc');
-    my $biblStruct   = $sourceDesc->insert_new_elt("last_child", 'biblStruct');
-
-    # fileDesc/sourceDesc/biblStruct/analytic
-    my $analytic                = $biblStruct->insert_new_elt("last_child", 'analytic');
-    my $analytic_title          = $analytic->insert_new_elt("last_child", 'title'        => {type => "main"} );
-#    my $analytic_date           = $analytic->insert_new_elt("last_child", 'date');
-    my $analytic_date_year      = $analytic->insert_new_elt("last_child", 'date'         => {type => "year"});
-    my $analytic_date_month     = $analytic->insert_new_elt("last_child", 'date'         => {type => "month"});
-    my $analytic_date_day       = $analytic->insert_new_elt("last_child", 'date'         => {type => "day"});
-    my $analytic_idno_pageid    = $analytic->insert_new_elt("last_child", 'idno'         => {type => "PAGEID"});
-    my $analytic_idno_bindingid = $analytic->insert_new_elt("last_child", 'idno'         => {type => "BINDINGID"});
-    my $analytic_idno_id        = $analytic->insert_new_elt("last_child", 'idno'         => {type => "ID"});
-    my $analytic_idno_metafile  = $analytic->insert_new_elt("last_child", 'idno'         => {type => "KIELIPANKKI_METAFILENAME"});
-    my $analytic_idno_origfile  = $analytic->insert_new_elt("last_child", 'idno'         => {type => "KIELIPANKKI_ORIGFILENAME"});
-    my $analytic_textlang       = $analytic->insert_new_elt("last_child", 'textLang');
-
-    # set texts for analytic
-#    $analytic_title         ->set_text($LABEL . ", page " . $PAGENO);  # Achtung $PAGENO scheint meist "None zu sein"
-    $analytic_title         ->set_text($LABEL . ", Text #" . $textcounter);  # Achtung $PAGENO scheint meist "None zu sein"
-#    $analytic_date         ->set_text($DATE);
-    $analytic_date_year     ->set_text($datearray[0]);
-    $analytic_date_month    ->set_text($datearray[1]);
-    $analytic_date_day      ->set_text($datearray[2]);
-    $analytic_idno_pageid   ->set_text($PAGEID);
-    $analytic_idno_bindingid->set_text($BID);
-    $analytic_idno_id       ->set_text($ID);
-    $analytic_idno_metafile ->set_text($METAFILENAME);
-    $analytic_idno_origfile ->set_text($ORIGFILENAME);
-    $analytic_textlang      ->set_text($LANGUAGE);
-
-    #-------------------------------------    
-    # fileDesc/sourceDesc/biblStruct/monogr
-    #-------------------------------------
-    my $monogr               = $biblStruct->insert_new_elt("last_child", 'monogr');
-    my $monogr_title         = $monogr    ->insert_new_elt("last_child", 'title');
-    my $imprint              = $monogr    ->insert_new_elt("last_child", 'imprint');   # imprint is needed for valididty
-    my $pubPlace             = $imprint   ->insert_new_elt("last_child", 'pubPlace');  # imprint is needed for validity
-    my $publisher            = $imprint   ->insert_new_elt("last_child", 'publisher'); # imprint is needed for validity
-    my $biblScope_issuetitle = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUETITLE'} );
-    my $biblScope_issueno    = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUENO'} );
-    my $biblScope_issuedate  = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUEDATE'} );
-    my $biblScope_pp         = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'PAGENO'} );      # Achtung PAGENO ist meist "None" ?
-
-    # set texts for monogr
-    $monogr_title        ->set_text($PUBLTITLE);
-    $pubPlace            ->set_text("TODO");
-    $pubPlace            ->set_att("key",'FI');
-    $publisher           ->set_text("TODO");
-    $biblScope_issuetitle->set_text($ISSUETITLE);
-    $biblScope_issueno   ->set_text($ISSUENO);
-    $biblScope_issuedate ->set_text($ISSUEDATE);
-    $biblScope_pp        ->set_text($PAGENO);
- 
-    #---------------
-    # encodingDesc
-    #---------------
-    my $tagsDecl     = $encodingDesc->insert_new_elt("last_child", 'tagsDecl');
-    my $namespace    = $tagsDecl    ->insert_new_elt("last_child", 'namespace'    => {name => 'http://www.tei-c.org/ns/1.0'});
-    my $tagUsage_s   = $namespace   ->insert_new_elt("last_child", 'tagUsage'     => {gi   => 's', occurs => $SENTCOUNT});
-    my $tagUsage_w   = $namespace   ->insert_new_elt("last_child", 'tagUsage'     => {gi   => 'w', occurs => $TOKENCOUNT});
     
-    #-------------
-    # profileDesc
-    #-------------
-    my $langUsage   = $profileDesc ->insert_new_elt("last_child", 'langUsage');
-    my $language    = $langUsage   ->insert_new_elt("last_child", 'language'      => {ident => $LANGUAGE, usage => $SUMLANG});
-    # Achtung in @usage muss eigt. ein integer; am besten inhalt von SUMLANG aufdroeseln und mehrere <language> machen
-    my $textClass   = $profileDesc ->insert_new_elt("last_child", 'textClass');
-    my $classCode_fi   = $textClass   ->insert_new_elt("last_child", 'classCode' => {scheme       => "KLK_PUBLTYPE"});
-#    my $classCode_en   = $textClass   ->insert_new_elt("last_child", 'classCode' => {scheme      => "KLK_PUBLTYPE_MAPPED"});
+##TMP      # create <teiHeader> inside <TEI>
+##TMP      my $teiHeader = XML::Twig::Elt->new('teiHeader');
+##TMP      # $teiHeader->paste('first_child', $text);
+##TMP  
+##TMP      ## insert_new_elt is a combo of new and paste, cf. xml::twig docu:
+##TMP      ## insert_new_elt ($opt_position, $gi, $opt_atts_hashref, @opt_content)
+##TMP      
+##TMP      my $fileDesc     = $teiHeader->insert_new_elt('fileDesc'                           => {n => "EuReCo_KLK-fi_" . $namearray[4]});
+##TMP      my $encodingDesc = $teiHeader->insert_new_elt("last_child", 'encodingDesc');
+##TMP      my $profileDesc  = $teiHeader->insert_new_elt("last_child", 'profileDesc');
+##TMP      my $revisionDesc = $teiHeader->insert_new_elt("last_child", 'revisionDesc');
+##TMP  
+##TMP      #---------------------
+##TMP      # fileDesc/titleStmt
+##TMP      #---------------------
+##TMP      my $titleStmt = $fileDesc ->insert_new_elt('titleStmt');
+##TMP      my $title     = $titleStmt->insert_new_elt("last_child", 'title');
+##TMP      my $respStmt  = $titleStmt->insert_new_elt("last_child", 'respStmt');
+##TMP      my $resp      = $respStmt ->insert_new_elt("last_child", 'resp');
+##TMP      my $name      = $respStmt ->insert_new_elt("last_child", 'name');
+##TMP  
+##TMP      # set texts for titleStmt
+##TMP      # $title->set_text($LABEL . ", page " . $PAGENO);           # Achtung - PAGENO scheint meist "None" zu sein
+##TMP      $title->set_text($LABEL . ", Text #" . $textcounter);    # at least for Suomen Kuvalehti
+##TMP      $resp ->set_text("compiled by EuReCo");
+##TMP      $name ->set_text("EuReCo: HL");
+##TMP  
+##TMP      #--------------------------
+##TMP      # fileDesc/publicationStmt
+##TMP      #--------------------------
+##TMP      my $publicationStmt = $fileDesc       ->insert_new_elt("last_child", 'publicationStmt');
+##TMP      my $distributor     = $publicationStmt->insert_new_elt("last_child", 'distributor');
+##TMP      my $note            = $distributor    ->insert_new_elt("last_child", 'note');
+##TMP      my $availability    = $publicationStmt->insert_new_elt("last_child", 'availability'); 
+##TMP      my $licence         = $availability   ->insert_new_elt("last_child", 'licence');
+##TMP  
+##TMP      # set texts for publicationStmt
+##TMP      $note   ->set_text("NOT FOR DISTRIBUTION - to be used locally in EuReCo");
+##TMP      $licence->set_text("CLARIN_RES");  # TODO: Ausfuherlichere Licence info in KLK Metadata Record
+##TMP  
+##TMP      #------------------------------
+##TMP      # fileDesc/sourceDesc/biblStruct
+##TMP      #------------------------------
+##TMP      my $sourceDesc = $fileDesc  ->insert_new_elt("last_child", 'sourceDesc');
+##TMP      my $biblStruct   = $sourceDesc->insert_new_elt("last_child", 'biblStruct');
+##TMP  
+##TMP      # fileDesc/sourceDesc/biblStruct/analytic
+##TMP      my $analytic                = $biblStruct->insert_new_elt("last_child", 'analytic');
+##TMP      my $analytic_title          = $analytic->insert_new_elt("last_child", 'title'        => {type => "main"} );
+##TMP  #    my $analytic_date           = $analytic->insert_new_elt("last_child", 'date');
+##TMP      my $analytic_date_year      = $analytic->insert_new_elt("last_child", 'date'         => {type => "year"});
+##TMP      my $analytic_date_month     = $analytic->insert_new_elt("last_child", 'date'         => {type => "month"});
+##TMP      my $analytic_date_day       = $analytic->insert_new_elt("last_child", 'date'         => {type => "day"});
+##TMP      my $analytic_idno_pageid    = $analytic->insert_new_elt("last_child", 'idno'         => {type => "PAGEID"});
+##TMP      my $analytic_idno_bindingid = $analytic->insert_new_elt("last_child", 'idno'         => {type => "BINDINGID"});
+##TMP      my $analytic_idno_id        = $analytic->insert_new_elt("last_child", 'idno'         => {type => "ID"});
+##TMP      my $analytic_idno_metafile  = $analytic->insert_new_elt("last_child", 'idno'         => {type => "KIELIPANKKI_METAFILENAME"});
+##TMP      my $analytic_idno_origfile  = $analytic->insert_new_elt("last_child", 'idno'         => {type => "KIELIPANKKI_ORIGFILENAME"});
+##TMP      my $analytic_textlang       = $analytic->insert_new_elt("last_child", 'textLang');
+##TMP  
+##TMP      # set texts for analytic
+##TMP  #    $analytic_title         ->set_text($LABEL . ", page " . $PAGENO);  # Achtung $PAGENO scheint meist "None zu sein"
+##TMP      $analytic_title         ->set_text($LABEL . ", Text #" . $textcounter);  # Achtung $PAGENO scheint meist "None zu sein"
+##TMP  #    $analytic_date         ->set_text($DATE);
+##TMP      $analytic_date_year     ->set_text($datearray[0]);
+##TMP      $analytic_date_month    ->set_text($datearray[1]);
+##TMP      $analytic_date_day      ->set_text($datearray[2]);
+##TMP      $analytic_idno_pageid   ->set_text($PAGEID);
+##TMP      $analytic_idno_bindingid->set_text($BID);
+##TMP      $analytic_idno_id       ->set_text($ID);
+##TMP      $analytic_idno_metafile ->set_text($METAFILENAME);
+##TMP      $analytic_idno_origfile ->set_text($ORIGFILENAME);
+##TMP      $analytic_textlang      ->set_text($LANGUAGE);
+##TMP  
+##TMP      #-------------------------------------    
+##TMP      # fileDesc/sourceDesc/biblStruct/monogr
+##TMP      #-------------------------------------
+##TMP      my $monogr               = $biblStruct->insert_new_elt("last_child", 'monogr');
+##TMP      my $monogr_title         = $monogr    ->insert_new_elt("last_child", 'title');
+##TMP      my $imprint              = $monogr    ->insert_new_elt("last_child", 'imprint');   # imprint is needed for valididty
+##TMP      my $pubPlace             = $imprint   ->insert_new_elt("last_child", 'pubPlace');  # imprint is needed for validity
+##TMP      my $publisher            = $imprint   ->insert_new_elt("last_child", 'publisher'); # imprint is needed for validity
+##TMP      my $biblScope_issuetitle = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUETITLE'} );
+##TMP      my $biblScope_issueno    = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUENO'} );
+##TMP      my $biblScope_issuedate  = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'ISSUEDATE'} );
+##TMP      my $biblScope_pp         = $monogr    ->insert_new_elt("last_child", 'biblScope'   => {unit => 'PAGENO'} );      # Achtung PAGENO ist meist "None" ?
+##TMP  
+##TMP      # set texts for monogr
+##TMP      $monogr_title        ->set_text($PUBLTITLE);
+##TMP      $pubPlace            ->set_text("TODO");
+##TMP      $pubPlace            ->set_att("key",'FI');
+##TMP      $publisher           ->set_text("TODO");
+##TMP      $biblScope_issuetitle->set_text($ISSUETITLE);
+##TMP      $biblScope_issueno   ->set_text($ISSUENO);
+##TMP      $biblScope_issuedate ->set_text($ISSUEDATE);
+##TMP      $biblScope_pp        ->set_text($PAGENO);
+##TMP   
+##TMP      #---------------
+##TMP      # encodingDesc
+##TMP      #---------------
+##TMP      my $tagsDecl     = $encodingDesc->insert_new_elt("last_child", 'tagsDecl');
+##TMP      my $namespace    = $tagsDecl    ->insert_new_elt("last_child", 'namespace'    => {name => 'http://www.tei-c.org/ns/1.0'});
+##TMP      my $tagUsage_s   = $namespace   ->insert_new_elt("last_child", 'tagUsage'     => {gi   => 's', occurs => $SENTCOUNT});
+##TMP      my $tagUsage_w   = $namespace   ->insert_new_elt("last_child", 'tagUsage'     => {gi   => 'w', occurs => $TOKENCOUNT});
+##TMP      
+##TMP      #-------------
+##TMP      # profileDesc
+##TMP      #-------------
+##TMP      my $langUsage   = $profileDesc ->insert_new_elt("last_child", 'langUsage');
+##TMP      my $language    = $langUsage   ->insert_new_elt("last_child", 'language'      => {ident => $LANGUAGE, usage => $SUMLANG});
+##TMP      # Achtung in @usage muss eigt. ein integer; am besten inhalt von SUMLANG aufdroeseln und mehrere <language> machen
+##TMP      my $textClass   = $profileDesc ->insert_new_elt("last_child", 'textClass');
+##TMP      my $classCode_fi   = $textClass   ->insert_new_elt("last_child", 'classCode' => {scheme       => "KLK_PUBLTYPE"});
+##TMP  #    my $classCode_en   = $textClass   ->insert_new_elt("last_child", 'classCode' => {scheme      => "KLK_PUBLTYPE_MAPPED"});
+##TMP  
+##TMP      #---------------------------
+##TMP      # set texts for profileDesc
+##TMP      #---------------------------
+##TMP      $classCode_fi ->set_text($PUBLTYPE);
+##TMP  #    $classCode_en->set_text($PUBLTYPETRANSL);
+##TMP  
+##TMP      #---------------
+##TMP      # revisionDesc
+##TMP      #---------------
+##TMP      my $change      = $revisionDesc ->insert_new_elt("last_child", 'change'       => {when => localtime->ymd('-'), who => 'HL'  });
+##TMP  
+##TMP      # set texts for revisionDesc
+##TMP      $change->set_text("TEI version for EuReCo");
 
-    #---------------------------
-    # set texts for profileDesc
-    #---------------------------
-    $classCode_fi ->set_text($PUBLTYPE);
-#    $classCode_en->set_text($PUBLTYPETRANSL);
 
-    #---------------
-    # revisionDesc
-    #---------------
-    my $change      = $revisionDesc ->insert_new_elt("last_child", 'change'       => {when => localtime->ymd('-'), who => 'HL'  });
 
-    # set texts for revisionDesc
-    $change->set_text("TEI version for EuReCo");
 
 
+
+    
+
     ###################################
     # END OF CREATING TEIHEADER
     ###################################
@@ -549,6 +666,53 @@
     
 }
     
+
+sub set_title{
+    my ($corpusHeader, $source, $yy, $kielipankkiCorpus) = @_;
+
+    my $cTitleString = $source . " " . $yy . ", from ". $kielipankkiCorpus . " for EuReCo";    
+
+    #<teiHeader>
+    #  <fileDesc>
+    #    <titleStmt>
+    #      <title>[Aamulehti2021] from [klk-fi-v2-vrt for] EuReCo</title>
+    #    </titleStmt>
+    #    <!-- ... -->
+    #  </fileDesc>
+    #</teiHeader>
+
+    my $cTitleNode = $corpusHeader->first_child("fileDesc")->first_child("titleStmt")->first_child("title");
+
+    $cTitleNode->set_text($cTitleString);
+    
+}
+
+sub set_sourceDesc{
+    my ($corpusHeader, $source, $yy, $kielipankkiCorpus) = @_;
+
+    my $cBiblString = $source . " " . $yy . ", from ". $kielipankkiCorpus . " for EuReCo";    
+
+    #<teiHeader>
+    #  <fileDesc>
+    #    <!-- ... -->
+    #    <sourceDesc>
+    #      <bibl>[Aamulehti2021] from [klk-fi-v2-vrt]</bibl>
+    #    </sourceDesc>
+    #    <!-- ... -->
+    #  </fileDesc>
+    #</teiHeader>
+
+    my $cBiblNode = $corpusHeader->first_child("fileDesc")->first_child("sourceDesc")->first_child("bibl");
+
+    $cBiblNode->set_text($cBiblString);    
+}
+
+
+
+
+
+
+
 #################
 ## usage_message
 #################
