<?xml version="1.0" encoding="ASCII"?><!--This file was created automatically by html2xhtml--><!--from the HTML stylesheets.--><xsl:stylesheetxmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns="http://www.w3.org/1999/xhtml"version="1.0"><!-- ******************************************************************** $Id: html.xsl 8556 2009-12-11 00:05:45Z bobstayton $ ******************************************************************** This file is part of the XSL DocBook Stylesheet distribution. See ../README or http://docbook.sf.net/release/xsl/current/ for copyright and other information. ******************************************************************** --><!-- These variables set the align attribute value for HTML output based on the writing-mode specified in the gentext file for the document's lang. --><xsl:variablename="direction.align.start"><xsl:choose><xsl:whentest="starts-with($writing.mode, 'lr')">left</xsl:when><xsl:whentest="starts-with($writing.mode, 'rl')">right</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:variable><xsl:variablename="direction.align.end"><xsl:choose><xsl:whentest="starts-with($writing.mode, 'lr')">right</xsl:when><xsl:whentest="starts-with($writing.mode, 'rl')">left</xsl:when><xsl:otherwise>right</xsl:otherwise></xsl:choose></xsl:variable><xsl:variablename="direction.mode"><xsl:choose><xsl:whentest="starts-with($writing.mode, 'lr')">ltr</xsl:when><xsl:whentest="starts-with($writing.mode, 'rl')">rtl</xsl:when><xsl:otherwise>ltr</xsl:otherwise></xsl:choose></xsl:variable><!-- The generate.html.title template is currently used for generating HTML --><!-- "title" attributes for some inline elements only, but not for any --><!-- block elements. It is called in eleven places in the inline.xsl --><!-- file. But it's called by all the inline.* templates (e.g., --><!-- inline.boldseq), which in turn are called by other (element) --><!-- templates, so it results, currently, in supporting generation of the --><!-- HTML "title" attribute for a total of about 92 elements. --><!-- You can use mode="html.title.attribute" to get a title for --><!-- an element specified by a param, including targets of cross references. --><xsl:templatename="generate.html.title"><xsl:apply-templatesselect="."mode="html.title.attribute"/></xsl:template><!-- Generate a title attribute for the context node --><xsl:templatematch="*"mode="html.title.attribute"><xsl:variablename="is.title"><xsl:call-templatename="gentext.template.exists"><xsl:with-paramname="context"select="'title'"/><xsl:with-paramname="name"select="local-name(.)"/><xsl:with-paramname="lang"><xsl:call-templatename="l10n.language"/></xsl:with-param></xsl:call-template></xsl:variable><xsl:variablename="is.title-numbered"><xsl:call-templatename="gentext.template.exists"><xsl:with-paramname="context"select="'title-numbered'"/><xsl:with-paramname="name"select="local-name(.)"/><xsl:with-paramname="lang"><xsl:call-templatename="l10n.language"/></xsl:with-param></xsl:call-template></xsl:variable><xsl:variablename="is.title-unnumbered"><xsl:call-templatename="gentext.template.exists"><xsl:with-paramname="context"select="'title-unnumbered'"/><xsl:with-paramname="name"select="local-name(.)"/><xsl:with-paramname="lang"><xsl:call-templatename="l10n.language"/></xsl:with-param></xsl:call-template></xsl:variable><xsl:variablename="has.title.markup"><xsl:apply-templatesselect="."mode="title.markup"><xsl:with-paramname="verbose"select="0"/></xsl:apply-templates></xsl:variable><xsl:variablename="gentext.title"><xsl:iftest="$has.title.markup != '???TITLE???' and ($is.title != 0 or $is.title-numbered != 0 or $is.title-unnumbered != 0)"><xsl:apply-templatesselect="."mode="object.title.markup.textonly"/></xsl:if></xsl:variable><xsl:choose><xsl:whentest="string-length($gentext.title) != 0"><xsl:attributename="title"><xsl:value-ofselect="$gentext.title"/></xsl:attribute></xsl:when><!-- Fall back to alt if available --><xsl:whentest="alt"><xsl:attributename="title"><xsl:value-ofselect="normalize-space(alt)"/></xsl:attribute></xsl:when></xsl:choose></xsl:template><xsl:templatematch="qandaentry"mode="html.title.attribute"><xsl:apply-templatesselect="question"mode="html.title.attribute"/></xsl:template><xsl:templatematch="question"mode="html.title.attribute"><xsl:variablename="label.text"><xsl:apply-templatesselect="."mode="qanda.label"/></xsl:variable><xsl:choose><xsl:whentest="string-length($label.text) != 0"><xsl:attributename="title"><xsl:value-ofselect="$label.text"/></xsl:attribute></xsl:when><!-- Fall back to alt if available --><xsl:whentest="alt"><xsl:attributename="title"><xsl:value-ofselect="normalize-space(alt)"/></xsl:attribute></xsl:when></xsl:choose></xsl:template><xsl:templatename="dir"><xsl:paramname="inherit"select="0"/><xsl:variablename="dir"><xsl:choose><xsl:whentest="@dir"><xsl:value-ofselect="@dir"/></xsl:when><xsl:whentest="$inherit != 0"><xsl:value-ofselect="ancestor::*/@dir[1]"/></xsl:when></xsl:choose></xsl:variable><xsl:iftest="$dir != ''"><xsl:attributename="dir"><xsl:value-ofselect="$dir"/></xsl:attribute></xsl:if></xsl:template><xsl:templatename="anchor"><xsl:paramname="node"select="."/><xsl:paramname="conditional"select="1"/><xsl:variablename="id"><xsl:call-templatename="object.id"><xsl:with-paramname="object"select="$node"/></xsl:call-template></xsl:variable><xslo:ifxmlns:xslo="http://www.w3.org/1999/XSL/Transform"test="not($node[parent::blockquote])"><xsl:iftest="$conditional = 0 or $node/@id or $node/@xml:id"><aid="{$id}"/></xsl:if></xslo:if></xsl:template><xsl:templatename="href.target.uri"><xsl:paramname="context"select="."/><xsl:paramname="object"select="."/><xsl:text>#</xsl:text><xsl:call-templatename="object.id"><xsl:with-paramname="object"select="$object"/></xsl:call-template></xsl:template><xsl:templatename="href.target"><xsl:paramname="context"select="."/><xsl:paramname="object"select="."/><xsl:text>#</xsl:text><xsl:call-templatename="object.id"><xsl:with-paramname="object"select="$object"/></xsl:call-template></xsl:template><xsl:templatename="href.target.with.base.dir"><xsl:paramname="context"select="."/><xsl:paramname="object"select="."/><xsl:iftest="$manifest.in.base.dir = 0"><xsl:value-ofselect="$base.dir"/></xsl:if><xsl:call-templatename="href.target"><xsl:with-paramname="context"select="$context"/><xsl:with-paramname="object"select="$object"/></xsl:call-template></xsl:template><xsl:templatename="dingbat"><xsl:paramname="dingbat">bullet</xsl:param><xsl:call-templatename="dingbat.characters"><xsl:with-paramname="dingbat"select="$dingbat"/></xsl:call-template></xsl:template><xsl:templatename="dingbat.characters"><!-- now that I'm using the real serializer, all that dingbat malarky --><!-- isn't necessary anymore... --><xsl:paramname="dingbat">bullet</xsl:param><xsl:choose><xsl:whentest="$dingbat='bullet'">&#8226;</xsl:when><xsl:whentest="$dingbat='copyright'">&#169;</xsl:when><xsl:whentest="$dingbat='trademark'">&#8482;</xsl:when><xsl:whentest="$dingbat='trade'">&#8482;</xsl:when><xsl:whentest="$dingbat='registered'">&#174;</xsl:when><xsl:whentest="$dingbat='service'">(SM)</xsl:when><xsl:whentest="$dingbat='nbsp'">&#160;</xsl:when><xsl:whentest="$dingbat='ldquo'">&#8220;</xsl:when><xsl:whentest="$dingbat='rdquo'">&#8221;</xsl:when><xsl:whentest="$dingbat='lsquo'">&#8216;</xsl:when><xsl:whentest="$dingbat='rsquo'">&#8217;</xsl:when><xsl:whentest="$dingbat='em-dash'">&#8212;</xsl:when><xsl:whentest="$dingbat='mdash'">&#8212;</xsl:when><xsl:whentest="$dingbat='en-dash'">&#8211;</xsl:when><xsl:whentest="$dingbat='ndash'">&#8211;</xsl:when><xsl:otherwise><xsl:text>&#8226;</xsl:text></xsl:otherwise></xsl:choose></xsl:template><xsl:templatename="id.warning"><xsl:iftest="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*"><xsl:variablename="title"><xsl:choose><xsl:whentest="title"><xsl:value-ofselect="title[1]"/></xsl:when><xsl:whentest="substring(local-name(*[1]), string-length(local-name(*[1])-3) = 'info') and *[1]/title"><xsl:value-ofselect="*[1]/title[1]"/></xsl:when><xsl:whentest="refmeta/refentrytitle"><xsl:value-ofselect="refmeta/refentrytitle"/></xsl:when><xsl:whentest="refnamediv/refname"><xsl:value-ofselect="refnamediv/refname[1]"/></xsl:when></xsl:choose></xsl:variable><xsl:message><xsl:text>ID recommended on </xsl:text><xsl:value-ofselect="local-name(.)"/><xsl:iftest="$title != ''"><xsl:text>: </xsl:text><xsl:choose><xsl:whentest="string-length($title) &gt; 40"><xsl:value-ofselect="substring($title,1,40)"/><xsl:text>...</xsl:text></xsl:when><xsl:otherwise><xsl:value-ofselect="$title"/></xsl:otherwise></xsl:choose></xsl:if></xsl:message></xsl:if></xsl:template><xsl:templatename="generate.class.attribute"><xsl:paramname="class"select="local-name(.)"/><xsl:apply-templatesselect="."mode="class.attribute"><xsl:with-paramname="class"select="$class"/></xsl:apply-templates></xsl:template><xsl:templatematch="*"mode="class.attribute"><xsl:paramname="class"select="local-name(.)"/><!-- permit customization of class attributes --><!-- Use element name by default --><xsl:attributename="class"><xsl:apply-templatesselect="."mode="class.value"><xsl:with-paramname="class"select="$class"/></xsl:apply-templates></xsl:attribute></xsl:template><xsl:templatematch="*"mode="class.value"><xsl:paramname="class"select="local-name(.)"/><!-- permit customization of class value only --><!-- Use element name by default --><xsl:value-ofselect="$class"/></xsl:template><!-- Apply common attributes such as class, lang, dir --><xsl:templatename="common.html.attributes"><xsl:paramname="inherit"select="0"/><xsl:paramname="class"select="local-name(.)"/><xsl:apply-templatesselect="."mode="common.html.attributes"><xsl:with-paramname="class"select="$class"/><xsl:with-paramname="inherit"select="$inherit"/></xsl:apply-templates></xsl:template><xsl:templatematch="*"mode="common.html.attributes"><xsl:paramname="class"select="local-name(.)"/><xsl:paramname="inherit"select="0"/><xsl:call-templatename="generate.html.lang"/><xsl:call-templatename="dir"><xsl:with-paramname="inherit"select="$inherit"/></xsl:call-template><xsl:apply-templatesselect="."mode="class.attribute"><xsl:with-paramname="class"select="$class"/></xsl:apply-templates><xsl:call-templatename="generate.html.title"/></xsl:template><!-- Apply common attributes not including class --><xsl:templatename="locale.html.attributes"><xsl:apply-templatesselect="."mode="locale.html.attributes"/></xsl:template><xsl:templatematch="*"mode="locale.html.attributes"><xsl:call-templatename="generate.html.lang"/><xsl:call-templatename="dir"/><xsl:call-templatename="generate.html.title"/></xsl:template><!-- Pass through any lang attributes --><xsl:templatename="generate.html.lang"><xsl:apply-templatesselect="."mode="html.lang.attribute"/></xsl:template><xsl:templatematch="*"mode="html.lang.attribute"><!-- match the attribute name to the output type --><xsl:choose><xsl:whentest="@lang and $stylesheet.result.type = 'html'"><xsl:attributename="lang"><xsl:value-ofselect="@lang"/></xsl:attribute></xsl:when><xsl:whentest="@lang and $stylesheet.result.type = 'xhtml'"><xsl:attributename="xml:lang"><xsl:value-ofselect="@lang"/></xsl:attribute></xsl:when><xsl:whentest="@xml:lang and $stylesheet.result.type = 'html'"><xsl:attributename="lang"><xsl:value-ofselect="@xml:lang"/></xsl:attribute></xsl:when><xsl:whentest="@xml:lang and $stylesheet.result.type = 'xhtml'"><xsl:attributename="xml:lang"><xsl:value-ofselect="@xml:lang"/></xsl:attribute></xsl:when></xsl:choose></xsl:template><!-- ==================================================================== --><!-- Insert link to css or insert literal CSS in head element --><xsl:templatename="generate.css"><xsl:choose><xsl:whentest="$generate.css.header = 0"><xsl:call-templatename="generate.css.links"/></xsl:when><xsl:otherwise><xsl:call-templatename="generate.css.headers"/></xsl:otherwise></xsl:choose></xsl:template><xsl:templatename="generate.css.headers"><xsl:call-templatename="generate.default.css.header"/><xsl:call-templatename="generate.custom.css.header"/></xsl:template><xsl:templatename="generate.default.css.header"><xsl:iftest="$make.clean.html != 0 and $docbook.css.source != ''"><!-- Select default file relative to stylesheet --><xsl:variablename="css.node"select="document($docbook.css.source)/*[1]"/><xsl:call-templatename="output.css.header"><xsl:with-paramname="css.node"select="$css.node"/></xsl:call-template></xsl:if></xsl:template><xsl:templatename="generate.custom.css.header"><xsl:iftest="$custom.css.source != ''"><!-- Select custom file relative to document --><xsl:variablename="css.node"select="document($custom.css.source,.)/*[1]"/><xsl:call-templatename="output.css.header"><xsl:with-paramname="css.node"select="$css.node"/></xsl:call-template></xsl:if></xsl:template><xsl:templatename="output.css.header"><xsl:paramname="css.node"/><xsl:choose><xsl:whentest="count($css.node) = 0"></xsl:when><xsl:otherwise><styletype="text/css"><xsl:copy-ofselect="$css.node/text()"/></style></xsl:otherwise></xsl:choose></xsl:template><!-- ==================================================================== --><xsl:templatename="generate.css.links"><xsl:call-templatename="generate.default.css.link"/><xsl:call-templatename="generate.custom.css.link"/></xsl:template><xsl:templatename="generate.default.css.link"><xsl:iftest="$make.clean.html != 0 and $docbook.css.link != 0 and $docbook.css.source != ''"><xsl:variablename="filename"><xsl:call-templatename="css.output.filename"><xsl:with-paramname="src"select="$docbook.css.source"/></xsl:call-template></xsl:variable><xsl:call-templatename="make.css.link"><xsl:with-paramname="css.filename"select="$filename"/></xsl:call-template></xsl:if></xsl:template><xsl:templatename="generate.custom.css.link"><xsl:iftest="$custom.css.source != ''"><xsl:variablename="filename"><xsl:call-templatename="css.output.filename"><xsl:with-paramname="src"select="$custom.css.source"/></xsl:call-template></xsl:variable><xsl:call-templatename="make.css.link"><xsl:with-paramname="css.filename"select="$filename"/></xsl:call-template></xsl:if></xsl:template><!-- a CSS link reference must take into account the relative path to a CSS file when chunked HTML is output to more than one directory --><xsl:templatename="make.css.link"><xsl:paramname="css.filename"select="''"/><xsl:variablename="href.to.uri"select="$css.filename"/><xsl:variablename="href.from.uri"><xsl:call-templatename="href.target.uri"><xsl:with-paramname="object"select="."/></xsl:call-template></xsl:variable><xsl:variablename="href.to"><xsl:call-templatename="trim.common.uri.paths"><xsl:with-paramname="uriA"select="$href.to.uri"/><xsl:with-paramname="uriB"select="$href.from.uri"/><xsl:with-paramname="return"select="'A'"/></xsl:call-template></xsl:variable><xsl:variablename="href.from"><xsl:call-templatename="trim.common.uri.paths"><xsl:with-paramname="uriA"select="$href.to.uri"/><xsl:with-paramname="uriB"select="$href.from.uri"/><xsl:with-paramname="return"select="'B'"/></xsl:call-template></xsl:variable><xsl:variablename="depth"><xsl:call-templatename="count.uri.path.depth"><xsl:with-paramname="filename"select="$href.from"/></xsl:call-template></xsl:variable><xsl:variablename="href"><xsl:call-templatename="copy-string"><xsl:with-paramname="string"select="'../'"/><xsl:with-paramname="count"select="$depth"/></xsl:call-template><xsl:value-ofselect="$href.to"/></xsl:variable><xsl:iftest="string-length($css.filename) != 0"><linkrel="stylesheet"type="text/css"href="{$href}"/></xsl:if></xsl:template><!-- ==================================================================== --><xsl:templatename="generate.css.files"><xsl:call-templatename="generate.default.css.file"/><xsl:call-templatename="generate.custom.css.file"/></xsl:template><xsl:templatename="generate.default.css.file"><xsl:iftest="$make.clean.html != 0 and $generate.css.header = 0 and $docbook.css.source != ''"><!-- Select default file relative to stylesheet --><xsl:variablename="css.node"select="document($docbook.css.source)/*[1]"/><xsl:call-templatename="generate.css.file"><xsl:with-paramname="src"select="$docbook.css.source"/><xsl:with-paramname="css.node"select="$css.node"/></xsl:call-template></xsl:if></xsl:template><xsl:templatename="generate.custom.css.file"><xsl:iftest="$custom.css.source != '' and $generate.css.header = 0"><!-- Select custom file relative to document --><xsl:variablename="css.node"select="document($custom.css.source,.)/*[1]"/><xsl:call-templatename="generate.css.file"><xsl:with-paramname="src"select="$custom.css.source"/><xsl:with-paramname="css.node"select="$css.node"/></xsl:call-template></xsl:if></xsl:template><xsl:templatename="generate.css.file"><xsl:paramname="css.node"/><xsl:paramname="src"select="''"/><xsl:variablename="css.text"select="$css.node/text()"/><xsl:choose><xsl:whentest="count($css.node) = 0"><xsl:message><xsl:text>ERROR: no root element for CSS source file'</xsl:text><xsl:value-ofselect="$src"/><xsl:text>'.</xsl:text></xsl:message></xsl:when><xsl:otherwise><xsl:variablename="filename"><xsl:call-templatename="css.output.pathname"><xsl:with-paramname="src"select="$src"/><xsl:with-paramname="content"select="$css.node"/></xsl:call-template></xsl:variable><xsl:call-templatename="write.text.chunk"><xsl:with-paramname="filename"select="$filename"/><xsl:with-paramname="content"select="$css.text"/></xsl:call-template></xsl:otherwise></xsl:choose></xsl:template><xsl:templatename="css.output.filename"><xsl:paramname="content"/><xsl:paramname="src"select="''"/><xsl:variablename="candidate"><xsl:choose><xsl:whentest="string-length($src) = 0"><xsl:message><xsl:text>ERROR: missing CSS input filename.</xsl:text></xsl:message></xsl:when><xsl:whentest="substring($src,string-length($src)-3) = '.xml'"><xsl:value-ofselect="substring($src, 1, string-length($src) - 4)"/></xsl:when><xsl:otherwise><xsl:value-ofselect="$src"/></xsl:otherwise></xsl:choose></xsl:variable><xsl:value-ofselect="$candidate"/></xsl:template><xsl:templatename="css.output.pathname"><xsl:paramname="content"/><xsl:paramname="src"select="''"/><xsl:variablename="file"><xsl:call-templatename="css.output.filename"><xsl:with-paramname="content"select="$content"/><xsl:with-paramname="src"select="$src"/></xsl:call-template></xsl:variable><xsl:variablename="path"select="concat($base.dir, $file)"/><xsl:value-ofselect="$path"/></xsl:template></xsl:stylesheet>