为什么在命令行 XSLT 处理中 xi:include 查找 'fail'?

Why do the xi:include lookups 'fail' in command line XSLT processing?

我通常使用 Oxygen 来测试我的单文件转换 XML -> HTML。 (XML 文件使用 TEI 架构。)我使用很多 xi:includes 来引用人员列表 <listPerson/> 并使用 @[=42= 在我的标记中放置 <listPlace/> ].

我在 xi:include 中使用 @xml:id 在这样的键中进行查找:

<xsl:key name="persnymRef" match="tei:listPerson/tei:person" use="@xml:id"/>

使用这样的代码:

<xsl:value-of select = "key('persnymRef',$get_persNam)/tei:persName,' ')"/>

因此,@xml:id="petrus_fabri_PAR" returns 文件 <xi:include href="people.xml"> 中的值 Peire Faure, Paris。 xml 文件与其他文件位于同一目录中。

当我使用 Oxygen 进行转换时,一切都很好。

但我现在正在使用 Saxon 测试命令行处理,任何依赖于 xl:include 的查找都会失败(即,xml:id 查找不输出任何内容)- XSLT 文件处理的其余部分有效美好的。

为什么在命令行中 xi:include 查找 'fail'?

在使用 XSLT 的 XML 的命令行处理中使用 xi:include 是否有特殊考虑?

我认为您必须在 Saxon 中显式 开启 xi:include 处理。也许此页面会对您有所帮助:https://www.saxonica.com/documentation9.5/sourcedocs/XInclude.html