XSL Page Variable

2010-08-05 Thread Eric Douglas
If the shell of my XSL looks like this: 
fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format
http://www.google.com/url?sa=Dq=http://www.w3.org/1999/XSL/Formatusg=
AFQjCNHZhPMfx2p6D5n2w5qLURB5k932Cw  
fo:layout-master-set 
fo:simple-page-master 
xsl:attribute name=master-nameSTANDARD_PAGE/xsl:attribute 
xsl:attribute name=margin-bottomxsl:value-of 
select=PAGE_DATA/MARGIN_BOTTOM//xsl:attribute 
fo:region-body 
/fo:region-body 
/fo:simple-page-master 
/fo:layout-master-set 
fo:page-sequence 
xsl:attribute name=master-referenceSTANDARD_PAGE/xsl:attribute 
fo:flow 
xsl:attribute name=flow-namexsl-region-body/xsl:attribute 
xsl:for-each select=PAGE_DATA 
fo:block 
xsl:attribute name=break-beforepage/xsl:attribute 
xsl:for-each select=* 
... 
/xsl:for-each 
/fo:block 
/xsl:for-each 
/fo:flow 
/fo:page-sequence 
/fo:root 
So I have all my data grouped by what to print on each page, under a 
PAGE_DATA tag in the XML. Now I'm trying to put a tag under the 
PAGE_DATA tag to specify different attributes for each page, such as 
the margin-bottom mentioned here. As it is written here, it is using 
the value of the MARGIN_BOTTOM tag for the margin-bottom attribute, 
but it's only taking the last tag in the XML and applying it to all 
pages. How do I change the attributes for each page? 
Is there a place where I can set a variable from the XML tag value 
which can be processed after the for-each statement and before the 
page attributes? 


Re: XSL Page Variable

2010-08-05 Thread Pascal Sancho
Hi Eric,

this list is about FOP development, not XSLT or XSL-FO questions.
That said:
 - all pages features are nested in the fo:root/fo:layout-master-set
element,
 - while content is nested in fo:root/fo:page-sequence.

Therefore you should process your XML in a 2 passes XSLT:
 - 1 template for page masters,
 - 1 template for content.

Pascal


Le 05/08/2010 14:26, Eric Douglas a écrit :

 If the shell of my XSL looks like this:
 fo:root xmlns:fo=_http://www.w3.org/1999/XSL/Format_
 http://www.google.com/url?sa=Dq=http://www.w3.org/1999/XSL/Formatusg=AFQjCNHZhPMfx2p6D5n2w5qLURB5k932Cw
 fo:layout-master-set
 fo:simple-page-master
 xsl:attribute name=master-nameSTANDARD_PAGE/xsl:attribute
 xsl:attribute name=margin-bottomxsl:value-of
 select=PAGE_DATA/MARGIN_BOTTOM//xsl:attribute
 fo:region-body
 /fo:region-body
 /fo:simple-page-master
 /fo:layout-master-set
 fo:page-sequence
 xsl:attribute name=master-referenceSTANDARD_PAGE/xsl:attribute
 fo:flow
 xsl:attribute name=flow-namexsl-region-body/xsl:attribute
 xsl:for-each select=PAGE_DATA
 fo:block
 xsl:attribute name=break-beforepage/xsl:attribute
 xsl:for-each select=*
 ...
 /xsl:for-each
 /fo:block
 /xsl:for-each
 /fo:flow
 /fo:page-sequence
 /fo:root
 So I have all my data grouped by what to print on each page, under a
 PAGE_DATA tag in the XML. Now I'm trying to put a tag under the
 PAGE_DATA tag to specify different attributes for each page, such as
 the margin-bottom mentioned here. As it is written here, it is using
 the value of the MARGIN_BOTTOM tag for the margin-bottom attribute,
 but it's only taking the last tag in the XML and applying it to all
 pages. How do I change the attributes for each page?
 Is there a place where I can set a variable from the XML tag value
 which can be processed after the for-each statement and before the
 page attributes?




RE: XSL Page Variable

2010-08-05 Thread Eric Douglas
Hi Pascal,
 
If I'm understanding you correctly I think this could work.  I realize it's for 
FOP development and it may not be an FOP issue, but it's not a pure XSLT issue. 
 The XSLT handles HTML style formatting.  The FOP is the paging formatter.  
