<datatype>

<datatype> specifies the declared value for an attribute, by referring to any datatype defined by the chosen schema language. [1.4.2 Datatype Specifications 22.5.3 Attribute List Specification]
Moduletagdocs — Documentation Elements
Attributesatt.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))
minOccurs(minimum number of occurences) indicates the minimum number of times this datatype may occur in the specification of the attribute being defined
Derived fromatt.repeatable
Status Optional
Datatype teidata.count
Default 1
maxOccurs(maximum number of occurences) indicates the maximum number of times this datatype may occur in the specification of the attribute being defined
Derived fromatt.repeatable
Status Optional
Datatype teidata.unboundedInt
Default 1
Contained by
tagdocs: attDef
May contain
tagdocs: dataRef
Note

In the TEI scheme, most datatypes are expressed using pre-defined TEI macros, which map a name in the form teidata.xxxx to a datatype defined by RELAX NG or the W3C Schema Language.

Example
<datatype>
 <dataRef name="token"/>
</datatype>
Example
<datatype>
 <dataRef key="teidata.enumerated"/>
</datatype>
Example

The encoding in the following example requires that the attribute being defined contain at least two URIs in its value, as is the case for the target attribute of join.

<datatype minOccurs="2"
 maxOccurs="unbounded">

 <dataRef key="teidata.pointer"/>
</datatype>
Content model
<content>
 <alternate>
  <elementRef key="dataRef"/>
  <anyElement require="http://relaxng.org/ns/structure/1.0"/>
 </alternate>
</content>
Schema Declaration
<rng:element name="datatype">
 <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:optional>
  <rng:attribute name="minOccurs"
   a:defaultValue="1">

   <rng:ref name="teidata.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="maxOccurs"
   a:defaultValue="1">

   <rng:ref name="teidata.unboundedInt"/>
  </rng:attribute>
 </rng:optional>
 <rng:choice>
  <rng:ref name="dataRef"/>
  <rng:ref name="anyElement-datatype"/>
 </rng:choice>
</rng:element>
element datatype
{
   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 minOccurs { teidata.count }?,
   attribute maxOccurs { teidata.unboundedInt }?,
   ( dataRef | anyElement-datatype )
}