XSL-FO Tables


XSL-FO uses the <fo:table-and-caption> element to define tables.


XSL-FO Tables (Tables)

The XSL-FO table model is not entirely different from the HTML table model.

There are nine XSL-FO objects used to create tables:

  • fo:table-and-caption
  • fo:table
  • fo:table-caption
  • fo:table-column
  • fo:table-header
  • fo:table-footer
  • fo:table-body
  • fo:table-row
  • fo:table-cell

XSL-FO uses<fo:table-and-caption>element to define a table. It contains a <fo:table> and an optional<fo:caption>element.

The <fo:table> element contains an optional<fo:table-column>element, an optional<fo:table-header>element, a<fo:table-body>element, an optional<fo:table-footer>element. Each of these elements may contain one or more<fo:table-row>elements, and<fo:table-row>also contains one or more<fo:table-cell>elements:

<fo:table-and-caption>
<fo:table>
<fo:table-column column-width="25mm"/>
<fo:table-column column-width="25mm"/>

<fo:table-header>
<fo:table-row>
<fo:table-cell>
<fo:block font-weight="bold">Car</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-weight="bold">Price</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>

<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block>Volvo</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>$50000</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>SAAB</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>$48000</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>

</fo:table>
</fo:table-and-caption>

The output of the above code is shown below:

Car Price
Volvo $50000
SAAB $48000

Other Extensions