Re: [xsl] XSL-FO beginner's question

Subject: Re: [xsl] XSL-FO beginner's question
From: mark bordelon <markcbordelon@xxxxxxxxx>
Date: Mon, 28 Sep 2009 17:02:08 -0700 (PDT)
That seems to have done the trick.
Will let you know how many are attending your class for Nov 9-11.
Thanks, Ken.


--- On Mon, 9/28/09, G. Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx> wrote:

> From: G. Ken Holman <gkholman@xxxxxxxxxxxxxxxxxxxx>
> Subject: Re: [xsl] XSL-FO beginner's question
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Date: Monday, September 28, 2009, 3:58 PM
> At 2009-09-28 14:37 -0700, mark
> bordelon wrote:
> > Ladies and Gentlemen of the xsl-list,
>
> :{)}
>
> > Seoncdly, thanks for heads of on your training
> session. My boss and I discussed this a week ago as
> something helpful for me. In the meantime, I will have to
> make due with my failing around....
>
> Too bad you missed our June west-coast delivery in Santa
> Ana.  I'm not sure when I'll get to the west coast
> again, but anyone on the list who thinks they can collect
> enough students for a class in their part of the world can
> contact us to consider running either a private or a public
> class.
>
> For example, those on the list in Europe can let me know on
> our interest page about which of our courses you would like
> us to deliver in conjunction with next March's XML Prague
http://www.XMLPrague.cz conference:
>
>   http://www.CraneSoftwrights.com/forms/interest.php
>
> > Thirdly, some more details on my problem, since I am
> still not getting any results.
> >
> > 0) DRIVER STYLESHEET which calls A and should also
> call B has this form:
> > <xsl:stylesheet>
> >
> > <!--stylesheet includes-->
> > <xsl:include href="./A.xsl"/> <!-- after the
> contents in print/web permission -->
> > <xsl:include href="./B.xsl"/> <!-- needs to
> be positioned on its own page at the very end -->
>
> Ah .... perhaps the confusion is on the XSLT side and not
> the XSL-FO side ... including a stylesheet is not the same
> as "calling" a stylesheet.  In fact, two stylesheets
> that are both included compete with each other for the nodes
> that are being pushed at the stylesheet.
>
> >       <!-- flow for first
> page-->
> > ...
> >          <fo:flow
> flow-name="xsl-region-body">
> >         
>    <fo:block font-size="8pt"
> text-align="center">
> >               
> <xsl:apply-templates select="//UOIS" mode="cover"/>
> > ...
> >          <fo:flow
> flow-name="xsl-region-body">
> >         
>    <xsl:apply-templates select="//UOIS"
> mode="captions"/>
>
> Fine so far ... using two modes for the same node.
>
> > A) The correctly working pages 2 - ?? has this form:
> >
> > <xsl:stylesheet>
> > <xsl:template match="UOIS[@MODEL_ID =
> $IMAGE_MODEL_ID or @MODEL_ID = $TMS_IMAGE_MODEL_ID]"
> mode="captions">
> > <fo:table> </fp:table>
> > </xsl:template>
> > </xsl:stylesheet>
> >
> > B) the new stylesheet B.xsl containing only static
> content to be placed at the very end now has this form,
> following my understanding of Ken's recommendations:
> >
> > <xsl:stylesheet>
> > <fo:page-sequence master-reference="last"
> force-page-count="no-force">
> >     <fo:static-content
> flow-name="xsl-region-start">
> >     
>    <fo:table>
> >     
>    </fo:table>
> >     </fo:static-content>
> >     <fo:static-content
> flow-name="xsl-region-body">
> >     
>    <fo:table>
> >     
>    </fo:table>
> >     </fo:static-content>
> > </fo:page-sequence>
> > </xsl:stylesheet>
> >
> >
> > Am I on track?
>
> Not quite, because of the confusion regarding
> inclusion.  But I can work with what you've done so
> far.
>
> From an XSLT perspective, your B.xsl is not properly
> formed.  All included fragments are written as a
> complete stylesheet.  But the changes you need are (I
> think) minimal to get going.
>
> So in B.xsl wrap your page sequence in a *named* template
> (and I'm not sure if you merely elided the <fo:flow>
> but you'll need that as well, even if it is simply
> <fo:block/>):
>
> <xsl:stylesheet ...>
>   <xsl:template name="do-the-last-bit">
>     <fo:page-sequence master-reference="last"
> force-page-count="no-force">
>       <fo:static-content
> flow-name="xsl-region-start">
>          ...
>       <fo:flow>
>          ...
>     </fo:page-sequence>
>   </xsl:template>
> </xsl:stylesheet>
>
> Then, in your Driver stylesheet, after your second page
> sequence, add a call to the named template:
>
>             ...
>            
> <xsl:apply-templates select="//UOIS"
> mode="captions"/>
>             <fo:block
> id="last-page"/>
>         </fo:flow>
>       </fo:page-sequence>
>       <xsl:call-template
> name="do-the-last-bit"/>
>     </fo:root>
>   </xsl:template>
>
> Then you have modularized the last page of content into its
> own stylesheet, and you are engaging that stylesheet content
> by way of calling its named template.
>
> The way to know if you are going in the right direction is
> to inspect the generated XSL-FO after your
> transformation.  You should see three sibling
> page-sequence elements.
>
> I hope this helps, Mark.
>
> . . . . . . . . . . . . . Ken
>
> --
> Upcoming hands-on code list, UBL, XSLT, XQuery and XSL-FO
> classes.
> Interested in other classes?  http://www.CraneSoftwrights.com/s/i/
> Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
> Training tools: Comprehensive interactive XSLT/XPath
> 1.0/2.0 video
> Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
> Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
> G. Ken Holman           
>      mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
> Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
> Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread