
<!--
 TEI P5 DTD module iso-fs. Generated 2008-07-08T17:38:59Z. 
Copyright 2008 TEI Consortium.
This is free software; you can redistribute it and/or
	    modify it under the terms of the GNU General Public
	    License as published by the Free Software Foundation;
	    either version 2 of the License, or (at your option) any
	    later version.
This material is distributed in the hope that it will be
	    useful, but WITHOUT ANY WARRANTY; without even the implied
	    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
	    PURPOSE. See the GNU General Public License for more
	    details.
You should have received a copy of the GNU General Public
	    License along with this file; if not, write to the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA.
For general (non-technical) enquiries, contact the TEI
	  Consortium at info@tei-c.org; 
for membership enquiries contact membership@tei-c.org; for
technical enquiries, particularly about the
		Guidelines, DTDs, schemas, or software available from
		the TEI-C, contact editors@tei-c.org.
For up to date information, consult the TEI web
	      site at http://www.tei-c.org/P5/. 
		Feature structures
-->

<!ENTITY % bicond 'INCLUDE' >
<![ %bicond; [

<!--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. -->
<!ELEMENT %n.bicond; %om.RR; ((%n.fs; |
 %n.f;),%n.iff;,(%n.fs; |
 %n.f;))>
<!ATTLIST %n.bicond; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.bicond;
 %att.global.attributes; >
]]>

<!ENTITY % binary 'INCLUDE' >
<![ %binary; [

<!--doc:(binary value) represents the value part of a feature-value specification which can contain either
  of exactly two possible values. -->
<!ELEMENT %n.binary; %om.RR; EMPTY>
<!ATTLIST %n.binary; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.binary;
 %att.global.attributes;
value %data.truthValue;  #REQUIRED >
]]>

<!ENTITY % cond 'INCLUDE' >
<![ %cond; [

<!--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. -->
<!ELEMENT %n.cond; %om.RR; ((%n.fs; |
 %n.f;),%n.then;,(%n.fs; |
 %n.f;))>
<!ATTLIST %n.cond; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.cond;
 %att.global.attributes; >
]]>

<!ENTITY % default 'INCLUDE' >
<![ %default; [

<!--doc:(default feature value) represents the value part of a feature-value specification
  which contains a defaulted value. -->
<!ELEMENT %n.default; %om.RR; EMPTY>
<!ATTLIST %n.default; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.default;
 %att.global.attributes; >
]]>

<!ENTITY % f 'INCLUDE' >
<![ %f; [

<!--doc:(feature) represents a feature value specification, that
  is, the association of a name with a value of any of several different types. -->
<!ELEMENT %n.f; %om.RR; (%model.featureVal;)*>
<!ATTLIST %n.f; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.f;
 %att.global.attributes;
name %data.name;  #REQUIRED
fVal %data.pointer;  #IMPLIED >
]]>

<!ENTITY % fDecl 'INCLUDE' >
<![ %fDecl; [

<!--doc:(feature declaration) declares a single feature, specifying its name, organization,
range of allowed values, and optionally its default value. -->
<!ELEMENT %n.fDecl; %om.RR; ((%n.fDescr;)?,%n.vRange;,(%n.vDefault;)?)>
<!ATTLIST %n.fDecl; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fDecl;
 %att.global.attributes;
name %data.name;  #REQUIRED
optional (true | false)  "true"  >
]]>

<!ENTITY % fDescr 'INCLUDE' >
<![ %fDescr; [

<!--doc:(feature description (in FSD)) describes in prose what is represented by the feature being
declared and its values. -->
<!ELEMENT %n.fDescr; %om.RR; %macro.limitedContent;>
<!ATTLIST %n.fDescr; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fDescr;
 %att.global.attributes; >
]]>

<!ENTITY % fLib 'INCLUDE' >
<![ %fLib; [

<!--doc:(feature library) assembles a library of feature elements. -->
<!ELEMENT %n.fLib; %om.RR; (%n.f;)+>
<!ATTLIST %n.fLib; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fLib;
 %att.global.attributes; >
]]>