This is a page issue.  As you say try 2 passes I'm thinking I just need to 
separate the tags, that I'm trying to break on PAGE_DATA which triggers the new 
page call to the simple-page-master, then I'm trying to find the page layout 
data under the PAGE_DATA.  I should be able to get the page layout data before 
I find the PAGE_DATA tag to start the new pages..



From: Pascal Sancho [mailto:pascal.san...@takoma.fr] 
Sent: Thursday, August 05, 2010 8:52 AM
To: fop-dev@xmlgraphics.apache.org
Subject: Re: XSL Page Variable


Hi Eric,

this list is about FOP development, not XSLT or XSL-FO questions.
That said:
 - all pages features are nested in the fo:root/fo:layout-master-set element,
 - while content is nested in fo:root/fo:page-sequence.

Therefore you should process your XML in a 2 passes XSLT:
 - 1 template for page masters,
 - 1 template for content.

Pascal


Le 05/08/2010 14:26, Eric Douglas a écrit : 

If the shell of my XSL looks like this: 
fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format 
http://www.google.com/url?sa=Dq=http://www.w3.org/1999/XSL/Formatusg=AFQjCNHZhPMfx2p6D5n2w5qLURB5k932Cw
 
fo:layout-master-set
fo:simple-page-master
xsl:attribute name=master-nameSTANDARD_PAGE/xsl:attribute
xsl:attribute name=margin-bottomxsl:value-of
select=PAGE_DATA/MARGIN_BOTTOM//xsl:attribute
fo:region-body
/fo:region-body
/fo:simple-page-master
/fo:layout-master-set
fo:page-sequence
xsl:attribute name=master-referenceSTANDARD_PAGE/xsl:attribute
fo:flow
xsl:attribute name=flow-namexsl-region-body/xsl:attribute
xsl:for-each select=PAGE_DATA
fo:block
xsl:attribute name=break-beforepage/xsl:attribute
xsl:for-each select=*
...
/xsl:for-each
/fo:block
/xsl:for-each
/fo:flow
/fo:page-sequence
/fo:root 
So I have all my data grouped by what to print on each page, under a
PAGE_DATA tag in the XML. Now I'm trying to put a tag under the
PAGE_DATA tag to specify different attributes for each page, such as
the margin-bottom mentioned here. As it is written here, it is using
the value of the MARGIN_BOTTOM tag for the margin-bottom attribute,
but it's only taking the last tag in the XML and applying it to all
pages. How do I change the attributes for each page?
Is there a place where I can set a variable from the XML tag value
which can be processed after the for-each statement and before the
page attributes? 




Re: XSL Page Variable

2010-08-05 Thread Christopher R. Maden
Eric Douglas wrote:
 If I'm understanding you correctly I think this could work.  I
 realize it's for FOP development and it may not be an FOP issue, but
 it's not a pure XSLT issue.  The XSLT handles HTML style formatting.
 The FOP is the paging formatter.  This is a page issue.  As you say
 try 2 passes I'm thinking I just need to separate the tags, that
 I'm trying to break on PAGE_DATA which triggers the new page call to
 the simple-page-master, then I'm trying to find the page layout data
 under the PAGE_DATA.  I should be able to get the page layout data
 before I find the PAGE_DATA tag to start the new pages..

If you know what your FO markup should look like, and you don’t know how
to make XSLT do that, ask on the XSL list.[1]

If you don’t know what FO markup to make, you can ask on fop-users (not
fop-dev), but please focus on the FO markup itself, and leave the XSLT
out of it.

It looks here like you want to make multiple page-masters and multiple
page-sequences, since you want each page sequcne to have different geometry.

Please follow-up to either fop-users or xsl-list, but not fop-dev.

~Chris

[1] URL: http://www.mulberrytech.com/xsl/xsl-list/ 
-- 
Chris Maden, text nerd  URL: http://crism.maden.org/ 
“I like being free, and that makes me an idiot, I suppose.”
  — Stan Rogers, “The Idiot”
GnuPG Fingerprint: C6E4 E2A9 C9F8 71AC 9724 CAA3 19F8 6677 0077 C319