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