【问题标题】:using saxon9he with catalog.xml file将 saxon9he 与 catalog.xml 文件一起使用
【发布时间】:2015-06-12 13:31:41
【问题描述】:

我的目录.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 concept PUBLIC "-//EG//DTD EG DITA Composite//EN" "../../system/dtd/client/eg-dita.dtd">

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

文件存储布局(Windows 7):

    F:\export\catalog.xml
    F:\export\*.xsl
    F:\export\saxon9he.jar
    F:\export\resolver.jar
    F:\export\dtds\maps.dtd
    F:\export\dtds\topics.dtd
    F:\export\test\*.xml
    F:\export\test\folders\*.xml

控制台输出:

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\eg-docmap.dtd (cannot find path)
I/O error reported by XML parser processing file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.map: F:\export\system\dtd\client\
eg-docmap.dtd (cannot find path)

所以文件F:/export/test/532a1069faf343d79c4ad37f8339aeda.ditamap 的DTD 为&lt;!DOCTYPE docmap PUBLIC "-//EG//DTD EG DITA Map//EN" "../../system/dtd/client/eg-docmap.dtd"&gt;,并期望其DTD 为F:\export\system\dtd\client\eg-docmap.dtd 我想让解析器看看F:\export\dtds\maps.dtd

编辑:

我是这样称呼它的:

java -cp "saxon9he.jar;resolver.jar" net.sf.saxon.Transform base.xml all_maps.xsl -t -catalog:"catalog.xml"> all_maps.xml

在输出中,它现在这样说(我之前没有 -t 选项):

Resolved public: -//EG //DTD EG DITA Map//EN
        file:/F:/export/dtds/maps.dtd
Failed to create InputSource (java.io.FileNotFoundException: F:\export\dtds\maps.dtd (system cand file the file)): file:/F:export/dtds/maps.dtd

【问题讨论】:

  • 你能告诉我们你调用 Saxon 的命令行吗?
  • 感谢您的回复。查看我的编辑。
  • 所以file:/F:export/dtds/maps.dtd 缺少斜线,应该是file:/F:/export/dtds/maps.dtd。不确定这是您的目录还是撒克逊电话的问题。
  • 抱歉,编辑内容时出错。我必须将其匿名化。斜线就在那里。
  • 所以目前你说你有一个文件F:\export\dtds\maps.dtd 但解析器没有找到它?这听起来不太可能。

标签: xml xslt saxon


【解决方案1】:

嗯,应该可以的。我没有看到 Windows 在文件名中添加了额外的 .txt。删除它后,它就像一个魅力。

命令行如题,目录文件如题。

【讨论】:

    猜你喜欢
    • 2015-12-11
    • 2010-09-19
    • 2017-10-04
    • 2013-02-19
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多