使用saxon9he的目录文件

时间:2015-06-11 11:52:51

标签: xml saxon

我想使用目录文件让Saxon因为没有找到DTD而闭嘴。目前,我使用虚拟DTDS并模拟所需的文件夹结构,但这并不理想。

但是,当我运行转换时,我收到以下错误:

Transformation failed: Failed to load Apache catalog resolver library

以下是我如何从Altova打电话给Saxon:

java -jar "F:\saxon9he.jar" -s:%1 -o:%2 -xsl:%3 -t -catalog:"catalog.xml"

我下载了xerces解析器并从那里获取了resolver.jar。那已经是个错误吗? (它在这里说:http://www.sagehill.net/docbookxsl/UseCatalog.html

saxon9he.jarresolver.jarcatalog.xml都在同一个文件夹中。

这是catalog.xml:

<?xml version="1.0"?>
<catalog  xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
    <public 
       publicId="-//EG//DTD EG DITA Map//EN" 
       uri="dtds/maps.dtd"/>
    <public 
       publicId="-//EG//DTD EG DITA Composite//EN" 
       uri="dtds/topics.dtd"/>
</catalog>

以下是DTD在文件中的显示方式:

<!DOCTYPE doc_map PUBLIC "-//EG//DTD EG DITA Map//EN" "../../system/dtd/client/eg-docmap.dtd">

<!DOCTYPE concept PUBLIC "-//EG//DTD EG DITA Composite//EN" "../../system/dtd/client/eg-dita.dtd">

我创建了包含dtdmaps.dtd的文件夹topics.dtd(两个文件都是空的)。

我查看了这篇文章: How to use saxon built-in catalog feature但无法获得解决方案。

这仍然是一个错误或什么?或者我做错了什么?

修改

控制台输出:

Loading catalog: \catalog.xml
Saxon-HE 9.6.0.4J from Saxonica
Java version 1.7.0_09
Stylesheet compilation time: 940.807978ms
Processing file:/F:/export/folders.xml
Using parser org.apache.xml.resolver.tools.ResolvingXMLReader
Building tree for file:/F:/export/folders.xml using class
net.sf.saxon.tree.tiny.TinyBuilder
Tree built in 3.841258ms
Tree size: 6 nodes, 0 characters, 6 attributes
Building tree for file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.map using class net.sf.saxon.tree.tiny.TinyBuilder
Error at template on line 33 of maps.xsl:
  I/O error reported by XML parser processing
  file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.map: F:\export\system\dtd\client\map.dtd (cannot find path)
I/O error reported by XML parser processing file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.ditamap: F:\export\system\dtd\client\
map.dtd (cannot find path)

1 个答案:

答案 0 :(得分:0)

如果要从多个JAR文件加载软件,请不要使用-jar选项。使用-cp选项定义包含所有必需JAR的类路径,并明确指定所需的入口点(net.sf.saxon.Transform)。