<rng:element name="datatype">
 <rng:ref name="att.global.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,
   attribute minOccurs { data.count }?,
   attribute maxOccurs { data.count | "unbounded" }?,
   macro.schemaPattern*
}