xsl-list
[Top] [All Lists]

Re: [xsl] Markers in tables and fo:retrieve-table-marker

2010-12-15 17:00:20
BTW, if you are guaranteed to have more than one table row, then you don't have to do the double-block-and-block-container stuff that I did. You can put the blank marker definition as children of the first table row and the "continued" marker definition as children of the second table row. Then you don't have any extraneous information in any of your table cells.

In my particular situation where I did this, I was not guaranteed to have two rows or even two columns. So I did all of the marker definitions in the first row's first column, which is guaranteed to be in all tables.

I hope this helps.

. . . . . . . . . Ken

At 2010-12-15 17:22 -0500, I wrote:
At 2010-12-15 22:03 +0000, charlieo0(_at_)comcast(_dot_)net wrote:
I realize retrieve-table-markers is FO 1.1 and not officially released but I'm hoping someone has some experience using this mark up.

It *is* officially released and has been available in products for many years. XSL-FO 1.1 was finalized and officially released in December 2006.

I have read through the spec a half dozen times and I just can't seem to get handle on how to use fo:marker and fo:retrieve-table-marker to get the desired output. I have tried every combination of "retrieve-position-within-table" and "retrieve-boundary-within-table" and basically get the some result regardless of the values. The table row (in the header) that uses fo:retrieve-table-marker is basically static (it has to go in either a table-header or table-footer). I need to retrieve the table marker in the header. It cannot be a table-footer.

Fine. What I find in the classroom is not that students have problems with the retrieval, but they have problems with the definition of the markers themselves.

Placement of the fo:marker can go in variety of places. I think I've tried everything. Again, regardless of the placement of the fo:marker I get the same output (Antenna House rendering) result.

I've had no problems with Antenna House rendering table markers.

Either I end up with the marker on every page of the table or not at all. The marker is a continued header. It needs to appear only if the table breaks to a second or succeeding page. Currently I am getting the continued marker on at the beginning of the table AND when the table breaks to a second page. Or, not at all.

Then I suspect you aren't first defining the marker as empty at the start of your table. Then when the formatter picks up the marker on the first page the "continued" text doesn't show. Immediately after defining the marker as empty, define the marker as "continued". Then subsequent pages will find the closest one, which has the text you want exposed.

I don't need help with the XSLT, I need help with the output structure. If someone can get me in the right direction on how to use fo:marker and fo:retrieve-table-marker in an fo:table-header I can add it to my existing XSLT for generating the fo:tables.

Sounds good! I'm glad to see someone asking for the right kind of help so clearly on this list.

I can only provide a snippet of my output. I think only the first part of the table is relevant. You can assume this a large table that continues over three pages. The following markup produces the the "continued" marker at the beginning of the table and when the table breaks to another page. Please, how do I get the "continued' marker to NOT appear at the beginning of the table?

First, separate the table title from the "continued" text:

  <block>
    Table 1. EL Panel
    <retrieve-table-marker retrieve-class-name="continued-text"/>
  </block>

Then in your first table cell, do the following:

   <table-cell>
     <block>
       <marker marker-class-name="continued-text"></marker>
     </block>
     <block>
       <marker marker-class-name="continued-text">- Continued</marker>
     </block>
     <block-container>
       ...cell stuff...
     </block-container>
   </table-cell>

Two blocks are needed so that the two markers are not competing to be qualifying the same areas.

The block-container is needed in order to restore the reference-area status of the formatter that was triggered by the table-cell but changed by the presence of the blocks with markers.

I hope this helps.

. . . . . . . . . Ken


--
Contact us for world-wide XML consulting & instructor-led training
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
G. Ken Holman                 mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>