Re: Re: RE: [xsl] Best Practice - collection() function

Subject: Re: Re: RE: [xsl] Best Practice - collection() function
From: <philip.vallone@xxxxxxxxxxx>
Date: Mon, 07 Jul 2008 07:23:49 -0500 (CDT)
Hi Andrew,

Thanks for the help. I think the question sounds odd because I may have not been clear. You say they [keys] are built once per input document; by input document, do you mean supplied input file or each document in the collection()? I ask so I get a better understanding of whats going on when I use the collection() function and Keys. Right now, it works great and all my documents (e.g. tables, xref) are indexed.

As for your suggestion using "saxon:discard-document:" - I applied this during some test last week but didn't see much of a difference in memory usage. However it was not a controlled environment. I will do some more test.


From: Andrew Welch <andrew.j.welch@xxxxxxxxx>
Date: 2008/07/07 Mon AM 06:52:06 CDT
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: RE: [xsl] Best Practice - collection() function

> Question - I am using keys to provide cross referencing for the index. Since the keys are declared as a child of <xsl:stylesheet>, when I call a collection(), is the key over written or does the key continue to hold all the information in memory?

That's an odd-ish question - what is the significance of xsl:key being
a top-level element?

Keys should always be held in memory... that's what they're for :)
They're built once per input document, and that could be each
document-node returned from calling collection, or a single variable
wrapping that call... it's up to you and whether you need to key your
entire set or just each document.

If you are using Saxon and having memory issues with collection() then
use saxon:discard-document:

Andrew Welch

Current Thread