<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:rx="http://www.renderx.com/XSL/Extensions">
<!-- ============================================================ -->
<!--                                                              -->
<!-- 	This file makes a part of RenderX XSL Test Suite          -->
<!--                                                              -->
<!--    Author: Alexander Peshkov                                 -->
<!--                                                              -->
<!--    (c) RenderX, 2003                                         -->
<!--                                                              -->
<!-- ============================================================ -->
   <fo:layout-master-set>
      <fo:simple-page-master master-name="document-master" margin="0.4in">
         <fo:region-body margin="20pt" padding="0pt"/>
      </fo:simple-page-master>
   </fo:layout-master-set>
   
  
   <fo:page-sequence master-reference="document-master">
      <fo:flow flow-name="xsl-region-body" padding="6pt">
  
         <fo:block font="bold 16pt Helvetica" space-before="16pt" space-after="16pt" text-align="center" span="all">Creating indexes using RenderX extensions</fo:block>
  
         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
    Building page number lists for indexes is not possible within XSL 1.0.
    RenderX XEP provides this functionality via extension elements/properties.
  </fo:block>
  
         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
    indexes creation can be devided in two steps: first one presumes defining index terms and ranges in the text,
    second one – inserting index page and setting index entries properties, which control visual appearance.
    First step performed using <fo:wrapper font-family="monospace">rx:key</fo:wrapper> property (applicable to any element that can carry an id attribute) 
    and <fo:wrapper font-family="monospace">rx:begin-index-range</fo:wrapper>, <fo:wrapper font-family="monospace">rx:end-index-range</fo:wrapper> elements usefull for creating ranges in the index.
    Second step utilizes <fo:wrapper font-family="monospace">rx:page-index</fo:wrapper> element together with <fo:wrapper font-family="monospace">rx:index-item</fo:wrapper> elements.
    Both can have standard font and style properties, while latter can also carry four special properties:
    <fo:wrapper font-family="monospace">ref-key</fo:wrapper> (required), <fo:wrapper font-family="monospace">range-separator</fo:wrapper>, 
    <fo:wrapper font-family="monospace">merge-subsequent-page-numbers</fo:wrapper>, <fo:wrapper font-family="monospace">link-back</fo:wrapper>.
    You can find detailed description of these elements/properties in XEP documentation included in distribution.
    <fo:block font-size="12pt" font-style="italic" space-before="6pt" space-after="6pt">
    	XEP 4.0 Reference for Java, section 3.6.3. "Indexes" (reference.pdf)
    </fo:block>
  
         </fo:block>
  
         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
	Following excerpt shows how code with two stand alone index terms and one index range will looks like:
	<fo:block white-space="pre" font-family="monospace"> &lt;fo:block ...&gt;Processing a Stylesheet&lt;/fo:block&gt;
    &lt;fo:block ...&gt;
      &lt;rx:begin-index-range rx:key="transformation" id="transformation-id"/&gt;
   An &lt;fo:inline rx:key="XSL"&gt;XSL&lt;/fo:inline&gt;
      &lt;fo:inline rx:key="stylesheet processor-primary"&gt;stylesheet processor&lt;/fo:inline&gt;
      accepts a document or data in XML and an XSL stylesheet and produces...
      ...
      &lt;rx:end-index-range ref-id="transformation-id"/&gt;
    &lt;/fo:block&gt;
	</fo:block>
	And this code shows how index page will be organized:
	<fo:block white-space="pre" font-family="monospace">
      &lt;fo:block font="bold 16pt Helvetica" ...&gt;INDEX&lt;/fo:block&gt;
      ...
          &lt;fo:block font="12pt Times"&gt;
         stylesheet processor
            &lt;rx:page-index&gt;
              &lt;rx:index-item ref-key="stylesheet processor-primary"
                             color="blue"
                             font-style="italic"
                             font-weight="bold"
                             link-back="true"/&gt;
            &lt;/rx:page-index&gt;
          &lt;/fo:block&gt;
          ...
          &lt;fo:block font="12pt Times"&gt;
         transformation
            &lt;rx:page-index&gt;
              &lt;rx:index-item ref-key="transformation-primary"
                             color="blue"
                             font-style="italic"
                             font-weight="bold"
                             link-back="true"/&gt;
            &lt;/rx:page-index&gt;
          &lt;/fo:block&gt;
          ...
          &lt;fo:block font="12pt Times"&gt;
         XSL
		    &lt;rx:page-index&gt;
              &lt;rx:index-item ref-key="XSL-primary"
                             color="blue"
                             font-style="italic"
                             font-weight="bold"
                             link-back="true"/&gt;
              &lt;rx:index-item ref-key="XSL"
                             color="blue"
                             font-style="italic"
                             font-weight="normal"
                             link-back="true"/&gt;
            &lt;/rx:page-index&gt;
          &lt;/fo:block&gt;			
      ...
	</fo:block>
	It creates two index entries, all linked back to the index terms location in the main text.
	By default, page numbers separated by colon symbol followed by space;
	subsequent page numbers not merged; en dash ("&amp;ndash;", U+2013) used to separate page
	numbers in a range.
  </fo:block>
  
         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
	Starting from the next page you can see some formated text which contains a bunch of keywords,
	which should be placed in the index. Some of index terms have ranged structure and so must be
	represented in the index by the pages range. Text below devided into several page-sequences in
	order to demonstrate how index ranges works over page-sequence borders.
  </fo:block>
  
      </fo:flow>
   </fo:page-sequence>

   <fo:page-sequence master-reference="document-master">
      <fo:flow flow-name="xsl-region-body" padding="6pt">

         <fo:block font="bold 16pt Helvetica" space-before="16pt" space-after="16pt" text-align="center" span="all">Introduction and Overview</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
