--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<!-- example for a simple fo file. At the beginning the page layout is set.
+Below fo:root there is always
+- a single fo:layout-master-set which defines one or more page layouts
+- an optional fo:declarations,
+- and a sequence of one or more fo:page-sequences containing the text and formatting instructions -->
+
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+ <fo:layout-master-set>
+ <!-- fo:layout-master-set defines in its children the page layout:
+ the pagination and layout specifications
+ - page-masters: have the role of describing the intended subdivisions
+ of a page and the geometry of these subdivisions
+ - page-sequence-masters: have the role of describing the sequence
+ of page-masters that will be used to generate
+ pages during the formatting of an fo:page-sequence
+
+ -->
+
+ <!-- layout for the first page -->
+ <fo:simple-page-master master-name="first"
+ page-height="29.7cm"
+ page-width="21cm"
+ margin-top="1cm"
+ margin-bottom="2cm"
+ margin-left="2.0cm + 0.5cm"
+ margin-right="(5cm * 1cm) div 2cm">
+ <fo:region-body margin-top="3cm"/>
+ <fo:region-before extent="3cm"/>
+ <fo:region-after extent="1.5cm"/>
+ </fo:simple-page-master>
+
+ <!-- layout for the other pages -->
+ <fo:simple-page-master master-name="rest"
+ page-height="abs(-30cm + .3cm)"
+ page-width="(10cm * 2) + 1cm"
+ margin-top="round(.5) * 1cm"
+ margin-bottom="round(2.4) * 1cm"
+ margin-left="2.5 * 1cm"
+ margin-right="5.5cm - 3cm">
+ <fo:region-body margin-top="2.5cm"/>
+ <fo:region-before extent="2.5cm"/>
+ <fo:region-after extent="1.5cm"/>
+ </fo:simple-page-master>
+
+<fo:page-sequence-master master-name="basicPSM" >
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference master-name="first"
+ page-position="first" />
+ <fo:conditional-page-master-reference master-name="rest"
+ page-position="rest" />
+ <!-- recommended fallback procedure -->
+ <fo:conditional-page-master-reference master-name="rest" />
+ </fo:repeatable-page-master-alternatives>
+</fo:page-sequence-master>
+
+ </fo:layout-master-set>
+ <!-- end: defines page layout -->
+
+ <!-- actual layout -->
+ <fo:page-sequence master-name="basicPSM">
+
+ <!-- header -->
+ <fo:static-content flow-name="xsl-region-before">
+ <fo:block text-align="end"
+ font-size="10pt"
+ font-family="serif"
+ line-height="1em + 4pt" >
+ Property Function Tests - p. <fo:page-number/>
+ </fo:block>
+ </fo:static-content>
+
+ <fo:flow flow-name="xsl-region-body">
+
+ <!-- defines text title level 1-->
+ <fo:block font-size="min(18pt,20pt)"
+ font-family="sans-serif"
+ line-height="max(24pt,18pt)"
+ space-after.optimum="5 mod 3 * 7.5pt"
+ background-color="rgb(0,0,255)"
+ color="rgb(255,255,255)"
+ text-align="center"
+ padding-top="3pt">
+ Property Function Tests
+ </fo:block>
+
+ <!-- defines text title level 2-->
+ <fo:block font-size="floor(16.3) * 1pt"
+ font-family="sans-serif"
+ line-height="2pt * ceiling(9.3)"
+ space-before.optimum="10pt"
+ space-after.optimum="10pt"
+ text-align="start"
+ padding-top="3pt">
+ Function: object from-parent( <fo:inline font-weight='bold'>NCName</fo:inline>)
+ </fo:block>
+
+ <!-- Normal text -->
+ <fo:block font-size="12pt"
+ font-family="sans-serif"
+ line-height="1.25em"
+ space-after="3pt"
+ text-align="start">
+The from-parent function returns a computed value of the property
+whose name matches the argument specified. The value returned is that
+for the parent of the formatting object for which the expression is
+evaluated. If there is no parent, the value returned is the initial
+value. If the argument specifies a shorthand property and if the
+expression only consists of the from-parent function with an argument
+matching the property being computed, it is interpreted as an
+expansion of the shorthand with each property into which the shorthand
+expands, each having a value of from-parent with an argument matching
+the property. It is an error if arguments matching a shorthand
+property are used in any other way.
+ <fo:block font-size="from-parent(font-size) - 2pt"
+ font-family="sans-serif"
+ space-before="from-parent(space-after)"
+ text-align="center">
+ Here is a nested block with font-size =
+from-parent(font-size) - 2pt.
+Since its parent has font-size=12pt, that should mean 10pt. It should
+keep the line height of 1.25em, which means 12.5pt leading. It's
+space-before value is set to the space-after value from its
+parent. Note that neither of these are inheritable. Does it look right?
+ </fo:block>
+ <fo:block font-size="from-parent(font-size) + 2pt"
+ space-before="2pt"
+ space-after="from-parent(space-after)"
+ font-family="sans-serif"
+ start-indent="from-parent(start-indent) + 1cm"
+ end-indent="from-parent(end-indent) + 1cm"
+ text-align="end"
+ background-color="black" color="rgb(50%,50%,50%)">
+Here is a nested block with text 2pt larger than its parent (that
+should be 14pt). This parent is indented 1cm on both start and end
+directions with respect to the values from its parent (which aren't
+specified, so they default to 0.0). The color is set to 50% (using the
+rgb function with % arguements, and the background color for this
+block is black (specified as a keyword). In this block, we'll put an
+<fo:inline color='inherited-property-value(background-color)'
+background-color='inherited-property-value(color)'>inline object</fo:inline>
+whose background and foreground colors invert those of its containing
+block. This uses the <fo:inline
+font-style='oblique'>inherited-property-value</fo:inline>
+function. Here's an <fo:inline color='black' background-color='white'>inline
+object</fo:inline> with fixed colors (black on white). That doesn't
+work either. Guess it's not my problem... So let's try it with font
+sizes. In this block, we'll put an
+<fo:inline font-size='inherited-property-value(font-size)+2pt'>inline
+object whose font-size is 2 pt bigger than its parent's font-size.</fo:inline></fo:block>
+ </fo:block>
+ <fo:block font-size="12pt"
+ space-before="6pt"
+ line-height="1em + 2pt"
+ font-family="sans-serif"
+ text-align="start"
+ background-color="rgb(50%,50%,50%)">
+ An outer block with 12 pt text on 14 pt leading, default color
+and 50% grey background color. Test inherited color changes with
+nested blocks.
+ <fo:block color='from-parent(background-color)'
+ background-color='from-parent(color)'>
+ Interchange color and background color using from-parent function.
+ </fo:block>
+ </fo:block>
+
+ </fo:flow>
+ </fo:page-sequence>
+</fo:root>