xsl-list
[Top] [All Lists]

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

2008-04-23 01:09:37
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(_dot_)Hesselberth(_at_)northernrock(_dot_)co(_dot_)uk] 
Sent: 23 April 2008 09:00
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)lists(_dot_)mulberrytech(_dot_)com'
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[(_at_)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[(_at_)type='MoveAssetSuccess']">

              <xsl:sort select="./property[(_at_)name='sourceSPV']"
data-type="text" order="ascending"/>
              <xsl:sort select="./property[(_at_)name='targetSPV']"
data-type="text" order="ascending"/>
              <xsl:sort
select="concat(substring(property[(_at_)name='mfAccNo'],1,5),substr
ing(proper
ty[(_at_)name='mfAccNo'],8,5),substring(property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)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[(_at_)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[(_at_)name='targetSPV']"/>
                                              </fo:block>
                                      </fo:table-cell>

                              </fo:table-row>
                              </xsl:when>
                              <xsl:otherwise>
                              <xsl:if
test="concat(./property[(_at_)name='sourceSPV'],./property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)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[(_at_)name='sourceSPV'],./propert
y[(_at_)name='t
argetSPV'])]/property[(_at_)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[(_at_)name='sourceSPV'],./propert
y[(_at_)name='t
argetSPV'])]/property[(_at_)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[(_at_)name='sourceSPV'],./propert
y[(_at_)name='t
argetSPV'])]/property[(_at_)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[(_at_)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[(_at_)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[(_at_)name='mfAccNo']"/>
                                                      </fo:block>
                                              </fo:table-cell>
                                              </fo:table-row-->
                                              <xsl:for-each
select="descendant::property[(_at_)type='AccountElementFinancialInf
ormationVO
']">
                                              <xsl:variable
name="elementNo" select="./property[(_at_)name='accountElementNumber']"/>
                                              <fo:table-row
keep-together="always">
                                              <fo:table-cell>
                                              <xsl:if
test="ancestor::property[(_at_)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[(_at_)type='MoveAssetSuccess']/descendan
t::propert
y[(_at_)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[(_at_)name='currentBalance'],'E')">0.00</
xsl:when>
      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)name='capitalBalance'],'E')">0.00</
xsl:when>
      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)name='accruedInterest'],'E')">0.00<
/xsl:when>
      
<xsl:when
test="./property[(_at_)name='accruedInterest'][(_at_)type='null']">0.00<
/xsl:when>
      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)type='MoveAssetSuccess']/descendan
t::propert
y[(_at_)type='SecuritisationProcessErrorVO']">
      
<xsl:if test="./property[(_at_)name='accountElementNumber']= $elementNo">
      
<xsl:value-of select="./property[(_at_)name='errorText']"/>
      
</xsl:if>
      
</xsl:for-each>
                                                      </fo:block>
                                                      </fo:table-cell>
                                              </fo:table-row>
                                              <xsl:variable
name="lastacc"
select="ancestor::property[(_at_)type='MoveAssetSuccess']/descendan
t::propert
y[(_at_)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[(_at_)name='currentBalance'],'E')">0.00</
xsl:when>
      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)name='capitalBalance'],'E')">0.00</
xsl:when>
      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)name='interestROToDate'],'E')">0.00
</xsl:when

      
<xsl:otherwise>
      
<xsl:value-of
select="format-number(translate(./property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)n
ame='targe
tSPV'])]/property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)n
ame='targe
tSPV'])]/property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)n
ame='targe
tSPV'])]/property[(_at_)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[(_at_)name='sourceSPV'],./property[(_at_)name=
'targetSPV
'])"/>
              <xsl:variable name="followingSPV"
select="concat(following::property[(_at_)name='sourceSPV'],followin
g::propert
y[(_at_)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[(_at_)type='MoveAssetFailure']">
                      <xsl:sort select="./property[(_at_)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[(_at_)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[(_at_)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[(_at_)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 
______________________________________________________________________

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--