RE: [xsl] FW: Xslt that worked for fop0.20.2 no longer works at later versions

Subject: RE: [xsl] 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
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: [xsl] 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