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

Continuous Document Flow

Subject: Continuous Document Flow
From: Horace Burke <xmlmarkup@xxxxxxxxx>
Date: Tue, 7 Jul 2009 08:24:28 -0700 (PDT)
 Continuous Document Flow
Hi All,

I am creating XSL-FO stylesheet for a multi-language documents and would like
the languages to flow one after the other separate by a rule (about 80% of
page width). The issue that I am having is that the languages are starting on
a new page. The starting point in the XML for each language is by using a
"<lang >" tag. How can I get the languages to flow one after the other and not
starting on a new page? I provide snippets of my XML and stylesheet.

Please let me know if additional information is needed.

Thanks in advance for your help. I really appreciate it.

Regards,
Horace

====================XML=================

<Product.Insert column="1col" dbSvr="mfgdev" docID="248210" docrev="KA"
pgHeight="11in" pgWidth="8.5in" status="preview">

   <docinfo>
      <docDate>March 2007</docDate>
      ....
   </docinfo>
   <toc display="no"/>
   <lang langID="EN" language=" English" fontFam=" Arial">
     <fixedterms>
       <term id="caution" text="CAUTION"/>
       <term id="notice" text="NOTICE"/>
       <term id="warning" text="WARNING"/>
     </fixedterms>
     <productInfo>
       <systemname>SYNCHRON<superscript>&#174;</superscript>
Systems</systemname>
       <productname>CREATINE KINASE-MB ISOENZYME (CKMB)</productname>
       <kitRef><Ref>445375</Ref></kitRef>
       <forUse>For <emphasis role="bolditalics">In Vitro</emphasis> Diagnostic
Use</forUse>
     </productInfo>
     <body>
       <level1><title>Contents</title>
         <para><emphasis role="bold">Each kit contains the following
items:</emphasis></para>
         ......
       </level1>
     </body>
   </lang>

   <lang langID="FR" language=" Frangais" fontFam=" Arial">
     <fixedterms>
       <term id="caution" text="ATTENTION"/>
       <term id="notice" text="REMARQUE"/>
       <term id="warning" text="AVERTISSEMENT"/>
     </fixedterms>
     <productInfo>
       <systemname>SYSTEMES
SYNCHRON<superscript>&#174;</superscript></systemname>
       <productname>ISOENZYME CREATINE KINASE - MB (CKMB)</productname>
       <kitRef><Ref>445375</Ref></kitRef>
       <forUse>Riservi aux dosages biologiques in vitro</forUse>
     </productInfo>
     <body>
        <level1><title>CONTENU</title>
          <para><emphasis role="bold">Chaque Coffret contient les produits
suivants:</emphasis></para>
          .....
       </level1>
</body>
   </lang>

   <lang langID="DE" language="Deutsch" fontFam="Arial">
      <fixedterms>
        <term id="caution" text="WARNHINWEIS"/>
        <term id="warning" text="WARNUNG"/>
        <term id="notice" text="HINWEIS"/>
     </fixedterms>
     <productInfo>
       <systemname>SYNCHRON<superscript>&#174;</superscript>
SYSTEME</systemname>
       <productname>KREATINKINASE - MB ISOENZYM (CKMB)</productname>
       <kitRef><Ref>445375</Ref></kitRef>
       <forUse>In-Vitro Diagnostikum</forUse>
     </productInfo>
     <body>
        <level1><title>INHALT</title>
          <para><emphasis role="bold">Jeder Reagenzienkit enthdlt die
folgenden Bestandteile:</emphasis></para>
          .....
       </level1>
</body>
   </lang>
</Product.Insert>

====================XSL-FO=================
<xsl:template match="/">
  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
<!--+===Arbortext "float-class" extension declaration; current use is for
"Continued" Section titles===+-->
<atixslfoext:float-class float-class-name="continueSecTitle"
float-type="repeat-at-page-break" space-between="8pt"/>
<xsl:choose>
<!--+===Conditional test for attribute 'status' with values 'draft'  and
'preview' ===+-->
 <xsl:when test="Product.Insert[@status='draft'] |
Product.Insert[@status='preview']">

<!--++ Establish the Language ("lang") pages ++-->
<fo:simple-page-master master-name="Insrt-body-page"
page-height="{$doc_height}" page-width="{$doc_width}" margin-top="0.13in"
margin-bottom="0.2in" margin-left="0.45in" margin-right="0.45in">
     <!--++ Establish the output area(s) language pages ++-->
     <xsl:choose>
	 <!--++One column 8.5x11 page Inserts++ -->
			 <xsl:when test="//Product.Insert/@column='1col' and
//Product.Insert/@pgWidth='8.5in'">
			     <fo:region-body region-name="Insrt-pgbody" margin-top="0.12in"
margin-bottom="0.5in" background-image="watermark.eps"/>
			     <fo:region-before region-name="bcilogo_prodName" extent="13mm" />
			     <fo:region-after region-name="Col_CpyRght-Footer" extent=".5in"/>
			     <!--++Page count for one column "1col"  8.5x11 Inserts++-->
			     <fo:region-end region-name="lang-pg-ct" extent="0.75in"/>
			 </xsl:when>
			 <xsl:otherwise>
			     <!--++Body pages for all other Inserts++ -->
			     <fo:region-body region-name="Insrt-pgbody" margin-top="0.1in"
margin-bottom="0.2in" background-image="watermark.eps">

     <!--+===Continued Section Titles on cover page ===+-->
     <atixslfoext:float-region-before>
		     <atixslfoext:single-float-class-reference
float-class-reference="continueSecTitle"/>
		 </atixslfoext:float-region-before>
			     </fo:region-body>
			     <fo:region-after region-name="lang-pg-ct" extent="3mm" />
			     <fo:region-before region-name="dbServer" extent="3mm" />
			 </xsl:otherwise>
		 </xsl:choose>
</fo:simple-page-master>

 <!--++ Display entire data in the inserts ++-->
   <xsl:apply-templates/>
 <!--++ Display data on Document Rear (last page) ++-->
 <xsl:apply-templates select="Product.Insert/docinfo" mode="doc-Rear"/>
 </fo:root>
 </xsl:template>


<!--======+Language "lang" Template+======-->
<xsl:template match="lang">
   <xsl:variable name="font_Fam">
      <xsl:choose>
        <xsl:when test="@fontFam">
          <xsl:value-of select="@fontFam"/>
        </xsl:when>
      </xsl:choose>
   </xsl:variable>
<!--
<xsl:for-each select="body">-->
   <fo:page-sequence master-reference="Insrt-body-page">

     <xsl:choose>
          <xsl:when test="//toc[@display='yes']">
             <xsl:if test="not(position() = 1) and @langID='EN'">
                <xsl:attribute name="initial-page-number">1</xsl:attribute>
             </xsl:if>
         </xsl:when>
         <xsl:otherwise><!--This FO is not necessary--></xsl:otherwise>
   </xsl:choose>

   <fo:flow flow-name="Insrt-pgbody" font-family="{$font_Fam}">
       <xsl:apply-templates mode="OneCol"
select="preceding-sibling::productInfo"/>

       <fo:block keep-with-previous="always">
         <xsl:apply-templates/>
       </fo:block>
       <!--+Bottom border line ~~ separates each language 8.5x11 single column
Inserts+-->
       <fo:block space-before="2.25mm" text-align="center">
          <fo:leader leader-pattern="rule" rule-thickness="4pt"
leader-length="80%"/>
       </fo:block>
   </fo:flow>
</fo:page-sequence><!--
</xsl:for-each>-->
</xsl:template>

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.