XSL Formatting Objects documents are XML documents, but they do not have to conform to any
schema. Instead, they conform to a syntax defined in the XSL-FO
specification.
A D V E R T I S E M E N T
XSL-FO documents contain two required section. The first section details a list
of named page layouts. The second section is a list of document data, with
markup, that uses the various page layouts to determine how the content fills
the various document pages.
The properties of the page define by the Page layout. It can define the directions
for the flow of text, so as to match the conventions for the language in
question. They define the size of a page as well as the margins of that page.
Most important that they can define sequences of pages that allow for effects
where the odd and even pages look different.Example one can define a page
layout sequence that gives extra space to the inner margins for printing
purposes; this allows more space to be given to the margin where the book will
be bound.
The document data portion is brake up into a sequence of flow, where each flow
is attached to a page layout. The flows contain a list of blocks
and each contain a list of text data, inline markup elements, or a combination of
the two. Content may also be added to the margins of the document, for page
numbers, chapter headings and the like.
Blocks and inline element function are the same way as for CSS, though some
of the rules for padding and margins differ between CSS and FO. The direction,
relative to the page orientation, for the progression of inlines and blocks can
be fully specified, thus allowing FO documents to function under languages that
are read different from English. The language of the FO specification, unlike
that of CSS 2.1, uses direction-neutral terms like start and end rather than
left and right when describing these directions.
XSL-FO's basic content markup is derived from CSS and its cascading rules.
Many attributes in XSL-FO propagate into the child elements unless
explicitly overridden.
<fo:page-sequence master-reference="A4">
<!-- Page content goes here -->
</fo:page-sequence></fo:root>
Explanation:
XSL-FO documents always start with an XML declaration:
<?xml version="1.0" encoding="ISO-8859-1"?>
The <fo:root> element is the root element of XSL-FO documents.
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- The full XSL-FO document goes here -->
</fo:root>
<fo:layout-master-set> tag element contains one or more page templates
<fo:layout-master-set>
<!-- All page templates go here -->
</fo:layout-master-set>
Each <fo:simple-page-master> tag element contains a single page template. Each
template must have a unique name
<fo:simple-page-master master-name="A4">
<!-- One page template goes here -->
</fo:simple-page-master>
One or more <fo:page-sequence> tag describe the page contents. The
master-reference attribute refers to the simple-page-master template with the
same name:
<fo:page-sequence master-reference="A4">
<!-- Page content goes here -->
</fo:page-sequence>