<!-- TEI P4 DTD. Generated 2004-07-15T16:23:38-04:00 by odd2dtd.xsl -->

<!-- 26.1: Feature System Declaration-->
<!--
 ** Copyright 2004 TEI Consortium.
 ** See the main DTD fragment 'tei2.dtd' or the file 'COPYING' for the
 ** complete copyright notice.
-->
<!--First, we declare basic parameter entities and entities for
TEI generic identifiers.-->
<!ENTITY % TEI.elementNames PUBLIC '-//TEI P4//ENTITIES Generic Identifiers//EN' 'teigis2.ent' >%TEI.elementNames;

<!--Declare entities for TEI keywords.-->
<!ENTITY % TEI.keywords.ent PUBLIC '-//TEI P4//ENTITIES TEI Keywords//EN' 'teikey2.ent' >%TEI.keywords.ent;

<!--Declare element classes for content models, shared
attributes for element classes, and global attributes.  (This all
happens within the file teiclas2.ent.)-->
<!ENTITY % TEI.elementClasses PUBLIC '-//TEI P4//ENTITIES TEI ElementClasses//EN' 'teiclas2.ent' >%TEI.elementClasses;

<!--Declare element classes for feature structure
declarations.-->
<!ENTITY % x.boolean "" >
<!ENTITY % m.boolean "%x.boolean; %n.any; | %n.none;"> 
<!ENTITY % x.binary "" >
<!ENTITY % m.binary "%x.binary; %n.minus; | %n.plus;"> 
<!ENTITY % x.singleVal "" >
<!ENTITY % m.singleVal "%x.singleVal; %m.binary; | %m.boolean; | %n.dft; | %n.msr; | %n.nbr; | %n.rate; | %n.str; | %n.sym; | %n.uncertain;"> 
<!ENTITY % x.complexVal "" >
<!ENTITY % m.complexVal "%x.complexVal; %n.alt; | %n.fs; | %n.vAlt;"> 
<!ENTITY % x.featureVal "" >
<!ENTITY % m.featureVal "%x.featureVal; %m.complexVal; | %n.null; | %m.singleVal;"> 
<!--Now, we declare the elements for FSDs proper.-->
<!-- 26.2: Feature System Declaration-->
<!ENTITY % teiFsd2 'INCLUDE' >
<![ %teiFsd2; [

<!ELEMENT %n.teiFsd2; %om.RR;  ((%n.teiHeader;), (%n.fsDecl;)+)> 
<!ATTLIST %n.teiFsd2;
      %a.global;
      TEIform CDATA 'teiFsd2'  >
]]>  
<!ENTITY % fsDecl 'INCLUDE' >
<![ %fsDecl; [

<!ELEMENT %n.fsDecl; %om.RR;   ((%n.fsDescr;)?, (%n.fDecl;)+, (%n.fsConstraints;)?)> 
<!ATTLIST %n.fsDecl;
      %a.global;
      type CDATA #REQUIRED
      baseType CDATA #IMPLIED
      TEIform CDATA 'fsDecl'  >
]]>  
<!ENTITY % fsDescr 'INCLUDE' >
<![ %fsDescr; [

<!ELEMENT %n.fsDescr; %om.RO;  %paraContent;> 
<!ATTLIST %n.fsDescr;
      %a.global;
      TEIform CDATA 'fsDescr'  >
]]>  
<!-- end of 26.2-->
<!-- 26.3: Feature definitions-->
<!ENTITY % fDecl 'INCLUDE' >
<![ %fDecl; [

<!ELEMENT %n.fDecl; %om.RR;   ((%n.fDescr;)?, (%n.vRange;), (%n.vDefault;)?)> 
<!ATTLIST %n.fDecl;
      %a.global;
      name NMTOKEN #REQUIRED
      org (unit | set | bag | list) "unit"
      TEIform CDATA 'fDecl'  >
]]>  
<!ENTITY % fDescr 'INCLUDE' >
<![ %fDescr; [

<!ELEMENT %n.fDescr; %om.RO;  %paraContent;> 
<!ATTLIST %n.fDescr;
      %a.global;
      TEIform CDATA 'fDescr'  >
]]>  
<!ENTITY % vRange 'INCLUDE' >
<![ %vRange; [

<!ELEMENT %n.vRange; %om.RO;   (%m.featureVal;)> 
<!ATTLIST %n.vRange;
      %a.global;
      TEIform CDATA 'vRange'  >
]]>  
<!ENTITY % vDefault 'INCLUDE' >
<![ %vDefault; [

<!ELEMENT %n.vDefault; %om.RR;  ((%m.featureVal;)+ | (%n.if;)+)> 
<!ATTLIST %n.vDefault;
      %a.global;
      TEIform CDATA 'vDefault'  >
]]>  
<!ENTITY % if 'INCLUDE' >
<![ %if; [

<!ELEMENT %n.if; %om.RR;   (((%n.fs;) | %n.f; | %n.fAlt;), (%n.then;), (%m.featureVal;) )> 
<!ATTLIST %n.if;
      %a.global;
      TEIform CDATA 'if'  >
]]>  
<!ENTITY % then 'INCLUDE' >
<![ %then; [

<!ELEMENT %n.then; %om.RO;  EMPTY> 
<!ATTLIST %n.then;
      %a.global;
      TEIform CDATA 'then'  >
]]>  
<!-- end of 26.3-->
<!-- 26.4: Feature structure constraints-->
<!ENTITY % fsConstraints 'INCLUDE' >
<![ %fsConstraints; [

<!ELEMENT %n.fsConstraints; %om.RR;   (%n.cond; | %n.bicond;)*> 
<!ATTLIST %n.fsConstraints;
      %a.global;
      TEIform CDATA 'fsConstraints'  >
]]>  
<!ENTITY % cond 'INCLUDE' >
<![ %cond; [

<!ELEMENT %n.cond; %om.RO;   (((%n.fs;) | %n.f; | %n.fAlt;), (%n.then;), ((%n.fs;) | %n.f; | %n.fAlt;))> 
<!ATTLIST %n.cond;
      %a.global;
      TEIform CDATA 'cond'  >
]]>  
<!ENTITY % bicond 'INCLUDE' >
<![ %bicond; [

<!ELEMENT %n.bicond; %om.RO;   (((%n.fs;) | %n.f; | %n.fAlt;), (%n.iff;), ((%n.fs;) | %n.f; | %n.fAlt;))> 
<!ATTLIST %n.bicond;
      %a.global;
      TEIform CDATA 'bicond'  >
]]>  
<!ENTITY % iff 'INCLUDE' >
<![ %iff; [

<!ELEMENT %n.iff; %om.RO;  EMPTY> 
<!ATTLIST %n.iff;
      %a.global;
      TEIform CDATA 'iff'  >
]]>  
<!-- end of 26.4-->
<!--The elements for feature structures themselves
are declared in teifs2.dtd-->
<!ENTITY % TEI.fs.dtd PUBLIC '-//TEI P4//DTD Auxiliary Document Type:  Feature System Declaration//EN' 'teifs2.dtd' >%TEI.fs.dtd;

<!--Finally, declare the TEI header and core tag
sets.-->
<!ENTITY % TEI.header.dtd PUBLIC '-//TEI P4//ELEMENTS TEI Header//EN' 'teihdr2.dtd' >%TEI.header.dtd;

<!ENTITY % TEI.core.dtd PUBLIC '-//TEI P4//ELEMENTS Core Elements//EN' 'teicore2.dtd' >%TEI.core.dtd;

<!-- end of 26.1-->