This section describes the table formatting object tree, which generate a table with a body, header and footer with rows of cells. A table can also have a caption.
In XSL-FO specifications, a table can be constructed
with 9 formatting objects organized as a formatting object tree
as shown below:
Here are short descriptions of each formatting object used to build a table:
"table-and-caption" is a block-level formatting object that returns a block area
including the table and its caption. "table-and-caption" contains
one optional "table-caption" formatting object and one required "table" formatting object.
"table-caption" is a container formatting object that holds a block stack as
the content of the table caption.
"table" is a block-level formatting object that returns a block area
containing the table contains
one or more optional "table-column" formatting object,
one optional "table-header" formatting object,
one optional "table-footer" formatting object,
and one required "table-body" formatting object.
"table-column" is an auxiliary formatting object that returns no area.
It is used to configure width and other properties of each column.
"table-header" is a container formatting object that holds
one or more table header rows.
"table-footer" is a container formatting object that holds
one or more table footer rows.
"table-body" is a container formatting object that holds
one or more table body rows.
"table-row" is a container formatting object that holds
one or more "table-cell" formatting objects.
"table-cell" is a container formatting object that holds a block stack
as the content of a single cell for a table body, header or footer row.
See next tutorials for examples of table formatting objects.