Generating the Finished Document

We now have the minimum set of pieces needed to put together a full XSL-FO document. Example 14-2 is an XSLT stylesheet that transforms documents like Example 14-1 into XSL Formatting Objects documents.

Example 14-2. An XSLT to XSL-FO transform
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  <xsl:template match="/">
        <fo:simple-page-master margin-right="1in"  margin-left="1in"
                               margin-bottom="1in" margin-top="1in"
                               page-width="8.5in"  page-height="11in"
      <fo:page-sequence master-reference="first">
        <fo:flow flow-name="xsl-region-body">
  <xsl:template match="dish|ingredient|directions|story">

Example 14-3 shows the complete XSL-FO document produced by running the cornbread recipe through an XSLT engine, such as Xalan, with this stylesheet. The whitespace is a little off because of the way XSLT treats whitespace in the transform document. However, this won’t be significant when the document is rendered.

Example 14-3. An XSL-FO document describing a recipe for cornbread
<?xml version="1.0" encoding="utf-8"?> <fo:root xmlns:fo=""> <fo:layout-master-set> <fo:simple-page-master ...

Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.