xsl-list
[Top] [All Lists]

[xsl] max from sequence problem

2007-02-09 18:31:26
I am trying to get the max sum of each grp/@name for each date/@name to
scale it to a graph. I am using saxon8.7 xslt2.0 but get the error:
Error line 19 ... 
FORG0001: Failure converting {1 1 5 4 1 19 19...} to a number

My source
<?xml version="1.0" encoding="UTF-8" ?> 
<allloads>
  <firstdate>2007-01-28</firstdate> 
  <group name="PERISHABLE">
  <cons name="FROZEN">
  <date name="2007-01-28" skipdatecells="0">
  <grp name="1" count="1" skipcells="1" /> 
  <grp name="2" count="1" skipcells="0" /> 
  <grp name="3" count="1" skipcells="0" /> 
  </date>
  <date name="2007-01-29" skipdatecells="0">
  <grp name="1" count="2" skipcells="1" /> 
  <grp name="2" count="6" skipcells="0" /> 
  <grp name="3" count="3" skipcells="0" /> 
  </date>
  <date name="2007-01-30" skipdatecells="0">
  <grp name="0" count="7" skipcells="0" /> 
  <grp name="1" count="4" skipcells="0" /> 
  <grp name="2" count="1" skipcells="0" /> 
  </date>
  <date name="2007-01-31" skipdatecells="0">
  <grp name="0" count="2" skipcells="0" /> 
  <grp name="1" count="1" skipcells="0" /> 
  <grp name="2" count="3" skipcells="0" /> 
  </date>
  </cons>
  <cons name="DELI">
  <date name="2007-01-28" skipdatecells="0">
  <grp name="3" count="2" skipcells="3" /> 
  <grp name="4" count="1" skipcells="0" /> 
  <grp name="5" count="1" skipcells="0" /> 
  </date>
  <date name="2007-01-29" skipdatecells="0">
  <grp name="0" count="12" skipcells="0" /> 
  <grp name="1" count="10" skipcells="0" /> 
  <grp name="2" count="7" skipcells="0" /> 
  </date>
  <date name="2007-01-30" skipdatecells="0">
  <grp name="0" count="7" skipcells="0" /> 
  <grp name="1" count="4" skipcells="0" /> 
  <grp name="2" count="1" skipcells="0" /> 
  </date>
  <date name="2007-01-31" skipdatecells="0">
  <grp name="0" count="5" skipcells="0" /> 
  <grp name="1" count="3" skipcells="0" /> 
  <grp name="2" count="3" skipcells="0" /> 
  </date>
  </cons>
  </group>
  <group name="GROC">
  <cons name="GROC">
  <date name="2007-01-28" skipdatecells="0">
  <grp name="3" count="2" skipcells="3" /> 
  <grp name="4" count="3" skipcells="0" /> 
  </date>
  <date name="2007-01-29" skipdatecells="0">
  <grp name="0" count="9" skipcells="0" /> 
  <grp name="1" count="7" skipcells="0" /> 
  <grp name="2" count="6" skipcells="0" /> 
  </date>
  <date name="2007-01-30" skipdatecells="0">
  <grp name="0" count="16" skipcells="0" /> 
  <grp name="1" count="15" skipcells="0" /> 
  <grp name="2" count="9" skipcells="0" /> 
  </date>
  <date name="2007-01-31" skipdatecells="0">
  <grp name="0" count="7" skipcells="0" /> 
  <grp name="1" count="12" skipcells="0" /> 
  <grp name="2" count="9" skipcells="0" /> 
  </date>
  </cons>
  </group>
</allloads>



And my xsl:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="2.0"
                xmlns:xs="http://www.w3.org/2001/XMLSchema";
                xmlns:xdt="http://www.w3.org/2005/xpath-datatypes";>
<xsl:output method="xml"/>
<xsl:key name="grpdatetotal" match="grp" use="concat(../@name,'+',@name)"/>
<xsl:template match="/allloads">
<sums>
    <xsl:variable name="maxloads">
    <xsl:for-each-group select="./group/cons/date" group-by="@name">
      <xsl:variable name="dategroup" select="current-grouping-key()"/>
      <xsl:for-each-group select="current-group()" group-by="grp/@name">
      <xsl:variable name="groupGrp"
select="concat($dategroup,'+',current-grouping-key())"/>
      <xsl:sequence
select="sum(current-group()/key('grpdatetotal',$groupGrp)/@count)"/>
      </xsl:for-each-group>
    </xsl:for-each-group>
    </xsl:variable>
    <seq><xsl:value-of select="$maxloads"/></seq>
    <max><xsl:value-of select="max($maxloads)"/></max>
</sums>
</xsl:template>

</xsl:stylesheet>

What am I overlooking???  TIA

-Kent


--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>