This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: document() runs out of memory



Hi,
I didn't try this, so I'm not sure if it will work or if it will make a
difference but you may want to give it a try.

<xsl:template match="/">
<xsl:variable name="contents">
    <xsl:for-each select="document('all_forms_list.xml')/someURIs/file/text
()">
     <xsl:value-of select="document(string(.))"/>
     <xsl:apply-templates select="$contents//XFDL"/>
    </xsl:for-each>
</xsl:variable>
  </xsl:template>

Myriam




owner-xsl-list@mulberrytech.com on 03/21/2000 02:31:53 PM

Please respond to xsl-list@mulberrytech.com

To:   "'XSL-List@mulberrytech.com'" <XSL-List@mulberrytech.com>
cc:    (bcc: Myriam Midy/CAM/Lotus)
Subject:  document() runs out of memory

I am using the document function to read in external files but seem to be
exceeding my memory limits.  I believe it is because the previously read
files are still being held in memory but I don't know how to remove them.


The main template is:


  <xsl:template match="/">
    <xsl:for-each select="document('all_forms_list.xml')/someURIs/file/text
()">
    <xsl:variable name="contents" select="document(string(.))"/>
    <xsl:apply-templates select="$contents//XFDL"/>
    </xsl:for-each>
  </xsl:template>





There is a single document all_forms_list.xml which is a list of URI's to
be read.  When the list gets to about 250 URI's the parser exists with an
out of memory exception.


I am using Apache Xalan 0.19.2 with 256meg of memory on a pentium running
NT 4.0.


I ran a test to determine if it was the input or the output trees that were
exceeding the memory and concluded that it was the inputs.  I doubled the
size of the output tree (by executing the templates 2X) and still failed at
the same number of inputs even though my outputs went from ~3000 lines of
XML to ~6000 lines of XML.


I'm afraid that the variable $contents is being created scoped within the
for-each and that I'm getting a new one everytime but I don't know how to
prevent it.  Any ideas?


Brad Sommerfeld








 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]