XSL-FO documents have flow layout, that is, content "flows" from one page to the next one:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="LetterPage" page-width="6in"
page-height="1.4in">
<fo:region-body region-name="PageBody" margin="0.1in"
background-color="rgb(245,245,245)"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="LetterPage">
<fo:flow flow-name="PageBody" font="12pt Arial">
<fo:block border="2pt solid black" space-after="5pt">
The content of this block is split across multiple
pages.The content of this block is split .....
..............................................
The content of this block is split across multiple pages.
</fo:block>
<fo:block border="2pt solid red" keep-together="always"> (1)
This block has <fo:inline text-decoration="underline">
keep-together</fo:inline> set to "always".
Because of this flag, the block will be displayed on
a new page as the renderer tries to prevent the block
from splitting.
</fo:block>
<fo:block border="2pt solid rgb(255,0,255)" space-after="5pt"
keep-with-next="always"> (2)
A block element that still fits on the previous page.
</fo:block>
<fo:block border="2pt solid black">
A block on the last page. The previous block will be
displayed on the <fo:inline text-decoration="underline">
same</fo:inline> page because it has
keep-with-next flag set.
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
The result of rendering is displayed in following figure:

Figure 7.
There are several properties that control how and when a block of text is split across multiple pages. There are:
| • | break-before and break-after attributes will force a page break before or after a block element. By block element we mean elements that fill all available horizontal space like paragraphs, tables and lists. For example, you might want to use this to start chapters on a new page. |
| • | keep-together attribute prevents splitting of a block element. If there is not enough room to display the block on the current page, the block will be displayed on the next one. (1) |
| • | keep-with-next and keep-with-previous will link a block element with the previous/next sibling block. This is useful to prevent page breaks occur between two closely related elements, like chapter title and chapter contents. (2) |
| • | widows and orphans attributes are useful to control contextual information. The default values for this properties is "2", preventing the display of last line of a paragraph by itself at the top of a page (a widow) or the first line of a paragraph by itself at the bottom of a page (an orphan). You can see in the example above the fo:block will display the two line on the second page. |