<fsDecl>

<fsDecl> (déclaration de structure de traits) déclare un type de structure de traits 18.11 Feature System Declaration
Moduleiso-fs — 18 Feature Structures
Attributs
typeattribue un nom au type de structure de traits déclaré
Statut Requis
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
Valeurs any convenient string of characters.
baseTypesdonne le nom d'une ou plusieurs structures de traits modèles dont ce type hérite des spécifications de traits et des contraintes. 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 of

<rng:ref name="data.name"/>
data.name
séparé par un espace
Valeurs one or more names as defined by the W3C XML Specification
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.
Utilisé par
Peut contenir
Declaration

<rng:element name="fsDecl">
<rng:ref name="att.global.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,
   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 -->
 </fDecl>
 <fDecl name="featureTwo">
<!-- The declaration for featureTwo -->
 </fDecl>
 <fsConstraints>
<!-- The feature structure constraints go here -->
 </fsConstraints>
</fsDecl>