body>
содержит все элементы <fo:table-row>
, каждый из которых создает строку таблицы. Каждый элемент <fo:table-row>
содержит элементы <fo:table-cell>
, в которых содержатся данные ячеек таблицы.
Следующий пример (листинг 11.4) демонстрирует работу с этими элементами. Приведенная таблица стилей XSLT преобразует planets.xml
в документ XSL-FO, форматирующий данные планет в таблицу XSL-FO.
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:fo='http://www.w3.org/1999/XSL/Format'
version='1.0'>
<xsl:template match='PLANETS'>
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
<fo:layout-master-set>
<fo:simple-page-master master-name='page'
page-height='400mm' page-width='300mm'
margin-top='10mm' margin-bottom='10mm'
margin-left='20mm' margin-right='20mm'>
<fo:region-body margin-top='0mm' margin-bottom='10mm'
margin-left='0mm' margin-right='0mm'/>
<fo:region-after extent='10mm'/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-name='page'>
<fo:flow flow-name='xsl-region-body'>
<fo:table>
<fo:table-column column-width='30mm'/>
<fo:table-column column-width='30mm'/>
<fo:table-column column-width='30mm'/>
<fo:table-column column-width='30mm'/>
<fo:table-column column-width='30mm'/>
<fo:table-column column-width='30mm'/>
<fo:table-body>
<fo:table-row>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Name
</fo:block>
</fo:table-cell>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Mass
</fo:block>
</fo:table-cell>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Day
</fo:block>
</fo:table-cell>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Radius
</fo:block>
</fo:table-cell>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Density
</fo:block>
</fo:table-cell>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt' font-weight='bold'>
Distance
</fo:block>
</fo:table-cell>
</fo:table-row>
<xsl:apply-templates/>
</fo:table-body>
</fo:table>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match='PLANET'>
<fo:table-row>
<xsl:apply-templates/>
</fo:table-row>
</xsl:template>
<xsl:template match='NAME'>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt'>
<xsl:value-of select='.'/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match='MASS'>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt'>
<xsl:value-of select='.'/>
</fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match='DAY'>
<fo:table-cell border-width='0.5mm'>
<fo:block font-size='18pt'>