This specification defines the <fo:inline font-style="italic" color="silver" rx:key="XSL-primary">Extensible Stylesheet Language
(XSL)</fo:inline>. XSL is a language for expressing stylesheets. Given a class of
arbitrarily structured XML documents or data files, designers use
an XSL stylesheet to express their intentions about how that
structured content should be presented; that is, how the source
content should be styled, laid out, and paginated onto some
presentation medium, such as a window in a Web browser or a
hand-held device, or a set of
physical pages in a catalog, report, pamphlet, or book.
</fo:block>

         <fo:block font="bold 12pt Helvetica" space-before="10pt" space-after="10pt" text-align="left" keep-with-next="always">Processing a Stylesheet</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
            <rx:begin-index-range rx:key="transformation-primary" id="transformation-id"/>
            <fo:inline font-size="16pt" color="red">-&gt;</fo:inline>
An <fo:inline font-style="italic" color="silver" rx:key="XSL">XSL</fo:inline> 
            <fo:inline font-style="italic" color="silver" rx:key="stylesheet processor-primary">stylesheet processor</fo:inline> accepts a document
or data in XML
and an XSL stylesheet and produces the presentation of that XML source
content that was intended by the designer of that
stylesheet. There are two aspects of this
presentation process:
first, constructing a result tree from the XML source tree and second,
interpreting the result tree to produce formatted
results suitable for presentation on a
display, on paper, in speech, or onto other media. The first
aspect is called <fo:inline font-style="italic" color="silver" rx:key="tree transformation-primary">tree transformation</fo:inline> and the
second
is called <fo:inline font-style="italic" color="silver" rx:key="formatting-primary">formatting</fo:inline>. The process of formatting
is performed by the <fo:inline font-style="italic" color="silver" rx:key="formatter">formatter</fo:inline>. This formatter
may simply be a rendering engine inside a browser.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">

            <fo:inline font-style="italic" color="silver" rx:key="tree transformation">Tree transformation</fo:inline> allows the structure
