<fsDecl>

<fsDecl> (자질 구조 선언) 하나의 자질 구조 유형을 선언한다. [18.11 Feature System Declaration]
모듈iso-fs — Feature Structures
속성att.global (@xml:id, @n, @xml:lang, @xml:base, @xml:space) (att.global.rendition (@rend, @style, @rendition)) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) (att.global.responsibility (@cert, @resp)) (att.global.source (@source))
type선언되고 있는 자질 구조 유형의 이름을 제시한다.
상태 필수적
자료 유형 teidata.enumerated
baseTypes유형으로부터 상속받은 자질 명세와 제약으로 구성된 하나 이상의 유형화된 자질 구조의 이름을 제시한다; 만약 이 유형이 속성에 의해 명시된 것과 동일한 이름을 갖는 자질 명세를 포함한다면, 또는 동일 이름의 하나 이상의 명세가 상속된다면, 가능한 값의 집합은 통합에 의해 정의된다. 비슷하게 적용가능한 제약 집합이 baseTypes 속성에 의해 지시된 제약을 가진 요소 내에서 명백하게 명시된 제약의 결합에 의해 도출된다. baseTypes이 명시되지 않았다면, 어떤 자질 명세 또는 제약도 상속되지 않는다.
상태 수의적
자료 유형 1–∞ 출현 teidata.name 공백문자로 분리됨
클럽 회원
에 의해 포함된
iso-fs: fsdDecl
포함할 수 있다
<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>
Content model
<content>
 <sequence>
  <elementRef key="fsDescrminOccurs="0"/>
  <elementRef key="fDeclminOccurs="1"
   maxOccurs="unbounded"/>

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

 </sequence>
</content>
선언
<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: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,
   attribute type { teidata.enumerated },
   attribute baseTypes { list { teidata.name+ } }?,
   ( fsDescr?, fDecl+, fsConstraints? )
}