</xsl:template>
<xsl:template match='PLANET/DAY'>
<fo:block
font-size='36pt' line-height='48pt'
font-family='sans-serif'>
Day (Earth = 1):
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match='PLANET/RADIUS'>
<fo:block
font-size='36pt' line-height='48pt'
font-family='sans-serif'>
Radius (in miles):
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match='PLANET/DENSITY'>
<fo:block
font-size='36pt' line-height='48pt'
font-family='sans-serif'>
Density (Earth = 1):
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match='PLANET/DISTANCE'>
<fo:block
font-size='36pt' line-height='48pt'
font-family='sans-serif'>
Distance (million miles):
<xsl:apply-templates/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
Преобразование документа в представление с форматирующими объектами
Для того чтобы преобразовать planets.xml
в документ, использующий форматирующие объекты, который я назвал planets.fo
, достаточно всего лишь применить таблицу стилей planetsPDF.xsl
. Это можно сделать при помощи техник XSLT, уже рассмотренных в этой главе.
Например, чтобы создать planets.fo
при помощи Xalan, в Windows сначала нужно установить classpath
:
C:>set classpath=c:xalanxalan-1_2_0_0inxalan.jar; c:xalanxalan-j_2_0_0in xerces.jar
Затем применить planetsPDF.xsl
к planets.xml
для генерации planets.fo
:
C:planets>java org.apache.xalan.xslt.Process -IN planets.xml -XSL planetsPDF.xsl -OUT planets.fo
Для задания форматирования документ planets.fo
использует форматирующие объекты XSL. Вот как выглядит файл planets.fo
(листинг 1.9):
<?xml version='1.0' encoding='UTF-8'?>
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format'>
<fo:layout-master-set>
<fo:simple-page-master
margin-right='20mm' margin-left='20mm'
margin-bottom='10mm' margin-top='10mm'
page-width='300mm' page-height='400mm'
master-name='page'>
<fo:region-body
margin-right='0mm' margin-left='0mm'
margin-bottom='10mm' margin-top='0mm'/>
<fo:region-after extent='10mm'/>
</fo:simple-page-master>
</fо:layout-master-set>
<fo:page-sequence master-name='page'>
<fo:flow flow-name='xsl-region-body'>
<fo:block
font-family='sans-serif' line-height='48pt'
font-size='36pt' font-weight='bold'>
Name: Mercury
</fo:block>
<fo:block
font-family='sans-serif' line-height='48pt'
font-size='36pt'>
Mass (Earth = 1): .0553
</fo-block>
<fo:block
font-family='sans-serif' line-height='48pt'
font-size='36pt'>
Day (Earth = 1): 58.65
</fo:block>
<fo:block
font-family='sans-serif' line-height='48pt'
font-size='36pt'>
Radius (in miles): 1516
</fo:block>
<fo:block
font-family='sans-serif' line-height='48pt'
font-size='36pt'>
Density (Earth = 1):.983
</fo:block>