XSL Page Variable
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
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
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
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