<table>
Summary
The <table> element.
Some block-level elements are allowed in table cells, but neither a <heading> element or a <table> element are valid.
Tables structural elements: <caption>, <col> , <row> and <cell>.
Usage context
| Element category | block |
|---|---|
| PSML level | portable |
| Permitted content | <caption> <col> <row> |
| Permitted parent | <fragment> |
| HTML equivalent | <table> |
| OpenXML equivalent | <w:table> |
Attributes
This element supports the following attributes:
| Name | Type | Required | Description |
|---|---|---|---|
| height | length | no | Height of table in pixels |
| role | role | no | Custom value that can be used for formatting |
| summary | xs:string | no | Summary of tables purpose for non-visual readers |
| width | length | no | Width of table in pixels or percent |
The following attributes have been deprecated and might be ignored in future releases:
| Name | Type | Required | Description |
|---|---|---|---|
| border | fixed-length | no | The width (in pixels) of the border around table cells |
| cellpadding | fixed-length | no | The number of pixels between the border of the cell and its contents |
| cellspacing | fixed-length | no | The number of pixels between the border of the cell and the table frame or other cells |
@height
The height of the table in pixels (might have px suffix).
@role
A value to clarify the purpose of a table for formatting or validation. Functionally equivalent to a table style in Word or FrameMaker.
@summary
A summary of the table for non-visual readers.
@width
The width of the table in pixels (px) or percent (%), if neither is present the value is treated as pixels.
Examples
Following is a basic table model with a caption and a header row.
This example is from the Current table above.
<table width="100%">
<caption>Current</caption>
<col part="header"/>
<col/>
<col/>
<col/>
<row part="header">
<cell width="120px" align="center">Name</cell>
<cell width="120px" align="center">Type</cell>
<cell>Required</cell>
<cell>Description</cell>
</row>
<row>
<hcell>height</hcell>
<cell>
<xref id="556331"
title="length" frag="5"
reversefrag="attributes"
reversetitle="Attributes"
reverselink="true"
reversetype="none"
display="manual"
type="none"
uriid="193967"
href="../datatypes/pageseeder_datatypes.psml"
urititle="PageSeeder datatypes"
mediatype="application/vnd.pageseeder.psml+xml">length
</xref>
</cell>
<cell>no</cell>
<cell>Height of table in pixels.</cell>
</row>
<row>
<hcell>role</hcell>
<cell>
<xref id="556332"
title="role" frag="7"
reversefrag="attributes"
reversetitle="Attributes"
reverselink="true"
reversetype="none"
display="manual"
type="none"
uriid="193967"
href="../datatypes/pageseeder_datatypes.psml"
urititle="PageSeeder datatypes"
mediatype="application/vnd.pageseeder.psml+xml">role
</xref>
</cell>
<cell>no</cell>
<cell>Custom value that can be used for formatting.
</cell>
</row>
<row>
<hcell>summary</hcell>
<cell>
<xref id="556333"
title="xs:string" frag="7"
reversefrag="attributes"
reversetitle="Attributes"
reverselink="true"
reversetype="none"
display="manual"
type="none"
uriid="193962"
href="../datatypes/xml_schema_datatypes.psml"
urititle="XML Schema datatypes"
mediatype="application/vnd.pageseeder.psml+xml">xs:string
</xref>
</cell>
<cell>no</cell>
<cell>Summary of tables purpose for non-visual readers.</cell>
</row>
<row>
<hcell>width</hcell>
<cell>
<monospace>length</monospace>
</cell>
<cell>no</cell>
<cell>Width of table in pixels or percent.</cell>
</row>
</table>
Schema
XML Schema
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element name="caption"
maxOccurs="1"
minOccurs="0"
type="character-style"/>
<xs:element ref="col" maxOccurs="unbounded" minOccurs="0"/>
<xs:element ref="row" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="width">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9\.]+(px|%)?"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="height">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]+(px)?"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="cellspacing" type="xs:string"/>
<xs:attribute name="cellpadding" type="xs:string"/>
<xs:attribute name="border" type="xs:string"/>
<xs:attribute name="summary" type="xs:string"/>
<xs:attribute name="role" type="role"/>
</xs:complexType>
</xs:element>
Relax Schema
element table {
attribute width { text
{ pattern="[0-9\.]+(px|%)?" } }?,
attribute height { text
{ pattern="[0-9]+(px)?" } }?,
attribute cellspacing { text }?,
attribute cellpadding { text }?,
attribute border { text }?,
attribute summary { text }?,
attribute role { role }?,
element caption?,
element col*,
element row+
}
Compatibility
This element was introduced in the first draft of PSML and is well-supported from PageSeeder 5.1.