# It's a big program and I have a tendancy to think it's going
# in an innefficient direction mainly by having all templates
# except root be named and called explicitly with a whole lot
# of variables being passed from template to template. In my
# limited experience, these slow down processing significantly.
I don't think there's any reason why calling named templates should be
inefficient. The thing to look at is the algorithmic complexity.
# Someday I'll look into engine source and find out more specifically.
# Another suspicious piece that I've noticed is the calls like:
#
# <xsl:variable name="random-nodes-r" select="document('')//*"
# /> <xsl:variable name="random-nodes-c" select="document('')//*" />
#
# Which, (correct me if I'm wrong here), are making two extra
# copies of the entire document in a variable?
No, only one extra copy. Calling document() multiple times with the same URI
will return the document from a local cache.
Michael Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list