HTML table elements

DocBook added HTML table elements beginning with version 4.3 of the DocBook DTD. This means authors who are already familiar with HTML table markup can use tr, th, td, and other HTML table elements inside table or informaltable elements within DocBook documents. See Table 30.1, “Comparison of CALS and HTML tables” for a comparison of CALS and HTML table markup.

Note

Since the DocBook table element means a table with a title, you must add a caption element instead of a title element when using HTML markup in a table element. The stylesheets will use the caption for the numbered title, as well as in cross references and any list of tables in the front of a book. If you want a table without a title, then use informaltable with the HTML markup instead.

The stylesheets process tables with HTML markup using templates separate from the CALS table templates. When the stylesheets encounter a table or informaltable element, they check to see if it contains a tgroup element. If so, then it is processed as a CALS table, which requires that element. HTML tables do not permit a tgroup element. If the table contains tgroup, then it must use row and entry. If it does not contain tgroup, then it must use tr, th, and td.

The templates for print output from HTML table markup share some of the templates and attribute-sets used for CALS tables, beginning with version 1.68 of the stylesheets. See Table 30.2, “Table styles for print output” for a list. For example, when you have customize the table.cell.properties and table.cell.block.properties templates to respond to tabstyle attributes in CALS tables, then those customizations are also applied to HTML markup tables that use tabstyle attributes.

One advantage of using HTML table markup shows up when generating HTML output. Many elements are simply copied from the source document to the output, along with any attributes. It is a shallow copy, meaning child elements are not necessarily copied. Of course, the content of td or th is processed, not just copied, because it is not HTML markup. The complete list of elements that are copied to HTML output are:

table
colgroup
col
caption
thead
tbody
tr
th
td

This feature lets you use HTML specific attributes such as cellpadding or onmouseover and they are copied to the output. Any HTML-specific attributes that are not supported in FO output will be ignored by the print stylesheet.