<langKnowledge>

<langKnowledge> (language knowledge) summarizes the state of a person's linguistic knowledge, either as prose or by a list of langKnown elements. [14.3.2.1 Personal Characteristics]
Module namesdates — Names, Dates, People, and Places
Attributes
type⚓︎ characterizes the element in some sense, using any convenient classification scheme or typology.
Derived from att.typed
Status Optional
Datatype teidata.enumerated
Sample values include:
listening
speaking
reading
writing
calendar⚓︎ indicates one or more systems or calendars to which the date represented by the content of this element belongs.
Deprecated This feature will be withdrawn after 2024-11-11
Status Optional
Datatype 1–∞ occurrences of teidata.pointer separated by whitespace
Schematron

<sch:rule context="tei:*[@calendar]">
<sch:assert test="string-length( normalize-space(.) ) gt 0"> @calendar indicates one or more
systems or calendars to which the date represented by the content of this element belongs,
but this <sch:name/> element has no textual content.</sch:assert>
</sch:rule>
tags⚓︎ supplies one or more valid language tags for the languages specified
Status Optional
Datatype 1–∞ occurrences of teidata.language separated by whitespace
Note

This attribute should be supplied only if the element contains no langKnown children. Its values are language ‘tags’ as defined in RFC 4646 or its successor

Member of
Contained by
May contain
certainty: precision
core: p
linking: ab
namesdates: langKnown
Example
<langKnowledge tags="en-GB fr">
 <p>British English and French</p>
</langKnowledge>
Example
<langKnowledge>
 <langKnown tag="en-GBlevel="H">British English</langKnown>
 <langKnown tag="frlevel="M">French</langKnown>
</langKnowledge>
Content model
<content>
 <sequence>
  <elementRef key="precisionminOccurs="0"
   maxOccurs="unbounded"/>

  <alternate>
   <classRef key="model.pLike"/>
   <elementRef key="langKnown"
    minOccurs="1maxOccurs="unbounded"/>

  </alternate>
 </sequence>
</content>
Schema Declaration
<rng:element name="langKnowledge">
 <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:ref name="att.datable.attributes"/>
 <rng:ref name="att.datable.w3c.attributes"/>
 <rng:ref name="att.datable.iso.attributes"/>
 <rng:ref name="att.datable.custom.attributes"/>
 <rng:ref name="att.editLike.attributes"/>
 <rng:ref name="att.typed.attribute.subtype"/>
 <rng:optional>
  <rng:attribute name="type">
   <rng:ref name="teidata.enumerated"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="calendar">
   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="teidata.pointer"/>
    </rng:oneOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="tags">
   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="teidata.language"/>
    </rng:oneOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:zeroOrMore>
   <rng:ref name="precision"/>
  </rng:zeroOrMore>
  <rng:choice>
   <rng:ref name="model.pLike"/>
   <rng:oneOrMore>
    <rng:ref name="langKnown"/>
   </rng:oneOrMore>
  </rng:choice>
 </rng:group>
</rng:element>
element langKnowledge
{
   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,
   att.datable.attributes,
   att.datable.w3c.attributes,
   att.datable.iso.attributes,
   att.datable.custom.attributes,
   att.editLike.attributes,
   att.typed.attribute.subtype,
   attribute type { teidata.enumerated }?,
   attribute calendar { list { teidata.pointer+ } }?,
   attribute tags { list { teidata.language+ } }?,
   ( precision*, ( model.pLike | langKnown+ ) )
}