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]

document() runs out of memory


Title: 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


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