Flowing Content into the Pages
Next, add an fo:flow
child to the fo:page-sequence where the actual text of
the transformed document appears. This element has a flow-name attribute specifying which
region of the page its content will flow into. Possible values
include xsl-region-body, xsl-region-start, xsl-region-end, xsl-region-before, and xsl-region-after.
The formatter instantiates a page based on the page master
named by the fo:page-sequence’s
master-reference attribute, fills
one of its regions with content from the fo:flow element until the page is full,
then instantiates a second page, fills it with more content from the
fo:flow, instantiates a third
page, and continues this process until it’s used up all the data in
the fo:flow.
The fo:flow element must
contain block-level formatting object elements. The most basic
of these is fo:block. Others
include fo:block-container,
fo:list-block, fo:table, and fo:table-and-caption. We’ll begin with the
most basic, fo:block. A fo:block can contain a combination of raw
text and formatting objects, such as fo:external-graphic, fo:inline, fo:page-number, fo:footnote, and even other fo:block elements. For the moment, we’ll
restrict ourselves to simple text. For example, here’s a basic
fo:flow for the recipe:
<fo:flow flow-name="xsl-region-body">
<fo:block>Southern Corn Bread</fo:block>
<fo:block>1 cup flour</fo:block>
<fo:block>4 tablespoons Royal Baking Powder</fo:block>
<fo:block>1/2 teaspoon salt</fo:block> <fo:block>1 cup corn meal</fo:block> ...