
<!--
DTD generated from ODD source 2015-10-15T19:58:49Z. .This template file is freely available and you are hereby authorised to copy, modify, and redistribute it in any way without further reference or permissions. When making such modifications, you are strongly recommended to change the present text to include an accurate statement of the licencing conditions applicable to your modified text.
TEI Edition: Version 2.9.1. Last updated on
	15th October 2015, revision 46ac023
TEI Edition Location: http://www.tei-c.org/Vault/P5/Version 2.9.1/

-->

<!-- start datatypes -->

<!ENTITY % data.certainty '(high|medium|low|unknown)' >

<!ENTITY % data.probability ' CDATA ' >

<!ENTITY % data.numeric ' CDATA' >

<!ENTITY % data.count ' CDATA ' >

<!ENTITY % data.temporal.w3c ' CDATA' >

<!ENTITY % data.duration.w3c ' CDATA ' >

<!ENTITY % data.truthValue ' CDATA ' >

<!ENTITY % data.xTruthValue ' CDATA' >

<!ENTITY % data.language ' CDATA' >

<!ENTITY % data.outputMeasurement ' CDATA ' >

<!ENTITY % data.pointer ' CDATA ' >

<!ENTITY % data.versionNumber ' CDATA ' >

<!ENTITY % data.word ' CDATA ' >

<!ENTITY % data.text ' CDATA ' >

<!ENTITY % data.name ' CDATA ' >

<!ENTITY % data.enumerated '%data.word;' >

<!ENTITY % data.duration.iso ' CDATA ' >

<!-- end datatypes -->

<!-- predeclared classes -->

<!ENTITY % att.global.rendition.attribute.rend '
rend CDATA  #IMPLIED'>

<!ENTITY % att.global.rendition.attribute.style '
style CDATA  #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 % model.placeNamePart ""> 
<!ENTITY % model.placeNamePart_sequence ""> 
<!ENTITY % model.placeNamePart_sequenceOptional ""> 
<!ENTITY % model.placeNamePart_sequenceOptionalRepeatable ""> 
<!ENTITY % model.placeNamePart_sequenceRepeatable ""> 
<!ENTITY % model.placeStateLike ""> 
<!ENTITY % model.placeStateLike_sequence ""> 
<!ENTITY % model.placeStateLike_sequenceOptional ""> 
<!ENTITY % model.placeStateLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.placeStateLike_sequenceRepeatable ""> 
<!-- end of predeclared classes -->

<!ENTITY % att.datcat.attribute.datcat '
datcat CDATA  #IMPLIED'>

<!ENTITY % att.datcat.attribute.valueDatcat '
valueDatcat CDATA  #IMPLIED'>
<!ENTITY % att.datcat.attributes '
 %att.datcat.attribute.datcat;
 %att.datcat.attribute.valueDatcat;'> 
<!ENTITY % att.global.responsibility.attribute.cert '
cert %data.certainty;  #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 CDATA  #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.attribute.xmlid '
xml:id ID #IMPLIED'>

<!ENTITY % att.global.attribute.xmllang '
xml:lang %data.language;  #IMPLIED'>

<!ENTITY % att.global.attribute.xmlbase '
xml:base %data.pointer;  #IMPLIED'>
<!ENTITY % att.global.attributes '%att.global.rendition.attributes;%att.global.responsibility.attributes;
 %att.global.attribute.xmlid;
 %att.global.attribute.xmllang;
 %att.global.attribute.xmlbase;'> 
