0

我有一个看起来像这样的 XSL 样式表:

<xsl:template name="xsl:initial-template">
  <xsl:for-each-group select="collection($doc-collection)//dr:description" group-by="format-date(dr:date, '[Mn]-[Y]')">
    <xsl:result-document href="{current-grouping-key()}.html" method="html" indent="yes">
      <xsl:call-template name="page">
        <xsl:with-param name="desc" select="current-group()"/>
      </xsl:call-template>  
    </xsl:result-document>
  </xsl:for-each-group>
</xsl:template>

(为简洁起见,省略了变量和其他模板。)

当我使用 Saxon 调用它时,一切运行正常,我最终得到了通过 xsl:result-document 创建的 x 个文档。

当它作为带有 Calabash 的 XProc 管道的一部分运行时,如下所示:

<p:xslt name="transformation" template-name="xsl:initial-template">
  <p:input port="stylesheet">
    <p:document href="../xslt/main.xsl"/>
  </p:input>
  <p:input port="source">
    <p:empty/>
  </p:input>
  <p:with-param name="doc-collection" select="resolve-uri($source)"/>
</p:xslt>

在转换过程中出现运行时错误:Cannot execute xsl:result-document while evaluating xsl:variable. 我尝试将代码精简到最低限度,但在调用xsl:result-document.

我不知道它指的是什么变量,我只能假设它是在管道内的某个地方创建的?

在 Oxygen XML Developer 中使用 Saxon EE 9.9.1.5 和 Calabash 1.1.30-99。

4

0 回答 0