在 saxon9he 中使用目录文件
using catalog file with saxon9he
我想使用目录文件让 Saxon 闭嘴找不到 DTD。目前,我使用虚拟 DTDS 并模拟所需的文件夹结构,但这并不理想。
但是,当我运行转换时,出现以下错误:
Transformation failed: Failed to load Apache catalog resolver library
以下是我如何从 Altova 调用撒克逊语:
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.jar
、resolver.jar
和 catalog.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">
我创建了文件夹 dtd
,其中包含 maps.dtd
和 topics.dtd
(两个文件都是空的)。
我看了这个post:
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)
如果您想从多个 JAR 文件加载软件,请不要使用 -jar 选项。使用 -cp 选项定义包含所有必需 JAR 的类路径,并明确指定所需的入口点 (net.sf.saxon.Transform)。
我想使用目录文件让 Saxon 闭嘴找不到 DTD。目前,我使用虚拟 DTDS 并模拟所需的文件夹结构,但这并不理想。
但是,当我运行转换时,出现以下错误:
Transformation failed: Failed to load Apache catalog resolver library
以下是我如何从 Altova 调用撒克逊语:
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.jar
、resolver.jar
和 catalog.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">
我创建了文件夹 dtd
,其中包含 maps.dtd
和 topics.dtd
(两个文件都是空的)。
我看了这个post: 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)
如果您想从多个 JAR 文件加载软件,请不要使用 -jar 选项。使用 -cp 选项定义包含所有必需 JAR 的类路径,并明确指定所需的入口点 (net.sf.saxon.Transform)。