在Saxon中处理无限递归XSL

Vin*_*nit 7 xslt saxon

我理解这个问题可能超出了Saxon,并且更多地与使用它进行转换的应用程序的体系结构有关,但只是想尝试一下.考虑以下文件 -

XML

<?xml version="1.0" encoding="UTF-8"?>
<document>
    string
</document>
Run Code Online (Sandbox Code Playgroud)

XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="3.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xsl xs">

    <xsl:template match="/"> 
       <xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="node()">
        <xsl:apply-templates select="."/>
    </xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

在转换过程中,XSL将进入无限递归,即堆栈溢出.我的问题是 - 有没有办法阻止或阻止这种类型的转换进入无限递归?可以添加到命令行的任何可以触发警告并正常停止的参数?

小智 0

您是否尝试过 -opt:0 禁用优化?