<fsDecl>

<fsDecl> ひとつの素性構造を宣言する. 18.11 素性システム宣言
モジュールiso-fs — 18 素性構造
属性
type 宣言された素性構造の名前を示す.
状態 必須
データ型

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

<rng:ref name="data.name"/>
data.name
空白文字で区切られる
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>