0

我正在使用 Saxon 4.4.2 将 DocBook 转换为各种格式(例如 HTML、PDF、ePub)。我正在使用 Eclipse 在 MacBook Pro 上进行开发。一切都是用 Java 编写的。在我的 Mac 上,一切正常。当我使用 Eclipse 生成可部署插件,复制该插件并将其放入我在 Windows 7 上安装的 Eclipse 中,并运行从 DocBook 到 HTML 的转换时,Saxon 报告“编译样式表失败。检测到 1 个错误”。

错误来自

com.icl.saxon.TransformerFactoryImpl,方法 newTemplates 第 120 行。

com.icl.saxon.TransformerFactoryImpl,方法 newTransformer,第 72 行。

我的调用代码行是:

Transformer transformer = tfactory.newTransformer(xsl);

xsl 的设置是通过这一行完成的:

StreamSource xsl = new StreamSource(DocBookTransformer.class.getResourceAsStream("/lib/docbook-xsl-1.76.1/xhtml/docbook.xsl"); 

为什么 Saxon 在 Mac 上处理样式表时不会出错,但在 Windows 上却无法解析它,因为它是相同的 Saxon Jars 并且在两台机器上都在处理相同的样式表文件?

4

1 回答 1

0

撒克逊4.4.2?你到底是从哪里弄到的?也许在 1998 年左右出版的一本书的背面有一张 CD?它早于 2001 年 SourceForge 的第一个版本,并且可能设计为在 Java 1.1.8 上运行。

所以你的第一步应该是看看问题是否仍然出现在更现代的版本上。当前版本为 9.5。

另一件事是找出撒克逊人说它报告的错误是什么。它将被发送到 JAXP ErrorListener,除非您更改任何内容,否则默认的 ErrorListener 会将消息写入 System.err。

最有可能在一个平台上工作而在另一个平台上失败的是 xsl:include 和 xsl:import 中的 URI,因此您尝试检查它们。

于 2013-07-18T21:10:47.913 回答