Creating the XSLT Stylesheet

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> 


Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net