XSL-FO Documents

From http://www.w3schools.com (Copyright Refsnes Data)

# XSL-FO Documents

XSL-FO documents are XML files with output information.

## XSL-FO Documents

XSL-FO documents are XML files with output information. They contain information about the output layout and output contents.

XSL-FO documents are stored in files with a .fo or a .fob file extension. It is also quite common to see XSL-FO documents stored with an .xml extension, because this makes them more accessible to XML editors.

## XSL-FO Document Structure

XSL-FO documents have a structure like this:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

    <fo:layout-master-set>
      <fo:simple-page-master master-name="A4">
        <!-- Page template goes here -->
      </fo:simple-page-master>
    </fo:layout-master-set>

    <fo:page-sequence master-reference="A4">
      <!-- Page content goes here -->
    </fo:page-sequence>

    </fo:root>

## Structure explained

XSL-FO documents are XML documents, and must 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. The root element also declares the namespace for XSL-FO:

    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <!-- The full XSL-FO document goes here -->
    </fo:root>

The <fo:layout-master-set> 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> element contains a single page template. Each template must have a unique name (master-name):

    <fo:simple-page-master master-name="A4">
      <!-- One page template goes here -->
    </fo:simple-page-master>

One or more <fo:page-sequence> elements 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>

Note: The master-reference "A4" does not actually describe a predefined page format. It is just a name. You can use any name like "MyPage", "MyTemplate", etc.

From http://www.w3schools.com (Copyright Refsnes Data)