3

我有一个 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 文件。

任何指针都会非常有帮助。

4

1 回答 1

1

在撰写此答案之日,XSLT (1.0, 2.0 and the avilable first working draft of 2.1) ,如相应的 W3C 规范中所定义,不具备使用对象(样式表、全局变量等)的能力.)来自外部编译的样式表。

也就是说,如果给定的 XSLT 处理器可以编译样式表,则该样式表只能作为主样式表执行,并且其编译后的形式不能被未在同一编译模块中编译的其他样式表导入/包含。

如果有必要超越这一点,可以尝试编写自己的扩展函数来实现任何转换和编译样式表中的模板之间的一些至少基本的通信。

于 2010-07-05T01:19:12.857 回答