DocBook Framework的瑕疵

本文介绍了解决Docbook Framework在公司环境中遇到的编译问题,包括DTD文件读取失败及htmlsingle目标运行错误的具体原因与修改方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在家里使用Docbook Framework编写文档并用ANT编译的时候一点儿问题没有,在公司内部使用的话,反而老是编译不过,提示我:
[quote]
[java] Error on line 3 column 57 of file:/C:/workspace/documen.writing/src/docbook/dbf/DBFUserGuide.xml:
[java] Error reported by XML parser: Cannot read from http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd (www.oasis-open.org)
[java] Transformation failed: Run-time errors were reported
[java] Java Result: 2
[/quote]
按理说,DBF的resolver应该能够处理这种情况啊,可是google后才发现原来DBF1.0的xml-catalog.xml有些小问题,这里是针对这个问题的jira issue的link:
https://issues.apache.org/jira/browse/DBF-6
我直接把对比的文件内容贴于下吧!

Index: src/resolver/xml-catalog.xml
===================================================================
--- src/resolver/xml-catalog.xml (revision 590660)
+++ src/resolver/xml-catalog.xml (working copy)
@@ -24,22 +24,22 @@
<!-- Translate DocBook XML 4.4 system ids to local file names -->
<rewriteSystem
systemIdStartString="http://www.oasis-open.org/docbook/xml/4.4/"
- rewritePrefix="@target.dir@/docbook-xml-4.4/"/>
+ rewritePrefix="@file.prefix@@target.dir@/docbook-xml-4.4/"/>

<rewriteSystem
systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/"
- rewritePrefix="@target.dir@/docbook-xml-4.5/"/>
+ rewritePrefix="@file.prefix@@target.dir@/docbook-xml-4.5/"/>

<!-- Translate DocBook XML 4.4 public ids to local file names -->
<nextCatalog
- catalog="@target.dir@/docbook-xml-4.4/catalog.xml"/>
+ catalog="@file.prefix@@target.dir@/docbook-xml-4.4/catalog.xml"/>

<!-- Translate DocBook XML 4.5 public ids to local file names -->
<nextCatalog
- catalog="@target.dir@/docbook-xml-4.5/catalog.xml"/>
+ catalog="@file.prefix@@target.dir@/docbook-xml-4.5/catalog.xml"/>

<rewriteURI
uriStartString="http://docbook.sourceforge.net/release/xsl/current/"
- rewritePrefix="@target.dir@/docbook-xsl-snapshot/"/>
+ rewritePrefix="@file.prefix@@target.dir@/docbook-xsl-snapshot/"/>

</catalog>

除了这个问题,htmlsingle这个target要单独run的话,也会有些问题,通常是提示你某些文件找不到,比如:
[quote]
[java] Error at xsl:import on line 26 of file:/C:/workspace/documen.writing/target/tmp/htmlsingle.xsl:
[java] Failure reading file:/C:/workspace/documen.writing/target/tmp/html-style.xsl: no more input
[java] Transformation failed: Failed to compile stylesheet. 1 error detected.
[java] Java Result: 2
[/quote]
这是因为DBF初始发布的DocBook-Framework-1.0/src/styles/htmlsingle.xsl文件内容也需要稍微调整一下,将内容:
[quote]
<xsl:import href="@file.prefix@@dbf.xsl@/html/docbook.xsl" />
<xsl:import href="@file.prefix@@tmp.dir@/html-style.xsl" />
<xsl:include href="@file.prefix@@tmp.dir@/html-titlepage.xsl" />
[/quote]
更改为:
[quote]
<xsl:import href="@file.prefix@@dbf.xsl@/html/docbook.xsl" />
<xsl:import href="@file.prefix@@tmp.dir@/htmlsingle-style.xsl" />
<xsl:include href="@file.prefix@@tmp.dir@/htmlsingle-titlepage.xsl" />
[/quote]
以前是自己搭建的编译环境,现在想图省事儿,才直接抓Docbook Framework过来用,从而发现这几个小问题,希望能够给其他人一些启示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值