<!ENTITY % model.nameLike.agent ""> 
<!ENTITY % model.nameLike.agent_sequence ""> 
<!ENTITY % model.nameLike.agent_sequenceOptional ""> 
<!ENTITY % model.nameLike.agent_sequenceOptionalRepeatable ""> 
<!ENTITY % model.nameLike.agent_sequenceRepeatable ""> 
<!ENTITY % model.segLike ""> 
<!ENTITY % model.segLike_sequence ""> 
<!ENTITY % model.segLike_sequenceOptional ""> 
<!ENTITY % model.segLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.segLike_sequenceRepeatable ""> 
<!ENTITY % model.hiLike ""> 
<!ENTITY % model.hiLike_sequence ""> 
<!ENTITY % model.hiLike_sequenceOptional ""> 
<!ENTITY % model.hiLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.hiLike_sequenceRepeatable ""> 
<!ENTITY % model.emphLike ""> 
<!ENTITY % model.emphLike_sequence ""> 
<!ENTITY % model.emphLike_sequenceOptional ""> 
<!ENTITY % model.emphLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.emphLike_sequenceRepeatable ""> 
<!ENTITY % model.highlighted ""> 
<!ENTITY % model.highlighted_sequence ""> 
<!ENTITY % model.highlighted_sequenceOptional ""> 
<!ENTITY % model.highlighted_sequenceOptionalRepeatable ""> 
<!ENTITY % model.highlighted_sequenceRepeatable ""> 
<!ENTITY % model.dateLike ""> 
<!ENTITY % model.dateLike_sequence ""> 
<!ENTITY % model.dateLike_sequenceOptional ""> 
<!ENTITY % model.dateLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.dateLike_sequenceRepeatable ""> 
<!ENTITY % model.measureLike ""> 
<!ENTITY % model.measureLike_sequence ""> 
<!ENTITY % model.measureLike_sequenceOptional ""> 
<!ENTITY % model.measureLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.measureLike_sequenceRepeatable ""> 
<!ENTITY % model.egLike ""> 
<!ENTITY % model.egLike_sequence ""> 
<!ENTITY % model.egLike_sequenceOptional ""> 
<!ENTITY % model.egLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.egLike_sequenceRepeatable ""> 
<!ENTITY % model.graphicLike ""> 
<!ENTITY % model.graphicLike_sequence ""> 
<!ENTITY % model.graphicLike_sequenceOptional ""> 
<!ENTITY % model.graphicLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.graphicLike_sequenceRepeatable ""> 
<!ENTITY % model.offsetLike ""> 
<!ENTITY % model.offsetLike_sequence ""> 
<!ENTITY % model.offsetLike_sequenceOptional ""> 
<!ENTITY % model.offsetLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.offsetLike_sequenceRepeatable ""> 
<!ENTITY % model.pPart.msdesc ""> 
<!ENTITY % model.pPart.msdesc_sequence ""> 
<!ENTITY % model.pPart.msdesc_sequenceOptional ""> 
<!ENTITY % model.pPart.msdesc_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pPart.msdesc_sequenceRepeatable ""> 
<!ENTITY % model.pPart.editorial ""> 
<!ENTITY % model.pPart.editorial_sequence ""> 
<!ENTITY % model.pPart.editorial_sequenceOptional ""> 
<!ENTITY % model.pPart.editorial_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pPart.editorial_sequenceRepeatable ""> 
<!ENTITY % model.pPart.transcriptional ""> 
<!ENTITY % model.pPart.transcriptional_sequence ""> 
<!ENTITY % model.pPart.transcriptional_sequenceOptional ""> 
<!ENTITY % model.pPart.transcriptional_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pPart.transcriptional_sequenceRepeatable ""> 
<!ENTITY % model.pPart.edit ""> 
<!ENTITY % model.pPart.edit_sequence ""> 
<!ENTITY % model.pPart.edit_sequenceOptional ""> 
<!ENTITY % model.pPart.edit_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pPart.edit_sequenceRepeatable ""> 
<!ENTITY % model.ptrLike ""> 
<!ENTITY % model.ptrLike_sequence ""> 
<!ENTITY % model.ptrLike_sequenceOptional ""> 
<!ENTITY % model.ptrLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.ptrLike_sequenceRepeatable ""> 
<!ENTITY % model.lPart ""> 
<!ENTITY % model.lPart_sequence ""> 
<!ENTITY % model.lPart_sequenceOptional ""> 
<!ENTITY % model.lPart_sequenceOptionalRepeatable ""> 
<!ENTITY % model.lPart_sequenceRepeatable ""> 
<!ENTITY % model.global.meta "fs |fLib |fvLib"> 
<!ENTITY % model.global.meta_sequence "fs, fLib, fvLib"> 
<!ENTITY % model.global.meta_sequenceOptional "fs?, fLib?, fvLib?"> 
<!ENTITY % model.global.meta_sequenceOptionalRepeatable "fs*, fLib*, fvLib*"> 
<!ENTITY % model.global.meta_sequenceRepeatable "fs+, fLib+, fvLib+"> 
<!ENTITY % model.milestoneLike ""> 
<!ENTITY % model.milestoneLike_sequence ""> 
<!ENTITY % model.milestoneLike_sequenceOptional ""> 
<!ENTITY % model.milestoneLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.milestoneLike_sequenceRepeatable ""> 
<!ENTITY % model.gLike ""> 
<!ENTITY % model.gLike_sequence ""> 
<!ENTITY % model.gLike_sequenceOptional ""> 
<!ENTITY % model.gLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.gLike_sequenceRepeatable ""> 
<!ENTITY % model.oddDecl ""> 
<!ENTITY % model.oddDecl_sequence ""> 
<!ENTITY % model.oddDecl_sequenceOptional ""> 
<!ENTITY % model.oddDecl_sequenceOptionalRepeatable ""> 
<!ENTITY % model.oddDecl_sequenceRepeatable ""> 
<!ENTITY % model.phrase.xml ""> 
<!ENTITY % model.phrase.xml_sequence ""> 
<!ENTITY % model.phrase.xml_sequenceOptional ""> 
<!ENTITY % model.phrase.xml_sequenceOptionalRepeatable ""> 
<!ENTITY % model.phrase.xml_sequenceRepeatable ""> 
<!ENTITY % model.specDescLike ""> 
<!ENTITY % model.specDescLike_sequence ""> 
<!ENTITY % model.specDescLike_sequenceOptional ""> 
<!ENTITY % model.specDescLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.specDescLike_sequenceRepeatable ""> 
<!ENTITY % model.biblLike ""> 
<!ENTITY % model.biblLike_sequence ""> 
<!ENTITY % model.biblLike_sequenceOptional ""> 
<!ENTITY % model.biblLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.biblLike_sequenceRepeatable ""> 
<!ENTITY % model.labelLike ""> 
<!ENTITY % model.labelLike_sequence ""> 
<!ENTITY % model.labelLike_sequenceOptional ""> 
<!ENTITY % model.labelLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.labelLike_sequenceRepeatable ""> 
<!ENTITY % model.listLike ""> 
<!ENTITY % model.listLike_sequence ""> 
<!ENTITY % model.listLike_sequenceOptional ""> 
<!ENTITY % model.listLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.listLike_sequenceRepeatable ""> 
<!ENTITY % model.noteLike ""> 
<!ENTITY % model.noteLike_sequence ""> 
<!ENTITY % model.noteLike_sequenceOptional ""> 
<!ENTITY % model.noteLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.noteLike_sequenceRepeatable ""> 
<!ENTITY % model.lLike ""> 
<!ENTITY % model.lLike_sequence ""> 
<!ENTITY % model.lLike_sequenceOptional ""> 
<!ENTITY % model.lLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.lLike_sequenceRepeatable ""> 
<!ENTITY % model.pLike ""> 
<!ENTITY % model.pLike_sequence ""> 
<!ENTITY % model.pLike_sequenceOptional ""> 
<!ENTITY % model.pLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pLike_sequenceRepeatable ""> 
<!ENTITY % model.stageLike ""> 
<!ENTITY % model.stageLike_sequence ""> 
<!ENTITY % model.stageLike_sequenceOptional ""> 
<!ENTITY % model.stageLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.stageLike_sequenceRepeatable ""> 
<!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.global.edit ""> 
<!ENTITY % model.global.edit_sequence ""> 
<!ENTITY % model.global.edit_sequenceOptional ""> 
<!ENTITY % model.global.edit_sequenceOptionalRepeatable ""> 
<!ENTITY % model.global.edit_sequenceRepeatable ""> 
<!ENTITY % model.divPart ""> 
<!ENTITY % model.divPart_sequence ""> 
<!ENTITY % model.divPart_sequenceOptional ""> 
<!ENTITY % model.divPart_sequenceOptionalRepeatable ""> 
<!ENTITY % model.divPart_sequenceRepeatable ""> 
<!ENTITY % model.placeNamePart ""> 
<!ENTITY % model.placeNamePart_sequence ""> 
<!ENTITY % model.placeNamePart_sequenceOptional ""> 
<!ENTITY % model.placeNamePart_sequenceOptionalRepeatable ""> 
<!ENTITY % model.placeNamePart_sequenceRepeatable ""> 
<!ENTITY % model.placeStateLike ""> 
<!ENTITY % model.placeStateLike_sequence ""> 
<!ENTITY % model.placeStateLike_sequenceOptional ""> 
<!ENTITY % model.placeStateLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.placeStateLike_sequenceRepeatable ""> 
<!ENTITY % model.quoteLike ""> 
<!ENTITY % model.quoteLike_sequence ""> 
<!ENTITY % model.quoteLike_sequenceOptional ""> 
<!ENTITY % model.quoteLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.quoteLike_sequenceRepeatable ""> 
<!ENTITY % model.qLike ""> 
<!ENTITY % model.qLike_sequence ""> 
<!ENTITY % model.qLike_sequenceOptional ""> 
<!ENTITY % model.qLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.qLike_sequenceRepeatable ""> 
<!ENTITY % model.addressLike ""> 
<!ENTITY % model.addressLike_sequence ""> 
<!ENTITY % model.addressLike_sequenceOptional ""> 
<!ENTITY % model.addressLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.addressLike_sequenceRepeatable ""> 
<!ENTITY % model.nameLike ""> 
<!ENTITY % model.nameLike_sequence ""> 
<!ENTITY % model.nameLike_sequenceOptional ""> 
<!ENTITY % model.nameLike_sequenceOptionalRepeatable ""> 
<!ENTITY % model.nameLike_sequenceRepeatable ""> 
<!ENTITY % model.global "%model.global.meta;"> 
<!ENTITY % model.global_sequence "%model.global.meta;"> 
<!ENTITY % model.global_sequenceOptional "%model.global.meta;?"> 
<!ENTITY % model.global_sequenceOptionalRepeatable "%model.global.meta;*"> 
<!ENTITY % model.global_sequenceRepeatable "%model.global.meta;+"> 
<!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.pPart.data ""> 
<!ENTITY % model.pPart.data_sequence ""> 
<!ENTITY % model.pPart.data_sequenceOptional ""> 
<!ENTITY % model.pPart.data_sequenceOptionalRepeatable ""> 
<!ENTITY % model.pPart.data_sequenceRepeatable ""> 
<!ENTITY % model.inter ""> 
<!ENTITY % model.inter_sequence ""> 
<!ENTITY % model.inter_sequenceOptional ""> 
<!ENTITY % model.inter_sequenceOptionalRepeatable ""> 
<!ENTITY % model.inter_sequenceRepeatable ""> 
<!ENTITY % model.phrase ""> 
<!ENTITY % model.phrase_sequence ""> 
<!ENTITY % model.phrase_sequenceOptional ""> 
<!ENTITY % model.phrase_sequenceOptionalRepeatable ""> 
<!ENTITY % model.phrase_sequenceRepeatable ""> 
<!ENTITY % model.limitedPhrase ""> 
<!ENTITY % model.limitedPhrase_sequence ""> 
<!ENTITY % model.limitedPhrase_sequenceOptional ""> 
<!ENTITY % model.limitedPhrase_sequenceOptionalRepeatable ""> 
<!ENTITY % model.limitedPhrase_sequenceRepeatable ""> 
<!-- start rest of patterns -->

