第 3 章 输出HTML

目录

3.1. 环境准备
3.2. xslt参数的使用
3.2.1. 在命令行中指定参数
3.2.2. 在驱动样式表中使用参数
3.3. 使用Saxon进行转换
3.4. docbook.xsl 还是 chunk.xsl
3.5. 本教程所用样式表参数解释
3.6. 中文处理
3.6.1. 编码
3.6.2. 调整相关xslt参数
3.7. 编辑DocBook文档
3.8. 关于输出要注意的其它问题
3.8.1. images目录
3.8.2. 常见的问题
3.8.3. CSS文件
3.8.4. UTF-8编码

本章用来介绍如何将DocBook转换成HTML的过程。本人只使用过Saxon,因此目前只有关于Saxon的使用说明。有些内容在我以前所写的Saxon实践中有所提及,但某些技术的使用已经有所不同(指本人所使)。因此建议大家使用本教程中所运用的技术。

本人所使用的环境是在windows下,请大家注意根据各自的环境做相应的调整。

3.1. 环境准备

过程 3.1. 环境准备

  1. 软件下载

  2. 软件安装

    • 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这个版本。

  3. 其它东西

    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目录下的。

这样我们就可以开始我们的工作了。



[5] 这里有一篇文章是关于如何在Saxon中使用CATALOG的。Adding catalog support into Saxon