of the result tree to be significantly
different from the structure of the source tree. For example, one could add
a table-of-contents as a filtered selection of an original source document,
or one could rearrange source data into a sorted tabular presentation.
In constructing the result tree,
the <fo:inline font-style="italic" color="silver" rx:key="tree transformation">tree transformation</fo:inline> process also adds
the information necessary to format that result tree.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">Formatting is enabled by including formatting semantics
in the result tree. Formatting semantics are
expressed in terms of a catalog of classes of
<fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline>. The nodes of the result tree are formatting
objects. The classes of <fo:inline font-style="italic" color="silver" rx:key="formatting objects-primary">formatting objects</fo:inline>
denote typographic abstractions such as page, paragraph,
table, and so forth. Finer control over the presentation of these abstractions is
provided by a set of <fo:inline font-style="italic" color="silver" rx:key="formatting properties">formatting properties</fo:inline>, such as
those controlling indents, word- and
letter spacing, and widow, orphan, and hyphenation control.
In <fo:inline font-style="italic" color="silver" rx:key="XSL">XSL</fo:inline>, the classes of <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline> and
<fo:inline font-style="italic" color="silver" rx:key="formatting properties-primary">formatting properties</fo:inline>
provide the vocabulary for expressing presentation intent.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The <fo:inline font-style="italic" color="silver" rx:key="XSL">XSL</fo:inline> processing model is intended to be
conceptual only.  An implementation is not
mandated to provide these as separate
processes.  Furthermore, implementations are free to process
the source document in any way that produces the same result
as if it were processed using the conceptual XSL processing
model.  A diagram depicting the detailed conceptual model is
shown below.</fo:block>

      </fo:flow>
   </fo:page-sequence>


   <fo:page-sequence master-reference="document-master">
      <fo:flow flow-name="xsl-region-body" padding="6pt">

         <fo:block font="bold 12pt Helvetica" space-before="10pt" space-after="10pt" text-align="left" keep-with-next="always">Tree Transformations</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">

            <rx:begin-index-range rx:key="tree transformation" id="tree-id"/>
            <fo:inline font-size="16pt" color="red">-&gt;</fo:inline>

            <fo:inline font-style="italic" color="silver" rx:key="tree transformation">Tree transformation</fo:inline> constructs the result tree.  In XSL,
