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

Problem with Dictionary Style Running Heads

Expand Messages
  • Jeff Sese
    Hi, I m have a dictionary style running heads that displays the title of the active article in the page and the last article in the page using this fo
    Message 1 of 7 , Jan 31, 2007
    • 0 Attachment
      Hi,

      I'm have a dictionary style running heads that displays the title of the
      active article in the page and the last article in the page using this
      fo instruction:

      <fo:retrieve-marker retrieve-class-name="header"
      retrieve-boundary="page" retrieve-position="first-including-carryover"/>
      — <fo:retrieve-marker retrieve-class-name="header"
      retrieve-boundary="page" retrieve-position="last-starting-within-page"/>

      When my page only contains a single article, my header will return the
      title of the article twice separated by the em dash, which is normal by
      following the instructions above. What I want, however, is to output
      only the article title once without the em dash if the page contains
      only one article and when there are two or more articles present in the
      page, i want them displayed as first article em dash second article.

      Thanks,
      --
      *Jeff Sese*
    • G. Ken Holman
      ... There is no way to conditionally retrieve content ... you get what you get by the class name, boundary and position, but you can t arbitrate what you get
      Message 2 of 7 , Feb 1, 2007
      • 0 Attachment
        At 2007-02-01 15:33 +0800, Jeff Sese wrote:
        >I'm have a dictionary style running heads that displays the title of the
        >active article in the page and the last article in the page using this
        >fo instruction:
        >
        ><fo:retrieve-marker retrieve-class-name="header"
        >retrieve-boundary="page" retrieve-position="first-including-carryover"/>
        >— <fo:retrieve-marker retrieve-class-name="header"
        >retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
        >
        >When my page only contains a single article, my header will return the
        >title of the article twice separated by the em dash, which is normal by
        >following the instructions above. What I want, however, is to output
        >only the article title once without the em dash if the page contains
        >only one article and when there are two or more articles present in the
        >page, i want them displayed as first article em dash second article.

        There is no way to conditionally retrieve content ... you get what
        you get by the class name, boundary and position, but you can't
        arbitrate what you get when there are multiple markers, nor can you
        test the absence of a marker.

        You can get closer to what you want if you retrieve two separate
        parts of the header, the bit at the start and then the bit at the
        end, with the dash in the bit at the end. But make the end marker
        empty for the first entry.

        The problem is on the last page when you get the last title twice ...
        but I think you are closer to what you want.

        I hope the example below helps.

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

        <?xml version="1.0" encoding="utf-8"?><!--marker6.fo-->
        <root xmlns="http://www.w3.org/1999/XSL/Format"
        font-family="Times" font-size="20pt">

        <layout-master-set>
        <simple-page-master master-name="frame"
        page-height="297mm" page-width="210mm"
        margin-top="15mm" margin-bottom="15mm"
        margin-left="15mm" margin-right="15mm">
        <region-body region-name="frame-body"
        margin-bottom=".5cm" margin-top=".5cm"/>
        <region-before region-name="frame-before" extent=".5cm"/>
        <region-after region-name="frame-after" extent=".5cm"/>
        </simple-page-master>
        </layout-master-set>

        <page-sequence master-reference="frame"
        xmlns="http://www.w3.org/1999/XSL/Format">
        <static-content flow-name="frame-before">
        <block>
        <retrieve-marker retrieve-class-name="header-start"
        retrieve-boundary="page" retrieve-position="first-including-carryover"/>
        <retrieve-marker retrieve-class-name="header-end"
        retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
        </block>
        </static-content>

        <flow flow-name="frame-body">
        <block space-after="3in" break-after="page">
        <marker marker-class-name="header-start">
        first
        </marker>
        <marker marker-class-name="header-end">

        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        second
        </marker>
        <marker marker-class-name="header-end">
        — second
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        third
        </marker>
        <marker marker-class-name="header-end">
        — third
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        fourth
        </marker>
        <marker marker-class-name="header-end">
        — fourth
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        fifth
        </marker>
        <marker marker-class-name="header-end">
        — fifth
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        sixth
        </marker>
        <marker marker-class-name="header-end">
        — sixth
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        seventh
        </marker>
        <marker marker-class-name="header-end">
        — sevent
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        eighth
        </marker>
        <marker marker-class-name="header-end">
        — eighth
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        ninth
        </marker>
        <marker marker-class-name="header-end">
        — ninth
        </marker>
        Test
        </block>
        <block space-after="3in">
        <marker marker-class-name="header-start">
        tenth
        </marker>
        <marker marker-class-name="header-end">
        — tenth
        </marker>
        Test
        </block>

        </flow></page-sequence>

        </root>


        --
        World-wide corporate, govt. & user group XML, XSL and UBL training
        RSS feeds: publicly-available developer resources and training
        G. Ken Holman mailto:gkholman@...
        Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
        Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
        Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
        Legal business disclaimers: http://www.CraneSoftwrights.com/legal
      • Jeff Sese
        Ken, I haven t tried your code yet but i think if i have a page like this: ... title0 some text some text some text some text some text some
        Message 3 of 7 , Feb 1, 2007
        • 0 Attachment
          Ken, I haven't tried your code yet but i think if i have a page like this:

          page 1: page 2: page 3:
          ------------- ------------- ------------
          title0 some text some text
          some text some text some text
          some text some text some text
          title1 some text some text
          some text some text some text
          some text some text title2
          some text some text some text
          ------------- ------------- ------------

          It will still output the following headers:

          page 1: title0-title1
          page 2: title1-title1
          page 3: title1-title2

          But what i want is an output of:

          page 1: title0-title1
          page 2: title1
          page 3: title1-title2

          I tried this and i got the desired output, but i can seem to understand
          how it happened.

          <xsl:variable name="first" as="xs:string">
          <fo:retrieve-marker retrieve-class-name="header"
          retrieve-boundary="page" retrieve-position="first-including-carryover"/>
          </xsl:variable>
          <xsl:variable name="last" as="xs:string">
          <fo:retrieve-marker retrieve-class-name="header"
          retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
          </xsl:variable>
          <fo:block>
          <xsl:choose>
          <xsl:when test="$first eq $last">
          <fo:retrieve-marker retrieve-class-name="header"
          retrieve-boundary="page" retrieve-position="first-including-carryover"/>
          </xsl:when>
          <xsl:otherwise>
          <fo:retrieve-marker retrieve-class-name="header"
          retrieve-boundary="page" retrieve-position="first-including-carryover"/>
          — <fo:retrieve-marker retrieve-class-name="header"
          retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
          </xsl:otherwise>
          </xsl:choose>
          </fo:block>

          I tried outputting the content of the variable using xsl:message but i
          get no output for their value:
          <xsl:message>
          <xsl:copy-of select="$first"/>
          <xsl:copy-of select="$last"/>
          </xsl:message>

          Is my xslt above correct? It does give me the desired output though...
          --
          *Jeff Sese*

          G. Ken Holman wrote:
          >
          > At 2007-02-01 15:33 +0800, Jeff Sese wrote:
          > >I'm have a dictionary style running heads that displays the title of the
          > >active article in the page and the last article in the page using this
          > >fo instruction:
          > >
          > ><fo:retrieve-marker retrieve-class-name="header"
          > >retrieve-boundary="page" retrieve-position="first-including-carryover"/>
          > >— <fo:retrieve-marker retrieve-class-name="header"
          > >retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
          > >
          > >When my page only contains a single article, my header will return the
          > >title of the article twice separated by the em dash, which is normal by
          > >following the instructions above. What I want, however, is to output
          > >only the article title once without the em dash if the page contains
          > >only one article and when there are two or more articles present in the
          > >page, i want them displayed as first article em dash second article.
          >
          > There is no way to conditionally retrieve content ... you get what
          > you get by the class name, boundary and position, but you can't
          > arbitrate what you get when there are multiple markers, nor can you
          > test the absence of a marker.
          >
          > You can get closer to what you want if you retrieve two separate
          > parts of the header, the bit at the start and then the bit at the
          > end, with the dash in the bit at the end. But make the end marker
          > empty for the first entry.
          >
          > The problem is on the last page when you get the last title twice ...
          > but I think you are closer to what you want.
          >
          > I hope the example below helps.
          >
          > . . . . . . . . . . . Ken
          >
          > <?xml version="1.0" encoding="utf-8"?><!--marker6.fo-->
          > <root xmlns="http://www.w3.org/1999/XSL/Format
          > <http://www.w3.org/1999/XSL/Format>"
          > font-family="Times" font-size="20pt">
          >
          > <layout-master-set>
          > <simple-page-master master-name="frame"
          > page-height="297mm" page-width="210mm"
          > margin-top="15mm" margin-bottom="15mm"
          > margin-left="15mm" margin-right="15mm">
          > <region-body region-name="frame-body"
          > margin-bottom=".5cm" margin-top=".5cm"/>
          > <region-before region-name="frame-before" extent=".5cm"/>
          > <region-after region-name="frame-after" extent=".5cm"/>
          > </simple-page-master>
          > </layout-master-set>
          >
          > <page-sequence master-reference="frame"
          > xmlns="http://www.w3.org/1999/XSL/Format
          > <http://www.w3.org/1999/XSL/Format>">
          > <static-content flow-name="frame-before">
          > <block>
          > <retrieve-marker retrieve-class-name="header-start"
          > retrieve-boundary="page" retrieve-position="first-including-carryover"/>
          > <retrieve-marker retrieve-class-name="header-end"
          > retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
          > </block>
          > </static-content>
          >
          > <flow flow-name="frame-body">
          > <block space-after="3in" break-after="page">
          > <marker marker-class-name="header-start">
          > first
          > </marker>
          > <marker marker-class-name="header-end">
          >
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > second
          > </marker>
          > <marker marker-class-name="header-end">
          > — second
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > third
          > </marker>
          > <marker marker-class-name="header-end">
          > — third
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > fourth
          > </marker>
          > <marker marker-class-name="header-end">
          > — fourth
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > fifth
          > </marker>
          > <marker marker-class-name="header-end">
          > — fifth
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > sixth
          > </marker>
          > <marker marker-class-name="header-end">
          > — sixth
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > seventh
          > </marker>
          > <marker marker-class-name="header-end">
          > — sevent
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > eighth
          > </marker>
          > <marker marker-class-name="header-end">
          > — eighth
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > ninth
          > </marker>
          > <marker marker-class-name="header-end">
          > — ninth
          > </marker>
          > Test
          > </block>
          > <block space-after="3in">
          > <marker marker-class-name="header-start">
          > tenth
          > </marker>
          > <marker marker-class-name="header-end">
          > — tenth
          > </marker>
          > Test
          > </block>
          >
          > </flow></page-sequence>
          >
          > </root>
          >
          > --
          > World-wide corporate, govt. & user group XML, XSL and UBL training
          > RSS feeds: publicly-available developer resources and training
          > G. Ken Holman mailto:gkholman@...
          > <mailto:gkholman%40CraneSoftwrights.com>
          > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
          > <http://www.CraneSoftwrights.com/f/>
          > Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
          > Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
          > <http://www.CraneSoftwrights.com/f/bc>
          > Legal business disclaimers: http://www.CraneSoftwrights.com/legal
          > <http://www.CraneSoftwrights.com/legal>
          >
          >
          > ------------------------------------------------------------------------
          >
          > No virus found in this incoming message.
          > Checked by AVG Free Edition.
          > Version: 7.5.432 / Virus Database: 268.17.18/662 - Release Date: 1/31/2007 3:16 PM
          >
        • Jeff Sese
          The page layout got distorted: ... title0 some text some text title1 some text some text some text ... some text some text some text some text some text some
          Message 4 of 7 , Feb 1, 2007
          • 0 Attachment
            The page layout got distorted:

            page 1:
            ------------
            title0
            some text
            some text
            title1
            some text
            some text
            some text
            ------------
            page 2:
            ------------
            some text
            some text
            some text
            some text
            some text
            some text
            some text
            ------------
            page 3:
            ------------
            some text
            some text
            some text
            some text
            some text
            title2
            some text
            ------------

            *Jeff Sese*

            Jeff Sese wrote:
            >
            > Ken, I haven't tried your code yet but i think if i have a page like this:
            >
            > page 1: page 2: page 3:
            > ------------- ------------- ------------
            > title0 some text some text
            > some text some text some text
            > some text some text some text
            > title1 some text some text
            > some text some text some text
            > some text some text title2
            > some text some text some text
            > ------------- ------------- ------------
            >
            > It will still output the following headers:
            >
            > page 1: title0-title1
            > page 2: title1-title1
            > page 3: title1-title2
            >
            > But what i want is an output of:
            >
            > page 1: title0-title1
            > page 2: title1
            > page 3: title1-title2
            >
            > I tried this and i got the desired output, but i can seem to understand
            > how it happened.
            >
            > <xsl:variable name="first" as="xs:string">
            > <fo:retrieve-marker retrieve-class-name="header"
            > retrieve-boundary="page" retrieve-position="first-including-carryover"/>
            > </xsl:variable>
            > <xsl:variable name="last" as="xs:string">
            > <fo:retrieve-marker retrieve-class-name="header"
            > retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
            > </xsl:variable>
            > <fo:block>
            > <xsl:choose>
            > <xsl:when test="$first eq $last">
            > <fo:retrieve-marker retrieve-class-name="header"
            > retrieve-boundary="page" retrieve-position="first-including-carryover"/>
            > </xsl:when>
            > <xsl:otherwise>
            > <fo:retrieve-marker retrieve-class-name="header"
            > retrieve-boundary="page" retrieve-position="first-including-carryover"/>
            > — <fo:retrieve-marker retrieve-class-name="header"
            > retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
            > </xsl:otherwise>
            > </xsl:choose>
            > </fo:block>
            >
            > I tried outputting the content of the variable using xsl:message but i
            > get no output for their value:
            > <xsl:message>
            > <xsl:copy-of select="$first"/>
            > <xsl:copy-of select="$last"/>
            > </xsl:message>
            >
            > Is my xslt above correct? It does give me the desired output though...
            > --
            > *Jeff Sese*
            >
            > G. Ken Holman wrote:
            > >
            > > At 2007-02-01 15:33 +0800, Jeff Sese wrote:
            > > >I'm have a dictionary style running heads that displays the title
            > of the
            > > >active article in the page and the last article in the page using this
            > > >fo instruction:
            > > >
            > > ><fo:retrieve-marker retrieve-class-name="header"
            > > >retrieve-boundary="page"
            > retrieve-position="first-including-carryover"/>
            > > >— <fo:retrieve-marker retrieve-class-name="header"
            > > >retrieve-boundary="page"
            > retrieve-position="last-starting-within-page"/>
            > > >
            > > >When my page only contains a single article, my header will return the
            > > >title of the article twice separated by the em dash, which is normal by
            > > >following the instructions above. What I want, however, is to output
            > > >only the article title once without the em dash if the page contains
            > > >only one article and when there are two or more articles present in the
            > > >page, i want them displayed as first article em dash second article.
            > >
            > > There is no way to conditionally retrieve content ... you get what
            > > you get by the class name, boundary and position, but you can't
            > > arbitrate what you get when there are multiple markers, nor can you
            > > test the absence of a marker.
            > >
            > > You can get closer to what you want if you retrieve two separate
            > > parts of the header, the bit at the start and then the bit at the
            > > end, with the dash in the bit at the end. But make the end marker
            > > empty for the first entry.
            > >
            > > The problem is on the last page when you get the last title twice ...
            > > but I think you are closer to what you want.
            > >
            > > I hope the example below helps.
            > >
            > > . . . . . . . . . . . Ken
            > >
            > > <?xml version="1.0" encoding="utf-8"?><!--marker6.fo-->
            > > <root xmlns="http://www.w3.org/1999/XSL/Format
            > <http://www.w3.org/1999/XSL/Format>
            > > <http://www.w3.org/1999/XSL/Format <http://www.w3.org/1999/XSL/Format>>"
            > > font-family="Times" font-size="20pt">
            > >
            > > <layout-master-set>
            > > <simple-page-master master-name="frame"
            > > page-height="297mm" page-width="210mm"
            > > margin-top="15mm" margin-bottom="15mm"
            > > margin-left="15mm" margin-right="15mm">
            > > <region-body region-name="frame-body"
            > > margin-bottom=".5cm" margin-top=".5cm"/>
            > > <region-before region-name="frame-before" extent=".5cm"/>
            > > <region-after region-name="frame-after" extent=".5cm"/>
            > > </simple-page-master>
            > > </layout-master-set>
            > >
            > > <page-sequence master-reference="frame"
            > > xmlns="http://www.w3.org/1999/XSL/Format
            > <http://www.w3.org/1999/XSL/Format>
            > > <http://www.w3.org/1999/XSL/Format
            > <http://www.w3.org/1999/XSL/Format>>">
            > > <static-content flow-name="frame-before">
            > > <block>
            > > <retrieve-marker retrieve-class-name="header-start"
            > > retrieve-boundary="page" retrieve-position="first-including-carryover"/>
            > > <retrieve-marker retrieve-class-name="header-end"
            > > retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
            > > </block>
            > > </static-content>
            > >
            > > <flow flow-name="frame-body">
            > > <block space-after="3in" break-after="page">
            > > <marker marker-class-name="header-start">
            > > first
            > > </marker>
            > > <marker marker-class-name="header-end">
            > >
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > second
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — second
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > third
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — third
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > fourth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — fourth
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > fifth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — fifth
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > sixth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — sixth
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > seventh
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — sevent
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > eighth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — eighth
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > ninth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — ninth
            > > </marker>
            > > Test
            > > </block>
            > > <block space-after="3in">
            > > <marker marker-class-name="header-start">
            > > tenth
            > > </marker>
            > > <marker marker-class-name="header-end">
            > > — tenth
            > > </marker>
            > > Test
            > > </block>
            > >
            > > </flow></page-sequence>
            > >
            > > </root>
            > >
            > > --
            > > World-wide corporate, govt. & user group XML, XSL and UBL training
            > > RSS feeds: publicly-available developer resources and training
            > > G. Ken Holman mailto:gkholman@...
            > <mailto:gkholman%40CraneSoftwrights.com>
            > > <mailto:gkholman%40CraneSoftwrights.com>
            > > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
            > <http://www.CraneSoftwrights.com/f/>
            > > <http://www.CraneSoftwrights.com/f/
            > <http://www.CraneSoftwrights.com/f/>>
            > > Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
            > > Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
            > <http://www.CraneSoftwrights.com/f/bc>
            > > <http://www.CraneSoftwrights.com/f/bc
            > <http://www.CraneSoftwrights.com/f/bc>>
            > > Legal business disclaimers: http://www.CraneSoftwrights.com/legal
            > <http://www.CraneSoftwrights.com/legal>
            > > <http://www.CraneSoftwrights.com/legal
            > <http://www.CraneSoftwrights.com/legal>>
            > >
            > >
            > > ----------------------------------------------------------
            > >
            > > No virus found in this incoming message.
            > > Checked by AVG Free Edition.
            > > Version: 7.5.432 / Virus Database: 268.17.18/662 - Release Date:
            > 1/31/2007 3:16 PM
            > >
            >
            >
            > ------------------------------------------------------------------------
            >
            > No virus found in this incoming message.
            > Checked by AVG Free Edition.
            > Version: 7.5.432 / Virus Database: 268.17.18/662 - Release Date: 1/31/2007 3:16 PM
            >
          • G. Ken Holman
            ... Well, I don t have the time to make *more* test data for your requirements, so if you haven t tried the code I took the time to suggest then I won t bother
            Message 5 of 7 , Feb 1, 2007
            • 0 Attachment
              At 2007-02-01 17:02 +0800, Jeff Sese wrote:
              >Ken, I haven't tried your code yet but i think if i have a page like this:

              Well, I don't have the time to make *more* test data for your
              requirements, so if you haven't tried the code I took the time to
              suggest then I won't bother trying it either.

              >I tried this and i got the desired output,

              Then why did you post in your first message that you had a problem?

              >but i can seem to understand how it happened.

              I do not see why you have added complexity in your code.

              ><xsl:variable name="first" as="xs:string">
              > <fo:retrieve-marker retrieve-class-name="header"
              >retrieve-boundary="page" retrieve-position="first-including-carryover"/>
              ></xsl:variable>
              ><xsl:variable name="last" as="xs:string">
              > <fo:retrieve-marker retrieve-class-name="header"
              >retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
              ></xsl:variable>
              ><fo:block>
              > <xsl:choose>
              > <xsl:when test="$first eq $last">

              You have bound two specified sequence constructors to variables as
              strings and then compared them. Each string is empty. They will
              always return the same result and will be considered equal. How did
              you think they were going to vary?

              >I tried outputting the content of the variable using xsl:message but i
              >get no output for their value:
              ><xsl:message>
              > <xsl:copy-of select="$first"/>
              > <xsl:copy-of select="$last"/>
              ></xsl:message>

              Both variables are cast as strings and they are both empty, hence you
              get their empty value.

              >Is my xslt above correct?

              "correct" for what purpose? It does seem nonsensical to cast empty
              string values and then compare them.

              >It does give me the desired output though...

              Well, I cannot see how, since your comparison of two empty strings
              will always produce a "true" and you won't see the dash. But since
              you are seeing the dash, then I don't understand where you got your
              snippet, or some other information is missing.

              Remember that the XSL-FO process is arms-length from the XSLT
              process. There is no feedback loop. There is *nothing* you can test
              in your XSLT that is the result of any condition of formatting in your XSL-FO.

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

              --
              World-wide corporate, govt. & user group XML, XSL and UBL training
              RSS feeds: publicly-available developer resources and training
              G. Ken Holman mailto:gkholman@...
              Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
              Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
              Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
              Legal business disclaimers: http://www.CraneSoftwrights.com/legal
            • J.Pietschmann
              ... Probably because of the common misunderstanding that the FO statements are evaluated , i.e. that markers are actually retrieved during the XSL
              Message 6 of 7 , Feb 1, 2007
              • 0 Attachment
                G. Ken Holman wrote:
                >> <xsl:variable name="first" as="xs:string">
                >> <fo:retrieve-marker retrieve-class-name="header"
                >> retrieve-boundary="page" retrieve-position="first-including-carryover"/>
                >> </xsl:variable>
                ...
                > You have bound two specified sequence constructors to variables as
                > strings and then compared them. Each string is empty. They will
                > always return the same result and will be considered equal. How did
                > you think they were going to vary?

                Probably because of the common misunderstanding that the FO "statements"
                are "evaluated", i.e. that markers are actually retrieved during the XSL
                transformation.

                J.Pietschmann
              • Jeff Sese
                It s not that i don t want to try your sample code... (it was near end of office hours so i was planning to try it this morning) I just want confirmation or at
                Message 7 of 7 , Feb 1, 2007
                • 0 Attachment
                  It's not that i don't want to try your sample code... (it was near end
                  of office hours so i was planning to try it this morning) I just want
                  confirmation or at least some insights that my assumptions of the sample
                  code, given a data somewhat the same as the one presented below, were
                  correct or wrong.

                  After trying the code this morning, i did confirm that indeed that my
                  assumptions were correct. That if i have a page that would contain one
                  article, then the resulting header using:
                  <block>
                  <retrieve-marker retrieve-class-name="header-start"
                  retrieve-boundary="page" retrieve-position="first-including-carryover"/>
                  <retrieve-marker retrieve-class-name="header-end"
                  retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
                  </block>
                  would be: title1 - title1; which is not my desired output.

                  The code i posted below was written after i posted my first post, and I
                  thought that I had the correct output but after looking at it this
                  morning it was not (proof that I really needed to go home at that time
                  :)). I just tried that code thinking that the fo:retrieve-marker would
                  return a value in xslt... which i was wrong.

                  Is there any work-around to this problem? Btw i'm using an evaluation
                  software of Antenna XSL-Formatter.

                  Thanks for the help,
                  *Jeff Sese*

                  G. Ken Holman wrote:
                  >
                  > At 2007-02-01 17:02 +0800, Jeff Sese wrote:
                  > >Ken, I haven't tried your code yet but i think if i have a page like
                  > this:
                  >
                  > Well, I don't have the time to make *more* test data for your
                  > requirements, so if you haven't tried the code I took the time to
                  > suggest then I won't bother trying it either.
                  >
                  > >I tried this and i got the desired output,
                  >
                  > Then why did you post in your first message that you had a problem?
                  >
                  > >but i can seem to understand how it happened.
                  >
                  > I do not see why you have added complexity in your code.
                  >
                  > ><xsl:variable name="first" as="xs:string">
                  > > <fo:retrieve-marker retrieve-class-name="header"
                  > >retrieve-boundary="page" retrieve-position="first-including-carryover"/>
                  > ></xsl:variable>
                  > ><xsl:variable name="last" as="xs:string">
                  > > <fo:retrieve-marker retrieve-class-name="header"
                  > >retrieve-boundary="page" retrieve-position="last-starting-within-page"/>
                  > ></xsl:variable>
                  > ><fo:block>
                  > > <xsl:choose>
                  > > <xsl:when test="$first eq $last">
                  >
                  > You have bound two specified sequence constructors to variables as
                  > strings and then compared them. Each string is empty. They will
                  > always return the same result and will be considered equal. How did
                  > you think they were going to vary?
                  >
                  > >I tried outputting the content of the variable using xsl:message but i
                  > >get no output for their value:
                  > ><xsl:message>
                  > > <xsl:copy-of select="$first"/>
                  > > <xsl:copy-of select="$last"/>
                  > ></xsl:message>
                  >
                  > Both variables are cast as strings and they are both empty, hence you
                  > get their empty value.
                  >
                  > >Is my xslt above correct?
                  >
                  > "correct" for what purpose? It does seem nonsensical to cast empty
                  > string values and then compare them.
                  >
                  > >It does give me the desired output though...
                  >
                  > Well, I cannot see how, since your comparison of two empty strings
                  > will always produce a "true" and you won't see the dash. But since
                  > you are seeing the dash, then I don't understand where you got your
                  > snippet, or some other information is missing.
                  >
                  > Remember that the XSL-FO process is arms-length from the XSLT
                  > process. There is no feedback loop. There is *nothing* you can test
                  > in your XSLT that is the result of any condition of formatting in your
                  > XSL-FO.
                  >
                  > . . . . . . . . . . . . . Ken
                  >
                  > --
                  > World-wide corporate, govt. & user group XML, XSL and UBL training
                  > RSS feeds: publicly-available developer resources and training
                  > G. Ken Holman mailto:gkholman@...
                  > <mailto:gkholman%40CraneSoftwrights.com>
                  > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/f/
                  > <http://www.CraneSoftwrights.com/f/>
                  > Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
                  > Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/f/bc
                  > <http://www.CraneSoftwrights.com/f/bc>
                  > Legal business disclaimers: http://www.CraneSoftwrights.com/legal
                  > <http://www.CraneSoftwrights.com/legal>
                  >
                  >
                  > ------------------------------------------------------------------------
                  >
                  > No virus found in this incoming message.
                  > Checked by AVG Free Edition.
                  > Version: 7.5.432 / Virus Database: 268.17.18/662 - Release Date: 1/31/2007 3:16 PM
                  >
                Your message has been successfully submitted and would be delivered to recipients shortly.