我有一个 XSL 样式表,我希望使用 xsltc.exe 命令将其编译为 dll。我面临的问题是正在使用一个通用样式表,并且我的样式表使用 xsl:include 标记引用该样式表,如下所示:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:include href ="../objectTemplates.xslt"/></xsl:stylesheet>
是否可以将引用的样式表编译成另一个 dll 并使用它来编译。
因此,如果我将原始样式表编译为“SomeStylesheet.dll”,将引用的样式表编译为“ObjectTemplate.dll”
我是否需要将 objectTemplates.xslt 文件的代码复制到第一个 XSLT 文件中并删除 xsl:include 引用,或者我仍然可以为它们拥有单独的 xsl 文件并仍然使用已编译的 XSLT 文件。
任何指针都会非常有帮助。
最佳答案
在撰写此答案时 XSLT (1.0、2.0 和 2.1 的可用第一个工作草案) ,如相应的 W3C 规范中所定义,不能使用对象 (样式表、全局变量等)来自外部编译的样式表。
也就是说,如果给定的 XSLT 处理器可以编译样式表,则该样式表只能作为主要样式表执行,并且其编译后的形式不能被未在同一编译模块中编译的其他样式表导入/包含。
如果有必要超越这一点,可以尝试编写自己的扩展函数,以在任何转换和编译样式表中的模板之间实现一些至少基本的通信。
关于xslt - 在另一个 XSL 样式表中引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3176669/