xsl-list
[Top] [All Lists]

Re: xsl recursion

2005-02-23 09:50:03
Hi,

thanks for the tip, already tried this, and -Xss1m to change the stack size from the default of 256k

Norman
Richard Lewis wrote:

This is a bit off topic, but have you tried setting java execution
options to allow more memory to Cocoon?

In Tomcat you need to set:
CATALINA_OPTS="-server -Xms256m -Xmx256m"

Richard

On Wed, 23 Feb 2005 15:46:14 +0000, "Norman Barker"
<normanb(_at_)comsine(_dot_)co(_dot_)uk> said:
Hi,
I am using Xalan and Cocoon to doing try and implement a "divide and conquer" algorithm for processing very large XML files. I have a row count of 8400, so I should only have a depth of log2(8400) (about 12), I keep getting stack overflow error, and setting -RL with Xalan fails too, I thought DVC algorithms were supposed to stop this!

Anyway,

<sql:rowset>
   <sql:row>
         <col1>..</col1>
          <col2>..</col2>
    </sql:row>
           :
           :
</sql:rowset>

and the template looks like
where rows are the collection of sql:row above
Any help would be great, thanks,

 <xsl:template name="data">
     <xsl:param name="rows"/>
   <xsl:param name="rowcount" select="count($rows)"/>
   <xsl:choose>
       <xsl:when test="$rowcount = 1">
           <xsl:for-each select="sql:row">
               <xsl:for-each select="*">
                   <xsl:choose>
<xsl:when test="(local-name(.) = 'date') or (local-name(.) = 'lat') or (local-name(.) = 'lon')"></xsl:when>
                       <xsl:otherwise>
                           <xsl:value-of select="."/>
                       </xsl:otherwise>
                   </xsl:choose>
               </xsl:for-each>
           </xsl:for-each>
       </xsl:when>
       <xsl:otherwise>
           <xsl:variable name="cntHalf"
                     select="floor($rowcount div 2)"/>
<xsl:variable name="vValue1">
             <xsl:call-template name="data">
               <xsl:with-param name="rows"
                      select="$rows[position() &lt;= $cntHalf]"/>
             </xsl:call-template>
           </xsl:variable>
<xsl:variable name="vValue2">
             <xsl:call-template name="data">
               <xsl:with-param name="rows"
                      select="$rows[position() > $cntHalf]"/>
             </xsl:call-template>
</xsl:variable> </xsl:otherwise>
   </xsl:choose>
 </xsl:template>

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



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