<!ENTITY % fs 'INCLUDE' >
<![ %fs; [

<!--doc:(feature structure) represents a feature structure, that is, a
  collection of feature-value pairs organized as a
structural unit. -->
<!ELEMENT %n.fs; %om.RR; (%n.f;)*>
<!ATTLIST %n.fs; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fs;
 %att.global.attributes;
type %data.enumerated;  #IMPLIED
feats CDATA  #IMPLIED >
]]>

<!ENTITY % fsConstraints 'INCLUDE' >
<![ %fsConstraints; [

<!--doc:(feature-structure constraints) specifies constraints on the content of valid feature
structures. -->
<!ELEMENT %n.fsConstraints; %om.RR; (%n.cond; |
 %n.bicond;)*>
<!ATTLIST %n.fsConstraints; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fsConstraints;
 %att.global.attributes; >
]]>

<!ENTITY % fsDecl 'INCLUDE' >
<![ %fsDecl; [

<!--doc:(feature structure declaration) declares one type of feature structure. -->
<!ELEMENT %n.fsDecl; %om.RR; ((%n.fsDescr;)?,(%n.fDecl;)+,(%n.fsConstraints;)?)>
<!ATTLIST %n.fsDecl; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fsDecl;
 %att.global.attributes;
type %data.enumerated;  #REQUIRED
baseTypes CDATA  #IMPLIED >
]]>

<!ENTITY % fsDescr 'INCLUDE' >
<![ %fsDescr; [

<!--doc:(feature system description (in FSD)) describes in prose what is represented by the type of feature
structure declared in the enclosing fsDecl. -->
<!ELEMENT %n.fsDescr; %om.RR; %macro.limitedContent;>
<!ATTLIST %n.fsDescr; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fsDescr;
 %att.global.attributes; >
]]>

<!ENTITY % fsdDecl 'INCLUDE' >
<![ %fsdDecl; [

<!--doc:(feature system declaration) provides a feature system declaration comprising one or more
  feature structure declarations or feature structure declaration links. -->
<!ELEMENT %n.fsdDecl; %om.RR; (%n.fsDecl; |
 %n.fsdLink;)+>
<!ATTLIST %n.fsdDecl; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fsdDecl;
 %att.global.attributes; >
]]>

<!ENTITY % fsdLink 'INCLUDE' >
<![ %fsdLink; [

<!--doc:(feature structure declaration link) associates the name of a typed feature structure with a feature
structure declaration for it. -->
<!ELEMENT %n.fsdLink; %om.RR; EMPTY>
<!ATTLIST %n.fsdLink; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fsdLink;
 %att.global.attributes;
type %data.enumerated;  #REQUIRED
target %data.pointer;  #REQUIRED >
]]>

<!ENTITY % fvLib 'INCLUDE' >
<![ %fvLib; [

<!--doc:(feature-value library) assembles a library of reusable feature value elements
  (including complete feature structures). -->
<!ELEMENT %n.fvLib; %om.RR; (%model.featureVal;)*>
<!ATTLIST %n.fvLib; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.fvLib;
 %att.global.attributes; >
]]>

<!ENTITY % if 'INCLUDE' >
<![ %if; [

<!--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. -->
<!ELEMENT %n.if; %om.RR; ((%n.fs; |
 %n.f;),%n.then;,(%model.featureVal;))>
<!ATTLIST %n.if; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.if;
 %att.global.attributes; >
]]>

<!ENTITY % iff 'INCLUDE' >
<![ %iff; [

<!--doc:(if and only if) separates the condition from the consequence in a bicond
element. -->
<!ELEMENT %n.iff; %om.RR; EMPTY>
<!ATTLIST %n.iff; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.iff;
 %att.global.attributes; >
]]>

