<xsd:element name="table" id="el.table">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary" xmlns:h="http://www.w3.org/1999/xhtml">A rectangular table of any quantities.</h:div>
<h:div class="description" xmlns:h="http://www.w3.org/1999/xhtml">
<h:p>By default <h:tt>table</h:tt> represents a rectangular table of any simple quantities
representable as XSD or CML dataTypes. There are three layouts, columnwise, rowwise and
without markup. In all cases it is essential that the columns, whether explicit or
otherwise, are homogeneous within the column. Also the metadata for each column must
be given explicitly.
<ul xmlns=""><li>columns:
There is a single <h:a href="el.arrayList">arrayList</h:a> child containing (homogeneous) child
elements (<h:a href="el.array">array</h:a> or <h:a href="el.list">list</h:a>of
size <h:tt>rows</h:tt> data. This is the "normal" orientation of data tables
but the table display could be transposed by XSLT transformation if required.
Access is to columns, and thence to the data within them. DataTyping, delimiters,
etc are delegated to the arrays or lists, which must all be of the same size.
</li>
<li>rows: with explicit <tt>trow</tt>s. The metadata is carried in a <tt>theader</tt>
element of size <tt>cols</tt>. Within each trow the data are contained in tcells</li>
<li>content: The metadata is carried in a <tt>theader</tt>
element of size <tt>cols</tt>. data are contained in a single <tt>tableContent</tt>
with columns moving fastest. Within the content the data are whitespace (or delimiter) separated.</li>
</ul>
For
verification it is recommended that tables carry <h:tt>rows</h:tt> and <h:tt>columns</h:tt> attributes.
The type of the tables should also be carried in a <tt xmlns="">tableType</tt>attribute>
</h:p>
</h:div>
<h:div xmlns:h="http://www.w3.org/1999/xhtml">Validity contraints (XPath expression in table context)
<h:table><h:tr><h:th>type</h:th>
<h:th>@tableType</h:th>
<h:th>@rows</h:th>
<h:th>actual rowCount</h:th>
<h:th>@columns</h:th>
<h:th>actual columnCount</h:th>
<h:th>tableHeader</h:th>
<h:th>arrayList</h:th>
<h:th>tableRowList</h:th>
<h:th>tableContent</h:th>
</h:tr>
<h:tr>
<h:td>column based</h:td>
<h:td>columnBased</h:td>
<h:td>recommended</h:td>
<h:td>./arrayList/@size or arrayList/*[self::array or self::list]/@size</h:td>
<h:td>optional</h:td>
<h:td>./arrayList/@size or count(arrayList/*[self::array or self::list])</h:td>
<h:td>forbidden</h:td>
<h:td>required</h:td>
<h:td>forbidden</h:td>
<h:td>forbidden</h:td>
</h:tr>
<h:tr>
<h:td>row based</h:td>
<h:td>rowBased</h:td>
<h:td>recommended</h:td>
<h:td>./tableRowList/@size or count(tableRowList/tableRow)</h:td>
<h:td>recommended</h:td>
<h:td>count(tableHeader/tableHeaderCell) or count(tableRowList/tableRow/tableCell)</h:td>
<h:td>required</h:td>
<h:td>forbidden</h:td>
<h:td>required</h:td>
<h:td>forbidden</h:td>
</h:tr>
<h:tr>
<h:td>content based</h:td>
<h:td>contentBased</h:td>
<h:td>required</h:td>
<h:td>only by analysing tde table</h:td>
<h:td>recommended</h:td>
<h:td>count(tableHeader/tableHeaderCell)</h:td>
<h:td>required</h:td>
<h:td>forbidden</h:td>
<h:td>forbidden</h:td>
<h:td>required</h:td>
</h:tr>
</h:table>
</h:div>
<h:div class="example" href="table1.xml" xmlns:h="http://www.w3.org/1999/xhtml" />
<h:div class="example" href="table2.xml" xmlns:h="http://www.w3.org/1999/xhtml" />
<h:div class="example" href="table3.xml" xmlns:h="http://www.w3.org/1999/xhtml" />
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<!-- columnwise arrays -->
<xsd:element ref="arrayList" minOccurs="0" maxOccurs="1" />
<!-- OR header, followed by rows or content -->
<xsd:sequence>
<xsd:element ref="tableHeader" minOccurs="1" maxOccurs="1" />
<xsd:choice>
<!-- rowwise rows -->
<xsd:element ref="tableRowList" minOccurs="0" maxOccurs="unbounded" />
<!-- unmarked content -->
<xsd:element ref="tableContent" minOccurs="0" maxOccurs="1" />
</xsd:choice>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="rows" />
<xsd:attributeGroup ref="columns" />
<xsd:attributeGroup ref="units" />
<xsd:attributeGroup ref="tableType" />
<!-- <xsd:attributeGroup ref="dataType"/> -->
<xsd:attributeGroup ref="title" />
<xsd:attributeGroup ref="id" />
<xsd:attributeGroup ref="convention" />
<xsd:attributeGroup ref="dictRef" />
</xsd:complexType>
</xsd:element>
|