I need for my xsl:fo transformation an <fo:retrieve-marker>
in an table but I don't know if this is possible because I use FOP Processor for my transformation.
If i use the <fo:retrieve-marker>
in my table I always get an error message that the tag has to be in an static content.
Here is the table with the marker
<xsl:call-template name="MMEL-Table-Header"/> <!-- Bottom table Line --> <fo:table-footer> <fo:table-row> <fo:table-cell> <fo:marker marker-class-name="footer-continued"> <fo:inline>(continued)</fo:inline></fo:marker> </fo:table-cell> </fo:table-row> </fo:table-footer> <fo:table-body > <xsl:variable name="identification"> <xsl:value-of select="ident/message"/> </xsl:variable> <xsl:apply-templates select="ident"><xsl:with-param name="ident" select="$identification"/></xsl:apply-templates> <xsl:apply-templates select="provisos/proviso"><xsl:with-param name="ident" select="$identification"/></xsl:apply-templates> <fo:table-row> <fo:table-cell> <fo:retrieve-marker retrieve-position="first-starting-within-page" retrieve-class-name="footer-continued" retrieve-boundary="document" /> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table>
(disclosure: I'm a FOP developer)
This example has dynamic table header and table footer, so it should cover your requirements:
- if the table fits in a single page, both table header and table footer are empty
- if the table is split over several pages
- the table header is empty for the first page, and in the following ones it says "(continued)"
- the table footer is empty for the last page, and in the previous ones it says "(continues on the next page)"
- tested with FOP 2.0 (older versions did not support table markers); due to FOP's current limitations, the non-breaking space
 
in the table header and table footer is a necessary "placeholder" (the header / footer dimensions are computed just once, without marker content) - no formatter-specific extensions, so this could work with other formatters too (XslFormatter supports table markers; XEP has alternative workarounds)
FO fragment:
<fo:table table-layout="fixed" width="100%"> <fo:table-column column-width="100%"/> <fo:table-header> <fo:table-row> <fo:table-cell> <fo:block> <fo:retrieve-table-marker retrieve-class-name="mc1" retrieve-position-within-table="first-starting" retrieve-boundary-within-table="table-fragment"/>   </fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <fo:table-footer> <fo:table-row> <fo:table-cell> <fo:block> <fo:retrieve-table-marker retrieve-class-name="mc2" retrieve-position-within-table="last-ending" retrieve-boundary-within-table="table-fragment"/>   </fo:block> </fo:table-cell> </fo:table-row> </fo:table-footer> <fo:table-body> <!-- first row --> <fo:table-row> <fo:table-cell> <fo:block> <fo:marker marker-class-name="mc1"></fo:marker> <fo:marker marker-class-name="mc2">(continues on the next page)</fo:marker> cell1 </fo:block> </fo:table-cell> </fo:table-row> <!-- middle row --> <fo:table-row> <fo:table-cell> <fo:block> <fo:marker marker-class-name="mc1">(continued)</fo:marker> <fo:marker marker-class-name="mc2">(continues on the next page)</fo:marker> cell2 </fo:block> </fo:table-cell> </fo:table-row> <!-- ... other similar rows ... --> <!-- last row --> <fo:table-row> <fo:table-cell> <fo:block> <fo:marker marker-class-name="mc1">(continued)</fo:marker> <fo:marker marker-class-name="mc2"></fo:marker> cell9 </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table>