<!ENTITY % numeric 'INCLUDE' >
<![ %numeric; [

<!--doc:(numeric value) represents the value part of a feature-value specification
  which contains a numeric value or range. -->
<!ELEMENT %n.numeric; %om.RR; EMPTY>
<!ATTLIST %n.numeric; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.numeric;
 %att.global.attributes;
value %data.numeric;  #REQUIRED
max %data.numeric;  #IMPLIED
trunc %data.truthValue;  #IMPLIED >
]]>

<!ENTITY % string 'INCLUDE' >
<![ %string; [

<!--doc:(string value) represents the value part of a feature-value specification
  which contains a string. -->
<!ELEMENT %n.string; %om.RR; %macro.xtext;>
<!ATTLIST %n.string; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.string;
 %att.global.attributes; >
]]>

<!ENTITY % symbol 'INCLUDE' >
<![ %symbol; [

<!--doc:(symbolic value) represents the value part of a feature-value specification
  which contains one of a finite list of symbols. -->
<!ELEMENT %n.symbol; %om.RR; EMPTY>
<!ATTLIST %n.symbol; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.symbol;
 %att.global.attributes;
value %data.word;  #REQUIRED >
]]>

<!ENTITY % then 'INCLUDE' >
<![ %then; [

<!--doc:separates the condition from the default in an if, or
the antecedent and the consequent in a cond element. -->
<!ELEMENT %n.then; %om.RR; EMPTY>
<!ATTLIST %n.then; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.then;
 %att.global.attributes; >
]]>

<!ENTITY % vAlt 'INCLUDE' >
<![ %vAlt; [

<!--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. -->
<!ELEMENT %n.vAlt; %om.RR; ((%model.featureVal;),(%model.featureVal;)+)>
<!ATTLIST %n.vAlt; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vAlt;
 %att.global.attributes; >
]]>

<!ENTITY % vColl 'INCLUDE' >
<![ %vColl; [

<!--doc:(collection of values) represents the value part of a feature-value specification
  which contains multiple values organized as a set, bag, or list. -->
<!ELEMENT %n.vColl; %om.RR; (%n.fs; |
 %model.featureVal.single;)*>
<!ATTLIST %n.vColl; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vColl;
 %att.global.attributes;
org (set|
bag|
list) #IMPLIED >
]]>

<!ENTITY % vDefault 'INCLUDE' >
<![ %vDefault; [

<!--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. -->
<!ELEMENT %n.vDefault; %om.RR; ((%model.featureVal;)+ |
 (%n.if;)+)>
<!ATTLIST %n.vDefault; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vDefault;
 %att.global.attributes; >
]]>

<!ENTITY % vLabel 'INCLUDE' >
<![ %vLabel; [

<!--doc:(value label) represents the value part of a feature-value specification
  which appears at more than one point in a feature structure. -->
<!ELEMENT %n.vLabel; %om.RR; (%model.featureVal;)?>
<!ATTLIST %n.vLabel; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vLabel;
 %att.global.attributes;
name %data.word;  #REQUIRED >
]]>

<!ENTITY % vMerge 'INCLUDE' >
<![ %vMerge; [

<!--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. -->
<!ELEMENT %n.vMerge; %om.RR; (%model.featureVal;)+>
<!ATTLIST %n.vMerge; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vMerge;
 %att.global.attributes;
org (set|
bag|
list) #IMPLIED >
]]>

<!ENTITY % vNot 'INCLUDE' >
<![ %vNot; [

<!--doc:(value negation) represents a feature value which is the negation of its content. -->
<!ELEMENT %n.vNot; %om.RR; (%model.featureVal;)>
<!ATTLIST %n.vNot; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vNot;
 %att.global.attributes; >
]]>

<!ENTITY % vRange 'INCLUDE' >
<![ %vRange; [

<!--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. -->
<!ELEMENT %n.vRange; %om.RR; (%model.featureVal;)>
<!ATTLIST %n.vRange; xmlns CDATA "http://www.tei-c.org/ns/1.0">
<!ATTLIST %n.vRange;
 %att.global.attributes; >
]]>
