DocBook使用笔记 转自:http://tech.idv2.com/2009/03/10/docbook-memo/

xsltproc的常用参数

xsltproc有许多实用的参数。有两种方法指定参数。一是在执行xsltproc时通过--stringparam参数来设置,如:

xsltproc --stringparam html.stylesheet "style.css" -o index.html chunk.xsl index.xml

另外一种方法就是写到XSL文件中,格式如下:

<xsl:param name="chunker.output.encoding" select="'UTF-8'"/>

常用参数有:

  • html.stylesheet,设置生成的网页所用的CSS样式表。
  • section.autolabel,设置为1可以对章节标题自动编号
  • section.label.includes.component.label,默认情况下节的编号中不包括章的编号,如“第二章->1->1.1”,将此项设置为1,即可让节编号中包含章编号,如“第二章->2.1->2.1.1”。
  • section.autolabel.max.depth,设置章节标题自动编号的深度
  • chunker.output.encoding,设置chunk输出时使用的字符编码

使用catalog

catalog有很多作用,最重要的就是

  • 可以给引用的xsl设置缩略名称
  • 可以指定DTD在本地的位置

下面是个catalog.xml的例子:

<?xml version="1.0"?>
<catalog  xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

    <!-- define public DTD -->
    <public
        publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
        uri="file:///usr/share/sgml/docbook/xml-dtd-4.1.2-1.0-30.1/docbookx.dtd" />

    <!-- XSL location -->
    <uri
        name="html/docbook.xsl"
        uri="/usr/share/sgml/docbook/xsl-stylesheets-1.69.1-5.1/html/docbook.xsl" />
    <uri
        name="html/chunk.xsl"
        uri="/usr/share/sgml/docbook/xsl-stylesheets-1.69.1-5.1/html/chunk.xsl" />

</catalog>

这里首先将 "-//OASIS//DTD DocBook XML V4.1.2//EN" 这个id定义到了本地, 这样在xsl中引用这个id所指的DTD时,xsltproc就会使用这里指定的本地DTD,而不用去Internet上去获取。

接下来定义了两个xsl别名:html/docbook.xsl指向 /usr/share/..../docbook.xsl, html/chunk.xsl 指向 /usr/share/..../chunk.xsl。 这样在我们自定义的xsl文件中要包含上述xsl时,只需这样写:

<xsl:import href="html/chunk.xsl"/>

而不用写成繁琐的

<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets-1.69.1-5.1/html/chunk.xsl"/>

这样做的好处是,可以将样式表的安装路径统一在catalog.xml中规定,不用在每个xsl中重复书写完整路径了。 以后万一要升级样式表,也只需修改catalog.xml中的定义即可,不用去每个xsl中修改。

那么如何使用catalog呢?只需将它设置到环境变量 XML_CATALOG_FILES 中即可。 或者也可以这样:

XML_CATALOG_FILES=catalog.xml xsltproc -o index.html chunk.xsl index.xml

你可能感兴趣的:(http)