- From: Aish <aiswarya@laserwords.com>
- Date: Wed, 3 Feb 2010 02:24:59 -0800 (PST)
- To: www-xsl-fo@w3.org
Hi Anandh, I did it using FOP 0.95. In your xsl code, number of <fo:table-column column-width="1in"/> doesn't match(less than) the columns given under for-each of quarters and hence the problem. You need to check empty quarters. Also, attribute "increment-by" is removed as it doesn't support. The code will be as below. <xsl:template match="root/roadmap"> <fo:block space-before='2mm'> <fo:block font-size="10pt" color="black" font-weight="bold" space-before="0.54in" space-after="2pt" > ROADMAP INFORMATION </fo:block> <fo:block space-before='2mm'> </fo:block> <fo:table border-collapse="collapse" font-size="9pt"> <fo:table-column column-width="1in"/> <fo:table-column column-width="1in"/> <fo:table-column column-width="1in"/> <fo:table-column column-width="1in"/> <fo:table-column column-width="1in"/> <fo:table-header color="black" background-color="rgb(39,64,139)" font-weight="bold"> <fo:table-row> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"> <fo:block>YEAR</fo:block> </fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"> <fo:block>Q1</fo:block> </fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"> <fo:block>Q2</fo:block> </fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"> <fo:block>Q3</fo:block> </fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"> <fo:block>Q4</fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <fo:table-body> <xsl:for-each select="years"> <fo:table-row> <fo:table-cell padding="2pt" border="1pt solid black" background-color="rgb(255,255,255)" text-align="center"> <fo:block><xsl:value-of select="year"/></fo:block> </fo:table-cell> <xsl:variable name="MyQuarter"><xsl:value-of select="quarters[1]/quarter"/></xsl:variable> <xsl:choose> <xsl:when test="$MyQuarter='Q1'"> </xsl:when> <xsl:when test="$MyQuarter='Q2'"> <fo:table-cell padding="2pt" border="1pt solid black"><fo:block/></fo:table-cell> </xsl:when> <xsl:when test="$MyQuarter='Q3'"> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> </xsl:when> <xsl:when test="$MyQuarter='Q4'"> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> </xsl:when> <xsl:when test="$MyQuarter='Q5'"> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> <fo:table-cell padding="2pt" border="1pt solid black" text-align="center"><fo:block/></fo:table-cell> </xsl:when> </xsl:choose> <xsl:for-each select="quarters"> <fo:table-cell padding="2pt" border="1pt solid black" background-color="rgb(255,255,255)" text-align="center"> <fo:block><xsl:apply-templates select="requirements"/></fo:block> </fo:table-cell> </xsl:for-each> </fo:table-row> </xsl:for-each> </fo:table-body> </fo:table> </fo:block> </xsl:template> <xsl:template match="requirements"> <xsl:apply-templates/> </xsl:template> <xsl:template match="requirement"> <xsl:apply-templates/> </xsl:template> This code will produce your desired output with FOP 0.95. Hope this helps:-) Regards Aish anandhthiyagarajan wrote: > > Hi everybody > > I am stuck up with an issue in manipulating the table. > > > > Consider the below XML and XSL > > <root> > <roadmap> > <years> > <year>2009</year> > <quarters> > <quarter>Q3</quarter> > <requirements> > <requirement>Mp3Player</requirement> > </requirements> > <requirements> > <requirement>Mp3Player</requirement> > </requirements> > <requirements> > <requirement>DataCable</requirement> > </requirements> > <requirements> > <requirement>Mp3Player</requirement> > </requirements> > <requirements> > <requirement>Mp3Player</requirement> > </requirements> > <requirements> > <requirement>Bluetooth</requirement> > </requirements> > </quarters> > <quarters> > <quarter>Q4</quarter> > <requirements> > <requirement>DataCable</requirement> > </requirements> > <requirements> > <requirement>MemoryCard</requirement> > </requirements> > <requirements> > <requirement>InbuiltCam</requirement> > </requirements> > </quarters> > </years> > </roadmap> > </root> > > > XSL: > > <xsl:template match="root/roadmap"> > <fo:block space-before='2mm'> > <fo:block font-size="10pt" color="black" font-weight="bold" > increment-by="1.1.1" space-before="0.54in" space-after="2pt" > > ROADMAP INFORMATION > </fo:block> > <fo:block space-before='2mm'> > </fo:block> > <fo:table border-collapse="collapse" font-size="9pt"> > <fo:table-column column-width="1in"/> > <fo:table-column column-width="50%"/> > <fo:table-column column-width="50%"/> > <fo:table-column column-width="50%"/> > <fo:table-column column-width="50%"/> > <fo:table-header color="black" background-color="rgb(39,64,139)" > font-weight="bold"> > <fo:table-row> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>YEAR</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q1</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q2</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q3</fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > text-align="center"> > <fo:block>Q4</fo:block> > </fo:table-cell> > </fo:table-row> > </fo:table-header> > <fo:table-body> > <xsl:for-each select="years"> > <fo:table-row> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of select="year"/></fo:block> > </fo:table-cell> > <xsl:for-each select="quarters"> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of select="."/></fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of > select="requirement"/></fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of > select="requirement"/></fo:block> > </fo:table-cell> > <fo:table-cell padding="2pt" border="1pt solid black" > background-color="rgb(255,255,255)" text-align="center"> > <fo:block><xsl:value-of > select="requirement"/></fo:block> > </fo:table-cell> > </xsl:for-each> > </fo:table-row> > </xsl:for-each> > </fo:table-body> > </fo:table> > </fo:block> > </xsl:template> > > > I am attaching a file with this which contain the required ouptut. > > http://old.nabble.com/file/p27430837/Table.doc Table.doc > > > > But i am not getting that output instead it throws a exception. Please let > me know if i am missing something. > > The stack trace is as follows > > java.lang.ArrayIndexOutOfBoundsException: -2 > > Cocoon stacktrace: > > java.lang.ArrayIndexOutOfBoundsException: -2 > context://prd-doc/doc2road.xsl - 7:18 > > Failed to process pipeline > context://prd-doc/doc2road.xsl - 7:18 [TransformerException] > context://prd-doc/sitemap.xmap - 63:46 <map:serialize type="fo2pdf"> > context://prd-doc/sitemap.xmap - 62:51 <map:transform> > context://prd-doc/sitemap.xmap - 61:45 <map:generate> > context://sitemap.xmap - 1034:92 <map:mount> > > Any help would be greatly appreciated. > > > > Thanks in Advance > > Anandh > -- View this message in context: http://old.nabble.com/Table-Manipulation-tp27430837p27434230.html Sent from the w3.org - www-xsl-fo mailing list archive at Nabble.com.
Received on Wednesday, 3 February 2010 10:28:30 UTC