I could translate ch14_01.xml into a document using the formatting objects by hand. As mentioned, however, that doesn't really work for anything but short documents in general. The usual technique is to create an XSLT stylesheet that you can use to transform a document so that it uses the XSL formatting objects, and I'll do that in this chapter. Here's what that stylesheet, ch14_02.xsl, is going to look like; in this case, I'm using a large font for text, 36 point: Listing ch14_02.xsl<?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> <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-reference="page"> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates/> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="PLANET/NAME"> <fo:block font-weight="bold" font-size="36pt" line-height="48pt" font-family="sans-serif"> Name: <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="PLANET/MASS"> <fo:block font-size="36pt" line-height="48pt" font-family="sans-serif"> Mass (Earth = 1): <xsl:apply-templates/> </fo:block> </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> |