目录
本章用来介绍如何将DocBook转换成HTML的过程。本人只使用过Saxon,因此目前只有关于Saxon的使用说明。有些内容在我以前所写的Saxon实践中有所提及,但某些技术的使用已经有所不同(指本人所使)。因此建议大家使用本教程中所运用的技术。
本人所使用的环境是在windows下,请大家注意根据各自的环境做相应的调整。
过程 3.1. 环境准备
软件下载
Java JDK 1.4.2或者更高下载。因为Saxon是Java程序,因此建议大家安装最新的JDK工具。大家可以去http://java.sun.com/getjava/下载。
Saxon下载。可以从http://saxon.sourceforge.net下载。我使用的Saxon版本为6.5.1开发版本。(老康已经在6.5.3上测试通过)
DocBook DTD。可以从http://www.oasis-open.org/docbook/xml/下载。现在用得最多的是4.2版本。可以使用最新的4.5b1版,5.0版DTD正在制定中。
DocBook XSLT。可以从http://sourceforge.net/projects/docbook/下载。可以使用最新的xsl-1.69版。
软件安装
Java安装没什么可说的。执行安装文件即可。然后要在环境变量PATH中增加Java JDK 1.4.2或者更高/bin目录,以便在命令行执行时能够找到Java程序。
建立工作环境。在我的机器上,我建立了一个子目录d:\docbook,所有相关的东西全放在这个目录下。然后建立工作子目录src,用于存放我的XML文件。
安装Saxon。将Saxon解压在d:\docbook下,目录名改为saxon即可。
安装DocBook DTD 4.2。将压缩包解压在d:\docbook下,目录名改为docbook-xml即可。
安装DocBook XSLT。将压缩包解压在d:\docbook下,目录名改为docbook-xsl即可。
在d:\docbook下建立批处理文件:build.bat。
最后的目录结构图如下:
d:\docbook |-docbook-xml |-docbook-xsl |-saxon |-src
批处理文件(build.bat)内容为:
set CLASSPATH=..\saxon\saxoncatalog.jar set CLASSPATH=%CLASSPATH%;..\saxon\saxon.jar set CLASSPATH=%CLASSPATH%;..\docbook-xsl\extensions\saxon651.jar java -classpath %CLASSPATH% -Dxml.catalog.files=catalog \ com.icl.saxon.StyleSheet -x cz.kosek.CatalogXMLReader \ %1 %2 %3 %4 %5 %6
第三行是用来设置xslt扩展功能的。这个 saxon651.jar不是安装Saxon包所带的,而是docbook-xsl自带的。在docbook-xsl的extensions目录下你会看到好多扩展包,光Saxon的就好几个,我使用了 saxon651.jar这个版本。
其它东西
在build.bat中有一个saxoncatalog.jar[5]文件。这是用来将公共DTD映射成本地DTD的一个Java包。因为我的文档都使用了公共DTD,因此在转换时需要它。使用时还需要一个CATALOG文件。如果你需要saxoncatalog.jar,可以从这里下载。下载后的文件放在Saxon目录中即可。
我的CATALOG文件内容如下:
PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "../docbook-xml/docbookx.dtd" PUBLIC "-//OASIS//DTD DocBook CALS Table Model V4.2//EN" "../docbook-xml/calstblx.dtd"
最后一行过长处理为两行,其实应该是一行。
这里本地文件名都使用了URI的写法。在你的机器上改成相应的内容即可。此文件在我的环境下是放在d:\docbook目录下的。
这样我们就可以开始我们的工作了。