xsl-list
[Top] [All Lists]

RE: Using Saxon 8.5 and collection() to process a directory of XML files

2005-08-04 08:23:56
Yes, if the collection is held in a global variable then it's likely that
all the documents will be locked down.

If it's in a local variable the situation is more complex: if Saxon can
detect that you are doing a single iteration over the contents of the
variable, then it won't actually hold the whole sequence in memory, but in
other cases it will.

Doing <for-each select="collection($in)/discard-document(.)"> or
<apply-templates select="collection($in)/discard-document(.)"> is safest.

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk] 
Sent: 04 August 2005 15:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Using Saxon 8.5 and collection() to 
process a directory of XML files



You can call saxon:discard-document() to make a document 
available for
garbage collection when there are no outstanding references to it.

ah, thanks.

So does that  mean  that one shoudn't make a global variable

  <xsl:variable name="collection" select="collection(...

  <xsl:template name="main">
    <xsl:for-each select="$collection/saxon:discard-document(.)" ...


as that will force you to keep the document around forever in 
case I go 
$collection[66]/a/b/c at some strange point? Or can your stylesheet
analysis detect that the variable is only used in a top level loop?


Should I instead go


  <xsl:template name="main">
  <xsl:for-each select="collection( ...)/saxon:discard-document(.)"



so that outside the loop the node is not accessible (without reparsing
the document)

David

______________________________________________________________
__________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
______________________________________________________________
__________

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