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

RE: FW: Xslt that worked for fop0.20.2 no longer works

Subject: RE: FW: Xslt that worked for fop0.20.2 no longer works at later versions
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 23 Apr 2008 09:08:53 +0100
RE:  FW: Xslt that worked for fop0.20.2 no longer works
If the XSLT is producing different output (that is, a different XML document
in the xsl-fo vocabulary), then it would be useful to identify the
difference, identify the part of the stylesheet that produces this part of
the output, and identify which XSLT processors were used before and after
the change.

In any event, sending us hundreds of lines of code and saying "it doesn't
work correctly" is unlikely to get a helpful response. At the very least,
tell us what the symptoms are.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Hesselberth, Jan [mailto:Jan.Hesselberth@xxxxxxxxxxxxxxxxxx] 
> Sent: 23 April 2008 09:00
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  FW: Xslt that worked for fop0.20.2 no longer 
> works at later versions
> 
>  
> 
> -----Original Message-----
> From: Hesselberth, Jan
> Sent: 22 April 2008 14:59
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: Xslt that worked for fop0.20.2 no longer works at 
> later versions
> 
> I have xslt that transforms xml to pdf at fop 0.20.2 
> correctly. I am trying to upgrade to a later version of fop 
> and have found that the conversion to .fo no longer works 
> correctly for locally declared xsl:variable. Is this a bug or 
> a change of design.
> Either way how can I change my xsl to produce the correct output.
> I have attached the xml and xsl and a correct pdf.
> Regards
> 	Jan Hesselberth 
> 
> 
> This is the XSl
> 
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> 	 xmlns:fo="http://www.w3.org/1999/XSL/Format"
> 	 xmlns:java="http://xml.apache.org/xslt/java"
> exclude-result-prefixes="java"
> 	 version="1.0">
> <!--xsl:stylesheet
>                   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format"
>                   version="2.0"--> 
> 		<xsl:variable name="followingSPV" select="aa"/>	
> 		<xsl:variable name="lastacc" select="'last'"/>
> 		<xsl:variable name="lastSPV" select="'last'"/>
> 	<xsl:output method="xml" version="4.0"
> omit-xml-declaration="yes" indent="yes"/>
> 	<xsl:template match="moveAssetBatchResults">
> 		<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
> 			<fo:layout-master-set>
> 				<fo:simple-page-master
> master-name="AssetMovement_portrait" page-height="29.7cm"
> page-width="21cm" margin-top="1cm" margin-bottom="2cm" 
> margin-left="1cm"
> margin-right="1cm">
> 					<fo:region-body
> margin-top="2cm"/>
> 					<fo:region-before extent="2cm"/>
> 					<!--fo:region-after
> extent="1.5cm"/-->
> 				</fo:simple-page-master>
> 				<fo:simple-page-master
> master-name="AssetMovement_landscape" page-height="21cm"
> page-width="29.7cm" margin-top="1cm" margin-bottom="2cm"
> margin-left="1cm" margin-right="1cm">
> 					<fo:region-body
> margin-top="2cm"/>
> 					<fo:region-before extent="2cm"/>
> 					<!--fo:region-after
> extent="1.5cm"/-->
> 				</fo:simple-page-master>
> 				<fo:page-sequence-master
> master-name="AssetMovement">
> 					<!-- fop 0.20.2
> fo:repeatable-page-master-reference
> master-name="AssetMovement_landscape"/-->
> 	
> <fo:repeatable-page-master-reference
> master-reference="AssetMovement_landscape"/>
> 				</fo:page-sequence-master>
> 				<fo:page-sequence-master
> master-name="Exceptions">
> 					<!-- fop 0.20.2
> fo:repeatable-page-master-reference
> master-name="AssetMovement_landscape"/-->
> 	
> <fo:repeatable-page-master-reference
> master-reference="AssetMovement_landscape"/>
> 				</fo:page-sequence-master>
> 			</fo:layout-master-set>
> 			<!-- fop 0.20.2 fo:page-sequence
> master-name="AssetMovement" initial-page-number="1"-->
> 			<fo:page-sequence
> master-reference="AssetMovement" initial-page-number="1">
> 				<fo:static-content
> flow-name="xsl-region-before">
> 					<xsl:call-template
> name="ReportHead1"/>
> 					<xsl:call-template
> name="ColumnHead1"/>
> 				</fo:static-content>
> 				<fo:flow flow-name="xsl-region-body">
> 					<xsl:choose>
>   					<xsl:when
> test="/descendant::property[@type='MoveAssetSuccess']">
> 
> 					<xsl:call-template
> name="assetResults"/>
> 					</xsl:when>
> 					<xsl:otherwise>
> 					<fo:block>NO ACCOUNTS TAKEN
> ON</fo:block>
> 					</xsl:otherwise>
> 					</xsl:choose>
> 				</fo:flow>
> 			</fo:page-sequence>
> 			<!-- fop 0.20.2 fo:page-sequence
> master-name="Exceptions" initial-page-number="1"-->
> 			<fo:page-sequence master-reference="Exceptions"
> initial-page-number="1">
> 				<fo:static-content
> flow-name="xsl-region-before">
> 					<xsl:call-template
> name="ReportHead2"/>
> 					<xsl:call-template
> name="ColumnHead2"/>
> 				</fo:static-content>
> 				<fo:flow flow-name="xsl-region-body">
> 					<xsl:call-template
> name="Exceptions"/>
> 				</fo:flow>
> 			</fo:page-sequence>
> 		</fo:root>
> 	</xsl:template>
> 	<xsl:template name="ReportHead1">
> 		<xsl:param name="Style" select="'tITLE'"/>
> 		<fo:table>
> 			<fo:table-column column-width="12cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-body>
> 
> 				<fo:table-row>
> 				
> 					<fo:table-cell>
> 						<fo:block
> font-size="10pt" font-weight="bold" text-align="left">
> 	
> <xsl:text>Movement Report</xsl:text>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> font-size="10pt" font-weight="bold" text-align="end">
> 							<xsl:value-of
> select="java:format(java:java.text.SimpleDateFormat.new
> ('d/MM/yyyy'), java:java.util.Date.new())"/>
> 
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> line-height="14pt" font-size="10pt" font-weight="bold"
> text-align="end">Page <fo:page-number/>
> 						</fo:block>
> 					</fo:table-cell>
> 				</fo:table-row>
> 
> 			</fo:table-body>
> 		</fo:table>
> 	</xsl:template>
> 	<xsl:template name="ReportHead2">
> 		<xsl:param name="Style" select="'tITLE'"/>
> 		<fo:table>
> 			<fo:table-column column-width="12cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-body>
> 
> 				<fo:table-row>
> 				
> 					<fo:table-cell>
> 						<fo:block
> font-size="10pt" font-weight="bold" text-align="left">
> 	
> <xsl:text>Summary Account Exceptions</xsl:text>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> font-size="10pt" font-weight="bold" text-align="end">
> 							<xsl:value-of
> select="java:format(java:java.text.SimpleDateFormat.new
> ('d/MM/yyyy'), java:java.util.Date.new())"/>
> 
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> line-height="14pt" font-size="10pt" font-weight="bold"
> text-align="end">Page <fo:page-number/>
> 						</fo:block>
> 					</fo:table-cell>
> 				</fo:table-row>
> 
> 			</fo:table-body>
> 		</fo:table>
> 	</xsl:template>
> 
> 	<xsl:template name="ColumnHead1">
> 		<fo:table space-after="10pt">
> 			<fo:table-column column-width="3.5cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="2cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="3cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="3cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="3cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="6cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-body>
> 				<fo:table-row>
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 				Account No
> 			</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="center" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold">
> 				Element
> 			</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="end" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold">
> 					Current Balance
> 			</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="end" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold">
> 				Capital Balance
> 			</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="center" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold">
> 				Interest (RO to Date)
> 				</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="center" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold">
> 				Element Exceptions
> 				</fo:block>
> 					</fo:table-cell>
> 				</fo:table-row>
> 			</fo:table-body>
> 		</fo:table>
> 	</xsl:template>
> 		<xsl:template name="ColumnHead2">
> 		<fo:table space-after="10pt">
> 			<fo:table-column column-width="2.5cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="2cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 			<fo:table-column column-width="3cm"
> border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt"/>
> 				<fo:table-body>
> 				<fo:table-row>
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 				Account No
> 			</fo:block>
> 				</fo:table-cell>
> 				<fo:table-cell>
> 					<fo:block text-align="center"
> font-family="sans-serif" line-height="14pt" font-size="10pt"
> font-weight="bold">
> 				Request
> 			</fo:block>
> 				</fo:table-cell>
> 				<fo:table-cell>
> 					<fo:block text-align="end"
> font-family="sans-serif" line-height="14pt" font-size="10pt"
> font-weight="bold">
> 					Exception
> 				</fo:block>
> 				</fo:table-cell>
> 				</fo:table-row>
> 			</fo:table-body>
> 		</fo:table>
> 	</xsl:template>
> 	<xsl:template name="assetResults">
> 
> 		<xsl:for-each
> select="//property[@type='MoveAssetSuccess']">
> 
> 		<xsl:sort select="./property[@name='sourceSPV']"
> data-type="text" order="ascending"/>
> 		<xsl:sort select="./property[@name='targetSPV']"
> data-type="text" order="ascending"/>
> 		<xsl:sort
> select="concat(substring(property[@name='mfAccNo'],1,5),substr
> ing(proper
> ty[@name='mfAccNo'],8,5),substring(property[@name='mfAccNo'],6,2))"/>
> 		<fo:table space-after="10pt">
> 			<fo:table-column column-width="3.5cm"/>
> 			<fo:table-column column-width="2cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="6cm"/>
> 			<fo:table-body>
> 			<xsl:variable name="spv"
> select="concat(./property[@name='sourceSPV'],./property[@name=
> 'targetSPV
> '])"/>
> 				<xsl:choose>
> 				<xsl:when test="position()=1">
> 				<fo:table-row keep-together="always">
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 						<xsl:text>From:
> </xsl:text><xsl:value-of select="./property[@name='sourceSPV']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 						<xsl:text>To:
> </xsl:text><xsl:value-of select="./property[@name='targetSPV']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 
> 				</fo:table-row>
> 				</xsl:when>
> 				<xsl:otherwise>
> 				<xsl:if
> test="concat(./property[@name='sourceSPV'],./property[@name='t
> argetSPV']
> ) != $lastSPV">
> 				
> 				<fo:table-row keep-together="always">
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="left" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							Total Movement
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							Acct:
> <xsl:value-of
> select="count(ancestor::moveAssetBatchResults/descendant::prop
> erty[$last
> SPV=concat(./property[@name='sourceSPV'],./property[@name='tar
> getSPV'])]
> )"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$lastSPV=concat(./property[@name='sourceSPV'],./propert
> y[@name='t
> argetSPV'])]/property[@name='currentBalance']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$lastSPV=concat(./property[@name='sourceSPV'],./propert
> y[@name='t
> argetSPV'])]/property[@name='capitalBalance']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$lastSPV=concat(./property[@name='sourceSPV'],./propert
> y[@name='t
> argetSPV'])]/property[@name='interestROToDate']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 
> 				</fo:table-row>
> 				<fo:table-row break-before="page">
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 						<xsl:text>From:
> </xsl:text><xsl:value-of select="./property[@name='sourceSPV']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell>
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt" font-weight="bold"> 
> 						<xsl:text>To:
> </xsl:text><xsl:value-of select="./property[@name='targetSPV']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 
> 				</fo:table-row>
> 				</xsl:if>
> 				</xsl:otherwise>
> 				</xsl:choose>
> 					<!--fo:table-row
> keep-with-previous="always"-->
> 						<!--fo:table-cell
> keep-with-previous="always">
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="left">
> 	
> <xsl:apply-templates select="./property[@name='mfAccNo']"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						</fo:table-row-->
> 						<xsl:for-each
> select="descendant::property[@type='AccountElementFinancialInf
> ormationVO
> ']">
> 						<xsl:variable
> name="elementNo" select="./property[@name='accountElementNumber']"/>
> 						<fo:table-row
> keep-together="always">
> 						<fo:table-cell>
> 						<xsl:if
> test="ancestor::property[@type='MoveAssetSuccess']/descendant:
> :property[
> @name='mfAccNo'] != $lastacc">
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="left">
> 	
> <xsl:apply-templates
> select="ancestor::property[@type='MoveAssetSuccess']/descendan
> t::propert
> y[@name='mfAccNo']"/>
> 							</fo:block>
> 						</xsl:if>
> 						</fo:table-cell>
> 						<!--fo:table-row
> keep-with-previous="always">
> 						<fo:table-cell>
> 						</fo:table-cell-->	
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right">
> 	
> <xsl:value-of select="$elementNo"/>
> 	
> </fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='currentBalance'],'E')">0.00</
> xsl:when>
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='currentBalan
> ce'],'&#45
> ;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>
> 
> 							</fo:block>
> 						</fo:table-cell>
> 
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='capitalBalance'],'E')">0.00</
> xsl:when>
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='capitalBalan
> ce'],'&#45
> ;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>
> 
> 							</fo:block>
> 							</fo:table-cell>
> 							<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='accruedInterest'],'E')">0.00<
> /xsl:when>
> 	
> <xsl:when
> test="./property[@name='accruedInterest'][@type='null']">0.00<
> /xsl:when>
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='accruedInter
> est'],'&#4
> 5;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>
> 
> 							</fo:block>
> 							</fo:table-cell>
> 							<fo:table-cell>
> 							<fo:block
> text-indent="3em" space-before.optimum="5pt" space-after.optimum="5pt"
> font-size="10pt" text-align="left">
> 	
> <xsl:for-each
> select="ancestor::property[@type='MoveAssetSuccess']/descendan
> t::propert
> y[@type='SecuritisationProcessErrorVO']">
> 	
> <xsl:if test="./property[@name='accountElementNumber']= $elementNo">
> 	
> <xsl:value-of select="./property[@name='errorText']"/>
> 	
> </xsl:if>
> 	
> </xsl:for-each>
> 							</fo:block>
> 							</fo:table-cell>
> 						</fo:table-row>
> 						<xsl:variable
> name="lastacc"
> select="ancestor::property[@type='MoveAssetSuccess']/descendan
> t::propert
> y[@name='mfAccNo']"/>						
> 						</xsl:for-each>
> 						<fo:table-row
> keep-together="always">
> 						<fo:table-cell>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right">
> 							Total
> 							</fo:block>
> 
> 						</fo:table-cell>
> 
> 						<fo:table-cell>
> 
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='currentBalance'],'E')">0.00</
> xsl:when>
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='currentBalan
> ce'],'&#45
> ;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>								
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='capitalBalance'],'E')">0.00</
> xsl:when>
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='capitalBalan
> ce'],'&#45
> ;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>								
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 	
> <xsl:choose>
> 	
> <xsl:when
> test="contains(./property[@name='interestROToDate'],'E')">0.00
> </xsl:when
> >
> 	
> <xsl:otherwise>
> 	
> <xsl:value-of
> select="format-number(translate(./property[@name='interestROTo
> Date'],'&#
> 45;&#46;','-.'),'#,.00')"/>
> 	
> </xsl:otherwise>
> 	
> </xsl:choose>								
> 						
> 							</fo:block>
> 						</fo:table-cell>
> 
> 						</fo:table-row>
> 					
> 					
> 						
> 						<!--xsl:variable
> name="spv"
> select="concat(./property[@name='sourceSPV'],./property[@name=
> 'targetSPV
> '])"/-->
> 						<xsl:if test="position()
> = last()">
> 						<fo:table-row
> keep-together="always">
> 							<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="left" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							Total Movement
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							Acct:
> <xsl:value-of
> select="count(ancestor::moveAssetBatchResults/descendant::prop
> erty[$spv=
> concat(./property[@name='sourceSPV'],./property[@name='targetS
> PV'])])"/>
> 							
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$spv=concat(./property[@name='sourceSPV'],./property[@n
> ame='targe
> tSPV'])]/property[@name='currentBalance']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$spv=concat(./property[@name='sourceSPV'],./property[@n
> ame='targe
> tSPV'])]/property[@name='capitalBalance']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 						<fo:table-cell>
> 							<fo:block
> space-before.optimum="5pt" space-after.optimum="5pt" font-size="10pt"
> text-align="right" border-after-style="solid" border-after-width="1pt"
> border-top-style="solid" border-top-width="1pt">
> 							<xsl:value-of
> select="format-number(sum(ancestor::moveAssetBatchResults/desc
> endant::pr
> operty[$spv=concat(./property[@name='sourceSPV'],./property[@n
> ame='targe
> tSPV'])]/property[@name='interestROToDate']),'#,.00')"/>
> 							</fo:block>
> 						</fo:table-cell>
> 
> 						</fo:table-row>
> 						</xsl:if>
> 				</fo:table-body>
> 		</fo:table>
> 		<xsl:variable name="lastSPV"
> select="concat(./property[@name='sourceSPV'],./property[@name=
> 'targetSPV
> '])"/>
> 		<xsl:variable name="followingSPV"
> select="concat(following::property[@name='sourceSPV'],followin
> g::propert
> y[@name='targetSPV'])"/>
> 		
> 		</xsl:for-each>
> 	</xsl:template>
> 		<xsl:template name="Exceptions">
> 		<fo:table break-after="auto" space-after="10pt"
> border-after-style="solid" border-after-width="1pt">
> 			<fo:table-column column-width="2.5cm"/>
> 			<fo:table-column column-width="3cm"/>
> 			<fo:table-column column-width="10cm"/>
> 			<fo:table-body>
> 			<xsl:for-each
> select="//property[@type='MoveAssetFailure']">
> 			<xsl:sort select="./property[@name='sourceSPV']"
> data-type="text" order="ascending"/>
> 				<fo:table-row
> keep-with-previous="always">
> 					<fo:table-cell
> keep-with-previous="always">
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt"> 
> 						<xsl:value-of
> select="descendant::property[@name='accountNo']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell
> keep-with-previous="always">
> 						<fo:block
> text-align="center" font-family="sans-serif" line-height="14pt"
> font-size="10pt"> 
> 						<xsl:value-of
> select="descendant::property[@name='movement']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 					<fo:table-cell
> keep-with-previous="always">
> 						<fo:block
> text-align="left" font-family="sans-serif" line-height="14pt"
> font-size="10pt"> 
> 						<xsl:value-of
> select="./property[@name='errorMessage']"/>
> 						</fo:block>
> 					</fo:table-cell>
> 
> 				</fo:table-row>
> 				</xsl:for-each>
> 				</fo:table-body>
> 				</fo:table>
> 				
> 		</xsl:template>
> </xsl:stylesheet>
> 
> 
> LEGAL NOTICE    The information contained in this e-mail and 
> any attachments are private and confidential.  This message 
> is solely intended for a particular recipient, if you are not 
> the intended  recipient you are prohibited from storing, 
> copying, disseminating or using the information  in any way.  
> If you received this e-mail in error please notify the sender 
> immediately.  E-mail transmission cannot be guaranteed to be 
> secure or error-free as information could  be intercepted, 
> corrupted, lost, destroyed, arrive late or incomplete, or 
> contain viruses.  The sender therefore does not accept 
> liability for any errors, viruses or omissions in the  
> contents of this message, which arise as a result of 
> transmission. This e-mail is not  intended to create legally 
> binding commitments on behalf of Northern Rock plc, nor do 
> its  contents reflect the corporate views or policies of 
> Northern Rock plc.  Northern Rock plc,  Registered Office 
> Northern Rock House Gosforth Newcastle upon Tyne NE3 4PL.  
> Registered in England, number 3273685. Telephone No: 0191 
> 2857191  Northern Rock plc is authorised and regulated by the 
> Financial Services Authority for  deposit-taking; advising on 
> and arranging mortgages and general insurance; and for  
> introducing life assurance and investments.
> 
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit 
> http://www.messagelabs.com/email 
> ______________________________________________________________________

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Cast Your Vote

We need your help – Vote for DataDirect XML Products!

  • Best SOA or XML site

Winners and finalists announced at SOA World Conference in November.

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-2007 All Rights Reserved.