<datatype>

<datatype> specifies the declared value for an attribute, by referring to any datatype defined by the chosen schema language. [1.4.2 Datatype Macros 22.4.5 Attribute List Specification]
Moduletagdocs — 22 Documentation Elements
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))
minOccurs(minimum number of occurences) indicates the minimum number of times this datatype may occur in the specification of the attribute being defined
Status Optional
Datatype

<rng:ref name="data.count"/>
data.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
Status Optional
Datatype

<rng:choice>
 <rng:ref name="data.count"/>
 <rng:value>unbounded</rng:value>
</rng:choice>
data.count | "unbounded"
Default 1
Used by
Contained by
tagdocs: attDef
May containEmpty element
Declaration

<rng:element name="datatype">
 <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:optional>
  <rng:attribute name="minOccurs" a:defaultValue="1">
   <rng:ref name="data.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="maxOccurs" a:defaultValue="1">
   <rng:choice>
    <rng:ref name="data.count"/>
    <rng:value>unbounded</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:zeroOrMore>
  <rng:group>
   <rng:ref name="macro.schemaPattern"/>
  </rng:group>
 </rng:zeroOrMore>
</rng:element>
element datatype
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   attribute minOccurs { data.count }?,
   attribute maxOccurs { data.count | "unbounded" }?,
   macro.schemaPattern*
}
Example
<datatype>
 <rng:data type="token"/>
</datatype>
Example
<datatype>
 <rng:ref name="data.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 targets attribute of join.

<datatype minOccurs="2" maxOccurs="unbounded">
 <rng:ref name="data.pointer"/>
</datatype>
Note
In the TEI scheme, most datatypes are expressed using pre-defined TEI macros, which map a name in the form data.xxxx to a RelaxNG or WSD defined datatype.