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> ...
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.