<fsDecl>

<fsDecl> (déclaration de structure de traits) déclare un type de structure de traits [18.11 Feature System Declaration]
Module iso-fs — Feature Structures
Attributs
type⚓︎ attribue un nom au type de structure de traits déclaré.
Statut Requis
Type de données teidata.enumerated
baseTypes⚓︎ donne 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 teidata.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.

Membre du
Contenu dans
iso-fs: fsdDecl
Peut contenir
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>
Modèle de contenu
<content>
 <sequence>
  <elementRef key="fsDescrminOccurs="0"/>
  <elementRef key="fDeclminOccurs="1"
   maxOccurs="unbounded"/>

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

 </sequence>
</content>
Schéma 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? )
}