<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

         <xsl:key name="dates" match="row" use="valueDate"/>
         <xsl:key name="currencies" match="row" use="concat(valueDate,'#',contractCurrency)"/>

         <xsl:template match="/">
                 <xsl:for-each select="//row[generate-id() = generate-id(key('dates', valueDate))]/valueDate">
                          <xsl:variable name="aDate" select="."/>
                           <DateData>
                                   <Date>
                                            <xsl:value-of select="$aDate"/>
                                   </Date>
                                    <TotalAmount>
                                            <xsl:value-of select="sum(//row[valueDate=$aDate]/contractAmount)"/>
                                    </TotalAmount>
                                   <xsl:for-each select="//row[generate-id() = generate-id(key('currencies', concat($aDate,'#',contractCurrency))[1])]/contractCurrency">
                                             <Currency>
                                                     <xsl:variable name="aCurrency" select="."/>
                                                     <xsl:value-of select="$aCurrency"/>
                                                      <TotalAmount>
                                                              <xsl:value-of select="sum(//row[valueDate=$aDate and contractCurrency=$aCurrency]/contractAmount)"/>
                                                      </TotalAmount>
                                             </Currency>
                                    </xsl:for-each>
                           </DateData>
                  </xsl:for-each>
         </xsl:template>
</xsl:stylesheet>
<!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios/><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
</metaInformation>
-->