<fsDecl>

<fsDecl> (déclaration de structure de traits) déclare un type de structure de traits [18.11 Feature System Declaration]
Moduleiso-fs — Feature Structures
Attributsatt.global (@xml:id, @n, @xml:lang, @rend, @style, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change))
typeattribue un nom au type de structure de traits déclaré.
Statut Requis
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
baseTypesdonne le nom d'une ou plusieurs structures de traits "type", de laquelle ou desquelles il hérite des spécifications et des contraintes de traits. Si ce type inclut une spécification de traits du même nom que l'une de celles spécifiées par cet attribut, ou si plus d'une spécification du même nom est transmise par héritage, l'ensemble des valeurs possibles est définie par unification. De même, l'ensemble des contraintes applicables résulte de la combinaison de celles qui sont spécifiées explicitement à l'intérieur de cet élément et de celles qui découlent de l'attribut baseTypes. Quand aucun attribut baseTypes n'est précisé, aucune spécification de traits ni contrainte n'est transmise par héritage.
Statut Optionel
Type de données 1–∞ occurrences de 

<rng:ref name="data.name"/>
data.name
séparé par un espace
Note

L'héritage est défini ici comme une relation monotone.

La combinaison de contraintes peut générer une contradiction, par exemple si deux spécifications données pour le même trait présentent des plages disjointes de valeurs et qu'au moins une de ces spécifications est obligatoire. Dans ce cas, il n'y a pas de représentant valide du type défini.

Contenu dans
iso-fs: fsdDecl
Peut contenir
Declaration

<rng:element name="fsDecl">
 <rng:ref name="att.global.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:attribute name="type">
  <rng:ref name="data.enumerated"/>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="baseTypes">
   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="data.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.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   attribute type { data.enumerated },
   attribute baseTypes { list { data.name+ } }?,
   ( fsDescr?, fDecl+, fsConstraints? )
}
Exemple
<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>