[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: how to trigger a new page sequence, depending on

Subject: Re: how to trigger a new page sequence, depending on specific input conditions
From: team wise <dfanster@xxxxxxxxx>
Date: Tue, 4 Oct 2011 14:14:22 +0800
Re:  how to trigger a new page sequence
Hi Tony,

With your amended code, I have injected it to the existing XSL, which
fails to output desirable PDF once again when working through the
Input XML.

I think one vital thing I did not made it clear enough in the first
place here is :

Instead of  the input you depicted below,  the correct ' input' is in
fact something like this:

---------------------------------------
<Map>
 <topicref href="GUID-1234">                 <concept id="guid-5678"
outputclass="pagebreak">
  Phone basics                                 <title>Explore and get
suppport</title>
 </topicref>                                   <conbody/>
 <topicref href="GUID-5678">       ------->  <concept>
 Explore and get support
 </topicref>
</Map>
---------------------------------------

On the same note, I did notice , when Antenna House compiled FO to the
resulting PSMI , it complained about the missing Page Master name. I
overcome it by ' refacoring the relevant 'Master-Reference'.
In short, when i debugged the specific piece of code  by
<xsl:message/>, it appears that that specific line of code does not
function at all. That  is why I explicitly specify the ' input' above.

Please could you advise?

Thank you,
2011/10/3 Tony Graham <tgraham@xxxxxxxxxx>:
> On Mon, October 3, 2011 10:59 am, team wise wrote:
>> I was grateful to your patience in guiding me through the problem
>> solving scenario.
>
> There's any number of people on this list who would have been able to
> help, and often do.  It just happened that I replied first.
>
>> When I applied the original line of code you indicated below,
>> <xsl:apply-templates  select=".
>>
|preceding-sibling::*[count(preceding-sibling::concept[title/@outputclass='pa
gebreak']
>> = $position - 1" />
>> the command line threw errors when running against Saxon 6.5.5 as XSLT
>> processor. Obviously, it missed a pair of both square bracket and
>> bracket.  I have just made amendments to it and the resulting code is
>
> It was untested, sorry about that.
>
> It seems that your correction closed the count() in the wrong place.
>
> For this input:
>
> ---------------------------------------
> <UG_Booklet_Print>
> <concept>
>  <title xtrf="GUID-1234">
>  Explore and get support
>  </title>
>  <conbody/>
> </concept>
> <concept  outputclass="pagebreak">
>  <title xtrf="GUID-1234">
>  Explore and get support
>  </title>
>  <conbody/>
> </concept>
> <concept>
>  <title xtrf="GUID-1234">
>  Explore and get support
>  </title>
>  <conbody/>
> </concept>
> </UG_Booklet_Print>
> ---------------------------------------
>
> this stylesheet:
> ---------------------------------------
> <xsl:stylesheet
>    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>    xmlns:fo="http://www.w3.org/1999/XSL/Format"
>    xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
>    version="1.0">
>
> <xsl:param name="outputformat" select="'UG_Booklet_Print'" />
> <xsl:param name="background_colour" select="'dodgerblue'" />
>
> <xsl:template match="UG_Booklet_Print">
>  <xsl:if test="$outputformat = 'UG_Booklet_Print'">
>    <xsl:for-each select="*[contains(@outputclass, 'pagebreak')]">
>      <xsl:variable name="position" select="position()" />
>      <fo:page-sequence initial-page-number="auto" format="1">
>        <xsl:choose>
>          <xsl:when test="position() = last()">
>            <xsl:attribute name="axf:background-color"><xsl:value-of
>            select="$background_colour"/></xsl:attribute>
>            <xsl:attribute
>                name="color">rgb-icc(#CMYK,0%,0%,0%,0%)</xsl:attribute>
>          </xsl:when>
>          <xsl:otherwise>
>            <xsl:attribute
>                name="color">rgb-icc(#CMYK,0%,0%,0%,80%)</xsl:attribute>
>          </xsl:otherwise>
>        </xsl:choose>
>        <xsl:apply-templates
>            select=". |
>                  
 preceding-sibling::*[count(preceding-sibling::*[contains(@outputclass,
>                                     'pagebreak')]) = $position - 1]" />
>      </fo:page-sequence>
>    </xsl:for-each>
>    <xsl:if
>        test="*[contains(@outputclass,
'pagebreak')][last()]/following-sibling::*">
>      <fo:page-sequence initial-page-number="auto" format="1">
>        <xsl:choose>
>          <xsl:when test="position() = last()">
>            <xsl:attribute name="axf:background-color"><xsl:value-of
>            select="$background_colour"/></xsl:attribute>
>            <xsl:attribute
>                name="color">rgb-icc(#CMYK,0%,0%,0%,0%)</xsl:attribute>
>          </xsl:when>
>          <xsl:otherwise>
>            <xsl:attribute
>                name="color">rgb-icc(#CMYK,0%,0%,0%,80%)</xsl:attribute>
>          </xsl:otherwise>
>        </xsl:choose>
>        <xsl:apply-templates
>            select="*[contains(@outputclass,
> 'pagebreak')][last()]/following-sibling::*" />
>      </fo:page-sequence>
>    </xsl:if>
>  </xsl:if>
> </xsl:template>
>
> </xsl:stylesheet>
> ---------------------------------------
>
> gives this output with xsltproc:
>
> ---------------------------------------
> <fo:page-sequence xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
> initial-page-number="auto" format="1" axf:background-color="dodgerblue"
> color="rgb-icc(#CMYK,0%,0%,0%,0%)">
>
>  Explore and get support
>
>
>
>
>  Explore and get support
>
>
> </fo:page-sequence><fo:page-sequence
> xmlns:fo="http://www.w3.org/1999/XSL/Format"
> xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
> initial-page-number="auto" format="1" axf:background-color="dodgerblue"
> color="rgb-icc(#CMYK,0%,0%,0%,0%)">
>
>  Explore and get support
>
>
> </fo:page-sequence>
> ---------------------------------------
>
> Regards,
>
>
> Tony Graham                                   tgraham@xxxxxxxxxx
> Consultant                                 http://www.mentea.net
> Mentea       13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland
>  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --  --
>    XML, XSL FO and XSLT consulting, training and programming
>
>



--
Keep an Exacting Eye for Detail

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.