XSL-FO Tables

From http://www.w3schools.com (Copyright Refsnes Data)

# XSL-FO Tables

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

## XSL-FO Tables

The XSL-FO table model is not very 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 the <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 optional <fo:table-column> elements, an optional <fo:table-header> element, a <fo:table-body> element, and an optional <fo:table-footer> element. Each of these elements has one or more <fo:table-row> elements, with 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 from this code would something like this:

Car | Price
--- | ---
Volvo | $50000
SAAB | $48000

From http://www.w3schools.com (Copyright Refsnes Data)