<f>

<f> (feature) represents a feature value specification, that is, the association of a name with a value of any of several different types. [18.2 Elementary Feature Structures and the Binary Feature Value]
Moduleiso-fs — Feature Structures
Attributesatt.global (@xml:id, @n, @xml:lang, @rend, @style, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) att.datcat (@datcat, @valueDatcat)
namea single word which follows the rules defining a legal XML name (see http://www.w3.org/TR/REC-xml/#dt-name), providing a name for the feature.
Status Required
Datatype

<rng:ref name="data.name"/>
data.name
Values Any name.
fVal(feature value) references any element which can be used to represent the value of a feature.
Status Optional
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Values the identifier of an element representing a feature value
Note

If this attribute is supplied as well as content, the value referenced is to be unified with that contained.

Member of
Contained by
iso-fs: bicond cond fLib fs if
May contain
Declaration

<rng:element name="f">
 <rng:ref name="att.global.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.datcat.attributes"/>
 <rng:attribute name="name">
  <rng:ref name="data.name"/>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="fVal">
   <rng:ref name="data.pointer"/>
  </rng:attribute>
 </rng:optional>
 <rng:zeroOrMore>
  <rng:choice>
   <rng:text/>
   <rng:ref name="model.gLike"/>
   <rng:ref name="model.featureVal"/>
  </rng:choice>
 </rng:zeroOrMore>
</rng:element>
element f
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.datcat.attributes,
   attribute name { data.name },
   attribute fVal { data.pointer }?,
   ( text | model.gLike | model.featureVal )*
}
Schematron

<s:rule context="tei:fVal">
<s:assert test="not(tei:* and text)"> A feature value cannot
contain both text and element content</s:assert></s:rule>
<s:rule context="tei:fVal">
<s:report test="count(tei:*)>1"> A feature value can contain
only one child element</s:report></s:rule>
Example
<f name="gender">
 <symbol value="feminine"/>
</f>
Example
<fs>
 <f name="voice">active</f>
 <f name="tense">SimPre</f>
</fs>
Note

If the element is empty then a value must be supplied for the fVal attribute. The content of f may also be textual, with the assumption that the data type of the feature value is determined by the schema—this is the approach used in many language-technology-oriented projects and recommendations.