<fsDecl>

<fsDecl> (feature structure declaration) declares one type of feature structure. [19.11 Feature System Declaration]
Module iso-fs — Feature Structures
Attributes
type⚓︎ gives a name for the type of feature structure being declared.
Status Required
Datatype teidata.enumerated
baseTypes⚓︎ gives the name of one or more typed feature structures from which this type inherits feature specifications and constraints; if this type includes a feature specification with the same name as that of any of those specified by this attribute, or if more than one specification of the same name is inherited, then the set of possible values is defined by unification. Similarly, the set of constraints applicable is derived by combining those specified explicitly within this element with those implied by the baseTypes attribute. When no baseTypes attribute is specified, no feature specification or constraint is inherited.
Status Optional
Datatype 1–∞ occurrences of teidata.name separated by whitespace
Note

Inheritance is defined here as a monotonous relation.

The process of combining constraints may result in a contradiction, for example if two specifications for the same feature specify disjoint ranges of values, and at least one such specification is mandatory. In such a case, there is no valid representative for the type being defined.

Member of
Contained by
iso-fs: fsdDecl
May contain
Example
<fsDecl type="SomeName">
 <fsDescr>Describes what this type of fs represents</fsDescr>
 <fDecl name="featureOne">
<!-- The declaration for featureOne -->
  <vRange>
<!-- the range of possible values for this feature -->
  </vRange>
 </fDecl>
 <fDecl name="featureTwo">
<!-- The declaration for featureTwo -->
  <vRange>
<!-- the range of possible values for this feature -->
  </vRange>
 </fDecl>
 <fsConstraints>
<!-- Any additional constraints for the feature structure -->
 </fsConstraints>
</fsDecl>
Content model
<content>
 <sequence>
  <elementRef key="fsDescrminOccurs="0"/>
  <elementRef key="fDeclminOccurs="1"
   maxOccurs="unbounded"/>

  <elementRef key="fsConstraints"
   minOccurs="0"/>

 </sequence>
</content>
Schema Declaration
<rng:element name="fsDecl">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:ref name="att.datcat.attributes"/>
 <rng:attribute name="type">
  <rng:ref name="teidata.enumerated"/>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="baseTypes">
   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="teidata.name"/>
    </rng:oneOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:optional>
   <rng:ref name="fsDescr"/>
  </rng:optional>
  <rng:oneOrMore>
   <rng:ref name="fDecl"/>
  </rng:oneOrMore>
  <rng:optional>
   <rng:ref name="fsConstraints"/>
  </rng:optional>
 </rng:group>
</rng:element>
element fsDecl
{
   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.datcat.attributes,
   attribute type { teidata.enumerated },
   attribute baseTypes { list { teidata.name+ } }?,
   ( fsDescr?, fDecl+, fsConstraints? )
}