[xsl] Attempt to access a lazily-evaluated variable while it is being evaluated

Subject: [xsl] Attempt to access a lazily-evaluated variable while it is being evaluated
From: cknell@xxxxxxxxxx
Date: Thu, 27 Jul 2006 09:55:58 -0400
I have a stylesheet whose purpose is to merge a number of small XML documents. The number is 24. I do this in a stylesheet whose general form is:

<xsl:param name="document-name-1" />
..

<xsl:param name="document-name-23" />

(For those of you who are wondering, the twenty-fourth document is the one passed to the transformation on the command line.)

<xsl:variable name="doc-document-name-1" select="document($document-name-1)" />
..

<xsl:variable name="doc-document-name-23" select="document($document-name-23)" />


  <xsl:template match="/">
    <report>
      <xsl:copy-of select="ROWSET/ROW/*" />
      <xsl:copy-of select="$doc-document-name-1/ROWSET/ROW/*" />
      ...
      <xsl:copy-of select="$doc-document-name-23/ROWSET/ROW/*" />
    </report>
  </xsl:template>

Processing this with Saxon 8.7.1J, when the transformation gets to the <xsl:copy-of> that corresponds to document 21, the transformation fails with this error message:

"Fatal Error! Attempt to access a lazily-evaluated variable while it is being evaluated"

All the variables are defined in the same format, so I'm stumped for a reason why document 21 is a lazily-evaluated variable while documents 1 - 20 are not.

Can anyone shed some light on this?

Thanks.

-- 
Charles Knell
cknell@xxxxxxxxxx - email

Current Thread