Loading ...
Sorry, an error occurred while loading the content.

7435Re: [XSL-FO] CALS table to XSLFo -@rowsep problem

Expand Messages
  • ms
    Dec 31, 2008
    • 0 Attachment
      Thank you for your response.

      Here is the sample table XML file:
          <table id="S0218B7D7" frame="none">
        <tgroup cols="5">
          <colspec colname="c1"/>
          <colspec colname="c2"/>
          <colspec colname="c3"/>
          <colspec colname="c4"/>
          <colspec colname="c5"/>
              <entry rowsep="0">3</entry>

      My requirement is simple:

      Whenever  @rowsep is encountered, it formats the table by setting border-bottom=0px.

      How can I acheieve this?


      --- On Mon, 12/29/08, G. Ken Holman <gkholman@...> wrote:
      From: G. Ken Holman <gkholman@...>
      Subject: Re: [XSL-FO] CALS table to XSLFo -@rowsep problem
      To: XSL-FO@yahoogroups.com
      Date: Monday, December 29, 2008, 4:52 PM

      At 2008-12-29 17:07 +0000, mina_hurray wrote:

      >I am trying to convert the cals table into FO.

      >I am having issues with the @rowsep at an <entry> element. If the

      >@rowsep=0, I want that the border-bottom to not be shown. Here is what

      >I am attempting to do in the <entry> template: I have just shown the

      >@rowsep part here.

      ><xsl:template match="entry" >

      ><xsl:variable name="entry" >

      ><xsl:number level="multiple" format="1" count="entry" />


      The above is very wasteful because there is no need to walk away from

      the <entry> and go back to it.

      ><fo:table-cell padding-before= "2pt" padding-after= "2pt">

      ><!-- ROWSEP rules -->


      ><xsl:when test="ancestor: :tbody/row/ entry[$entry] /@rowsep= '0'">

      Why not just use test="@rowsep= '0'" as the test? What you have there

      will check the same column of *every* row, not just the row you are in.

      And why use <xsl:choose> when you only have one <xsl:when>? That

      could be <xsl:if>.

      ><xsl:attribute name="border- left"><xsl: value-of select="$FrameWidth "/>

      >solid black</xsl:attribut e>

      ><xsl:attribute name="border- right"><xsl: value-of select="$FrameWidth "/>

      >solid black</xsl:attribut e>

      ><xsl:attribute name="border- top">1px solid black</xsl:attribut e>

      ><xsl:attribute name="border- bottom">0px< /xsl:attribute>



      ><fo:block>< xsl:apply- templates/ ></fo:block>

      ></fo:table- cell>



      >What I wanted to when I used "ancestor::tbody/ row/entry[ $entry]" was to

      >be able to use something like an array to navigate among all the

      ><entry> elements in a table. But this is not working.

      Why all <entry> elements? The above will address only one <entry>

      element and it will address the one you are at because of your use of

      <xsl:number/ >.

      If you want to check that *any* entry element has rowsep, then you use:

      <xsl:if test="../entry[ @rowsep=' 0']">

      ... which will test all of the entry elements in the same row

      checking if any of them has a rowsep='0'. But it won't check for

      entries in spanned rows.

      But I'm not convinced that is what you want. You say you want an

      array (which doesn't exist in XSLT), but you don't say why. What is

      the problem you are trying to solve?

      >I also want to be able to check if it is the first entry

      "not(preceding- sibling:: entry)" will check but will not consider any

      spanned cells from above rows.

      >and if there are @morerows attributes on the <entry>.

      "attributes" plural? I'm not sure what you mean. There could only

      be one on <entry> and to check that it is there is:


      >But I am not able to get this first step of @rowsep.


      >Any help/suggestions?

      Can you please repeat your requirement using sentences and examples

      that describe the data you want checked and the result you need from

      that data? I cannot interpret what problem you are trying to solve.

      I hope the notes above help.

      . . . . . . . . . . . Ken


      Upcoming XSLT/XSL-FO, UBL and code list hands-on training classes:

      : Sydney, AU 2009-01/02; Brussels, BE 2009-03; Prague, CZ 2009-03

      Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video

      Video sample lesson: http://www.youtube com/watch? v=PrNjJCh7Ppg

      Video course overview: http://www.youtube com/watch? v=VTiodiij6gE

      G. Ken Holman mailto:gkholman@CraneSoftw rights.com

      Crane Softwrights Ltd. http://www.CraneSof twrights. com/f/

      Male Cancer Awareness Nov'07 http://www.CraneSof twrights. com/f/bc

      Legal business disclaimers: http://www.CraneSof twrights. com/legal

      [Non-text portions of this message have been removed]
    • Show all 3 messages in this topic