param(参数)在xslt转换样式表中用得很多,它的主要作用相当于函数中的参数一样,在xslt样式表中做为template(模板)过程的参数。在模板处理时,可以指定参数值,从而改变模板过程输出的结果。你不太明白没关系,只要知道,在DocBook的转换中(即将XML转换为其它格式),通过指定参数就可以改变输出结果。在解开的docbook-xslt压缩包中的doc子目录下就有详细的参数说明,详细列出了在xslt中用到的参数的说明。在这里只介绍我用过的一些参数,请参阅xslt的文档以了解更多关于参数的信息,从而调整你的输出结果。
参数可以在命令行中指定
为什么叫驱动样式表,因为它不是真正包含转换信息的xslt样式表,而是一个封装。比如我们要将XML文档转换成多个HTML文件,那么我们就要用过下载的docbook-xslt中的html/chunk.xsl转换样式表。可是我们还有一些特殊的要求,因此要用到参数。因为docbokk样式表是一个标准,所以不能修改它,那么我们可以自已写一个样式表,在其中调用它,然后再加入我们要用到的参数即可。因此它的作用只是起到一个引导的作用,所以叫驱动样式表。
下面是我为了生成本教程所用到的驱动样式表内容,看不懂没关系,一会儿我们就会讲到它:
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:import href="../docbook-xsl/html/chunk.xsl"/> <xsl:param name="saxon.character.representation" select="'native'"/> <xsl:param name="l10n.gentext.language" select="'zh_cn'"/> <xsl:param name="admon.graphics" select="1"/> <xsl:param name="base.dir" select="'html/'"/> <xsl:param name="chunker.output.indent" select="'yes'"/> <xsl:param name="section.autolabel" select="1"/> <xsl:param name="section.label.includes.component.label" select="1"/> <xsl:param name="html.stylesheet" select="'docbook.css'"/> <xsl:param name="table.borders.with.css" select="1"/> <xsl:param name="use.extensions" select="1"/> <xsl:param name="tablecolumns.extension" select="1"/> <xsl:param name="bibliography.numbered" select="1"></xsl:param> <xsl:param name="generate.toc"> appendix toc article/appendix nop article toc,title book toc,title chapter toc,title part toc,title preface toc,title qandadiv toc qandaset toc reference toc,title sect1 toc sect2 toc sect3 toc sect4 toc sect5 toc section toc set toc,title </xsl:param> </xsl:stylesheet>
请注意前面第4行的 xsl:import命令,它将导入真正用来处理XML的xsl文件名,请按你实际的目录情况进行修改。