Saxon:result-document() 函数失败且没有错误消息

Saxon: result-document() function fails without error message

我正在从批处理文件调用 Saxon (9.6 HE):

Transform -t -s:"in.xml" -xsl:"ChangeFileName.xsl" -o:"changefilename.txt" 1>>convert.log 2>&1

命令1>>convert.log 2>&1将Saxon的标准错误输出发送到文件convert.log

Transform 调用输出 2 个文本文件的 XSLT:

 <xsl:template match="manual">
         <xsl:result-document method="text" href="version.txt">
                 <xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_Version']/@Value"/><xsl:text> </xsl:text>
         </xsl:result-document>  
         <xsl:result-document method="text" href="state.txt">
              <xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_State']/@Value"/>
         </xsl:result-document>
 </xsl:template>

当我 运行 从我自己的用户帐户进行转换时,这有效,但当我使用其他帐户时失败:未创建文本文件 state.txtversion.txt

我正在尝试解决此问题,但 Saxon 没有输出任何错误消息。我的日志文件只包含

Writing to file:/Z:/version.txt

没有迹象表明写入失败或失败的原因。

更糟糕的是,当我 运行 直接从命令行 window 转换命令时,它成功了。

如何从 Saxon 中获取更详细的错误信息?

棘手。您不太可能从 Saxon 获得更多信息,因为 Saxon 可能不知道文件尚未成功写入。通常遇到这样的问题,文件确实存在,但它们不在您期望的位置。

一个建议:尝试 运行 -T 选项。生成的跟踪应该告诉您转换 运行(显然成功)是否完成,或者它是否在某个阶段过早中断。

另一个建议:尝试在 href 属性中使用绝对 URI(例如 file:///x/y/z.txt)。

关于Windows文件系统,我已经忘记了大部分,但是有没有可能在失败的帐户下,盘符Z被映射到意想不到的地方?