<fsDecl>

<fsDecl> ひとつの素性構造を宣言する. 18.11 Feature System Declaration
モジュール iso-fs — 18 Feature Structures
グローバル属性の他
type 宣言された素性構造の名前を示す.
状態 必須
データ型

<rng:ref name="data.enumerated"/>
data.enumerated
any convenient string of characters.
baseTypes ひとつ以上の素性構造を示す.ここから,属性typeは素性定義・制約を 継承する.属性typeが当該属性で示されたものと同名の素性定義を含む 場合,またはひとつ以上の同名素性定義を継承する場合,それらの値は 統合される.同様に,当該属性baseTypesにある値と,当該 要素が持つ内容を統合して制約となる.属性baseTypeが付 与されていない場合,継承される素性定義や素性制約はない.
状態 任意
データ型 1–∞ occurrences of 

<rng:ref name="data.name"/>
data.name
空白文字で区切られる
one or more names as defined by the W3C XML Specification
解説
ここでの継承は,単調な関係である.
複数の制約を統合することで,矛盾が起きるかもしれない.例え ば,同じ素性に2つの定義が重なりのない素性値域を指定し,少なくと もそのうちの1つが必須である場合である.このような時は,属性type にとって妥当な値がなくなる.
当該モジュールを使用するもの
下位
宣言

<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? )
}
<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>