How can I repeat the fo:table-caption for a table that spans multiple pages and add “- Continued” at the end of the table-caption on the subsequent pages.

 

The tools I use are Oxygen Editor 16 as my XML editor and Arbortext Editor 6.1 to publish to PDF using its XSL-FO processor. Arbortext XSL-FO processor is equal to or slightly better than Apache FOP. At this time, I do not have the option to use a different FO processor.  I prefer to try to solve it through XSLT and XSL-FO since I have more time and understanding invested in it, instead trying to learn how to create a FOSI file in Arbortext – I love learning but it takes time and deadlines seem to come too quickly.  XSLT is fairly new to me and I am still learning; please forgive my ignorance if I stated something incorrectly in that regard.

 

I am restricted to customer-provided DTD and XSL files even though I can modify the XSLT to solve a particular issue like I posed. It is my understanding that the XSL code implements the XSLT 2.0 and XSL-FO 1.1 standards.

 

Fo:retrieve-table-marker is not supported by these processors. I have tried the various methods of using fo:retrieve-marker that I have found through several forums but I was not successful in solving this specific problem even though I did learn new stuff which allowed me to get this far.  The best I was able to do was use fo:retrieve-marker for table caption in a static-content area but it repeats the table-caption on every page in the page header instead of displaying directly above the table.

 

Below is my code snippet: 

 

<!-- fo:retrieve-table-marker - does not work with Apache FOP or Arbortext Editor 6.1 F000 -->
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master page-width="8.5in" page-height="11in" master-name="first">
<fo:region-body margin-right="1in" margin-left="1in" margin-bottom="1in" margin-top="1in" />
<fo:region-before extent=".5in" />
<fo:region-after extent=".5in" />
</fo:simple-page-master>
</fo:layout-master-set>

<fo:page-sequence master-reference="first">
<fo:static-content flow-name="xsl-region-before">
<fo:table-caption>
<fo:block font-weight="bold" text-align="center">
<!-- fo:retrieve-marker -->
<fo:retrieve-marker retrieve-class-name="table-caption-continued"
retrieve-position="first-starting-within-page" />
</fo:block>
</fo:table-caption>
</fo:static-content>

<fo:static-content flow-name="xsl-region-after">
<fo:block text-align="center">
<fo:page-number />
</fo:block>
</fo:static-content>

<fo:flow flow-name="xsl-region-body" font-family="sans-serif">
<xsl:apply-templates />
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>

<xsl:template match="table">
<fo:table-and-caption>
<fo:block>
<!-- fo:marker  -->
<fo:marker marker-class-name="table-caption-continued">
<xsl:apply-templates select="title" />
</fo:marker>
</fo:block>
<fo:block>
<fo:marker marker-class-name="table-caption-continued">
<xsl:apply-templates select="title" /> - Continued </fo:marker>
</fo:block>

<fo:table width="100%" table-layout="fixed">
<fo:table-column column-width="50%" />
<fo:table-column column-width="50%" />

<fo:table-header>
<fo:table-row>
<fo:table-cell border="solid">
<fo:block font-weight="bold">
<xsl:apply-templates select="tgroup/thead/row/entry[1]" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid">
<fo:block font-weight="bold">
<xsl:apply-templates select="tgroup/thead/row/entry[2]" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>

<fo:table-body>
<fo:table-row>
<fo:table-cell border="solid">
<fo:block>
<xsl:apply-templates select="tgroup/tbody/row[1]/entry[1]" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid">
<fo:block>
<xsl:apply-templates select="tgroup/tbody/row[1]/entry[2]" />
</fo:block>
</fo:table-cell>
</fo:table-row>

 

<fo:table-body>
<fo:table-row>
<fo:table-cell border="solid">
<fo:block>
<xsl:apply-templates select="tgroup/tbody/row[2]/entry[1]" />
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid">
<fo:block>
<xsl:apply-templates select="tgroup/tbody/row[2]/entry[2]" />
</fo:block>
</fo:table-cell>
</fo:table-row>

 

</fo:table-body>
</fo:table>
</fo:table-and-caption>
</xsl:template>
 

 

I appreciate any assistance in trying to solve this problem.

 

David Coe

Senior Technical Editor

 

407.514.2332 Office

407.508.9959 Mobile

david.coe@gdit.com E-mail

www.gdit.com Website

 

General Dynamics Information Technology

Defense Solutions Division

Integrated Security and Instrumentation Solutions

12249 Science Drive, Suite 220

Orlando, Florida  32826