
<!--
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 -->
