Creating the XSLT Style Sheet

I could translate planets.xsl 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 style sheet 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 style sheet, planets.xsl, will look like; in this case, I'm using a large font for 36-point text:

<?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-name="page">

                 <!-- Added for fop -->
                 <fo:sequence-specification>
                     <fo:sequence-specifier-single master-name="page"/>
                 </fo:sequence-specification>
                 <!-- Added for fop -->

                 <fo:flow>
                     <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>

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.104.120