<table>

<table> (table) contains text displayed in tabular form, in rows and columns. [14.1.1 TEI Tables]
Module figures — Tables, Formulæ, Graphics, and Notated Music
Attributes att.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)) att.typed (@type, @subtype)
rows⚓︎ (rows) indicates the number of rows in the table.
Status Optional
Datatype teidata.count
Note

If no number is supplied, an application must calculate the number of rows.

Rows should be presented from top to bottom.

cols⚓︎ (columns) indicates the number of columns in each row of the table.
Status Optional
Datatype teidata.count
Note

If no number is supplied, an application must calculate the number of columns.

Within each row, columns should be presented left to right.

Member of
Contained by
May contain
Note

Contains an optional heading and a series of rows.

Any rendition information should be supplied using the global rend attribute, at the table, row, or cell level as appropriate.

Example
<table rows="4cols="4">
 <head>Poor Men's Lodgings in Norfolk (Mayhew, 1843)</head>
 <row role="label">
  <cell role="data"/>
  <cell role="data">Dossing Cribs or Lodging Houses</cell>
  <cell role="data">Beds</cell>
  <cell role="data">Needys or Nightly Lodgers</cell>
 </row>
 <row role="data">
  <cell role="label">Bury St Edmund's</cell>
  <cell role="data">5</cell>
  <cell role="data">8</cell>
  <cell role="data">128</cell>
 </row>
 <row role="data">
  <cell role="label">Thetford</cell>
  <cell role="data">3</cell>
  <cell role="data">6</cell>
  <cell role="data">36</cell>
 </row>
 <row role="data">
  <cell role="label">Attleboro'</cell>
  <cell role="data">3</cell>
  <cell role="data">5</cell>
  <cell role="data">20</cell>
 </row>
 <row role="data">
  <cell role="label">Wymondham</cell>
  <cell role="data">1</cell>
  <cell role="data">11</cell>
  <cell role="data">22</cell>
 </row>
</table>
Content model
<content>
 <sequence>
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.headLike"/>
   <classRef key="model.global"/>
  </alternate>
  <alternate>
   <sequence minOccurs="1"
    maxOccurs="unbounded">

    <elementRef key="row"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
   <sequence minOccurs="1"
    maxOccurs="unbounded">

    <classRef key="model.graphicLike"/>
    <classRef key="model.global"
     minOccurs="0maxOccurs="unbounded"/>

   </sequence>
  </alternate>
  <sequence minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.divBottom"/>
   <classRef key="model.global"
    minOccurs="0maxOccurs="unbounded"/>

  </sequence>
 </sequence>
</content>
Schema Declaration
<rng:element name="table">
 <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.typed.attributes"/>
 <rng:optional>
  <rng:attribute name="rows">
   <rng:ref name="teidata.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="cols">
   <rng:ref name="teidata.count"/>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:zeroOrMore>
   <rng:choice>
    <rng:ref name="model.headLike"/>
    <rng:ref name="model.global"/>
   </rng:choice>
  </rng:zeroOrMore>
  <rng:choice>
   <rng:oneOrMore>
    <rng:group>
     <rng:ref name="row"/>
     <rng:zeroOrMore>
      <rng:ref name="model.global"/>
     </rng:zeroOrMore>
    </rng:group>
   </rng:oneOrMore>
   <rng:oneOrMore>
    <rng:group>
     <rng:ref name="model.graphicLike"/>
     <rng:zeroOrMore>
      <rng:ref name="model.global"/>
     </rng:zeroOrMore>
    </rng:group>
   </rng:oneOrMore>
  </rng:choice>
  <rng:zeroOrMore>
   <rng:group>
    <rng:ref name="model.divBottom"/>
    <rng:zeroOrMore>
     <rng:ref name="model.global"/>
    </rng:zeroOrMore>
   </rng:group>
  </rng:zeroOrMore>
 </rng:group>
</rng:element>
element table
{
   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.typed.attributes,
   attribute rows { teidata.count }?,
   attribute cols { teidata.count }?,
   (
      ( model.headLike | model.global )*,
      ( ( row, model.global* )+ | ( model.graphicLike, model.global* )+ ),
      ( model.divBottom, model.global* )*
   )
}