<!ENTITY % macro.limitedContent '(#PCDATA|_DUMMY_model.limitedPhrase|_DUMMY_model.inter)*' >

<!ENTITY % macro.xtext '(#PCDATA|_DUMMY_model.gLike)*' >

<!-- end patterns -->

<!-- start elements -->

<!--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. [18.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. [18.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 %data.truthValue;  #REQUIRED >
<!--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. [18.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:(default feature value) represents the value part of a feature-value specification which contains a defaulted value. [18.9. Default Values] -->
<!ELEMENT default EMPTY>
<!ATTLIST default xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST default
 %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. [18.2. Elementary Feature Structures and the Binary
Feature Value] -->
<!ELEMENT f (#PCDATA|_DUMMY_model.gLike|%model.featureVal;)*>
<!ATTLIST f xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST f
 %att.global.attributes;
 %att.datcat.attributes;
name %data.name;  #REQUIRED
fVal %data.pointer;  #IMPLIED >
<!--doc:(feature declaration) declares a single feature, specifying its name, organization, range of allowed values, and optionally its default value. [18.11. Feature System Declaration] -->
<!ELEMENT fDecl (fDescr?,vRange,vDefault?)>
<!ATTLIST fDecl xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST fDecl
 %att.global.attributes;
name %data.name;  #REQUIRED
optional %data.truthValue;  "true"  >
<!--doc:(feature description (in FSD)) describes in prose what is represented by the feature being declared and its values. [18.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 feature elements. [18.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; >
<!--doc:(feature structure) represents a feature structure, that is, a collection of feature-value pairs organized as a structural unit. [18.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;
type %data.enumerated;  #IMPLIED
feats CDATA  #IMPLIED >
<!--doc:(feature-structure constraints) specifies constraints on the content of valid feature structures. [18.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. [18.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;
type %data.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. [18.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. [18.11. Feature System Declaration] -->
<!ELEMENT fsdDecl (fsDecl|fsdLink)+>
<!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. [18.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 %data.enumerated;  #REQUIRED
target %data.pointer;  #REQUIRED >
<!--doc:(feature-value library) assembles a library of reusable feature value elements (including complete feature structures). [18.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; >
<!--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. [18.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. [18.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:(numeric value) represents the value part of a feature-value specification which contains a numeric value or range. [18.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 %data.numeric;  #REQUIRED
max %data.numeric;  #IMPLIED
trunc %data.truthValue;  #IMPLIED >
<!--doc:(string value) represents the value part of a feature-value specification which contains a string. [18.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:(symbolic value) represents the value part of a feature-value specification which contains one of a finite list of symbols. [18.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 %data.word;  #REQUIRED >
<!--doc:separates the condition from the default in an if, or the antecedent and the consequent in a cond element. [18.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:(value alternation) represents the value part of a feature-value specification which contains a set of values, only one of which can be valid. [18.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. [18.7. Collections as Complex Feature Values] -->
<!ELEMENT vColl (fs|%model.featureVal.single;)*>
<!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. [18.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. [18.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 %data.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. [18.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. [18.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. [18.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; >
<!-- end elements -->