this tree is called the <fo:inline font-style="italic" color="silver" rx:key="element and attribute tree-primary">element and attribute
tree</fo:inline>, with objects primarily in the
"formatting object" namespace. In this tree, a formatting
object
is represented as an XML element, with the properties represented by a
set of XML attribute-value pairs. The content of the formatting object
is the content of the XML element. Tree
transformation is defined in the <fo:inline font-style="italic" color="silver" rx:key="XSLT-primary">XSLT</fo:inline> Recommendation.
A diagram depicting this conceptual process is
shown below.</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The XSL stylesheet is used in tree transformation. A stylesheet
contains a set of tree construction rules. The tree construction rules
have two parts: a pattern that is matched against elements in the
source tree and a template that constructs a portion of the result
tree. This allows a stylesheet to be applicable to a wide class of
documents that have similar source tree structures.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">In some implementations of <fo:inline font-style="italic" color="silver" rx:key="XSLT">XSL/XSLT</fo:inline>,
the result of tree construction
can be output as an XML document. This would allow an XML document
which contains <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline> and <fo:inline font-style="italic" color="silver" rx:key="formatting properties">formatting properties</fo:inline> to be
output. This capability is neither necessary for an XSL processor nor
is it encouraged. There are, however, cases where this is important,
such as a server preparing input for a known client; for example, the way
that a <fo:inline font-style="italic" color="silver" rx:key="WAP-primary">WAP</fo:inline> 
(<fo:basic-link external-destination="url(http://www.wapforum.org/faqs/index.htm)" color="#0000C0" text-decoration="underline">http://www.wapforum.org/faqs/index.htm</fo:basic-link>)
server prepares specialized input for a <fo:inline font-style="italic" color="silver" rx:key="WAP">WAP</fo:inline> capable
hand held device. To preserve accessibility, designers of Web systems
should not develop architectures that require (or use) the
transmission of documents containing <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline>
and properties unless either the transmitter knows that the client can accept
formatting objects and properties or the transmitted document contains
a reference to the source document(s) used in the construction of the
document with the <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline> and properties.
<fo:inline font-size="16pt" color="red">&lt;-</fo:inline>
            <rx:end-index-range ref-id="tree-id"/>

            <fo:inline font-size="16pt" color="red">&lt;-</fo:inline>
            <rx:end-index-range ref-id="transformation-id"/>

         </fo:block>

      </fo:flow>
   </fo:page-sequence>


   <fo:page-sequence master-reference="document-master">
      <fo:flow flow-name="xsl-region-body" padding="6pt">

         <fo:block font="bold 12pt Helvetica" space-before="10pt" space-after="10pt" text-align="left" keep-with-next="always">Formatting</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">

            <rx:begin-index-range rx:key="formatting" id="formatting-id"/>
            <fo:inline font-size="16pt" color="red">-&gt;</fo:inline>
Formatting interprets the result tree in its <fo:inline font-style="italic" color="silver" rx:key="formatting object tree">formatting object tree</fo:inline>
form to produce the presentation intended by the designer
of the stylesheet from which the XML element and attribute
tree in the "fo" namespace was constructed.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The vocabulary of <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline> supported by XSL - the set of
<fo:wrapper font-family="monospace">fo:</fo:wrapper> element types - represents the set of
typographic abstractions available to the
designer. Semantically, each formatting object represents a
specification for a part of the pagination, layout, and styling
information that will be applied to the content of that formatting
object as a result of formatting the whole result tree. Each
formatting object class represents a particular kind of formatting
behavior. For example, the block formatting object class represents
the breaking of the content of a paragraph into lines. Other parts of
the specification may come from other <fo:inline font-style="italic" color="silver" rx:key="formatting objects">formatting objects</fo:inline>; for
example, the formatting of a paragraph (block formatting
object)
depends on both the specification of properties on the block
formatting object and the specification of the layout structure into
which the block is placed by the <fo:inline font-style="italic" color="silver" rx:key="formatter-primary">formatter</fo:inline>.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The properties associated with an instance of a formatting object
control the formatting of that object. Some of the properties, for
example "color", directly specify the formatted result.
Other properties, for example 'space-before', only constrain the set
of possible formatted results without specifying any particular
formatted result. The <fo:inline font-style="italic" color="silver" rx:key="formatter">formatter</fo:inline> may make choices among other
possible considerations such as esthetics.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
Formatting consists of the generation of a tree
of geometric areas, called the <fo:inline font-style="italic" color="silver" rx:key="area tree-primary">area tree</fo:inline>. The
geometric areas are
positioned on a sequence of one or more pages (a browser typically
uses a single page). Each geometric area has a position on the page, a
specification of what to display in that area and may have a
background, padding, and borders. For example, formatting a
single character generates an area sufficiently large enough to hold the
glyph that is used to present the character visually and the glyph is
what is displayed in this area. These areas may be nested. For
example, the glyph may be positioned within a line, within a
block, within a page.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
Rendering takes the <fo:inline font-style="italic" color="silver" rx:key="area tree">area tree</fo:inline>, the abstract model of the presentation (in terms
of pages and their collections of areas), and causes a
presentation to appear on the relevant medium, such as a browser
window on a computer display screen or sheets of paper. The semantics
of rendering are not described in detail in this specification.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The first step in formatting is to "objectify" the element
and attribute
tree obtained via an <fo:inline font-style="italic" color="silver" rx:key="XSLT">XSLT</fo:inline> transformation.
Objectifying the tree basically consists of turning the
elements in the
tree into formatting object nodes and the
attributes into property specifications. The result of this step is
the <fo:inline font-style="italic" color="silver" rx:key="formatting object tree-primary">formatting object tree</fo:inline>.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
As part of the step of objectifying, the characters that occur in
the result tree are replaced by fo:character nodes.
Characters in text nodes which consist
solely of white space characters and
which are children of elements whose corresponding <fo:inline font-style="italic" color="silver" rx:key="">formatting objects</fo:inline> do
not permit fo:character nodes as children are ignored.  Other characters
within elements whose corresponding <fo:inline font-style="italic" color="silver" rx:key="">formatting objects</fo:inline> do not permit
fo:character nodes as children are errors.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">The content of the fo:instream-foreign-object
is not objectified;
instead the object representing the fo:instream-foreign-object
element points to the appropriate node in the element and
attribute tree.
Similarly any non-XSL namespace child element
of fo:declarations is not objectified; instead the object representing
the fo:declarations element points to the appropriate node in the
element and attribute tree.
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The second phase in formatting is to refine the formatting
object tree
to produce the <fo:inline font-style="italic" color="silver" rx:key="refined formatting object tree-primary">refined formatting object tree</fo:inline>.
The <fo:inline font-style="italic" color="silver" rx:key="refinement">refinement</fo:inline> process handles the mapping from properties
to traits.  This consists of: (1) shorthand expansion into
individual properties, (2) mapping of corresponding
properties, (3) determining computed values (may include
expression evaluation),
(4) handling white-space-treatment and linefeed-treatment
property effects, and (5) inheritance.
Details on
<fo:inline font-style="italic" color="silver" rx:key="refinement">refinement</fo:inline> are found in "§ 5 - Property <fo:inline font-style="italic" color="silver" rx:key="refinement">Refinement</fo:inline>/Resolution"
</fo:block>

         <fo:block font-size="12pt" space-before="6pt" space-after="6pt" text-align="justify" text-indent="16pt">
The third step in formatting is the construction of the area
tree. The <fo:inline font-style="italic" color="silver" rx:key="area tree">area tree</fo:inline> is generated as described
in the semantics of each formatting object. The traits applicable to each formatting
object
class control how the areas are generated. Although every
formatting property may be specified on every formatting object, for
each formatting object class, only a subset of the formatting
properties are used to determine the traits for objects of
that class.
<fo:inline font-size="16pt" color="red">&lt;-</fo:inline>
            <rx:end-index-range ref-id="formatting-id"/>

         </fo:block>

      </fo:flow>
   </fo:page-sequence>

   <fo:page-sequence master-reference="document-master">
      <fo:flow flow-name="xsl-region-body" padding="6pt">

         <fo:block font="bold 16pt Helvetica" space-before="16pt" space-after="16pt" text-align="center" span="all">INDEX</fo:block>

         <fo:block font="12pt Times">area tree <rx:page-index>
               <rx:index-item ref-key="area tree-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="area tree" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">element and attribute tree <rx:page-index>
               <rx:index-item ref-key="element and attribute tree-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">formatter <rx:page-index>
               <rx:index-item ref-key="formatter-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="formatter" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">formatting <rx:page-index>
               <rx:index-item ref-key="formatting-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="formatting" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">formatting object tree <rx:page-index>
               <rx:index-item ref-key="formatting object tree-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="formatting object tree" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">formatting objects <rx:page-index>
               <rx:index-item ref-key="formatting objects-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="formatting objects" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">formatting properties <rx:page-index>
               <rx:index-item ref-key="formatting properties-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="formatting properties" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">refined formatting object tree <rx:page-index>
               <rx:index-item ref-key="refined formatting object tree-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">refinement <rx:page-index>
               <rx:index-item ref-key="refinement" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">stylesheet processor <rx:page-index>
               <rx:index-item ref-key="stylesheet processor-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">transformation <rx:page-index>
               <rx:index-item ref-key="transformation-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">tree transformation <rx:page-index>
               <rx:index-item ref-key="tree transformation-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="tree transformation" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">WAP <rx:page-index>
               <rx:index-item ref-key="WAP-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="WAP" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">XSL <rx:page-index>
               <rx:index-item ref-key="XSL-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="XSL" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>
         <fo:block font="12pt Times">XSLT <rx:page-index>
               <rx:index-item ref-key="XSLT-primary" color="blue" font-style="italic" font-weight="bold" link-back="true"/>
               <rx:index-item ref-key="XSLT" color="blue" font-style="italic" font-weight="normal" link-back="true"/>
            </rx:page-index>
         </fo:block>

      </fo:flow>
   </fo:page-sequence>

</fo:root>