2013-07-18 36 views
0

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

的错误来自

com.icl.saxon.TransformerFactoryImpl,方法newTemplates线120

通过

称为com.icl.saxon.TransformerFactoryImpl,方法newTransformer,line 72.

我调用的代码行是:

Transformer transformer = tfactory.newTransformer(xsl); 

XSL的设置通过此行来完成:

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

为什么会撒克逊过程中无一Mac上的错误样式表,但未能就分析它Windows,当它是相同的Saxon Jars和在两台机器上处理相同的样式表文件?

回答

0

撒克逊4.4.2?你到底在哪里得到了这个?也许在1998年左右出版的一本书后面有一张CD?它早于2001年在SourceForge上发布的第一个版本,可能设计为在Java 1.1.8上运行。

因此,您的第一步应该是查看问题是否仍然存在于更现代的版本中。目前的版本是9.5。

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

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

+0

我想你一定是错了版本号。我没有4.4.2的记录。在XSLT 1.0规范定稿之前,大约在1999年中期发布了4.4版本和4.5版本,并且规范有很多后期更改,因此该产品今天将无法使用。 –

+0

对不起,延迟。我穿过美国去了另一个国家,现在才回到这个地步。我已经切换到当前版本。我得到的错误是:“第23行的xxl:include出错... XTSE0165:XML解析器报告的I/O错误...”第23行是 VERSION与之相同级别,因为该文件夹包含处理器正在返回错误的docbook.xsl文件。 – user1519054

+0

也许这个问题在文件名中是区分大小写的。 –

相关问题