diff options
| author | William Harrington <kb0iic@berzerkula.org> | 2014-11-27 16:29:31 -0600 | 
|---|---|---|
| committer | William Harrington <kb0iic@berzerkula.org> | 2014-11-27 16:29:31 -0600 | 
| commit | 7df987a652b93d55dd8eca363706d3bacc469b55 (patch) | |
| tree | 17f84ce0fee76a3a0476b714eae09486ab2470e6 /stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base | |
Diffstat (limited to 'stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base')
57 files changed, 29139 insertions, 0 deletions
diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/admon.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/admon.xsl.svn-base new file mode 100644 index 0000000..9a73ed6 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/admon.xsl.svn-base @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:template match="*" mode="admon.graphic.width"> +  <xsl:param name="node" select="."/> +  <xsl:text>25</xsl:text> +</xsl:template> + +<xsl:template match="note|important|warning|caution|tip"> +  <xsl:choose> +    <xsl:when test="$admon.graphics != 0"> +      <xsl:call-template name="graphical.admonition"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="nongraphical.admonition"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="admon.graphic"> +  <xsl:param name="node" select="."/> +  <xsl:value-of select="$admon.graphics.path"/> +  <xsl:choose> +    <xsl:when test="local-name($node)='note'">note</xsl:when> +    <xsl:when test="local-name($node)='warning'">warning</xsl:when> +    <xsl:when test="local-name($node)='caution'">caution</xsl:when> +    <xsl:when test="local-name($node)='tip'">tip</xsl:when> +    <xsl:when test="local-name($node)='important'">important</xsl:when> +    <xsl:otherwise>note</xsl:otherwise> +  </xsl:choose> +  <xsl:value-of select="$admon.graphics.extension"/> +</xsl:template> + +<xsl:template name="graphical.admonition"> +  <xsl:variable name="admon.type"> +    <xsl:choose> +      <xsl:when test="local-name(.)='note'">Note</xsl:when> +      <xsl:when test="local-name(.)='warning'">Warning</xsl:when> +      <xsl:when test="local-name(.)='caution'">Caution</xsl:when> +      <xsl:when test="local-name(.)='tip'">Tip</xsl:when> +      <xsl:when test="local-name(.)='important'">Important</xsl:when> +      <xsl:otherwise>Note</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="alt"> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key" select="$admon.type"/> +    </xsl:call-template> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$admon.style != ''"> +      <xsl:attribute name="style"> +        <xsl:value-of select="$admon.style"/> +      </xsl:attribute> +    </xsl:if> + +    <table border="0"> +      <xsl:attribute name="summary"> +        <xsl:value-of select="$admon.type"/> +        <xsl:if test="title|info/title"> +          <xsl:text>: </xsl:text> +          <xsl:value-of select="(title|info/title)[1]"/> +        </xsl:if> +      </xsl:attribute> +      <tr> +        <td rowspan="2" align="center" valign="top"> +          <xsl:attribute name="width"> +            <xsl:apply-templates select="." mode="admon.graphic.width"/> +          </xsl:attribute> +          <img alt="[{$alt}]"> +            <xsl:attribute name="src"> +              <xsl:call-template name="admon.graphic"/> +            </xsl:attribute> +          </img> +        </td> +        <th align="left"> +          <xsl:call-template name="anchor"/> +          <xsl:if test="$admon.textlabel != 0 or title or info/title"> +            <xsl:apply-templates select="." mode="object.title.markup"/> +          </xsl:if> +        </th> +      </tr> +      <tr> +        <td align="left" valign="top"> +          <xsl:apply-templates/> +        </td> +      </tr> +    </table> +  </div> +</xsl:template> + +<xsl:template name="nongraphical.admonition"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$admon.style"> +      <xsl:attribute name="style"> +        <xsl:value-of select="$admon.style"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$admon.textlabel != 0 or title or info/title"> +      <h3 class="title"> +        <xsl:call-template name="anchor"/> +        <xsl:apply-templates select="." mode="object.title.markup"/> +      </h3> +    </xsl:if> + +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="note/title"/> +<xsl:template match="important/title"/> +<xsl:template match="warning/title"/> +<xsl:template match="caution/title"/> +<xsl:template match="tip/title"/> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/annotations.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/annotations.xsl.svn-base new file mode 100644 index 0000000..3e137e8 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/annotations.xsl.svn-base @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<xsl:template name="add.annotation.links"> +  <xsl:param name="scripts" select="normalize-space($annotation.js)"/> +  <xsl:choose> +    <xsl:when test="contains($scripts, ' ')"> +      <script type="text/javascript" src="{substring-before($scripts, ' ')}"/> +      <xsl:call-template name="add.annotation.links"> +        <xsl:with-param name="scripts" select="substring-after($scripts, ' ')"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <script type="text/javascript" src="{$scripts}"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="annotation"/> + +<xsl:template name="apply-annotations"> +  <xsl:if test="$annotation.support != 0"> +  <!-- do any annotations apply to the context node? --> +  <xsl:variable name="id" select="(@id|@xml:id)[1]"/> + +  <xsl:variable name="aids"> +    <xsl:for-each select="//annotation"> +      <xsl:if test="@annotates=$id                     or starts-with(@annotates, concat($id, ' '))                     or contains(@annotates, concat(' ', $id, ' '))                     or substring(@annotates, string-length(@annotates)-3)                        = concat(' ', $id)"> +        <xsl:value-of select="generate-id()"/> +        <xsl:text> </xsl:text> +      </xsl:if> +    </xsl:for-each> +    <xsl:if test="normalize-space(@annotations) != ''"> +      <xsl:call-template name="annotations-pointed-to"> +        <xsl:with-param name="annotations" select="normalize-space(@annotations)"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> + +  <xsl:if test="$aids != ''"> +    <xsl:call-template name="apply-annotations-by-gid"> +      <xsl:with-param name="gids" select="normalize-space($aids)"/> +    </xsl:call-template> +  </xsl:if> +  </xsl:if> +</xsl:template> + +<xsl:template name="annotations-pointed-to"> +  <xsl:param name="annotations"/> +  <xsl:choose> +    <xsl:when test="contains($annotations, ' ')"> +      <xsl:variable name="a" select="key('id', substring-before($annotations, ' '))"/> +      <xsl:if test="$a"> +        <xsl:value-of select="generate-id($a)"/> +        <xsl:text> </xsl:text> +      </xsl:if> +      <xsl:call-template name="annotations-pointed-to"> +        <xsl:with-param name="annotations" select="substring-after($annotations, ' ')"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="a" select="key('id', $annotations)"/> +      <xsl:if test="$a"> +        <xsl:value-of select="generate-id($a)"/> +        <xsl:text> </xsl:text> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="apply-annotations-by-gid"> +  <xsl:param name="gids"/> + +  <xsl:choose> +    <xsl:when test="contains($gids, ' ')"> +      <xsl:variable name="gid" select="substring-before($gids, ' ')"/> +      <xsl:apply-templates select="key('gid', $gid)" mode="annotation-inline"/> +      <xsl:call-template name="apply-annotations-by-gid"> +        <xsl:with-param name="gids" select="substring-after($gids, ' ')"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="key('gid', $gids)" mode="annotation-inline"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="annotation" mode="annotation-inline"> +  <xsl:variable name="title"> +    <xsl:choose> +      <xsl:when test="title"> +        <xsl:value-of select="title"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:text>[Annotation #</xsl:text> +        <xsl:number count="annotation" level="any" format="1"/> +        <xsl:text>]</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <a id="anch-{generate-id(.)}" href="#annot-{generate-id(.)}" title="{$title}"> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:attribute name="onClick"> +      <xsl:text>popup_</xsl:text> +      <xsl:value-of select="generate-id(.)"/> +      <xsl:text>.showPopup('anch-</xsl:text> +      <xsl:value-of select="generate-id(.)"/> +      <xsl:text>'); return false;</xsl:text> +    </xsl:attribute> +    <img src="{$annotation.graphic.open}" border="0" alt="{$title}"/> +  </a> +</xsl:template> + +<xsl:template match="annotation" mode="annotation-popup"> +  <div class="annotation-nocss"> +    <p> +      <a id="annot-{generate-id(.)}"/> +      <xsl:text>Annotation #</xsl:text> +      <xsl:number count="annotation" level="any" format="1"/> +      <xsl:text>:</xsl:text> +    </p> +  </div> + +  <div id="popup-{generate-id(.)}" class="annotation-popup"> +    <xsl:if test="string-length(.) > 300"> +      <xsl:attribute name="style">width:400px</xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="annotation-title"/> +    <div class="annotation-body"> +      <xsl:apply-templates select="*[local-name(.) != 'title']"/> +    </div> +    <div class="annotation-close"> +      <a href="#" onclick="popup_{generate-id(.)}.hidePopup();return false;"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <img src="{$annotation.graphic.close}" alt="X" border="0"/> +      </a> +    </div> +  </div> +</xsl:template> + +<xsl:template name="annotation-title"> +  <div class="annotation-title"> +    <xsl:choose> +      <xsl:when test="title"> +        <xsl:apply-templates select="title/node()"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:text>Annotation</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </div> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kimber.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kimber.xsl.svn-base new file mode 100644 index 0000000..a25abf8 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kimber.xsl.svn-base @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="k" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen.  --> +<!-- ==================================================================== --> +<!--   *** THIS MODULE ONLY WORKS WITH SAXON 6 OR SAXON 8 ***             --> +<!-- ==================================================================== --> + + +<xsl:include href="../common/autoidx-kimber.xsl"/> + +<!-- Java sort apparently works only on lang part, not country --> +<xsl:param name="sort.lang"> +  <xsl:choose> +    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '-')"> +      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '-')"/> +    </xsl:when> +    <xsl:when test="contains(concat(/*/@lang, /*/@xml:lang), '_')"> +      <xsl:value-of select="substring-before(concat(/*/@lang, /*/@xml:lang), '_')"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="concat(/*/@lang, /*/@xml:lang)"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:param> + +<xsl:template name="generate-kimber-index"> +  <xsl:param name="scope" select="NOTANODE"/> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> +  <xsl:if test="not(contains($vendor, 'SAXON '))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text> +      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="not(function-available('k:getIndexGroupKey'))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text> +      <xsl:text>Innodata Isogen  +Java extensions for </xsl:text> +      <xsl:text>internationalized indexes.  +Install those </xsl:text> +      <xsl:text>extensions, or use a different index method. +</xsl:text> +      <xsl:text>For more information, see: +</xsl:text> +      <xsl:text>http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:variable name="role"> +    <xsl:if test="$index.on.role != 0"> +      <xsl:value-of select="@role"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="type"> +    <xsl:if test="$index.on.type != 0"> +      <xsl:value-of select="@type"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="terms" select="//indexterm[count(.|key('k-group', k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/> + +  <xsl:variable name="alphabetical" select="$terms[not(starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))),                 '#NUMERIC'                 ))]"/> + +  <xsl:variable name="others" select="$terms[starts-with(                 k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))),                 '#NUMERIC'                 )]"/> + +  <div class="index"> +    <xsl:if test="$others"> +      <div class="indexdev"> +        <h3> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key" select="'index symbols'"/> +          </xsl:call-template> +        </h3> +        <dl> +          <xsl:apply-templates select="$others" mode="index-symbol-div"> +            <xsl:with-param name="scope" select="$scope"/> +            <xsl:with-param name="role" select="$role"/> +            <xsl:with-param name="type" select="$type"/> +            <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                         k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))))"/> +          </xsl:apply-templates> +        </dl> +      </div> +    </xsl:if> + +    <xsl:apply-templates select="$alphabetical" mode="index-div-kimber"> +      <xsl:with-param name="scope" select="$scope"/> +      <xsl:with-param name="role" select="$role"/> +      <xsl:with-param name="type" select="$type"/> +      <xsl:sort lang="{$sort.lang}" select="k:getIndexGroupSortKey(concat(/*/@lang, /*/@xml:lang),                      k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))))"/> +    </xsl:apply-templates> +  </div> + +</xsl:template> + +<xsl:template match="indexterm" mode="index-div-kimber"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="k:getIndexGroupKey(concat(/*/@lang, /*/@xml:lang), normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))"/> + +  <xsl:variable name="label" select="k:getIndexGroupLabel(concat(/*/@lang, /*/@xml:lang), $key)"/> + +  <xsl:if test="key('k-group', $label)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]"> +    <div class="indexdiv"> +      <h3> +        <xsl:value-of select="$label"/> +      </h3> +      <dl> +        <xsl:apply-templates select="key('k-group', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                             [1])=1]" mode="index-primary"> +          <xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))" lang="{$sort.lang}"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +        </xsl:apply-templates> +      </dl> +    </div> +  </xsl:if> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kosek.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kosek.xsl.svn-base new file mode 100644 index 0000000..8fc2192 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-kosek.xsl.svn-base @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="urn:cz-kosek:functions:index" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:func="http://exslt.org/functions" xmlns:k="http://www.isogen.com/functions/com.isogen.saxoni18n.Saxoni18nService" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="func exslt" exclude-result-prefixes="func exslt i l k" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- The "kosek" method contributed by Jirka Kosek. --> + +<xsl:include href="../common/autoidx-kosek.xsl"/> + +<xsl:template name="generate-kosek-index"> +  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> +  <xsl:if test="contains($vendor, 'libxslt')"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text> +      <xsl:text>work with the xsltproc XSLT processor.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="contains($vendor, 'Saxonica')"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text> +      <xsl:text>work with the Saxon 8 XSLT processor.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="not(function-available('exslt:node-set') or                     function-available('exslt:nodeSet'))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text> +      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text> +      <xsl:text>has it, or use a different index method.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="not(function-available('i:group-index'))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method requires the +</xsl:text> +      <xsl:text>index extension functions be imported: +</xsl:text> +      <xsl:text>  xsl:import href="common/autoidx-kosek.xsl"</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:variable name="role"> +    <xsl:if test="$index.on.role != 0"> +      <xsl:value-of select="@role"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="type"> +    <xsl:if test="$index.on.type != 0"> +      <xsl:value-of select="@type"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="terms" select="//indexterm[count(.|key('group-code', i:group-index(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1 and not(@class = 'endofrange')]"/> + +  <div class="index"> +    <xsl:apply-templates select="$terms" mode="index-div-kosek"> +      <xsl:with-param name="scope" select="$scope"/> +      <xsl:with-param name="role" select="$role"/> +      <xsl:with-param name="type" select="$type"/> +      <xsl:sort select="i:group-index(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))" data-type="number"/> +    </xsl:apply-templates> +  </div> +</xsl:template> + +<xsl:template match="indexterm" mode="index-div-kosek"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="i:group-index(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))"/> + +  <xsl:variable name="lang"> +    <xsl:call-template name="l10n.language"/> +  </xsl:variable> + +  <xsl:if test="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]"> +    <div class="indexdiv"> +      <h3> +        <xsl:value-of select="i:group-letter($key)"/> +      </h3> +      <dl> +        <xsl:apply-templates select="key('group-code', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary"> +          <xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))" lang="{$lang}"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +        </xsl:apply-templates> +      </dl> +    </div> +  </xsl:if> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-ng.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-ng.xsl.svn-base new file mode 100644 index 0000000..6e5c042 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx-ng.xsl.svn-base @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     This file is part of the DocBook XSL Stylesheet distribution. +     See ../README or http://docbook.sf.net/ for copyright +     copyright and other information. + +     ******************************************************************** --> + +<!-- You should have this directly in your customization file. --> +<!-- This file is there only to retain backward compatibility. --> +<xsl:import href="autoidx-kosek.xsl"/> +<xsl:param name="index.method">kosek</xsl:param> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx.xsl.svn-base new file mode 100644 index 0000000..8a47872 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autoidx.xsl.svn-base @@ -0,0 +1,588 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" extension-element-prefixes="exslt" exclude-result-prefixes="exslt" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- The "basic" method derived from Jeni Tennison's work. --> +<!-- The "kosek" method contributed by Jirka Kosek. --> +<!-- The "kimber" method contributed by Eliot Kimber of Innodata Isogen. --> + +<xsl:variable name="kimber.imported" select="0"/> +<xsl:variable name="kosek.imported" select="0"/> + +<xsl:key name="letter" match="indexterm" use="translate(substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1),'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> + +<xsl:key name="primary" match="indexterm" use="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))"/> + +<xsl:key name="secondary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])))"/> + +<xsl:key name="tertiary" match="indexterm" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])))"/> + +<xsl:key name="endofrange" match="indexterm[@class='endofrange']" use="@startref"/> + +<xsl:key name="primary-section" match="indexterm[not(secondary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]))"/> + +<xsl:key name="secondary-section" match="indexterm[not(tertiary) and not(see)]" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]))"/> + +<xsl:key name="tertiary-section" match="indexterm[not(see)]" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]))"/> + +<xsl:key name="see-also" match="indexterm[seealso]" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), " ", seealso)"/> + +<xsl:key name="see" match="indexterm[see]" use="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), " ", see)"/> + +<xsl:key name="sections" match="*[@id or @xml:id]" use="@id|@xml:id"/> + + +<xsl:template name="generate-index"> +  <xsl:param name="scope" select="(ancestor::book|/)[last()]"/> + +  <xsl:choose> +    <xsl:when test="$index.method = 'kosek'"> +      <xsl:call-template name="generate-kosek-index"> +        <xsl:with-param name="scope" select="$scope"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="$index.method = 'kimber'"> +      <xsl:call-template name="generate-kimber-index"> +        <xsl:with-param name="scope" select="$scope"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:call-template name="generate-basic-index"> +        <xsl:with-param name="scope" select="$scope"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> +       +<xsl:template name="generate-basic-index"> +  <xsl:param name="scope" select="NOTANODE"/> + +  <xsl:variable name="role"> +    <xsl:if test="$index.on.role != 0"> +      <xsl:value-of select="@role"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="type"> +    <xsl:if test="$index.on.type != 0"> +      <xsl:value-of select="@type"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="terms" select="//indexterm                         [count(.|key('letter',                           translate(substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1),                              'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ',                              'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))                           [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1                           and not(@class = 'endofrange')]"/> + +  <xsl:variable name="alphabetical" select="$terms[contains(concat('AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                         substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1))]"/> + +  <xsl:variable name="others" select="$terms[not(contains(concat('AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ',                                                  'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'),                                              substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1)))]"/> +  <div class="index"> +    <xsl:if test="$others"> +      <div class="indexdiv"> +        <h3> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key" select="'index symbols'"/> +          </xsl:call-template> +        </h3> +        <dl> +          <xsl:apply-templates select="$others[count(.|key('primary',                                        normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-symbol-div"> +            <xsl:with-param name="position" select="position()"/>                                 +            <xsl:with-param name="scope" select="$scope"/> +            <xsl:with-param name="role" select="$role"/> +            <xsl:with-param name="type" select="$type"/> +            <xsl:sort select="translate(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +          </xsl:apply-templates> +        </dl> +      </div> +    </xsl:if> + +    <xsl:apply-templates select="$alphabetical[count(.|key('letter',                                  translate(substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1),                                            'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-div-basic"> +      <xsl:with-param name="position" select="position()"/> +      <xsl:with-param name="scope" select="$scope"/> +      <xsl:with-param name="role" select="$role"/> +      <xsl:with-param name="type" select="$type"/> +      <xsl:sort select="translate(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +    </xsl:apply-templates> +  </div> +</xsl:template> + +<!-- This template not used if html/autoidx-kosek.xsl is imported --> +<xsl:template name="generate-kosek-index"> +  <xsl:param name="scope" select="NOTANODE"/> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> +  <xsl:if test="contains($vendor, 'libxslt')"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method does not </xsl:text> +      <xsl:text>work with the xsltproc XSLT processor.</xsl:text> +    </xsl:message> +  </xsl:if> + + +  <xsl:if test="not(function-available('exslt:node-set') or                     function-available('exslt:nodeSet'))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method requires the </xsl:text> +      <xsl:text>exslt:node-set() function. Use a processor that </xsl:text> +      <xsl:text>has it, or use a different index method.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="$kosek.imported = 0"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kosek' index method requires the +</xsl:text> +      <xsl:text>kosek index extensions be imported: +</xsl:text> +      <xsl:text>  xsl:import href="html/autoidx-kosek.xsl"</xsl:text> +    </xsl:message> +  </xsl:if> + +</xsl:template> + +<!-- This template not used if html/autoidx-kimber.xsl is imported --> +<xsl:template name="generate-kimber-index"> +  <xsl:param name="scope" select="NOTANODE"/> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> +  <xsl:if test="not(contains($vendor, 'SAXON '))"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kimber' index method requires the </xsl:text> +      <xsl:text>Saxon version 6 or 8 XSLT processor.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="$kimber.imported = 0"> +    <xsl:message terminate="yes"> +      <xsl:text>ERROR: the 'kimber' index method requires the +</xsl:text> +      <xsl:text>kimber index extensions be imported: +</xsl:text> +      <xsl:text>  xsl:import href="html/autoidx-kimber.xsl"</xsl:text> +    </xsl:message> +  </xsl:if> + +</xsl:template> + +<xsl:template match="indexterm" mode="index-div-basic"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1),                          'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> + +  <xsl:if test="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                 [count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]"> +    <div class="indexdiv"> +      <xsl:if test="contains(concat('AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'), $key)"> +        <h3> +          <xsl:value-of select="translate($key, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </h3> +      </xsl:if> +      <dl> +        <xsl:apply-templates select="key('letter', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]                                      [count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))                                      [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])=1]" mode="index-primary"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +      </dl> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template match="indexterm" mode="index-symbol-div"> +  <xsl:param name="scope" select="/"/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="translate(substring(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 1, 1),                                              'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> + +  <xsl:apply-templates select="key('letter', $key)                                [count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][count(.|key('primary', normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])))[1]) = 1]" mode="index-primary"> +    <xsl:with-param name="position" select="position()"/> +    <xsl:with-param name="scope" select="$scope"/> +    <xsl:with-param name="role" select="$role"/> +    <xsl:with-param name="type" select="$type"/> +    <xsl:sort select="translate(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="indexterm" mode="index-primary"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))"/> +  <xsl:variable name="refs" select="key('primary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/> +  <dt> +    <xsl:value-of select="primary"/> +    <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]"> +      <xsl:apply-templates select="." mode="reference"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +      </xsl:apply-templates> +    </xsl:for-each> + +    <xsl:if test="$refs[not(secondary)]/*[self::see]"> +      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", " ", " ", see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +        <xsl:sort select="translate(see, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +      </xsl:apply-templates> +    </xsl:if> +  </dt> +  <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::seealso]"> +    <dd> +      <dl> +        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", " ", " ", seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(seealso, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +        <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""]))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-secondary"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +      </dl> +    </dd> +  </xsl:if> +</xsl:template> + +<xsl:template match="indexterm" mode="index-secondary"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])))"/> +  <xsl:variable name="refs" select="key('secondary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/> +  <dt> +    <xsl:value-of select="secondary"/> +    <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]"> +      <xsl:apply-templates select="." mode="reference"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +      </xsl:apply-templates> +    </xsl:for-each> + +    <xsl:if test="$refs[not(tertiary)]/*[self::see]"> +      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", " ", see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +        <xsl:sort select="translate(see, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +      </xsl:apply-templates> +    </xsl:if> +  </dt> +  <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::seealso]"> +    <dd> +      <dl> +        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", " ", seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(seealso, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +        <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""]))))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]) = 1]" mode="index-tertiary"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +      </dl> +    </dd> +  </xsl:if> +</xsl:template> + +<xsl:template match="indexterm" mode="index-tertiary"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:variable name="key" select="concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])))"/> +  <xsl:variable name="refs" select="key('tertiary', $key)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/> +  <dt> +    <xsl:value-of select="tertiary"/> +    <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, " ", generate-id((ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()])))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]"> +      <xsl:apply-templates select="." mode="reference"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +      </xsl:apply-templates> +    </xsl:for-each> + +    <xsl:if test="$refs/see"> +      <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), " ", see))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-see"> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +        <xsl:sort select="translate(see, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +      </xsl:apply-templates> +    </xsl:if> +  </dt> +  <xsl:if test="$refs/seealso"> +    <dd> +      <dl> +        <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = ""])), " ", normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = ""])), " ", seealso))[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1])]" mode="index-seealso"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:sort select="translate(seealso, 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +        </xsl:apply-templates> +      </dl> +    </dd> +  </xsl:if> +</xsl:template> + +<xsl:template match="indexterm" mode="reference"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> +  <xsl:param name="position"/> +   +  <xsl:variable name="term.separator"> +    <xsl:call-template name="index.separator"> +      <xsl:with-param name="key" select="'index.term.separator'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="number.separator"> +    <xsl:call-template name="index.separator"> +      <xsl:with-param name="key" select="'index.number.separator'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="range.separator"> +    <xsl:call-template name="index.separator"> +      <xsl:with-param name="key" select="'index.range.separator'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$position = 1"> +      <xsl:value-of select="$term.separator"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$number.separator"/> +    </xsl:otherwise> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="@zone and string(@zone)"> +      <xsl:call-template name="reference"> +        <xsl:with-param name="zones" select="normalize-space(@zone)"/> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:variable name="title"> +          <xsl:choose> +            <xsl:when test="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]/titleabbrev and $index.prefer.titleabbrev != 0"> +              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]" mode="titleabbrev.markup"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]" mode="title.markup"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:variable> + +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]"/> +            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/> +          </xsl:call-template> +        </xsl:attribute> + +        <xsl:value-of select="$title"/> <!-- text only --> +      </a> + +      <xsl:variable name="id" select="(@id|@xml:id)[1]"/> +      <xsl:if test="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"> +        <xsl:apply-templates select="key('endofrange', $id)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][last()]" mode="reference"> +          <xsl:with-param name="position" select="position()"/> +          <xsl:with-param name="scope" select="$scope"/> +          <xsl:with-param name="role" select="$role"/> +          <xsl:with-param name="type" select="$type"/> +          <xsl:with-param name="separator" select="$range.separator"/> +        </xsl:apply-templates> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="reference"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> +  <xsl:param name="zones"/> + +  <xsl:choose> +    <xsl:when test="contains($zones, ' ')"> +      <xsl:variable name="zone" select="substring-before($zones, ' ')"/> +      <xsl:variable name="target" select="key('sections', $zone)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/> + +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target[1]"/> +            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates select="$target[1]" mode="index-title-content"/> +      </a> +      <xsl:text>, </xsl:text> +      <xsl:call-template name="reference"> +        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/> +        <xsl:with-param name="position" select="position()"/> +        <xsl:with-param name="scope" select="$scope"/> +        <xsl:with-param name="role" select="$role"/> +        <xsl:with-param name="type" select="$type"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="zone" select="$zones"/> +      <xsl:variable name="target" select="key('sections', $zone)[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))]"/> + +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target[1]"/> +            <xsl:with-param name="context" select="//index[count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))][1]"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates select="$target[1]" mode="index-title-content"/> +      </a> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="indexterm" mode="index-see"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:text> (</xsl:text> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key" select="'see'"/> +  </xsl:call-template> +  <xsl:text> </xsl:text> +  <xsl:value-of select="see"/> +  <xsl:text>)</xsl:text> +</xsl:template> + +<xsl:template match="indexterm" mode="index-seealso"> +  <xsl:param name="scope" select="."/> +  <xsl:param name="role" select="''"/> +  <xsl:param name="type" select="''"/> + +  <xsl:for-each select="seealso"> +    <xsl:sort select="translate(., 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ')"/> +    <dt> +    <xsl:text>(</xsl:text> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key" select="'seealso'"/> +    </xsl:call-template> +    <xsl:text> </xsl:text> +    <xsl:value-of select="."/> +    <xsl:text>)</xsl:text> +    </dt> +  </xsl:for-each> +</xsl:template> + +<xsl:template match="*" mode="index-title-content"> +  <xsl:variable name="title"> +    <xsl:apply-templates select="(ancestor-or-self::set|ancestor-or-self::book|ancestor-or-self::part|ancestor-or-self::reference|ancestor-or-self::partintro|ancestor-or-self::chapter|ancestor-or-self::appendix|ancestor-or-self::preface|ancestor-or-self::article|ancestor-or-self::section|ancestor-or-self::sect1|ancestor-or-self::sect2|ancestor-or-self::sect3|ancestor-or-self::sect4|ancestor-or-self::sect5|ancestor-or-self::refentry|ancestor-or-self::refsect1|ancestor-or-self::refsect2|ancestor-or-self::refsect3|ancestor-or-self::simplesect|ancestor-or-self::bibliography|ancestor-or-self::glossary|ancestor-or-self::index|ancestor-or-self::webpage)[last()]" mode="title.markup"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template name="index.separator"> +  <xsl:param name="key" select="''"/> +  <xsl:param name="lang"> +    <xsl:call-template name="l10n.language"/> +  </xsl:param> + +  <xsl:choose> +    <xsl:when test="$key = 'index.term.separator'"> +      <xsl:choose> +        <!-- Use the override if not blank --> +        <xsl:when test="$index.term.separator != ''"> +          <xsl:copy-of select="$index.term.separator"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="gentext.template"> +            <xsl:with-param name="lang" select="$lang"/> +            <xsl:with-param name="context">index</xsl:with-param> +            <xsl:with-param name="name">term-separator</xsl:with-param> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:when test="$key = 'index.number.separator'"> +      <xsl:choose> +        <!-- Use the override if not blank --> +        <xsl:when test="$index.number.separator != ''"> +          <xsl:copy-of select="$index.number.separator"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="gentext.template"> +            <xsl:with-param name="lang" select="$lang"/> +            <xsl:with-param name="context">index</xsl:with-param> +            <xsl:with-param name="name">number-separator</xsl:with-param> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:when test="$key = 'index.range.separator'"> +      <xsl:choose> +        <!-- Use the override if not blank --> +        <xsl:when test="$index.range.separator != ''"> +          <xsl:copy-of select="$index.range.separator"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="gentext.template"> +            <xsl:with-param name="lang" select="$lang"/> +            <xsl:with-param name="context">index</xsl:with-param> +            <xsl:with-param name="name">range-separator</xsl:with-param> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autotoc.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autotoc.xsl.svn-base new file mode 100644 index 0000000..6b62d82 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/autotoc.xsl.svn-base @@ -0,0 +1,632 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:variable name="toc.listitem.type"> +  <xsl:choose> +    <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when> +    <xsl:otherwise>li</xsl:otherwise> +  </xsl:choose> +</xsl:variable> + +<!-- this is just hack because dl and ul aren't completely isomorphic --> +<xsl:variable name="toc.dd.type"> +  <xsl:choose> +    <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when> +    <xsl:otherwise/> +  </xsl:choose> +</xsl:variable> + +<xsl:template name="make.toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="toc.title.p" select="true()"/> +  <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/> + +  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/> + +  <xsl:variable name="toc.title"> +    <xsl:if test="$toc.title.p"> +      <p> +        <b> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key">TableofContents</xsl:with-param> +          </xsl:call-template> +        </b> +      </p> +    </xsl:if> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$manual.toc != ''"> +      <xsl:variable name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:variable> +      <xsl:variable name="toc" select="document($manual.toc, .)"/> +      <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/> +      <xsl:if test="$tocentry and $tocentry/*"> +        <div class="toc"> +          <xsl:copy-of select="$toc.title"/> +          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +            <xsl:call-template name="manual-toc"> +              <xsl:with-param name="tocentry" select="$tocentry/*[1]"/> +            </xsl:call-template> +          </xsl:element> +        </div> +      </xsl:if> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$qanda.in.toc != 0"> +          <xsl:if test="$nodes.plus"> +            <div class="toc"> +              <xsl:copy-of select="$toc.title"/> +              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +                <xsl:apply-templates select="$nodes.plus" mode="toc"> +                  <xsl:with-param name="toc-context" select="$toc-context"/> +                </xsl:apply-templates> +              </xsl:element> +            </div> +          </xsl:if> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$nodes"> +            <div class="toc"> +              <xsl:copy-of select="$toc.title"/> +              <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +                <xsl:apply-templates select="$nodes" mode="toc"> +                  <xsl:with-param name="toc-context" select="$toc-context"/> +                </xsl:apply-templates> +              </xsl:element> +            </div> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> + +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="make.lots"> +  <xsl:param name="toc.params" select="''"/> +  <xsl:param name="toc"/> + +  <xsl:if test="contains($toc.params, 'toc')"> +    <xsl:copy-of select="$toc"/> +  </xsl:if> + +  <xsl:if test="contains($toc.params, 'figure')"> +    <xsl:call-template name="list.of.titles"> +      <xsl:with-param name="titles" select="'figure'"/> +      <xsl:with-param name="nodes" select=".//figure"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="contains($toc.params, 'table')"> +    <xsl:call-template name="list.of.titles"> +      <xsl:with-param name="titles" select="'table'"/> +      <xsl:with-param name="nodes" select=".//table"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="contains($toc.params, 'example')"> +    <xsl:call-template name="list.of.titles"> +      <xsl:with-param name="titles" select="'example'"/> +      <xsl:with-param name="nodes" select=".//example"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="contains($toc.params, 'equation')"> +    <xsl:call-template name="list.of.titles"> +      <xsl:with-param name="titles" select="'equation'"/> +      <xsl:with-param name="nodes" select=".//equation[title or info/title]"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="contains($toc.params, 'procedure')"> +    <xsl:call-template name="list.of.titles"> +      <xsl:with-param name="titles" select="'procedure'"/> +      <xsl:with-param name="nodes" select=".//procedure[title]"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:template name="set.toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="toc.title.p" select="true()"/> + +  <xsl:call-template name="make.toc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="toc.title.p" select="$toc.title.p"/> +    <xsl:with-param name="nodes" select="book|setindex"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="division.toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="toc.title.p" select="true()"/> + +  <xsl:call-template name="make.toc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="toc.title.p" select="$toc.title.p"/> +    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/> + +  </xsl:call-template> +</xsl:template> + +<xsl:template name="component.toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="toc.title.p" select="true()"/> + +  <xsl:call-template name="make.toc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="toc.title.p" select="$toc.title.p"/> +    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |refentry                                          |article|bibliography|glossary                                          |appendix|index                                          |bridgehead[not(@renderas)                                                      and $bridgehead.in.toc != 0]                                          |.//bridgehead[@renderas='sect1'                                                         and $bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="component.toc.separator"> +  <!-- Customize to output something between +       component.toc and first output --> +</xsl:template> + +<xsl:template name="section.toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="toc.title.p" select="true()"/> + +  <xsl:call-template name="make.toc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="toc.title.p" select="$toc.title.p"/> +    <xsl:with-param name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry                            |bridgehead[$bridgehead.in.toc != 0]"/> + +  </xsl:call-template> +</xsl:template> + +<xsl:template name="section.toc.separator"> +  <!-- Customize to output something between +       section.toc and first output --> +</xsl:template> +<!-- ==================================================================== --> + +<xsl:template name="subtoc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/> + +  <xsl:variable name="nodes.plus" select="$nodes | qandaset"/> + +  <xsl:variable name="subtoc"> +    <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +      <xsl:choose> +        <xsl:when test="$qanda.in.toc != 0"> +          <xsl:apply-templates mode="toc" select="$nodes.plus"> +            <xsl:with-param name="toc-context" select="$toc-context"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates mode="toc" select="$nodes"> +            <xsl:with-param name="toc-context" select="$toc-context"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:element> +  </xsl:variable> + +  <xsl:variable name="depth"> +    <xsl:choose> +      <xsl:when test="local-name(.) = 'section'"> +        <xsl:value-of select="count(ancestor::section) + 1"/> +      </xsl:when> +      <xsl:when test="local-name(.) = 'sect1'">1</xsl:when> +      <xsl:when test="local-name(.) = 'sect2'">2</xsl:when> +      <xsl:when test="local-name(.) = 'sect3'">3</xsl:when> +      <xsl:when test="local-name(.) = 'sect4'">4</xsl:when> +      <xsl:when test="local-name(.) = 'sect5'">5</xsl:when> +      <xsl:when test="local-name(.) = 'refsect1'">1</xsl:when> +      <xsl:when test="local-name(.) = 'refsect2'">2</xsl:when> +      <xsl:when test="local-name(.) = 'refsect3'">3</xsl:when> +      <xsl:when test="local-name(.) = 'simplesect'"> +        <!-- sigh... --> +        <xsl:choose> +          <xsl:when test="local-name(..) = 'section'"> +            <xsl:value-of select="count(ancestor::section)"/> +          </xsl:when> +          <xsl:when test="local-name(..) = 'sect1'">2</xsl:when> +          <xsl:when test="local-name(..) = 'sect2'">3</xsl:when> +          <xsl:when test="local-name(..) = 'sect3'">4</xsl:when> +          <xsl:when test="local-name(..) = 'sect4'">5</xsl:when> +          <xsl:when test="local-name(..) = 'sect5'">6</xsl:when> +          <xsl:when test="local-name(..) = 'refsect1'">2</xsl:when> +          <xsl:when test="local-name(..) = 'refsect2'">3</xsl:when> +          <xsl:when test="local-name(..) = 'refsect3'">4</xsl:when> +          <xsl:otherwise>1</xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise>0</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="depth.from.context" select="count(ancestor::*)-count($toc-context/ancestor::*)"/> + +  <xsl:variable name="subtoc.list"> +    <xsl:choose> +      <xsl:when test="$toc.dd.type = ''"> +        <xsl:copy-of select="$subtoc"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:element name="{$toc.dd.type}" namespace="http://www.w3.org/1999/xhtml"> +          <xsl:copy-of select="$subtoc"/> +        </xsl:element> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:call-template name="toc.line"> +      <xsl:with-param name="toc-context" select="$toc-context"/> +    </xsl:call-template> +    <xsl:if test="$toc.listitem.type = 'li'                   and $toc.section.depth > $depth and                    ( ($qanda.in.toc = 0 and count($nodes)>0) or                     ($qanda.in.toc != 0 and count($nodes.plus)>0) )                   and $toc.max.depth > $depth.from.context"> +      <xsl:copy-of select="$subtoc.list"/> +    </xsl:if> +  </xsl:element> +  <xsl:if test="$toc.listitem.type != 'li'                 and $toc.section.depth > $depth and                  ( ($qanda.in.toc = 0 and count($nodes)>0) or                   ($qanda.in.toc != 0 and count($nodes.plus)>0) )                 and $toc.max.depth > $depth.from.context"> +    <xsl:copy-of select="$subtoc.list"/> +  </xsl:if> +</xsl:template> + +<xsl:template name="toc.line"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="depth" select="1"/> +  <xsl:param name="depth.from.context" select="8"/> + + <span> +  <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute> + +  <!-- * if $autotoc.label.in.hyperlink is zero, then output the label --> +  <!-- * before the hyperlinked title (as the DSSSL stylesheet does) --> +  <xsl:if test="$autotoc.label.in.hyperlink = 0"> +    <xsl:variable name="label"> +      <xsl:apply-templates select="." mode="label.markup"/> +    </xsl:variable> +    <xsl:copy-of select="$label"/> +    <xsl:if test="$label != ''"> +      <xsl:value-of select="$autotoc.label.separator"/> +    </xsl:if> +  </xsl:if> + +  <a> +    <xsl:attribute name="href"> +      <xsl:call-template name="href.target"> +        <xsl:with-param name="context" select="$toc-context"/> +        <xsl:with-param name="toc-context" select="$toc-context"/> +      </xsl:call-template> +    </xsl:attribute> +     +  <!-- * if $autotoc.label.in.hyperlink is non-zero, then output the label --> +  <!-- * as part of the hyperlinked title --> +  <xsl:if test="not($autotoc.label.in.hyperlink = 0)"> +    <xsl:variable name="label"> +      <xsl:apply-templates select="." mode="label.markup"/> +    </xsl:variable> +    <xsl:copy-of select="$label"/> +    <xsl:if test="$label != ''"> +      <xsl:value-of select="$autotoc.label.separator"/> +    </xsl:if> +  </xsl:if> + +    <xsl:apply-templates select="." mode="titleabbrev.markup"/> +  </a> +  </span> +</xsl:template> + +<xsl:template match="book" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="part|reference                                          |preface|chapter|appendix                                          |article                                          |bibliography|glossary|index                                          |refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="setindex" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <!-- If the setindex tag is not empty, it should be it in the TOC --> +  <xsl:if test="* or $generate.index != 0"> +    <xsl:call-template name="subtoc"> +      <xsl:with-param name="toc-context" select="$toc-context"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="part|reference" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="appendix|chapter|article                                          |index|glossary|bibliography                                          |preface|reference|refentry                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="preface|chapter|appendix|article" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="section|sect1                                          |simplesect[$simplesect.in.toc != 0]                                          |refentry                                          |glossary|bibliography|index                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="sect1" mode="toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="sect2                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="sect2" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="sect3                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="sect3" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="sect4                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="sect4" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="sect5                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="sect5" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="simplesect" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="section" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="section                                          |bridgehead[$bridgehead.in.toc != 0]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="bridgehead" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:if test="$bridgehead.in.toc != 0"> +    <xsl:call-template name="subtoc"> +      <xsl:with-param name="toc-context" select="$toc-context"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="bibliography|glossary" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="index" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <!-- If the index tag is not empty, it should be it in the TOC --> +  <xsl:if test="* or $generate.index != 0"> +    <xsl:call-template name="subtoc"> +      <xsl:with-param name="toc-context" select="$toc-context"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="refentry" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:variable name="refmeta" select=".//refmeta"/> +  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/> +  <xsl:variable name="refnamediv" select=".//refnamediv"/> +  <xsl:variable name="refname" select="$refnamediv//refname"/> +  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/> +  <xsl:variable name="title"> +    <xsl:choose> +      <xsl:when test="$refentrytitle"> +        <xsl:apply-templates select="$refentrytitle[1]" mode="titleabbrev.markup"/> +      </xsl:when> +      <xsl:when test="$refdesc"> +        <xsl:apply-templates select="$refdesc" mode="titleabbrev.markup"/> +      </xsl:when> +      <xsl:when test="$refname"> +        <xsl:apply-templates select="$refname[1]" mode="titleabbrev.markup"/> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml"> +    <span class="refentrytitle"> +      <a> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="toc-context" select="$toc-context"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:copy-of select="$title"/> +      </a> +    </span> +    <span class="refpurpose"> +      <xsl:if test="$annotate.toc != 0"> +        <!-- * DocBook 5 says inlinemediaobject (among other things) --> +        <!-- * is allowed in refpurpose; so we need to run --> +        <!-- * apply-templates on refpurpose here, instead of value-of  --> +        <xsl:apply-templates select="refnamediv/refpurpose"/> +      </xsl:if> +    </span> +  </xsl:element> +</xsl:template> + +<xsl:template match="title" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <a> +    <xsl:attribute name="href"> +      <xsl:call-template name="href.target"> +        <xsl:with-param name="object" select=".."/> +        <xsl:with-param name="toc-context" select="$toc-context"/> +      </xsl:call-template> +    </xsl:attribute> +    <xsl:apply-templates/> +  </a> +</xsl:template> + +<xsl:template name="manual-toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="tocentry"/> + +  <!-- be careful, we don't want to change the current document to the other tree! --> + +  <xsl:if test="$tocentry"> +    <xsl:variable name="node" select="key('id', $tocentry/@linkend)"/> + +    <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml"> +      <xsl:variable name="label"> +        <xsl:apply-templates select="$node" mode="label.markup"/> +      </xsl:variable> +      <xsl:copy-of select="$label"/> +      <xsl:if test="$label != ''"> +        <xsl:value-of select="$autotoc.label.separator"/> +      </xsl:if> +      <a> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$node"/> +            <xsl:with-param name="toc-context" select="$toc-context"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates select="$node" mode="titleabbrev.markup"/> +      </a> +    </xsl:element> + +    <xsl:if test="$tocentry/*"> +      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +        <xsl:call-template name="manual-toc"> +          <xsl:with-param name="tocentry" select="$tocentry/*[1]"/> +        </xsl:call-template> +      </xsl:element> +    </xsl:if> + +    <xsl:if test="$tocentry/following-sibling::*"> +      <xsl:call-template name="manual-toc"> +        <xsl:with-param name="tocentry" select="$tocentry/following-sibling::*[1]"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="list.of.titles"> +  <xsl:param name="toc-context" select="."/> +  <xsl:param name="titles" select="'table'"/> +  <xsl:param name="nodes" select=".//table"/> + +  <xsl:if test="$nodes"> +    <div class="list-of-{$titles}s"> +      <p> +        <b> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key"> +              <xsl:choose> +                <xsl:when test="$titles='table'">ListofTables</xsl:when> +                <xsl:when test="$titles='figure'">ListofFigures</xsl:when> +                <xsl:when test="$titles='equation'">ListofEquations</xsl:when> +                <xsl:when test="$titles='example'">ListofExamples</xsl:when> +                <xsl:when test="$titles='procedure'">ListofProcedures</xsl:when> +                <xsl:otherwise>ListofUnknown</xsl:otherwise> +              </xsl:choose> +            </xsl:with-param> +          </xsl:call-template> +        </b> +      </p> + +      <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +        <xsl:apply-templates select="$nodes" mode="toc"> +          <xsl:with-param name="toc-context" select="$toc-context"/> +        </xsl:apply-templates> +      </xsl:element> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template match="figure|table|example|equation|procedure" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:element name="{$toc.listitem.type}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:variable name="label"> +      <xsl:apply-templates select="." mode="label.markup"/> +    </xsl:variable> +    <xsl:copy-of select="$label"/> +    <xsl:if test="$label != ''"> +      <xsl:value-of select="$autotoc.label.separator"/> +    </xsl:if> +    <a> +      <xsl:attribute name="href"> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="toc-context" select="$toc-context"/> +        </xsl:call-template> +      </xsl:attribute> +      <xsl:apply-templates select="." mode="titleabbrev.markup"/> +    </a> +  </xsl:element> +</xsl:template> + +<!-- Used only if qanda.in.toc parameter is non-zero --> +<xsl:template match="qandaset" mode="toc"> +  <xsl:param name="toc-context" select="."/> +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +    <xsl:with-param name="nodes" select="qandadiv | qandaentry"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="qandadiv|qandaentry" mode="toc"> +  <xsl:apply-templates select="." mode="qandatoc.mode"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio-iso690.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio-iso690.xsl.svn-base new file mode 100644 index 0000000..d5d54ec --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio-iso690.xsl.svn-base @@ -0,0 +1,1300 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     The original code for processing bibliography in ISO690 style +     was provided by Jana Dvorakova <jana4u@seznam.cz> + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- if biblioentry.alt.primary.seps is set to nonzero value then use alternative separators for primary responsibility - $alt.person.two.sep, $alt.person.last.sep, $alt.person.more.sep  --> +<xsl:param name="biblioentry.alt.primary.seps" select="0"/> + +<!-- how many authors will be printed if there is more than three authors - set to number 1 (default value), 2 or 3 --> +<xsl:param name="biblioentry.primary.count" select="1"/> + +<!-- ==================================================================== --> + +<xsl:template name="iso690.makecitation"> +<!-- Types of resources --> +  <xsl:choose> + +    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ENTIRE MESSAGE SYSTEM --> +    <!-- same as Monographs --> +    <xsl:when test="./@role='messagesystem'"> +      <xsl:call-template name="iso690.monogr"/> +    </xsl:when> + +    <!-- SYSTEMS OF ELECTRONIC COMMUNICATION : ELECTRONIC MESSAGES --> +    <!-- same as Contributions to Monographs --> +    <xsl:when test="./@role='message'"> +      <xsl:call-template name="iso690.paper.mon"/> +    </xsl:when> + +    <!-- SERIALS --> +    <xsl:when test="./@role='serial' or ./biblioid/@class='issn' or ./issn"> +      <xsl:call-template name="iso690.serial"/> +    </xsl:when> + +    <!-- PARTS OF MONOGRAPHS --> +    <xsl:when test="./@role='part' or (./bibliomisc[@role='secnum']|./bibliomisc[@role='sectitle'])"> +      <xsl:call-template name="iso690.monogr.part"/> +    </xsl:when> + +    <!-- CONTRIBUTIONS TO MONOGRAPHS --> +    <xsl:when test="./@role='contribution' or (./biblioset/@relation='part' and ./biblioset/@relation='book')"> +      <xsl:call-template name="iso690.paper.mon"/> +    </xsl:when> + +    <!-- ARTICLES, ETC., IN SERIALS --> +    <xsl:when test="./@role='article' or (./biblioset/@relation='journal' and ./biblioset/@relation='article')"> +      <xsl:call-template name="iso690.article"/> +    </xsl:when> + +    <!-- PATENT DOCUMENTS --> +    <xsl:when test="./@role='patent' or (./bibliomisc[@role='patenttype'] and ./bibliomisc[@role='patentnum'])"> +      <xsl:call-template name="iso690.patent"/> +    </xsl:when> + +    <!-- MONOGRAPHS --> +    <xsl:otherwise> +      <xsl:call-template name="iso690.monogr"/> +    </xsl:otherwise> + +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- MONOGRAPHS --> +<xsl:template name="iso690.monogr"> +  <!-- Primary responsibility --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title and Type of medium --> +  <xsl:call-template name="iso690.title"/> +  <!-- Subordinate responsibility --> +  <xsl:call-template name="iso690.secondary"/> +  <!-- Edition --> +  <xsl:call-template name="iso690.edition"/> +  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation --> +  <xsl:call-template name="iso690.pub"/> +  <!-- Extent --> +  <xsl:call-template name="iso690.extent"/> +  <!-- Series --> +  <xsl:call-template name="iso690.serie"/> +  <!-- Notes --> +  <xsl:call-template name="iso690.notice"/> +  <!-- Avaibility and access --> +  <xsl:call-template name="iso690.access"/> +  <!-- Standard number --> +  <xsl:call-template name="iso690.isbn"/> +</xsl:template> + +<!-- SERIALS --> +<xsl:template name="iso690.serial"> +  <!-- Title and Type of medium --> +  <xsl:call-template name="iso690.title"/> +  <!-- Responsibility [nonEL] --> +  <xsl:if test="not(./bibliomisc[@role='medium'])"> +    <xsl:call-template name="iso690.secondary"/> +  </xsl:if> +  <!-- Edition --> +  <xsl:call-template name="iso690.edition"> +    <xsl:with-param name="after" select="./bibliomisc[@role='issuing']"/> +  </xsl:call-template> +  <!-- Issue designation (date and/or num) [nonEL] --> +  <xsl:if test="not(./bibliomisc[@role='medium'])"> +    <xsl:call-template name="iso690.issuing"/> +  </xsl:if> +  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation --> +  <xsl:call-template name="iso690.pub"/> +  <!-- Series --> +  <xsl:call-template name="iso690.serie"/> +  <!-- Notes --> +  <xsl:call-template name="iso690.notice"/> +  <!-- Avaibility and access --> +  <xsl:call-template name="iso690.access"/> +  <!-- Standard number --> +  <xsl:call-template name="iso690.issn"/> +</xsl:template> + +<!-- PARTS OF MONOGRAPHS --> +<xsl:template name="iso690.monogr.part"> +  <!-- Primary responsibility of host document --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title and Type of medium of host document --> +  <xsl:call-template name="iso690.title"/> +  <!-- Subordinate responsibility of host document [EL] --> +  <xsl:if test="./bibliomisc[@role='medium']"> +    <xsl:call-template name="iso690.secondary"/> +  </xsl:if> +  <!-- Edition --> +  <xsl:call-template name="iso690.edition"> +    <xsl:with-param name="after" select="./volumenum"/> +  </xsl:call-template> +  <!-- Numeration of the part [nonEL]--> +  <xsl:if test="not(./bibliomisc[@role='medium'])"> +    <xsl:call-template name="iso690.partnr"/> +  <!-- Subordinate responsibility [nonEL] --> +    <xsl:call-template name="iso690.secondary"/> +  </xsl:if> +  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation --> +  <xsl:call-template name="iso690.pub"/> +  <!-- Location within host --> +  <xsl:call-template name="iso690.part.location"/> +  <xsl:if test="./bibliomisc[@role='medium']"> +  <!-- Numeration within host document [EL] --> +  <!-- Notes [EL] --> +    <xsl:call-template name="iso690.notice"/> +  <!-- Avaibility and access [EL] --> +    <xsl:call-template name="iso690.access"/> +  <!-- Standard number [EL] --> +    <xsl:call-template name="iso690.isbn"/> +  </xsl:if> +</xsl:template> + +<!-- CONTRIBUTIONS TO MONOGRAPHS --> +<xsl:template name="iso690.paper.mon"> +<!-- Contribution --> +  <xsl:apply-templates mode="iso690.paper.part" select="./biblioset[@relation='part']"/> +<!-- In --> +  <xsl:text>In </xsl:text> +<!-- Host --> +  <xsl:apply-templates mode="iso690.paper.book" select="./biblioset[@relation='book']"/> +</xsl:template> + +<xsl:template match="biblioset" mode="iso690.paper.part"> +<!-- Contribution --> +  <!-- Primary responsibility --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title --> +  <xsl:call-template name="iso690.title"> +    <xsl:with-param name="italic" select="0"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="biblioset" mode="iso690.paper.book"> +<!-- Host --> +  <!-- Primary responsibility --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title and Type of medium --> +  <xsl:call-template name="iso690.title"/> +  <!-- Subordinate responsibility [EL] --> +  <xsl:if test="./bibliomisc[@role='medium']"> +    <xsl:call-template name="iso690.secondary"/> +  </xsl:if> +  <!-- Edition --> +  <xsl:call-template name="iso690.edition"/> +  <!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation --> +  <xsl:call-template name="iso690.paper.pub"/> +  <!-- Numeration within host document [EL] --> +  <!-- Location within host --> +  <xsl:call-template name="iso690.location"/> +  <xsl:if test="./bibliomisc[@role='medium']"> +  <!-- Notes [EL] --> +    <xsl:call-template name="iso690.notice"/> +  <!-- Avaibility and access [EL] --> +    <xsl:call-template name="iso690.access"/> +  <!-- Standard number [EL] --> +    <xsl:call-template name="iso690.isbn"/> +  </xsl:if> +</xsl:template> + +<!-- ARTICLES, ETC., IN SERIALS --> +<xsl:template name="iso690.article"> +<!-- Article --> +  <xsl:apply-templates mode="iso690.article.art" select="./biblioset[@relation='article']"/> +<!-- Serial --> +  <xsl:apply-templates mode="iso690.article.jour" select="./biblioset[@relation='journal']"/> +</xsl:template> + +<xsl:template match="biblioset" mode="iso690.article.art"> +<!-- Article --> +  <!-- Primary responsibility --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title --> +  <xsl:call-template name="iso690.title"> +    <xsl:with-param name="italic" select="0"/> +  </xsl:call-template> +  <!-- Subordinate responsibility [nonEL] --> +  <xsl:if test="not(../*/bibliomisc[@role='medium'])"> +    <xsl:call-template name="iso690.secondary"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="biblioset" mode="iso690.article.jour"> +<!-- Serial --> +  <!-- Title and Type of medium --> +  <xsl:call-template name="iso690.title"/> +  <!-- Edition --> +  <xsl:call-template name="iso690.edition"> +    <xsl:with-param name="after" select="./pubdate[not(@role='issuing')]|./volumenum|./issuenum|./pagenums"/> +  </xsl:call-template> +  <!-- Number designation [EL] --> +  <!-- Location within host --> +  <xsl:call-template name="iso690.article.location"/> +  <xsl:if test="./bibliomisc[@role='medium']"> +  <!-- Notes [EL] --> +    <xsl:call-template name="iso690.notice"/> +  <!-- Avaibility and access [EL] --> +    <xsl:call-template name="iso690.access"/> +  <!-- Standard number [EL] --> +    <xsl:call-template name="iso690.issn"/> +  </xsl:if> +</xsl:template> + +<!-- PATENT DOCUMENTS --> +<xsl:template name="iso690.patent"> +  <!-- Primary responsibility (applicant) --> +  <xsl:call-template name="iso690.primary"/> +  <!-- Title of the invention --> +  <xsl:call-template name="iso690.title"/> +  <!-- Subordinate responsibility --> +  <xsl:call-template name="iso690.secondary"/> +  <!-- Notes --> +  <xsl:call-template name="iso690.notice"/> +  <!-- Identification --> +  <xsl:call-template name="iso690.pat.ident"/> +</xsl:template> + +<!-- ==================================================================== --> +<!-- Elements --> + +<!-- Primary responsibility --> +<xsl:template name="iso690.primary"> +  <xsl:param name="primary.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./authorgroup/author|./author"> +      <xsl:call-template name="iso690.author.list"> +        <xsl:with-param name="person.list" select=".//authorgroup/author|.//author"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="./authorgroup/editor|./editor"> +      <xsl:call-template name="iso690.author.list"> +        <xsl:with-param name="person.list" select=".//authorgroup/editor|.//editor"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="./authorgroup/corpauthor|./corpauthor"> +      <xsl:call-template name="iso690.author.list"> +        <xsl:with-param name="person.list" select=".//authorgroup/corpauthor|.//corpauthor"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:if test="(./firstname)and(./surname)"> +        <xsl:call-template name="iso690.author"/> +        <xsl:call-template name="iso690.endsep"> +          <xsl:with-param name="text" select="string(./firstname[1])"/> +          <xsl:with-param name="sep" select="$primary.sep"/> +        </xsl:call-template> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.author.list"> +  <xsl:param name="person.list" select="author|corpauthor|editor"/> +  <xsl:param name="person.count" select="count($person.list)"/> +  <xsl:param name="count" select="1"/> +  <xsl:param name="group" select="./authorgroup[@role='many']"/> +  <xsl:param name="many" select="0"/> + +  <xsl:param name="primary.many"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.many'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="primary.editor"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.editor'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="primary.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'primary.sep'"/></xsl:call-template> +  </xsl:param> + +  <xsl:choose> +    <xsl:when test="$count > $person.count"/> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$person.count < 4 and not($group)"> +          <xsl:call-template name="iso690.author"> +            <xsl:with-param name="node" select="$person.list[position()=$count]"/> +          </xsl:call-template> +          <xsl:choose> +            <xsl:when test="$person.count = 2 and $count = 1 and $biblioentry.alt.primary.seps != 0"> +              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.two.sep'"/></xsl:call-template> +            </xsl:when> +            <xsl:when test="$person.count = 2 and $count = 1"> +              <xsl:call-template name="gentext.template"> +                <xsl:with-param name="context" select="'authorgroup'"/> +                <xsl:with-param name="name" select="'sep2'"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$person.count > 2 and $count+1 = $person.count and $biblioentry.alt.primary.seps != 0"> +              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.last.sep'"/></xsl:call-template> +            </xsl:when> +            <xsl:when test="$person.count > 2 and $count+1 = $person.count"> +              <xsl:call-template name="gentext.template"> +                <xsl:with-param name="context" select="'authorgroup'"/> +                <xsl:with-param name="name" select="'seplast'"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$count < $person.count and $biblioentry.alt.primary.seps != 0"> +              <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'alt.person.more.sep'"/></xsl:call-template> +            </xsl:when> +            <xsl:when test="$count < $person.count"> +              <xsl:call-template name="gentext.template"> +                <xsl:with-param name="context" select="'authorgroup'"/> +                <xsl:with-param name="name" select="'sep'"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="($count = $person.count)"> +              <xsl:choose> +                <xsl:when test="$many!=0"> +                  <xsl:if test="name($person.list[position()=$count])='editor'"> +                    <xsl:value-of select="$primary.editor"/> +                  </xsl:if> +                  <xsl:value-of select="$primary.many"/> +                  <xsl:call-template name="iso690.endsep"> +                    <xsl:with-param name="text" select="$primary.many"/> +                    <xsl:with-param name="sep" select="$primary.sep"/> +                  </xsl:call-template> +                </xsl:when> +                <xsl:when test="name($person.list[position()=$count])='editor'"> +                  <xsl:value-of select="$primary.editor"/> +                  <xsl:value-of select="$primary.sep"/> +                </xsl:when> +                <xsl:when test="name($person.list[position()=$count])='corpauthor'"> +                  <xsl:call-template name="iso690.endsep"> +                    <xsl:with-param name="text" select="string($person.list[position()=$count])"/> +                    <xsl:with-param name="sep" select="$primary.sep"/> +                  </xsl:call-template> +                </xsl:when> +                <xsl:otherwise> +                  <xsl:call-template name="iso690.endsep"> +                    <xsl:with-param name="text" select="string($person.list[position()=$count]//firstname[1])"/> +                    <xsl:with-param name="sep" select="$primary.sep"/> +                  </xsl:call-template> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:when> +          </xsl:choose> + +          <xsl:call-template name="iso690.author.list"> +            <xsl:with-param name="person.list" select="$person.list"/> +            <xsl:with-param name="person.count" select="$person.count"/> +            <xsl:with-param name="count" select="$count+1"/> +            <xsl:with-param name="many" select="$many"/> +            <xsl:with-param name="group"/> +          </xsl:call-template> +        </xsl:when> + +        <xsl:otherwise> +          <xsl:choose> +            <xsl:when test="($biblioentry.primary.count>=3) and ($person.count>=3)"> +              <xsl:call-template name="iso690.author.list"> +                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]|$person.list[3]"/> +                <xsl:with-param name="person.count" select="3"/> +                <xsl:with-param name="count" select="1"/> +                <xsl:with-param name="many" select="1"/> +                <xsl:with-param name="group"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="($biblioentry.primary.count>1) and  ($person.count>1)"> +              <xsl:call-template name="iso690.author.list"> +                <xsl:with-param name="person.list" select="$person.list[1]|$person.list[2]"/> +                <xsl:with-param name="person.count" select="2"/> +                <xsl:with-param name="count" select="1"/> +                <xsl:with-param name="many" select="1"/> +                <xsl:with-param name="group"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:otherwise> +              <xsl:call-template name="iso690.author.list"> +                <xsl:with-param name="person.list" select="$person.list[1]"/> +                <xsl:with-param name="person.count" select="1"/> +                <xsl:with-param name="count" select="1"/> +                <xsl:with-param name="many" select="1"/> +                <xsl:with-param name="group"/> +              </xsl:call-template> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.author"> +  <xsl:param name="node" select="."/> +  <xsl:param name="lastfirst.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'lastfirst.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="name($node)!='corpauthor'"> +      <span style="text-transform:uppercase"> +        <xsl:apply-templates mode="iso690.mode" select="$node//surname[1]"/> +      </span> +      <xsl:if test="$node//surname and $node//firstname"> +        <xsl:value-of select="$lastfirst.sep"/> +      </xsl:if> +      <xsl:apply-templates mode="iso690.mode" select="$node//firstname[1]"/> +    </xsl:when> +    <xsl:otherwise> +      <span style="text-transform:uppercase"> +        <xsl:apply-templates mode="iso690.mode" select="$node"/> +      </span> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="corpauthor|firstname|surname" mode="iso690.mode"> +  <xsl:apply-templates mode="iso690.mode"/> +</xsl:template> + +<!-- Title and Type of medium --> +<xsl:template name="iso690.title"> +  <xsl:param name="medium" select="./bibliomisc[@role='medium']"/> +  <xsl:param name="italic" select="1"/> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template> +  </xsl:param> + +  <xsl:apply-templates mode="iso690.mode" select="./title"> +    <xsl:with-param name="medium" select="$medium"/> +    <xsl:with-param name="italic" select="$italic"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="title" mode="iso690.mode"> +  <xsl:param name="medium"/> +  <xsl:param name="italic" select="1"/> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'title.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="medium1"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium1'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="medium2"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'medium2'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="$italic=1"> +      <xsl:call-template name="iso690.italic.title"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="iso690.make.title"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:if test="$medium"> +    <xsl:value-of select="$medium1"/> +    <xsl:apply-templates mode="iso690.mode" select="$medium"/> +    <xsl:value-of select="$medium2"/> +  </xsl:if> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="concat(string(.),string(../subtitle))"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="iso690.italic.title"> +  <i> +    <xsl:call-template name="iso690.make.title"/> +  </i> +</xsl:template> + +<xsl:template name="iso690.make.title"> +  <xsl:param name="submaintitle.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'submaintitle.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:if test="../subtitle"> +    <xsl:value-of select="$submaintitle.sep"/> +    <xsl:apply-templates mode="iso690.mode" select="../subtitle"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="subtitle" mode="iso690.mode"> +  <xsl:apply-templates mode="iso690.mode"/> +</xsl:template> + +<xsl:template match="bibliomisc[@role='medium']" mode="iso690.mode"> +  <xsl:apply-templates mode="iso690.mode"/> +</xsl:template> + +<!-- Subordinate responsibility --> +<xsl:template name="iso690.secondary"> +  <xsl:param name="secondary.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="secondary.person.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'secondary.person.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:for-each select="./bibliomisc[@role='secondary']"> +    <xsl:apply-templates mode="iso690.mode" select="."/> +    <xsl:choose> +      <xsl:when test="position()=count(../bibliomisc[@role='secondary'])"> +        <xsl:call-template name="iso690.endsep"> +          <xsl:with-param name="text" select="string(.)"/> +          <xsl:with-param name="sep" select="$secondary.sep"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$secondary.person.sep"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:for-each> +</xsl:template> + +<xsl:template match="bibliomisc[@role='secondary']" mode="iso690.mode"> +  <xsl:apply-templates mode="iso690.mode"/> +</xsl:template> + +<!-- Edition --> +<xsl:template name="iso690.edition"> +  <xsl:param name="after"/> +  <xsl:param name="edition.serial.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.serial.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="string($after)!=''"> +      <xsl:apply-templates mode="iso690.mode" select="./edition"> +        <xsl:with-param name="sep" select="$edition.serial.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="iso690.mode" select="./edition"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="edition" mode="iso690.mode"> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'edition.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<!-- Issue designation (date and/or num) --> +<xsl:template name="iso690.issuing"> +  <xsl:param name="issuing.div"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="issuing.range"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="issuing.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2] and ./issuenum[2]"> +      <xsl:call-template name="iso690.issuedate"/> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum[1]"> +        <xsl:with-param name="sep" select="$issuing.range"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum[2]"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum[2]"> +      <xsl:call-template name="iso690.issuedate"/> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum[1]"> +        <xsl:with-param name="sep" select="$issuing.range"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum[2]"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./pubdate[@role='issuing'] and ./volumenum and ./issuenum"> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./pubdate[@role='issuing']"> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./volumenum"> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./issuenum"> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum"> +        <xsl:with-param name="sep" select="$issuing.sep"/> +      </xsl:apply-templates> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.issuedate"> +  <xsl:param name="issuing.div"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.div'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="issuing.range"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.range'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="issuing.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issuing.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./pubdate[@role='issuing'][2]"> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][1]"> +        <xsl:with-param name="sep" select="$issuing.range"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing'][2]"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[@role='issuing']"> +        <xsl:with-param name="sep" select="$issuing.div"/> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="pubdate[@role='issuing']" mode="iso690.mode"> +  <xsl:param name="sep"/> +  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.space"> +    <xsl:with-param name="text" select="$substr"/> +  </xsl:call-template> +  <xsl:choose> +    <xsl:when test="$substr='-'"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="' '"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="string(.)"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- Numeration of the part --> +<xsl:template name="iso690.partnr"> +  <xsl:param name="partnr.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'partnr.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode" select="./volumenum"> +    <xsl:with-param name="sep" select="$partnr.sep"/> +  </xsl:apply-templates> +</xsl:template> + +<!-- Place of publication, Publisher, Year/Date of publication, Date of update/revision, Date of citation --> +<xsl:template name="iso690.pub"> +  <xsl:param name="onlydate" select="0"/> +  <xsl:param name="placesep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'placepubl.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="pubsep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'publyear.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="endsep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pubinfo.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="(./publisher/publishername|./publishername|./publisher/address/city)and($onlydate=0)and(./pubdate[not(@role='issuing')]|./copyright/year|./date[@role='upd']|./date[@role='upd'])"> +      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city"> +        <xsl:with-param name="sep" select="$placesep"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername"> +        <xsl:with-param name="sep" select="$pubsep"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year"> +        <xsl:with-param name="sep" select="$endsep"/> +      </xsl:apply-templates> +      <xsl:if test="not(./pubdate[not(@role='issuing')]|./copyright/year)"> +        <xsl:call-template name="iso690.data"> +          <xsl:with-param name="sep" select="$endsep"/> +        </xsl:call-template> +      </xsl:if> +    </xsl:when> +    <xsl:when test="(./publisher/publishername|./publishername)and(./publisher/address/city)and($onlydate=0)"> +      <xsl:apply-templates mode="iso690.mode" select="./publisher/address/city"> +        <xsl:with-param name="sep" select="$placesep"/> +      </xsl:apply-templates> +      <xsl:apply-templates mode="iso690.mode" select="./publisher/publishername|./publishername"> +        <xsl:with-param name="sep" select="$endsep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="($onlydate=1)or(./pubdate[not(@role='issuing')]|./copyright/year)"> +      <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]|./copyright/year"> +        <xsl:with-param name="sep" select="$endsep"/> +      </xsl:apply-templates> +      <xsl:if test="$onlydate=1"> +        <xsl:call-template name="iso690.location"> +          <xsl:with-param name="onlypages" select="1"/> +        </xsl:call-template> +      </xsl:if> +    </xsl:when> +    <xsl:when test="not(./pubdate[not(@role='issuing')]|./copyright/year)"> +      <xsl:call-template name="iso690.data"> +        <xsl:with-param name="sep" select="$endsep"/> +      </xsl:call-template> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.paper.pub"> +  <xsl:param name="spec.pubinfo.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'spec.pubinfo.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./volumnum|./issuenum|./pagenums"> +      <xsl:call-template name="iso690.pub"> +        <xsl:with-param name="endsep" select="$spec.pubinfo.sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="iso690.pub"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.data"> +  <xsl:param name="sep"/> +  <xsl:param name="datecit2"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode" select="./date[@role='upd']"> +    <xsl:with-param name="sep"/> +  </xsl:apply-templates> +  <xsl:apply-templates mode="iso690.mode" select="./date[@role='cit']"/> +  <xsl:choose> +    <xsl:when test="./date[@role='cit']"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="$datecit2"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="./date[@role='upd']"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="string(./date[@role='upd'])"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="publisher/address/city|publishername" mode="iso690.mode"> +  <xsl:param name="sep"/> +  <xsl:param name="upd" select="0"/> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="pubdate|copyright/year" mode="iso690.mode"> +  <xsl:param name="sep"/> +  <xsl:param name="upd" select="1"/> +  <xsl:param name="datecit2"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template> +  </xsl:param> +  <xsl:variable name="substr" select="substring(string(.),string-length(string(.)))"/> +  <xsl:if test="name(.)!='pubdate'"> +    <xsl:value-of select="'©'"/><!-- copyright --> +  </xsl:if> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.space"> +    <xsl:with-param name="text" select="$substr"/> +  </xsl:call-template> +  <xsl:if test="$upd!=0"> +    <xsl:choose> +      <xsl:when test="name(.)='pubdate'"> +        <xsl:apply-templates mode="iso690.mode" select="../date[@role='upd']"/> +        <xsl:apply-templates mode="iso690.mode" select="../date[@role='cit']"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='upd']"/> +        <xsl:apply-templates mode="iso690.mode" select="../../date[@role='cit']"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +  <xsl:choose> +    <xsl:when test="../date[@role='cit']|../../date[@role='cit'] and $upd!=0"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="$datecit2"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="../date[@role='upd']|../../date[@role='upd'] and $upd!=0"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="string(../date[@role='upd'])"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="$substr='-'"> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="' '"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="string(.)"/> +        <xsl:with-param name="sep" select="$sep"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.space"> +  <xsl:param name="text" select="substring(string(.),string-length(string(.)))"/> +  <xsl:if test="$text='-'"> +    <xsl:value-of select="' '"/> +  </xsl:if> +</xsl:template> + +<!-- Date of update/revision --> +<xsl:template match="date[@role='upd']" mode="iso690.mode"> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'upd.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:value-of select="$sep"/> +  <xsl:apply-templates mode="iso690.mode"/> +</xsl:template> + +<!-- Date of citation --> +<xsl:template match="date[@role='cit']" mode="iso690.mode"> +  <xsl:param name="datecit1"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit1'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="datecit2"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'datecit2'"/></xsl:call-template> +  </xsl:param> +  <xsl:value-of select="$datecit1"/> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:value-of select="$datecit2"/> +</xsl:template> + +<!-- Extent --> +<xsl:template name="iso690.extent"> +  <xsl:param name="extent.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'extent.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode" select="./pagenums"> +    <xsl:with-param name="sep" select="$extent.sep"/> +  </xsl:apply-templates> +</xsl:template> + +<!-- Location within host --> +<xsl:template name="iso690.part.location"> +  <xsl:param name="location.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./pagenums"> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"/> +      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/> +    </xsl:when> +    <xsl:when test="./bibliomisc[@role='sectitle']"> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"/> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='sectitle']"> +        <xsl:with-param name="sep" select="$location.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='secnum']"> +        <xsl:with-param name="sep" select="$location.sep"/> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.article.location"> +  <xsl:param name="location.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="locs.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="not(./date[@role='upd']|./date[@role='cit'])"> +      <xsl:choose> +        <xsl:when test="./volumenum|./issuenum|./pagenums"> +          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]"> +            <xsl:with-param name="upd" select="0"/> +            <xsl:with-param name="sep" select="$locs.sep"/> +          </xsl:apply-templates> +          <xsl:call-template name="iso690.location"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]"> +            <xsl:with-param name="sep" select="$location.sep"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="./volumenum|./issuenum|./pagenums"> +          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]"> +            <xsl:with-param name="upd" select="0"/> +            <xsl:with-param name="sep" select="$locs.sep"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]"> +            <xsl:with-param name="upd" select="0"/> +            <xsl:with-param name="sep" select="$location.sep"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +      <xsl:choose> +        <xsl:when test="./issuenum"> +          <xsl:apply-templates mode="iso690.mode" select="./volumenum"/> +          <xsl:apply-templates mode="iso690.mode" select="./issuenum"> +            <xsl:with-param name="sep"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates mode="iso690.mode" select="./volumenum"> +            <xsl:with-param name="sep"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +      <xsl:choose> +        <xsl:when test="./pagenums"> +          <xsl:call-template name="iso690.data"> +            <xsl:with-param name="sep" select="$locs.sep"/> +          </xsl:call-template> +          <xsl:apply-templates mode="iso690.mode" select="./pagenums"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="iso690.data"> +            <xsl:with-param name="sep" select="$location.sep"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="iso690.location"> +  <xsl:param name="location.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="./volumenum and not(./issuenum) and not(./pagenums)"> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum"> +        <xsl:with-param name="sep" select="$location.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./issuenum and not(./pagenums)"> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum"> +        <xsl:with-param name="sep" select="$location.sep"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:when test="./pagenums"> +      <xsl:apply-templates mode="iso690.mode" select="./volumenum"/> +      <xsl:apply-templates mode="iso690.mode" select="./issuenum"/> +      <xsl:apply-templates mode="iso690.mode" select="./pagenums"/> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="bibliomisc[@role='secnum']|bibliomisc[@role='sectitle']" mode="iso690.mode"> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="volumenum|issuenum" mode="iso690.mode"> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'locs.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="pagenums" mode="iso690.mode"> +  <xsl:param name="sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'location.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$sep"/> +  </xsl:call-template> +</xsl:template> + +<!-- Series --> +<xsl:template name="iso690.serie"> +  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[@role='serie']"/> +</xsl:template> + +<!-- Notes --> +<xsl:template name="iso690.notice"> +  <xsl:apply-templates mode="iso690.mode" select=".//bibliomisc[not(@role)]"/> +</xsl:template> + +<xsl:template match="bibliomisc[not(@role)]|bibliomisc[@role='serie']" mode="iso690.mode"> +  <xsl:param name="notice.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'notice.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:call-template name="iso690.endsep"> +    <xsl:with-param name="text" select="string(.)"/> +    <xsl:with-param name="sep" select="$notice.sep"/> +  </xsl:call-template> +</xsl:template> + +<!-- Avaibility and access --> +<xsl:template name="iso690.access"> +  <xsl:for-each select="./biblioid[@class='uri']|./bibliomisc[@role='access']"> +    <xsl:choose> +      <xsl:when test="position()=1"> +        <xsl:apply-templates mode="iso690.mode" select="."/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates mode="iso690.mode" select="."> +          <xsl:with-param name="firstacc" select="0"/> +        </xsl:apply-templates> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:for-each> +</xsl:template> + +<xsl:template match="biblioid[@class='uri']/ulink|bibliomisc[@role='access']/ulink" mode="iso690.mode"> +  <xsl:param name="link1"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link1'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="link2"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'link2'"/></xsl:call-template> +  </xsl:param> +  <xsl:value-of select="$link1"/> +  <xsl:call-template name="ulink"/> +  <xsl:value-of select="$link2"/> +</xsl:template> + +<xsl:template match="biblioid[@class='uri']|bibliomisc[@role='access']" mode="iso690.mode"> +  <xsl:param name="firstacc" select="1"/> +  <xsl:param name="access"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="acctoo"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'acctoo'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="onwww"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'onwww'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="oninet"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'oninet'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="access.end"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.end'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="access.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'access.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="$firstacc=1"> +      <xsl:value-of select="$access"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$acctoo"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:choose> +    <xsl:when test="(./ulink)and(string(./ulink)=string(.))"> +      <xsl:choose> +        <xsl:when test="(starts-with(./ulink/@url,'http://')or(starts-with(./ulink/@url,'https://')))"> +          <xsl:value-of select="$onwww"/> +          <xsl:value-of select="$access.end"/> +          <xsl:apply-templates mode="iso690.mode" select="./ulink"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="$oninet"/> +          <xsl:value-of select="$access.end"/> +          <xsl:apply-templates mode="iso690.mode" select="./ulink"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:when test="(./ulink)and(string(./ulink)!=string(.))"> +      <xsl:value-of select="text()[1]"/> +      <xsl:call-template name="iso690.endsep"> +        <xsl:with-param name="text" select="text()[1]"/> +        <xsl:with-param name="sep" select="$access.end"/> +      </xsl:call-template> +      <xsl:apply-templates mode="iso690.mode" select="./ulink"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="iso690.mode"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:value-of select="$access.sep"/> +</xsl:template> + +<!-- Standard number - ISBN --> +<xsl:template name="iso690.isbn"> +  <xsl:choose> +    <xsl:when test="./biblioid/@class='isbn'"> +      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='isbn']"/> +    </xsl:when> +    <xsl:when test="./isbn"> +      <xsl:apply-templates mode="iso690.mode" select="./isbn"/> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="isbn|biblioid[@class='isbn']" mode="iso690.mode"> +  <xsl:param name="isbn"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'isbn'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="stdnum.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:value-of select="$isbn"/> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:value-of select="$stdnum.sep"/> +</xsl:template> + +<!-- Standard number - ISSN --> +<xsl:template name="iso690.issn"> +  <xsl:choose> +    <xsl:when test="./biblioid/@class='issn'"> +      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='issn']"/> +    </xsl:when> +    <xsl:when test="./issn"> +      <xsl:apply-templates mode="iso690.mode" select="./issn"/> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="issn|biblioid[@class='issn']" mode="iso690.mode"> +  <xsl:param name="issn"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'issn'"/></xsl:call-template> +  </xsl:param> +  <xsl:param name="stdnum.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'stdnum.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:value-of select="$issn"/> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:value-of select="$stdnum.sep"/> +</xsl:template> + +<!-- Identification of patent document --> +<xsl:template name="iso690.pat.ident"> +  <xsl:param name="patdate.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patdate.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode" select="./address/country"/> +  <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patenttype']"/> +  <xsl:choose> +    <xsl:when test="./biblioid[@class='other' and @otherclass='patentnum']"> +      <xsl:apply-templates mode="iso690.mode" select="./biblioid[@class='other' and @otherclass='patentnum']"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="iso690.mode" select="./bibliomisc[@role='patentnum']"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:apply-templates mode="iso690.mode" select="./pubdate[not(@role='issuing')]"> +    <xsl:with-param name="sep" select="$patdate.sep"/> +  </xsl:apply-templates> +</xsl:template> + +<!-- Country or issuing office --> +<xsl:template match="address/country" mode="iso690.mode"> +  <xsl:param name="patcountry.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patcountry.sep'"/></xsl:call-template> +  </xsl:param> +  <i> +    <xsl:apply-templates mode="iso690.mode"/> +  </i> +  <xsl:value-of select="$patcountry.sep"/> +</xsl:template> + +<!-- Kind of patent document --> +<xsl:template match="bibliomisc[@role='patenttype']" mode="iso690.mode"> +  <xsl:param name="pattype.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'pattype.sep'"/></xsl:call-template> +  </xsl:param> +  <i> +    <xsl:apply-templates mode="iso690.mode"/> +  </i> +  <xsl:value-of select="$pattype.sep"/> +</xsl:template> + +<!-- Number --> +<xsl:template match="biblioid[@class='other' and @otherclass='patentnum']|bibliomisc[@role='patentnum']" mode="iso690.mode"> +  <xsl:param name="patnum.sep"> +    <xsl:call-template name="gentext.template"><xsl:with-param name="context" select="'iso690'"/><xsl:with-param name="name" select="'patnum.sep'"/></xsl:call-template> +  </xsl:param> +  <xsl:apply-templates mode="iso690.mode"/> +  <xsl:value-of select="$patnum.sep"/> +</xsl:template> + +<!-- ==================================================================== --> +<!-- Supplementary templates --> + +<xsl:template name="iso690.endsep"> +  <xsl:param name="text"/> +  <xsl:param name="sep" select=". "/> +  <xsl:choose> +    <xsl:when test="substring($text,string-length($text))!=substring($sep,1,1)"> +      <xsl:value-of select="$sep"/> +    </xsl:when> +    <xsl:when test="substring($text,string-length($text))=' '"> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="' '"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="iso690.mode"> +  <xsl:apply-templates select="."/><!-- try the default mode --> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio.xsl.svn-base new file mode 100644 index 0000000..0e57522 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/biblio.xsl.svn-base @@ -0,0 +1,1217 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="bibliography"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="bibliography.titlepage"/> + +    <xsl:apply-templates/> + +    <xsl:if test="not(parent::article)"> +      <xsl:call-template name="process.footnotes"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="bibliography/bibliographyinfo"/> +<xsl:template match="bibliography/info"/> +<xsl:template match="bibliography/title"/> +<xsl:template match="bibliography/subtitle"/> +<xsl:template match="bibliography/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template match="bibliodiv"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="bibliodiv/title"> +  <h3> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="node" select=".."/> +    </xsl:call-template> +    <xsl:apply-templates/> +  </h3> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="bibliolist"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="blockinfo/title|info/title|title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> +    <xsl:apply-templates select="*[not(self::blockinfo)                                    and not(self::info)                                    and not(self::title)                                    and not(self::titleabbrev)                                    and not(self::biblioentry)                                    and not(self::bibliomixed)]"/> +    <xsl:apply-templates select="biblioentry|bibliomixed"/> +  </div> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="biblioentry"> +  <xsl:param name="label"> +    <xsl:call-template name="biblioentry.label"/> +  </xsl:param> + +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="string(.) = ''"> +      <xsl:variable name="bib" select="document($bibliography.collection,.)"/> +      <xsl:variable name="entry" select="$bib/bibliography/                                          *[@id=$id or @xml:id=$id][1]"/> +      <xsl:choose> +        <xsl:when test="$entry"> +          <xsl:choose> +            <xsl:when test="$bibliography.numbered != 0"> +              <xsl:apply-templates select="$entry"> +                <xsl:with-param name="label" select="$label"/> +              </xsl:apply-templates> +            </xsl:when> +            <xsl:otherwise> +              <xsl:apply-templates select="$entry"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            <xsl:text>No bibliography entry: </xsl:text> +            <xsl:value-of select="$id"/> +            <xsl:text> found in </xsl:text> +            <xsl:value-of select="$bibliography.collection"/> +          </xsl:message> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:call-template name="anchor"/> +            <p> +              <xsl:copy-of select="$label"/> +              <xsl:text>Error: no bibliography entry: </xsl:text> +              <xsl:value-of select="$id"/> +              <xsl:text> found in </xsl:text> +              <xsl:value-of select="$bibliography.collection"/> +            </p> +          </div> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional" select="0"/> +        </xsl:call-template> +        <p> +          <xsl:copy-of select="$label"/> +	  <xsl:choose> +	    <xsl:when test="$bibliography.style = 'iso690'"> +	      <xsl:call-template name="iso690.makecitation"/> +	    </xsl:when> +	    <xsl:otherwise> +	      <xsl:apply-templates mode="bibliography.mode"/> +	    </xsl:otherwise> +	  </xsl:choose> +        </p> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="bibliomixed"> +  <xsl:param name="label"> +    <xsl:call-template name="biblioentry.label"/> +  </xsl:param> + +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="string(.) = ''"> +      <xsl:variable name="bib" select="document($bibliography.collection,.)"/> +      <xsl:variable name="entry" select="$bib/bibliography/                                          *[@id=$id or @xml:id=$id][1]"/> +      <xsl:choose> +        <xsl:when test="$entry"> +          <xsl:choose> +            <xsl:when test="$bibliography.numbered != 0"> +              <xsl:apply-templates select="$entry"> +                <xsl:with-param name="label" select="$label"/> +              </xsl:apply-templates> +            </xsl:when> +            <xsl:otherwise> +              <xsl:apply-templates select="$entry"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            <xsl:text>No bibliography entry: </xsl:text> +            <xsl:value-of select="$id"/> +            <xsl:text> found in </xsl:text> +            <xsl:value-of select="$bibliography.collection"/> +          </xsl:message> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:call-template name="anchor"/> +            <p> +              <xsl:copy-of select="$label"/> +              <xsl:text>Error: no bibliography entry: </xsl:text> +              <xsl:value-of select="$id"/> +              <xsl:text> found in </xsl:text> +              <xsl:value-of select="$bibliography.collection"/> +            </p> +          </div> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional" select="0"/> +        </xsl:call-template> +        <p> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:copy-of select="$label"/> +          <xsl:apply-templates mode="bibliomixed.mode"/> +        </p> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="biblioentry.label"> +  <xsl:param name="node" select="."/> + +  <xsl:choose> +    <xsl:when test="$bibliography.numbered != 0"> +      <xsl:text>[</xsl:text> +      <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/> +      <xsl:text>] </xsl:text> +    </xsl:when> +    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'"> +      <xsl:text>[</xsl:text> +      <xsl:apply-templates select="$node/abbrev[1]"/> +      <xsl:text>] </xsl:text> +    </xsl:when> +    <xsl:when test="$node/@xreflabel"> +      <xsl:text>[</xsl:text> +      <xsl:value-of select="$node/@xreflabel"/> +      <xsl:text>] </xsl:text> +    </xsl:when> +    <xsl:when test="$node/@id"> +      <xsl:text>[</xsl:text> +      <xsl:value-of select="$node/@id"/> +      <xsl:text>] </xsl:text> +    </xsl:when> +    <xsl:when test="$node/@xml:id"> +      <xsl:text>[</xsl:text> +      <xsl:value-of select="$node/@xml:id"/> +      <xsl:text>] </xsl:text> +    </xsl:when> +    <xsl:otherwise><!-- nop --></xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="bibliography.mode"> +  <xsl:apply-templates select="."/><!-- try the default mode --> +</xsl:template> + +<xsl:template match="abbrev" mode="bibliography.mode"> +  <xsl:if test="preceding-sibling::*"> +    <xsl:apply-templates mode="bibliography.mode"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="abstract" mode="bibliography.mode"> +  <!-- suppressed --> +</xsl:template> + +<xsl:template match="address" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="affiliation" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="shortaffil" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="jobtitle" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="artheader|articleinfo|info" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="artpagenums" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="author" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="person.name"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="authorblurb|personblurb" mode="bibliography.mode"> +  <!-- suppressed --> +</xsl:template> + +<xsl:template match="authorgroup" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="person.name.list"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="authorinitials" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="bibliomisc" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="bibliomset" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="biblioset" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +  </span> +</xsl:template> + +<xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode"> +  <xsl:variable name="relation" select="../@relation"/> +  <xsl:choose> +    <xsl:when test="$relation='article' or @pubwork='article'"> +      <xsl:call-template name="gentext.startquote"/> +      <xsl:apply-templates/> +      <xsl:call-template name="gentext.endquote"/> +    </xsl:when> +    <xsl:otherwise> +      <i><xsl:apply-templates/></i> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:copy-of select="$biblioentry.item.separator"/> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="bookbiblio" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="citetitle" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:choose> +      <xsl:when test="@pubwork = 'article'"> +        <xsl:call-template name="gentext.startquote"/> +        <xsl:call-template name="inline.charseq"/> +        <xsl:call-template name="gentext.endquote"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inline.italicseq"/> +      </xsl:otherwise> +    </xsl:choose> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="collab" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="collabname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="confgroup" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="confdates" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="conftitle" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="confnum" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="confsponsor" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="contractnum" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="contractsponsor" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="contrib" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="copyright" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key" select="'Copyright'"/> +    </xsl:call-template> +    <xsl:call-template name="gentext.space"/> +    <xsl:call-template name="dingbat"> +      <xsl:with-param name="dingbat">copyright</xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="gentext.space"/> +    <xsl:apply-templates select="year" mode="bibliography.mode"/> +    <xsl:if test="holder"> +      <xsl:call-template name="gentext.space"/> +      <xsl:apply-templates select="holder" mode="bibliography.mode"/> +    </xsl:if> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="year" mode="bibliography.mode"> +  <xsl:apply-templates/><xsl:text>, </xsl:text> +</xsl:template> + +<xsl:template match="year[position()=last()]" mode="bibliography.mode"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="holder" mode="bibliography.mode"> +  <xsl:apply-templates/> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="corpauthor" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="corpcredit" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="corpname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="date" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="edition" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="editor" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="person.name"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="firstname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="honorific" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="indexterm" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="invpartnumber" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="isbn" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="issn" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="issuenum" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="lineage" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="orgname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="orgdiv" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="othercredit" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="othername" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="pagenums" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="printhistory" mode="bibliography.mode"> +  <!-- suppressed --> +</xsl:template> + +<xsl:template match="productname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="productnumber" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="pubdate" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="publisher" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +  </span> +</xsl:template> + +<xsl:template match="publishername" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="pubsnumber" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="releaseinfo" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="revhistory" mode="bibliography.mode"> +  <!-- suppressed; how could this be represented? --> +</xsl:template> + +<xsl:template match="seriesinfo" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +  </span> +</xsl:template> + +<xsl:template match="seriesvolnums" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="subtitle" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="surname" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="title" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <i><xsl:apply-templates mode="bibliography.mode"/></i> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="titleabbrev" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="volumenum" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliography.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliography.mode"/> +    <xsl:copy-of select="$biblioentry.item.separator"/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="bibliomixed.mode"> +  <xsl:apply-templates select="."/><!-- try the default mode --> +</xsl:template> + +<xsl:template match="abbrev" mode="bibliomixed.mode"> +  <xsl:if test="preceding-sibling::*"> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="abstract" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="address" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="affiliation" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="shortaffil" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="jobtitle" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="artpagenums" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="author" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="authorgroup" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="authorinitials" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="bibliomisc" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="bibliomset" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="bibliomset/title|bibliomset/citetitle" mode="bibliomixed.mode"> +  <xsl:variable name="relation" select="../@relation"/> +  <xsl:choose> +    <xsl:when test="$relation='article' or @pubwork='article'"> +      <xsl:call-template name="gentext.startquote"/> +      <xsl:apply-templates/> +      <xsl:call-template name="gentext.endquote"/> +    </xsl:when> +    <xsl:otherwise> +      <i><xsl:apply-templates/></i> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ================================================== --> + +<xsl:template match="biblioset" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="citetitle" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:choose> +      <xsl:when test="@pubwork = 'article'"> +        <xsl:call-template name="gentext.startquote"/> +        <xsl:call-template name="inline.charseq"/> +        <xsl:call-template name="gentext.endquote"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inline.italicseq"/> +      </xsl:otherwise> +    </xsl:choose> +  </span> +</xsl:template> + + +<xsl:template match="collab" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="confgroup" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="contractnum" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="contractsponsor" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="contrib" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="copyright" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="corpauthor" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="corpcredit" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="corpname" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="date" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="edition" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="editor" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="firstname" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="honorific" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="indexterm" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="invpartnumber" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="isbn" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="issn" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="issuenum" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="lineage" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="orgname" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="othercredit" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="othername" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="pagenums" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="printhistory" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="productname" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="productnumber" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="pubdate" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="publisher" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="publishername" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="pubsnumber" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="releaseinfo" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="revhistory" mode="bibliomixed.mode"> +  <!-- suppressed; how could this be represented? --> +</xsl:template> + +<xsl:template match="seriesvolnums" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="subtitle" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="surname" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="title" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="titleabbrev" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="volumenum" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliomixed.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="bibliomixed.mode"/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/block.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/block.xsl.svn-base new file mode 100644 index 0000000..a424c22 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/block.xsl.svn-base @@ -0,0 +1,432 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- What should we do about styling blockinfo? --> + +<xsl:template match="blockinfo|info"> +  <!-- suppress --> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="block.object"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="para"> +  <xsl:call-template name="paragraph"> +    <xsl:with-param name="class"> +      <xsl:if test="@role and $para.propagates.style != 0"> +        <xsl:value-of select="@role"/> +      </xsl:if> +    </xsl:with-param> +    <xsl:with-param name="content"> +      <xsl:if test="position() = 1 and parent::listitem"> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="node" select="parent::listitem"/> +        </xsl:call-template> +      </xsl:if> + +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="paragraph"> +  <xsl:param name="class" select="''"/> +  <xsl:param name="content"/> + +  <xsl:variable name="p"> +    <p> +      <xsl:call-template name="dir"/> +      <xsl:if test="$class != ''"> +        <xsl:apply-templates select="." mode="class.attribute"> +          <xsl:with-param name="class" select="$class"/> +        </xsl:apply-templates> +      </xsl:if> +      <xsl:copy-of select="$content"/> +    </p> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$html.cleanup != 0"> +      <xsl:call-template name="unwrap.p"> +        <xsl:with-param name="p" select="$p"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$p"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="simpara"> +  <!-- see also listitem/simpara in lists.xsl --> +  <p> +    <xsl:if test="@role and $para.propagates.style != 0"> +      <xsl:apply-templates select="." mode="class.attribute"> +        <xsl:with-param name="class" select="@role"/> +      </xsl:apply-templates> +    </xsl:if> + +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<xsl:template match="formalpara"> +  <xsl:call-template name="paragraph"> +    <xsl:with-param name="class"> +      <xsl:if test="@role and $para.propagates.style != 0"> +        <xsl:value-of select="@role"/> +      </xsl:if> +    </xsl:with-param> +    <xsl:with-param name="content"> +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<!-- Only use title from info --> +<xsl:template match="formalpara/info"> +  <xsl:apply-templates select="title"/> +</xsl:template> + +<xsl:template match="formalpara/title|formalpara/info/title"> +  <xsl:variable name="titleStr"> +      <xsl:apply-templates/> +  </xsl:variable> +  <xsl:variable name="lastChar"> +    <xsl:if test="$titleStr != ''"> +      <xsl:value-of select="substring($titleStr,string-length($titleStr),1)"/> +    </xsl:if> +  </xsl:variable> + +  <b> +    <xsl:copy-of select="$titleStr"/> +    <xsl:if test="$lastChar != ''                   and not(contains($runinhead.title.end.punct, $lastChar))"> +      <xsl:value-of select="$runinhead.default.title.end.punct"/> +    </xsl:if> +    <xsl:text> </xsl:text> +  </b> +</xsl:template> + +<xsl:template match="formalpara/para"> +  <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="blockquote"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="@lang or @xml:lang"> +      <xsl:call-template name="language.attribute"/> +    </xsl:if> +    <xsl:call-template name="anchor"/> + +    <xsl:choose> +      <xsl:when test="attribution"> +        <table border="0" width="100%" cellspacing="0" cellpadding="0" class="blockquote" summary="Block quote"> +          <tr> +            <td width="10%" valign="top"> </td> +            <td width="80%" valign="top"> +              <xsl:apply-templates select="child::*[local-name(.)!='attribution']"/> +            </td> +            <td width="10%" valign="top"> </td> +          </tr> +          <tr> +            <td width="10%" valign="top"> </td> +            <td colspan="2" align="right" valign="top"> +              <xsl:text>--</xsl:text> +              <xsl:apply-templates select="attribution"/> +            </td> +          </tr> +        </table> +      </xsl:when> +      <xsl:otherwise> +        <blockquote> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:apply-templates/> +        </blockquote> +      </xsl:otherwise> +    </xsl:choose> +  </div> +</xsl:template> + +<xsl:template match="blockquote/title|blockquote/info/title"> +  <div class="blockquote-title"> +    <p> +      <b> +        <xsl:apply-templates/> +      </b> +    </p> +  </div> +</xsl:template> + +<xsl:template match="epigraph"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:apply-templates select="para|simpara|formalpara|literallayout"/> +      <xsl:if test="attribution"> +        <div class="attribution"> +          <span>--<xsl:apply-templates select="attribution"/></span> +        </div> +      </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="attribution"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="abstract|sidebar"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="formal.object.heading"> +      <xsl:with-param name="title"> +        <xsl:apply-templates select="." mode="title.markup"> +          <xsl:with-param name="allow-anchors" select="'1'"/> +        </xsl:apply-templates> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="abstract/title|sidebar/title"> +</xsl:template> + +<xsl:template match="sidebar/sidebarinfo|sidebar/info"/> + +<!-- ==================================================================== --> + +<xsl:template match="msgset"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgentry"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<xsl:template match="simplemsgentry"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<xsl:template match="msg"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<xsl:template match="msgmain"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgmain/title"> +  <b><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="msgsub"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgsub/title"> +  <b><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="msgrel"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgrel/title"> +  <b><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="msgtext"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msginfo"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<xsl:template match="msglevel"> +  <p> +    <b> +      <xsl:call-template name="gentext.template"> +        <xsl:with-param name="context" select="'msgset'"/> +        <xsl:with-param name="name" select="'MsgLevel'"/> +      </xsl:call-template> +    </b> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<xsl:template match="msgorig"> +  <p> +    <b> +      <xsl:call-template name="gentext.template"> +        <xsl:with-param name="context" select="'msgset'"/> +        <xsl:with-param name="name" select="'MsgOrig'"/> +      </xsl:call-template> +    </b> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<xsl:template match="msgaud"> +  <p> +    <b> +      <xsl:call-template name="gentext.template"> +        <xsl:with-param name="context" select="'msgset'"/> +        <xsl:with-param name="name" select="'MsgAud'"/> +      </xsl:call-template> +    </b> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<xsl:template match="msgexplan"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<xsl:template match="msgexplan/title"> +  <p><b><xsl:apply-templates/></b></p> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="revhistory"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <table border="0" width="100%" summary="Revision history"> +      <tr> +        <th align="left" valign="top" colspan="3"> +          <b> +            <xsl:call-template name="gentext"> +              <xsl:with-param name="key" select="'RevHistory'"/> +            </xsl:call-template> +          </b> +        </th> +      </tr> +      <xsl:apply-templates/> +    </table> +  </div> +</xsl:template> + +<xsl:template match="revhistory/revision"> +  <xsl:variable name="revnumber" select="revnumber"/> +  <xsl:variable name="revdate" select="date"/> +  <xsl:variable name="revauthor" select="authorinitials|author"/> +  <xsl:variable name="revremark" select="revremark|revdescription"/> +  <tr> +    <td align="left"> +      <xsl:if test="$revnumber"> +        <xsl:call-template name="gentext"> +          <xsl:with-param name="key" select="'Revision'"/> +        </xsl:call-template> +        <xsl:call-template name="gentext.space"/> +        <xsl:apply-templates select="$revnumber"/> +      </xsl:if> +    </td> +    <td align="left"> +      <xsl:apply-templates select="$revdate"/> +    </td> +    <xsl:choose> +      <xsl:when test="count($revauthor)=0"> +        <td align="left"> +          <xsl:call-template name="dingbat"> +            <xsl:with-param name="dingbat">nbsp</xsl:with-param> +          </xsl:call-template> +        </td> +      </xsl:when> +      <xsl:otherwise> +        <td align="left"> +          <xsl:for-each select="$revauthor"> +            <xsl:apply-templates select="."/> +            <xsl:if test="position() != last()"> +              <xsl:text>, </xsl:text> +            </xsl:if> +          </xsl:for-each> +        </td> +      </xsl:otherwise> +    </xsl:choose> +  </tr> +  <xsl:if test="$revremark"> +    <tr> +      <td align="left" colspan="3"> +        <xsl:apply-templates select="$revremark"/> +      </td> +    </tr> +  </xsl:if> +</xsl:template> + +<xsl:template match="revision/revnumber"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="revision/date"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="revision/authorinitials"> +  <xsl:text>, </xsl:text> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="revision/authorinitials[1]" priority="2"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="revision/revremark"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="revision/revdescription"> +  <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="ackno"> +  <p> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="highlights"> +  <xsl:call-template name="block.object"/> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/callout.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/callout.xsl.svn-base new file mode 100644 index 0000000..84988c4 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/callout.xsl.svn-base @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<lxslt:component prefix="xverb" functions="insertCallouts"/> + +<xsl:template match="programlistingco|screenco"> +  <xsl:variable name="verbatim" select="programlisting|screen"/> + +  <xsl:choose> +    <xsl:when test="$use.extensions != '0'                     and $callouts.extension != '0'"> +      <xsl:variable name="rtf"> +        <xsl:apply-templates select="$verbatim"> +          <xsl:with-param name="suppress-numbers" select="'1'"/> +        </xsl:apply-templates> +      </xsl:variable> + +      <xsl:variable name="rtf-with-callouts"> +        <xsl:choose> +          <xsl:when test="function-available('sverb:insertCallouts')"> +            <xsl:copy-of select="sverb:insertCallouts(areaspec,$rtf)"/> +          </xsl:when> +          <xsl:when test="function-available('xverb:insertCallouts')"> +            <xsl:copy-of select="xverb:insertCallouts(areaspec,$rtf)"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:message terminate="yes"> +              <xsl:text>No insertCallouts function is available.</xsl:text> +            </xsl:message> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:choose> +        <xsl:when test="$verbatim/@linenumbering = 'numbered'                         and $linenumbering.extension != '0'"> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:call-template name="number.rtf.lines"> +              <xsl:with-param name="rtf" select="$rtf-with-callouts"/> +              <xsl:with-param name="pi.context" select="programlisting|screen"/> +            </xsl:call-template> +            <xsl:apply-templates select="calloutlist"/> +          </div> +        </xsl:when> +        <xsl:otherwise> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:copy-of select="$rtf-with-callouts"/> +            <xsl:apply-templates select="calloutlist"/> +          </div> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates/> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="areaspec|areaset|area"> +</xsl:template> + +<xsl:template match="areaset" mode="conumber"> +  <xsl:number count="area|areaset" format="1"/> +</xsl:template> + +<xsl:template match="area" mode="conumber"> +  <xsl:number count="area|areaset" format="1"/> +</xsl:template> + +<xsl:template match="co" name="co"> +  <!-- Support a single linkend in HTML --> +  <xsl:variable name="targets" select="key('id', @linkends)"/> +  <xsl:variable name="target" select="$targets[1]"/> +  <xsl:choose> +    <xsl:when test="$target"> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:if test="@id or @xml:id"> +          <xsl:attribute name="id"> +            <xsl:value-of select="(@id|@xml:id)[1]"/> +          </xsl:attribute> +        </xsl:if> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates select="." mode="callout-bug"/> +      </a> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates select="." mode="callout-bug"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="coref"> +  <!-- tricky; this relies on the fact that we can process the "co" that's --> +  <!-- "over there" as if it were "right here" --> + +  <xsl:variable name="co" select="key('id', @linkend)"/> +  <xsl:choose> +    <xsl:when test="not($co)"> +      <xsl:message> +        <xsl:text>Error: coref link is broken: </xsl:text> +        <xsl:value-of select="@linkend"/> +      </xsl:message> +    </xsl:when> +    <xsl:when test="local-name($co) != 'co'"> +      <xsl:message> +        <xsl:text>Error: coref doesn't point to a co: </xsl:text> +        <xsl:value-of select="@linkend"/> +      </xsl:message> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="$co"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="co" mode="callout-bug"> +  <xsl:call-template name="callout-bug"> +    <xsl:with-param name="conum"> +      <xsl:number count="co" level="any" from="programlisting|screen|literallayout|synopsis" format="1"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="callout-bug"> +  <xsl:param name="conum" select="1"/> + +  <xsl:choose> +    <xsl:when test="$callout.graphics != 0                     and $conum <= $callout.graphics.number.limit"> +      <img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}" alt="{$conum}" border="0"/> +    </xsl:when> +    <xsl:when test="$callout.unicode != 0                     and $conum <= $callout.unicode.number.limit"> +      <xsl:choose> +        <xsl:when test="$callout.unicode.start.character = 10102"> +          <xsl:choose> +            <xsl:when test="$conum = 1">❶</xsl:when> +            <xsl:when test="$conum = 2">❷</xsl:when> +            <xsl:when test="$conum = 3">❸</xsl:when> +            <xsl:when test="$conum = 4">❹</xsl:when> +            <xsl:when test="$conum = 5">❺</xsl:when> +            <xsl:when test="$conum = 6">❻</xsl:when> +            <xsl:when test="$conum = 7">❼</xsl:when> +            <xsl:when test="$conum = 8">❽</xsl:when> +            <xsl:when test="$conum = 9">❾</xsl:when> +            <xsl:when test="$conum = 10">❿</xsl:when> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            <xsl:text>Don't know how to generate Unicode callouts </xsl:text> +            <xsl:text>when $callout.unicode.start.character is </xsl:text> +            <xsl:value-of select="$callout.unicode.start.character"/> +          </xsl:message> +          <xsl:text>(</xsl:text> +          <xsl:value-of select="$conum"/> +          <xsl:text>)</xsl:text> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:text>(</xsl:text> +      <xsl:value-of select="$conum"/> +      <xsl:text>)</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/changebars.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/changebars.xsl.svn-base new file mode 100644 index 0000000..731e854 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/changebars.xsl.svn-base @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<xsl:import href="docbook.xsl"/> + +<xsl:param name="show.revisionflag" select="'1'"/> + +<xsl:template name="system.head.content"> +<xsl:param name="node" select="."/> + +<style type="text/css"> +<xsl:text> +div.added    { background-color: #ffff99;  +               text-decoration: underline; } +div.deleted  { text-decoration: line-through; +               background-color: #FF7F7F; } +div.changed  { background-color: #99ff99; } +div.off      {  } + +span.added   { background-color: #ffff99;  +               text-decoration: underline; } +span.deleted { text-decoration: line-through; +               background-color: #FF7F7F; } +span.changed { background-color: #99ff99; } +span.off     {  } +</xsl:text> +</style> +</xsl:template> + +<xsl:template match="*[@revisionflag]"> +  <xsl:choose> +    <xsl:when test="local-name(.) = 'para'                     or local-name(.) = 'simpara'                     or local-name(.) = 'formalpara'                     or local-name(.) = 'section'                     or local-name(.) = 'sect1'                     or local-name(.) = 'sect2'                     or local-name(.) = 'sect3'                     or local-name(.) = 'sect4'                     or local-name(.) = 'sect5'                     or local-name(.) = 'chapter'                     or local-name(.) = 'preface'                     or local-name(.) = 'itemizedlist'                     or local-name(.) = 'varlistentry'                     or local-name(.) = 'glossary'                     or local-name(.) = 'bibliography'                     or local-name(.) = 'index'                     or local-name(.) = 'appendix'"> +      <div class="{@revisionflag}"> +	<xsl:apply-imports/> +      </div> +    </xsl:when> +    <xsl:when test="local-name(.) = 'phrase'                     or local-name(.) = 'ulink'                     or local-name(.) = 'link'                     or local-name(.) = 'filename'                     or local-name(.) = 'literal'                     or local-name(.) = 'member'                     or local-name(.) = 'glossterm'                     or local-name(.) = 'sgmltag'                     or local-name(.) = 'quote'                     or local-name(.) = 'emphasis'                     or local-name(.) = 'command'                     or local-name(.) = 'xref'"> +      <span class="{@revisionflag}"> +	<xsl:apply-imports/> +      </span> +    </xsl:when> +    <xsl:when test="local-name(.) = 'listitem'                     or local-name(.) = 'entry'                     or local-name(.) = 'title'"> +      <!-- nop; these are handled directly in the stylesheet --> +      <xsl:apply-imports/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message> +	<xsl:text>Revisionflag on unexpected element: </xsl:text> +	<xsl:value-of select="local-name(.)"/> +	<xsl:text> (Assuming block)</xsl:text> +      </xsl:message> +      <div class="{@revisionflag}"> +	<xsl:apply-imports/> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-code.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-code.xsl.svn-base new file mode 100644 index 0000000..fb6390e --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-code.xsl.svn-base @@ -0,0 +1,639 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl cf ng db" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + + +<xsl:template match="*" mode="chunk-filename"> +  <!-- returns the filename of a chunk --> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="fn"> +    <xsl:apply-templates select="." mode="recursive-chunk-filename"/> +  </xsl:variable> + +  <!-- +  <xsl:message> +    <xsl:value-of select="$ischunk"/> +    <xsl:text> (</xsl:text> +    <xsl:value-of select="local-name(.)"/> +    <xsl:text>) </xsl:text> +    <xsl:value-of select="$fn"/> +    <xsl:text>, </xsl:text> +    <xsl:call-template name="dbhtml-dir"/> +  </xsl:message> +  --> + +  <!-- 2003-11-25 by ndw: +       The following test used to read test="$ischunk != 0 and $fn != ''" +       I've removed the ischunk part of the test so that href.to.uri and +       href.from.uri will be fully qualified even if the source or target +       isn't a chunk. I *think* that if $fn != '' then it's appropriate +       to put the directory on the front, even if the element isn't a +       chunk. I could be wrong. --> + +  <xsl:if test="$fn != ''"> +    <xsl:call-template name="dbhtml-dir"/> +  </xsl:if> + +  <xsl:value-of select="$fn"/> +  <!-- You can't add the html.ext here because dbhtml filename= may already --> +  <!-- have added it. It really does have to be handled in the recursive template --> +</xsl:template> + +<xsl:template match="*" mode="recursive-chunk-filename"> +  <xsl:param name="recursive" select="false()"/> + +  <!-- returns the filename of a chunk --> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="dbhtml-filename"> +    <xsl:call-template name="pi.dbhtml_filename"/> +  </xsl:variable> + +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="$dbhtml-filename != ''"> +        <xsl:value-of select="$dbhtml-filename"/> +      </xsl:when> +      <!-- if this is the root element, use the root.filename --> +      <xsl:when test="not(parent::*) and $root.filename != ''"> +        <xsl:value-of select="$root.filename"/> +        <xsl:value-of select="$html.ext"/> +      </xsl:when> +      <!-- Special case --> +      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)"> +        <xsl:choose> +          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)"> +            <!-- * if this legalnotice has an ID, then go ahead and use --> +            <!-- * just the value of that ID as the basename for the file --> +            <!-- * (that is, without prepending an "ln-" too it) --> +            <xsl:value-of select="(@id|@xml:id)[1]"/> +            <xsl:value-of select="$html.ext"/> +          </xsl:when> +          <xsl:otherwise> +            <!-- * otherwise, if this legalnotice does not have an ID, --> +            <!-- * then we generate an ID... --> +            <xsl:variable name="id"> +              <xsl:call-template name="object.id"/> +            </xsl:variable> +            <!-- * ...and then we take that generated ID, prepend an --> +            <!-- * "ln-" to it, and use that as the basename for the file --> +            <xsl:value-of select="concat('ln-',$id,$html.ext)"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <!-- if there's no dbhtml filename, and if we're to use IDs as --> +      <!-- filenames, then use the ID to generate the filename. --> +      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0"> +        <xsl:value-of select="(@id|@xml:id)[1]"/> +        <xsl:value-of select="$html.ext"/> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$ischunk='0'"> +      <!-- if called on something that isn't a chunk, walk up... --> +      <xsl:choose> +        <xsl:when test="count(parent::*)>0"> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="$recursive"/> +          </xsl:apply-templates> +        </xsl:when> +        <!-- unless there is no up, in which case return "" --> +        <xsl:otherwise/> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="not($recursive) and $filename != ''"> +      <!-- if this chunk has an explicit name, use it --> +      <xsl:value-of select="$filename"/> +    </xsl:when> + +    <xsl:when test="self::set"> +      <xsl:value-of select="$root.filename"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::book"> +      <xsl:text>bk</xsl:text> +      <xsl:number level="any" format="01"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::article"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ar</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::preface"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>pr</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::chapter"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ch</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::appendix"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ap</xsl:text> +      <xsl:number level="any" format="a" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::part"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>pt</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::reference"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>rn</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::refentry"> +      <xsl:choose> +        <xsl:when test="parent::reference"> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>re</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::colophon"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>co</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section"> +      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +        <xsl:with-param name="recursive" select="true()"/> +      </xsl:apply-templates> +      <xsl:text>s</xsl:text> +      <xsl:number format="01"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::bibliography"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>bi</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::glossary"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>go</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::index"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>ix</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::setindex"> +      <xsl:text>si</xsl:text> +      <xsl:number level="any" format="01" from="set"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:text>chunk-filename-error-</xsl:text> +      <xsl:value-of select="name(.)"/> +      <xsl:number level="any" format="01" from="set"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + + + +<xsl:template match="processing-instruction('dbhtml')"> +  <!-- nop --> +</xsl:template> + +<!-- ==================================================================== --> + + +<xsl:template match="*" mode="find.chunks"> +  <xsl:variable name="chunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$chunk != 0"> +      <cf:div id="{generate-id()}"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates select="*" mode="find.chunks"/> +      </cf:div> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="*" mode="find.chunks"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="/"> +  <!-- * Get a title for current doc so that we let the user --> +  <!-- * know what document we are processing at this point. --> +  <xsl:variable name="doc.title"> +    <xsl:call-template name="get.doc.title"/> +  </xsl:variable> +  <xsl:choose> +    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, +         toss the namespace and continue.  Use the docbook5 namespaced +	 stylesheets for DocBook5 if you don't want to use this feature.--> +    <!-- include extra test for Xalan quirk --> +    <xsl:when test="(function-available('exsl:node-set') or                      contains(system-property('xsl:vendor'),                        'Apache Software Foundation'))                     and (*/self::ng:* or */self::db:*)"> +      <xsl:call-template name="log.message"> +        <xsl:with-param name="level">Note</xsl:with-param> +        <xsl:with-param name="source" select="$doc.title"/> +        <xsl:with-param name="context-desc"> +          <xsl:text>namesp. cut</xsl:text> +        </xsl:with-param> +        <xsl:with-param name="message"> +          <xsl:text>stripped namespace before processing</xsl:text> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:variable name="nons"> +        <xsl:apply-templates mode="stripNS"/> +      </xsl:variable> +      <xsl:call-template name="log.message"> +        <xsl:with-param name="level">Note</xsl:with-param> +        <xsl:with-param name="source" select="$doc.title"/> +        <xsl:with-param name="context-desc"> +          <xsl:text>namesp. cut</xsl:text> +        </xsl:with-param> +        <xsl:with-param name="message"> +          <xsl:text>processing stripped document</xsl:text> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:apply-templates select="exsl:node-set($nons)"/> +    </xsl:when> +    <!-- Can't process unless namespace removed --> +    <xsl:when test="*/self::ng:* or */self::db:*"> +      <xsl:message terminate="yes"> +        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text> +        <xsl:text> cannot proceed.</xsl:text> +      </xsl:message> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$rootid != ''"> +          <xsl:choose> +            <xsl:when test="count(key('id',$rootid)) = 0"> +              <xsl:message terminate="yes"> +                <xsl:text>ID '</xsl:text> +                <xsl:value-of select="$rootid"/> +                <xsl:text>' not found in document.</xsl:text> +              </xsl:message> +            </xsl:when> +            <xsl:otherwise> +              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'"> +                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/> +              </xsl:if> +              <xsl:if test="$collect.xref.targets != 'only'"> +                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/> +                <xsl:if test="$tex.math.in.alt != ''"> +                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/> +                </xsl:if> +                <xsl:if test="$generate.manifest != 0"> +                  <xsl:call-template name="generate.manifest"> +                    <xsl:with-param name="node" select="key('id',$rootid)"/> +                  </xsl:call-template> +                </xsl:if> +              </xsl:if> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'"> +            <xsl:apply-templates select="/" mode="collect.targets"/> +          </xsl:if> +          <xsl:if test="$collect.xref.targets != 'only'"> +            <xsl:apply-templates select="/" mode="process.root"/> +            <xsl:if test="$tex.math.in.alt != ''"> +              <xsl:apply-templates select="/" mode="collect.tex.math"/> +            </xsl:if> +            <xsl:if test="$generate.manifest != 0"> +              <xsl:call-template name="generate.manifest"> +                <xsl:with-param name="node" select="/"/> +              </xsl:call-template> +            </xsl:if> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="process.root"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon"> +  <xsl:choose> +    <xsl:when test="$onechunk != 0 and parent::*"> +      <xsl:apply-imports/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="sect1|sect2|sect3|sect4|sect5|section"> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="not(parent::*)"> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:when> +    <xsl:when test="$ischunk = 0"> +      <xsl:apply-imports/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="setindex                      |book/index                      |article/index                      |part/index"> +  <!-- some implementations use completely empty index tags to indicate --> +  <!-- where an automatically generated index should be inserted. so --> +  <!-- if the index is completely empty, skip it. --> +  <xsl:if test="count(*)>0 or $generate.index != '0'"> +    <xsl:call-template name="process-chunk-element"/> +  </xsl:if> +</xsl:template> + +<!-- Resolve xml:base attributes --> +<xsl:template match="@fileref"> +  <!-- need a check for absolute urls --> +  <xsl:choose> +    <xsl:when test="contains(., ':')"> +      <!-- it has a uri scheme so it is an absolute uri --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:when test="$keep.relative.image.uris != 0"> +      <!-- leave it alone --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:otherwise> +      <!-- its a relative uri --> +      <xsl:call-template name="relative-uri"> +        <xsl:with-param name="destdir"> +          <xsl:call-template name="dbhtml-dir"> +            <xsl:with-param name="context" select=".."/> +          </xsl:call-template> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> +<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files"> +  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable> +  <xsl:if test="$ischunk='1'"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir"> +        <xsl:if test="$manifest.in.base.dir = 0"> +          <xsl:value-of select="$base.dir"/> +        </xsl:if> +      </xsl:with-param> +      <xsl:with-param name="base.name"> +        <xsl:apply-templates mode="chunk-filename" select="."/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +  <xsl:apply-templates select="*" mode="enumerate-files"/> +</xsl:template> + +<xsl:template match="book/index|article/index|part/index" mode="enumerate-files"> +  <xsl:if test="$htmlhelp.output != 1"> +    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable> +    <xsl:if test="$ischunk='1'"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.dir"> +          <xsl:if test="$manifest.in.base.dir = 0"> +            <xsl:value-of select="$base.dir"/> +          </xsl:if> +        </xsl:with-param> +        <xsl:with-param name="base.name"> +          <xsl:apply-templates mode="chunk-filename" select="."/> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:text> +</xsl:text> +    </xsl:if> +    <xsl:apply-templates select="*" mode="enumerate-files"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="legalnotice" mode="enumerate-files"> +  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> +  <xsl:if test="$generate.legalnotice.link != 0"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir"> +        <xsl:if test="$manifest.in.base.dir = 0"> +          <xsl:value-of select="$base.dir"/> +        </xsl:if> +      </xsl:with-param> +      <xsl:with-param name="base.name"> +        <xsl:apply-templates mode="chunk-filename" select="."/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files"> +  <xsl:variable name="longdesc.uri"> +    <xsl:call-template name="longdesc.uri"> +      <xsl:with-param name="mediaobject" select="."/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="mediaobject" select="."/> + +  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]"> +    <xsl:call-template name="longdesc.uri"> +      <xsl:with-param name="mediaobject" select="$mediaobject"/> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="text()" mode="enumerate-files"> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-common.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-common.xsl.svn-base new file mode 100644 index 0000000..f452b44 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk-common.xsl.svn-base @@ -0,0 +1,1545 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl cf ng db"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:param name="onechunk" select="0"/> +<xsl:param name="refentry.separator" select="0"/> +<xsl:param name="chunk.fast" select="0"/> + +<xsl:key name="genid" match="*" use="generate-id()"/> + +<!-- ==================================================================== --> + +<xsl:variable name="chunk.hierarchy"> +  <xsl:if test="$chunk.fast != 0"> +    <xsl:choose> +      <xsl:when test="function-available('exsl:node-set')"> +        <xsl:message>Computing chunks...</xsl:message> +        <xsl:apply-templates select="/*" mode="find.chunks"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:message> +          <xsl:text>Fast chunking requires exsl:node-set(). </xsl:text> +          <xsl:text>Using "slow" chunking.</xsl:text> +        </xsl:message> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +</xsl:variable> + +<!-- ==================================================================== --> + +<xsl:template name="process-chunk-element"> +  <xsl:param name="content"> +    <xsl:apply-imports/> +  </xsl:param> + +  <xsl:choose> +    <xsl:when test="$chunk.fast != 0 and function-available('exsl:node-set')"> +      <xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/> +      <xsl:variable name="genid" select="generate-id()"/> + +      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/> + +      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/> +      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/> + +      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/> +      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/> + +      <xsl:choose> +        <xsl:when test="$onechunk != 0 and parent::*"> +          <xsl:copy-of select="$content"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="process-chunk"> +            <xsl:with-param name="prev" select="$prev"/> +            <xsl:with-param name="next" select="$next"/> +            <xsl:with-param name="content" select="$content"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$onechunk != 0 and not(parent::*)"> +          <xsl:call-template name="chunk-all-sections"> +            <xsl:with-param name="content" select="$content"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:when test="$onechunk != 0"> +          <xsl:copy-of select="$content"/> +        </xsl:when> +        <xsl:when test="$chunk.first.sections = 0"> +          <xsl:call-template name="chunk-first-section-with-parent"> +            <xsl:with-param name="content" select="$content"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="chunk-all-sections"> +            <xsl:with-param name="content" select="$content"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="process-chunk"> +  <xsl:param name="prev" select="."/> +  <xsl:param name="next" select="."/> +  <xsl:param name="content"> +    <xsl:apply-imports/> +  </xsl:param> + +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="chunkfn"> +    <xsl:if test="$ischunk='1'"> +      <xsl:apply-templates mode="chunk-filename" select="."/> +    </xsl:if> +  </xsl:variable> + +  <xsl:if test="$ischunk='0'"> +    <xsl:message> +      <xsl:text>Error </xsl:text> +      <xsl:value-of select="name(.)"/> +      <xsl:text> is not a chunk!</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:variable name="filename"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir" select="$base.dir"/> +      <xsl:with-param name="base.name" select="$chunkfn"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:call-template name="write.chunk"> +    <xsl:with-param name="filename" select="$filename"/> +    <xsl:with-param name="content"> +      <xsl:call-template name="chunk-element-content"> +        <xsl:with-param name="prev" select="$prev"/> +        <xsl:with-param name="next" select="$next"/> +        <xsl:with-param name="content" select="$content"/> +      </xsl:call-template> +    </xsl:with-param> +    <xsl:with-param name="quiet" select="$chunk.quietly"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="chunk-first-section-with-parent"> +  <xsl:param name="content"> +    <xsl:apply-imports/> +  </xsl:param> + +  <!-- These xpath expressions are really hairy. The trick is to pick sections --> +  <!-- that are not first children and are not the children of first children --> + +  <!-- Break these variables into pieces to work around +       http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6063 --> + +  <xsl:variable name="prev-v1" select="(ancestor::sect1[$chunk.section.depth > 0                                and preceding-sibling::sect1][1]               |ancestor::sect2[$chunk.section.depth > 1                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |ancestor::sect3[$chunk.section.depth > 2                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect4[$chunk.section.depth > 3                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::sect5[$chunk.section.depth > 4                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |ancestor::section[$chunk.section.depth > count(ancestor::section)                                 and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/> + +  <xsl:variable name="prev-v2" select="(preceding::sect1[$chunk.section.depth > 0                                and preceding-sibling::sect1][1]               |preceding::sect2[$chunk.section.depth > 1                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |preceding::sect3[$chunk.section.depth > 2                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect4[$chunk.section.depth > 3                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::sect5[$chunk.section.depth > 4                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |preceding::section[$chunk.section.depth > count(ancestor::section)                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])][1])[last()]"/> + +  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |$prev-v1              |$prev-v2)[last()]"/> + +  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth > 0                                and preceding-sibling::sect1][1]               |following::sect2[$chunk.section.depth > 1                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |following::sect3[$chunk.section.depth > 2                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect4[$chunk.section.depth > 3                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::sect5[$chunk.section.depth > 4                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |following::section[$chunk.section.depth > count(ancestor::section)                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])][1])[1]"/> + +  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth > 0                                and preceding-sibling::sect1][1]               |descendant::sect2[$chunk.section.depth > 1                                and preceding-sibling::sect2                                and parent::sect1[preceding-sibling::sect1]][1]               |descendant::sect3[$chunk.section.depth > 2                                and preceding-sibling::sect3                                and parent::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect4[$chunk.section.depth > 3                                and preceding-sibling::sect4                                and parent::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::sect5[$chunk.section.depth > 4                                and preceding-sibling::sect5                                and parent::sect4[preceding-sibling::sect4]                                and ancestor::sect3[preceding-sibling::sect3]                                and ancestor::sect2[preceding-sibling::sect2]                                and ancestor::sect1[preceding-sibling::sect1]][1]               |descendant::section[$chunk.section.depth > count(ancestor::section)                                  and preceding-sibling::section                                  and not(ancestor::section[not(preceding-sibling::section)])])[1]"/> + +  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |following::article[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::bibliography[parent::article or parent::book or parent::part][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/> + +  <xsl:call-template name="process-chunk"> +    <xsl:with-param name="prev" select="$prev"/> +    <xsl:with-param name="next" select="$next"/> +    <xsl:with-param name="content" select="$content"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="chunk-all-sections"> +  <xsl:param name="content"> +    <xsl:apply-imports/> +  </xsl:param> + +  <xsl:variable name="prev-v1" select="(preceding::sect1[$chunk.section.depth > 0][1]              |preceding::sect2[$chunk.section.depth > 1][1]              |preceding::sect3[$chunk.section.depth > 2][1]              |preceding::sect4[$chunk.section.depth > 3][1]              |preceding::sect5[$chunk.section.depth > 4][1]              |preceding::section[$chunk.section.depth > count(ancestor::section)][1])[last()]"/> + +  <xsl:variable name="prev-v2" select="(ancestor::sect1[$chunk.section.depth > 0][1]              |ancestor::sect2[$chunk.section.depth > 1][1]              |ancestor::sect3[$chunk.section.depth > 2][1]              |ancestor::sect4[$chunk.section.depth > 3][1]              |ancestor::sect5[$chunk.section.depth > 4][1]              |ancestor::section[$chunk.section.depth > count(ancestor::section)][1])[last()]"/> + +  <xsl:variable name="prev" select="(preceding::book[1]              |preceding::preface[1]              |preceding::chapter[1]              |preceding::appendix[1]              |preceding::part[1]              |preceding::reference[1]              |preceding::refentry[1]              |preceding::colophon[1]              |preceding::article[1]              |preceding::bibliography[parent::article or parent::book or parent::part][1]              |preceding::glossary[parent::article or parent::book or parent::part][1]              |preceding::index[$generate.index != 0]                                [parent::article or parent::book or parent::part][1]              |preceding::setindex[$generate.index != 0][1]              |ancestor::set              |ancestor::book[1]              |ancestor::preface[1]              |ancestor::chapter[1]              |ancestor::appendix[1]              |ancestor::part[1]              |ancestor::reference[1]              |ancestor::article[1]              |$prev-v1              |$prev-v2)[last()]"/> + +  <xsl:variable name="next-v1" select="(following::sect1[$chunk.section.depth > 0][1]              |following::sect2[$chunk.section.depth > 1][1]              |following::sect3[$chunk.section.depth > 2][1]              |following::sect4[$chunk.section.depth > 3][1]              |following::sect5[$chunk.section.depth > 4][1]              |following::section[$chunk.section.depth > count(ancestor::section)][1])[1]"/> + +  <xsl:variable name="next-v2" select="(descendant::sect1[$chunk.section.depth > 0][1]              |descendant::sect2[$chunk.section.depth > 1][1]              |descendant::sect3[$chunk.section.depth > 2][1]              |descendant::sect4[$chunk.section.depth > 3][1]              |descendant::sect5[$chunk.section.depth > 4][1]              |descendant::section[$chunk.section.depth                                    > count(ancestor::section)][1])[1]"/> + +  <xsl:variable name="next" select="(following::book[1]              |following::preface[1]              |following::chapter[1]              |following::appendix[1]              |following::part[1]              |following::reference[1]              |following::refentry[1]              |following::colophon[1]              |following::bibliography[parent::article or parent::book or parent::part][1]              |following::glossary[parent::article or parent::book or parent::part][1]              |following::index[$generate.index != 0]                                [parent::article or parent::book][1]              |following::article[1]              |following::setindex[$generate.index != 0][1]              |descendant::book[1]              |descendant::preface[1]              |descendant::chapter[1]              |descendant::appendix[1]              |descendant::article[1]              |descendant::bibliography[parent::article or parent::book][1]              |descendant::glossary[parent::article or parent::book or parent::part][1]              |descendant::index[$generate.index != 0]                                [parent::article or parent::book][1]              |descendant::colophon[1]              |descendant::setindex[$generate.index != 0][1]              |descendant::part[1]              |descendant::reference[1]              |descendant::refentry[1]              |$next-v1              |$next-v2)[1]"/> + +  <xsl:call-template name="process-chunk"> +    <xsl:with-param name="prev" select="$prev"/> +    <xsl:with-param name="next" select="$next"/> +    <xsl:with-param name="content" select="$content"/> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- ==================================================================== --> + +<xsl:template name="make.lots"> +  <xsl:param name="toc.params" select="''"/> +  <xsl:param name="toc"/> + +  <xsl:variable name="lots"> +    <xsl:if test="contains($toc.params, 'toc')"> +      <xsl:copy-of select="$toc"/> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'figure')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'figure'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'figure'"/> +                <xsl:with-param name="nodes" select=".//figure"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'figure'"/> +            <xsl:with-param name="nodes" select=".//figure"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'table')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'table'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'table'"/> +                <xsl:with-param name="nodes" select=".//table"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'table'"/> +            <xsl:with-param name="nodes" select=".//table"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'example')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'example'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'example'"/> +                <xsl:with-param name="nodes" select=".//example"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'example'"/> +            <xsl:with-param name="nodes" select=".//example"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'equation')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'equation'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'equation'"/> +                <xsl:with-param name="nodes" select=".//equation"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'equation'"/> +            <xsl:with-param name="nodes" select=".//equation"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'procedure')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'procedure'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'procedure'"/> +                <xsl:with-param name="nodes" select=".//procedure[title]"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'procedure'"/> +            <xsl:with-param name="nodes" select=".//procedure[title]"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> +  </xsl:variable> + +  <xsl:if test="string($lots) != ''"> +    <xsl:choose> +      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)"> +        <xsl:call-template name="write.chunk"> +          <xsl:with-param name="filename"> +            <xsl:call-template name="make-relative-filename"> +              <xsl:with-param name="base.dir" select="$base.dir"/> +              <xsl:with-param name="base.name"> +                <xsl:call-template name="dbhtml-dir"/> +                <xsl:apply-templates select="." mode="recursive-chunk-filename"> +                  <xsl:with-param name="recursive" select="true()"/> +                </xsl:apply-templates> +                <xsl:text>-toc</xsl:text> +                <xsl:value-of select="$html.ext"/> +              </xsl:with-param> +            </xsl:call-template> +          </xsl:with-param> +          <xsl:with-param name="content"> +            <xsl:call-template name="chunk-element-content"> +              <xsl:with-param name="prev" select="/foo"/> +              <xsl:with-param name="next" select="/foo"/> +              <xsl:with-param name="nav.context" select="'toc'"/> +              <xsl:with-param name="content"> +                <xsl:if test="$chunk.tocs.and.lots.has.title != 0"> +                  <h1> +                    <xsl:apply-templates select="." mode="object.title.markup"/> +                  </h1> +                </xsl:if> +                <xsl:copy-of select="$lots"/> +              </xsl:with-param> +            </xsl:call-template> +          </xsl:with-param> +          <xsl:with-param name="quiet" select="$chunk.quietly"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:copy-of select="$lots"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +</xsl:template> + +<xsl:template name="make.lot.chunk"> +  <xsl:param name="type" select="''"/> +  <xsl:param name="lot"/> + +  <xsl:if test="string($lot) != ''"> +    <xsl:variable name="filename"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.dir" select="$base.dir"/> +        <xsl:with-param name="base.name"> +          <xsl:call-template name="dbhtml-dir"/> +          <xsl:value-of select="$type"/> +          <xsl:text>-toc</xsl:text> +          <xsl:value-of select="$html.ext"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:variable name="href"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.name"> +          <xsl:call-template name="dbhtml-dir"/> +          <xsl:value-of select="$type"/> +          <xsl:text>-toc</xsl:text> +          <xsl:value-of select="$html.ext"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:call-template name="write.chunk"> +      <xsl:with-param name="filename" select="$filename"/> +      <xsl:with-param name="content"> +        <xsl:call-template name="chunk-element-content"> +          <xsl:with-param name="prev" select="/foo"/> +          <xsl:with-param name="next" select="/foo"/> +          <xsl:with-param name="nav.context" select="'toc'"/> +          <xsl:with-param name="content"> +            <xsl:copy-of select="$lot"/> +          </xsl:with-param> +        </xsl:call-template> +      </xsl:with-param> +      <xsl:with-param name="quiet" select="$chunk.quietly"/> +    </xsl:call-template> +    <!-- And output a link to this file --> +    <div> +      <xsl:attribute name="class"> +        <xsl:text>ListofTitles</xsl:text> +      </xsl:attribute> +      <a href="{$href}"> +        <xsl:call-template name="gentext"> +          <xsl:with-param name="key"> +            <xsl:choose> +              <xsl:when test="$type='table'">ListofTables</xsl:when> +              <xsl:when test="$type='figure'">ListofFigures</xsl:when> +              <xsl:when test="$type='equation'">ListofEquations</xsl:when> +              <xsl:when test="$type='example'">ListofExamples</xsl:when> +              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when> +              <xsl:otherwise>ListofUnknown</xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> +      </a> +    </div> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="in.other.chunk"> +  <xsl:param name="chunk" select="."/> +  <xsl:param name="node" select="."/> + +  <xsl:variable name="is.chunk"> +    <xsl:call-template name="chunk"> +      <xsl:with-param name="node" select="$node"/> +    </xsl:call-template> +  </xsl:variable> + +<!-- +  <xsl:message> +    <xsl:text>in.other.chunk: </xsl:text> +    <xsl:value-of select="name($chunk)"/> +    <xsl:text> </xsl:text> +    <xsl:value-of select="name($node)"/> +    <xsl:text> </xsl:text> +    <xsl:value-of select="$chunk = $node"/> +    <xsl:text> </xsl:text> +    <xsl:value-of select="$is.chunk"/> +  </xsl:message> +--> + +  <xsl:choose> +    <xsl:when test="$chunk = $node">0</xsl:when> +    <xsl:when test="$is.chunk = 1">1</xsl:when> +    <xsl:when test="count($node) = 0">0</xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="in.other.chunk"> +        <xsl:with-param name="chunk" select="$chunk"/> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="count.footnotes.in.this.chunk"> +  <xsl:param name="node" select="."/> +  <xsl:param name="footnotes" select="$node//footnote"/> +  <xsl:param name="count" select="0"/> + +<!-- +  <xsl:message> +    <xsl:text>count.footnotes.in.this.chunk: </xsl:text> +    <xsl:value-of select="name($node)"/> +  </xsl:message> +--> + +  <xsl:variable name="in.other.chunk"> +    <xsl:call-template name="in.other.chunk"> +      <xsl:with-param name="chunk" select="$node"/> +      <xsl:with-param name="node" select="$footnotes[1]"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="count($footnotes) = 0"> +      <xsl:value-of select="$count"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$in.other.chunk != 0"> +          <xsl:call-template name="count.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +            <xsl:with-param name="count" select="$count"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable"> +          <xsl:call-template name="count.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +            <xsl:with-param name="count" select="$count"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="count.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +            <xsl:with-param name="count" select="$count + 1"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="process.footnotes.in.this.chunk"> +  <xsl:param name="node" select="."/> +  <xsl:param name="footnotes" select="$node//footnote"/> + +<!-- +  <xsl:message>process.footnotes.in.this.chunk</xsl:message> +--> + +  <xsl:variable name="in.other.chunk"> +    <xsl:call-template name="in.other.chunk"> +      <xsl:with-param name="chunk" select="$node"/> +      <xsl:with-param name="node" select="$footnotes[1]"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="count($footnotes) = 0"> +      <!-- nop --> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$in.other.chunk != 0"> +          <xsl:call-template name="process.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:when test="$footnotes[1]/ancestor::table                         |$footnotes[1]/ancestor::informaltable"> +          <xsl:call-template name="process.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="$footnotes[1]" mode="process.footnote.mode"/> +          <xsl:call-template name="process.footnotes.in.this.chunk"> +            <xsl:with-param name="node" select="$node"/> +            <xsl:with-param name="footnotes" select="$footnotes[position() > 1]"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="process.footnotes"> +  <xsl:variable name="footnotes" select=".//footnote"/> +  <xsl:variable name="fcount"> +    <xsl:call-template name="count.footnotes.in.this.chunk"> +      <xsl:with-param name="node" select="."/> +      <xsl:with-param name="footnotes" select="$footnotes"/> +    </xsl:call-template> +  </xsl:variable> + +<!-- +  <xsl:message> +    <xsl:value-of select="name(.)"/> +    <xsl:text> fcount: </xsl:text> +    <xsl:value-of select="$fcount"/> +  </xsl:message> +--> + +  <!-- Only bother to do this if there's at least one non-table footnote --> +  <xsl:if test="$fcount > 0"> +    <div class="footnotes"> +      <br/> +      <hr width="100" align="left"/> +      <xsl:call-template name="process.footnotes.in.this.chunk"> +        <xsl:with-param name="node" select="."/> +        <xsl:with-param name="footnotes" select="$footnotes"/> +      </xsl:call-template> +    </div> +  </xsl:if> + +  <!-- FIXME: When chunking, only the annotations actually used +              in this chunk should be referenced. I don't think it +              does any harm to reference them all, but it adds +              unnecessary bloat to each chunk. --> +  <xsl:if test="$annotation.support != 0 and //annotation"> +    <div class="annotation-list"> +      <div class="annotation-nocss"> +        <p>The following annotations are from this essay. You are seeing +        them here because your browser doesn’t support the user-interface +        techniques used to make them appear as ‘popups’ on modern browsers.</p> +      </div> + +      <xsl:apply-templates select="//annotation" mode="annotation-popup"/> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template name="process.chunk.footnotes"> +  <xsl:variable name="is.chunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> +  <xsl:if test="$is.chunk = 1"> +    <xsl:call-template name="process.footnotes"/> +  </xsl:if> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:template name="chunk"> +  <xsl:param name="node" select="."/> +  <!-- returns 1 if $node is a chunk --> + +  <!-- ==================================================================== --> +  <!-- What's a chunk? + +       The root element +       appendix +       article +       bibliography  in article or part or book +       book +       chapter +       colophon +       glossary      in article or part or book +       index         in article or part or book +       part +       preface +       refentry +       reference +       sect{1,2,3,4,5}  if position()>1 && depth < chunk.section.depth +       section          if position()>1 && depth < chunk.section.depth +       set +       setindex +                                                                            --> +  <!-- ==================================================================== --> + +<!-- +  <xsl:message> +    <xsl:text>chunk: </xsl:text> +    <xsl:value-of select="name($node)"/> +    <xsl:text>(</xsl:text> +    <xsl:value-of select="$node/@id"/> +    <xsl:text>)</xsl:text> +    <xsl:text> csd: </xsl:text> +    <xsl:value-of select="$chunk.section.depth"/> +    <xsl:text> cfs: </xsl:text> +    <xsl:value-of select="$chunk.first.sections"/> +    <xsl:text> ps: </xsl:text> +    <xsl:value-of select="count($node/parent::section)"/> +    <xsl:text> prs: </xsl:text> +    <xsl:value-of select="count($node/preceding-sibling::section)"/> +  </xsl:message> +--> + +  <xsl:choose> +    <xsl:when test="not($node/parent::*)">1</xsl:when> + +    <xsl:when test="local-name($node) = 'sect1'                     and $chunk.section.depth >= 1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect1) > 0)"> +      <xsl:text>1</xsl:text> +    </xsl:when> +    <xsl:when test="local-name($node) = 'sect2'                     and $chunk.section.depth >= 2                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect2) > 0)"> +      <xsl:call-template name="chunk"> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="local-name($node) = 'sect3'                     and $chunk.section.depth >= 3                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect3) > 0)"> +      <xsl:call-template name="chunk"> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="local-name($node) = 'sect4'                     and $chunk.section.depth >= 4                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect4) > 0)"> +      <xsl:call-template name="chunk"> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="local-name($node) = 'sect5'                     and $chunk.section.depth >= 5                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::sect5) > 0)"> +      <xsl:call-template name="chunk"> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="local-name($node) = 'section'                     and $chunk.section.depth >= count($node/ancestor::section)+1                     and ($chunk.first.sections != 0                          or count($node/preceding-sibling::section) > 0)"> +      <xsl:call-template name="chunk"> +        <xsl:with-param name="node" select="$node/parent::*"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:when test="local-name($node)='preface'">1</xsl:when> +    <xsl:when test="local-name($node)='chapter'">1</xsl:when> +    <xsl:when test="local-name($node)='appendix'">1</xsl:when> +    <xsl:when test="local-name($node)='article'">1</xsl:when> +    <xsl:when test="local-name($node)='part'">1</xsl:when> +    <xsl:when test="local-name($node)='reference'">1</xsl:when> +    <xsl:when test="local-name($node)='refentry'">1</xsl:when> +    <xsl:when test="local-name($node)='index' and ($generate.index != 0 or count($node/*) > 0)                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when> +    <xsl:when test="local-name($node)='bibliography'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when> +    <xsl:when test="local-name($node)='glossary'                     and (local-name($node/parent::*) = 'article'                     or local-name($node/parent::*) = 'book'                     or local-name($node/parent::*) = 'part'                     )">1</xsl:when> +    <xsl:when test="local-name($node)='colophon'">1</xsl:when> +    <xsl:when test="local-name($node)='book'">1</xsl:when> +    <xsl:when test="local-name($node)='set'">1</xsl:when> +    <xsl:when test="local-name($node)='setindex'">1</xsl:when> +    <xsl:when test="local-name($node)='legalnotice'                     and $generate.legalnotice.link != 0">1</xsl:when> +    <xsl:otherwise>0</xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> +<xsl:template name="href.target.uri"> +  <xsl:param name="object" select="."/> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"> +      <xsl:with-param name="node" select="$object"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:apply-templates mode="chunk-filename" select="$object"/> + +  <xsl:if test="$ischunk='0'"> +    <xsl:text>#</xsl:text> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="$object"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="href.target"> +  <xsl:param name="context" select="."/> +  <xsl:param name="object" select="."/> +  <xsl:param name="toc-context" select="."/> +  <!-- * If $toc-context contains some node other than the current node, --> +  <!-- * it means we're processing a link in a TOC. In that case, to --> +  <!-- * ensure the link will work correctly, we need to take a look at --> +  <!-- * where the file containing the TOC will get written, and where --> +  <!-- * the file that's being linked to will get written. --> +  <xsl:variable name="toc-output-dir"> +    <xsl:if test="not($toc-context = .)"> +      <!-- * Get the $toc-context node and all its ancestors, look down --> +      <!-- * through them to find the last/closest node to the --> +      <!-- * toc-context node that has a "dbhtml dir" PI, and get the --> +      <!-- * directory name from that. That's the name of the directory --> +      <!-- * to which the current toc output file will get written. --> +      <xsl:call-template name="dbhtml-dir"> +        <xsl:with-param name="context" select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> +  <xsl:variable name="linked-file-output-dir"> +    <xsl:if test="not($toc-context = .)"> +      <!-- * Get the current node and all its ancestors, look down --> +      <!-- * through them to find the last/closest node to the current --> +      <!-- * node that has a "dbhtml dir" PI, and get the directory name --> +      <!-- * from that.  That's the name of the directory to which the --> +      <!-- * file that's being linked to will get written. --> +      <xsl:call-template name="dbhtml-dir"> +        <xsl:with-param name="context" select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> +  <xsl:variable name="href.to.uri"> +    <xsl:call-template name="href.target.uri"> +      <xsl:with-param name="object" select="$object"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="href.from.uri"> +    <xsl:call-template name="href.target.uri"> +      <xsl:with-param name="object" select="$context"/> +    </xsl:call-template> +  </xsl:variable> +  <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> --> +  <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> --> +  <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> --> +  <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> --> +  <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> --> +  <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> --> +  <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> --> +  <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> --> +  <xsl:variable name="href.to"> +    <xsl:choose> +      <!-- * 2007-07-19, MikeSmith: Added the following conditional to --> +      <!-- * deal with a problem case for links in TOCs. It checks to see --> +      <!-- * if the output dir that a TOC will get written to is --> +      <!-- * different from the output dir of the file being linked to. --> +      <!-- * If it is different, we do not call trim.common.uri.paths. --> +      <!-- *  --> +      <!-- * Reason why I added that conditional is: I ran into a bug for --> +      <!-- * this case: --> +      <!-- *  --> +      <!-- * 1. we are chunking into separate dirs --> +      <!-- *  --> +      <!-- * 2. output for the TOC is written to current dir, but the file --> +      <!-- *    being linked to is written to some subdir "foo". --> +      <!-- *  --> +      <!-- * For that case, links to that file in that TOC did not show --> +      <!-- * the correct path - they omitted the "foo". --> +      <!-- *  --> +      <!-- * The cause of that problem was that the trim.common.uri.paths --> +      <!-- * template[1] was being called under all conditions. But it's --> +      <!-- * apparent that we don't want to call trim.common.uri.paths in --> +      <!-- * the case where a linked file is being written to a different --> +      <!-- * directory than the TOC that contains the link, because doing --> +      <!-- * so will cause a necessary (not redundant) directory-name --> +      <!-- * part of the link to get inadvertently trimmed, resulting in --> +      <!-- * a broken link to that file. Thus, added the conditional. --> +      <!-- *  --> +      <!-- * [1] The purpose of the trim.common.uri.paths template is to --> +      <!-- * prevent cases where, if we didn't call it, we end up with --> +      <!-- * unnecessary, redundant directory names getting output; for --> +      <!-- * example, "foo/foo/refname.html". --> +      <xsl:when test="not($toc-output-dir = $linked-file-output-dir)"> +        <xsl:value-of select="$href.to.uri"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="trim.common.uri.paths"> +          <xsl:with-param name="uriA" select="$href.to.uri"/> +          <xsl:with-param name="uriB" select="$href.from.uri"/> +          <xsl:with-param name="return" select="'A'"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:variable name="href.from"> +    <xsl:call-template name="trim.common.uri.paths"> +      <xsl:with-param name="uriA" select="$href.to.uri"/> +      <xsl:with-param name="uriB" select="$href.from.uri"/> +      <xsl:with-param name="return" select="'B'"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="depth"> +    <xsl:call-template name="count.uri.path.depth"> +      <xsl:with-param name="filename" select="$href.from"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="href"> +    <xsl:call-template name="copy-string"> +      <xsl:with-param name="string" select="'../'"/> +      <xsl:with-param name="count" select="$depth"/> +    </xsl:call-template> +    <xsl:value-of select="$href.to"/> +  </xsl:variable> +  <!-- +  <xsl:message> +    <xsl:text>In </xsl:text> +    <xsl:value-of select="name(.)"/> +    <xsl:text> (</xsl:text> +    <xsl:value-of select="$href.from"/> +    <xsl:text>,</xsl:text> +    <xsl:value-of select="$depth"/> +    <xsl:text>) </xsl:text> +    <xsl:value-of select="name($object)"/> +    <xsl:text> href=</xsl:text> +    <xsl:value-of select="$href"/> +  </xsl:message> +  --> +  <xsl:value-of select="$href"/> +</xsl:template> + +<!-- Returns the complete olink href value if found --> +<!-- Must take into account any dbhtml dir of the chunk containing the olink --> +<xsl:template name="make.olink.href"> +  <xsl:param name="olink.key" select="''"/> +  <xsl:param name="target.database"/> + +  <xsl:if test="$olink.key != ''"> +    <xsl:variable name="target.href"> +      <xsl:for-each select="$target.database"> +        <xsl:value-of select="key('targetptr-key', $olink.key)/@href"/> +      </xsl:for-each> +    </xsl:variable> +   +    <!-- an olink starting point may be in a subdirectory, so need +         the "from" reference point to compute a relative path --> + +    <xsl:variable name="from.href"> +      <xsl:call-template name="olink.from.uri"> +        <xsl:with-param name="target.database" select="$target.database"/> +        <xsl:with-param name="object" select="."/> +        <xsl:with-param name="object.targetdoc" select="$current.docid"/> +      </xsl:call-template> +    </xsl:variable> + +    <!-- If the from.href has directory path, then must "../" upward +         to document level --> +    <xsl:variable name="upward.from.path"> +      <xsl:call-template name="upward.path"> +        <xsl:with-param name="path" select="$from.href"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:variable name="targetdoc"> +      <xsl:value-of select="substring-before($olink.key, '/')"/> +    </xsl:variable> +   +    <!-- Does the target database use a sitemap? --> +    <xsl:variable name="use.sitemap"> +      <xsl:choose> +        <xsl:when test="$target.database//sitemap">1</xsl:when> +        <xsl:otherwise>0</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +   +   +    <!-- Get the baseuri for this targetptr --> +    <xsl:variable name="baseuri"> +      <xsl:choose> +        <!-- Does the database use a sitemap? --> +        <xsl:when test="$use.sitemap != 0"> +          <xsl:choose> +            <!-- Was current.docid parameter set? --> +            <xsl:when test="$current.docid != ''"> +              <!-- Was it found in the database? --> +              <xsl:variable name="currentdoc.key"> +                <xsl:for-each select="$target.database"> +                  <xsl:value-of select="key('targetdoc-key',                                         $current.docid)/@targetdoc"/> +                </xsl:for-each> +              </xsl:variable> +              <xsl:choose> +                <xsl:when test="$currentdoc.key != ''"> +                  <xsl:for-each select="$target.database"> +                    <xsl:call-template name="targetpath"> +                      <xsl:with-param name="dirnode" select="key('targetdoc-key', $current.docid)/parent::dir"/> +                      <xsl:with-param name="targetdoc" select="$targetdoc"/> +                    </xsl:call-template> +                  </xsl:for-each> +                </xsl:when> +                <xsl:otherwise> +                  <xsl:message> +                    <xsl:text>Olink error: cannot compute relative </xsl:text> +                    <xsl:text>sitemap path because $current.docid '</xsl:text> +                    <xsl:value-of select="$current.docid"/> +                    <xsl:text>' not found in target database.</xsl:text> +                  </xsl:message> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:when> +            <xsl:otherwise> +              <xsl:message> +                <xsl:text>Olink warning: cannot compute relative </xsl:text> +                <xsl:text>sitemap path without $current.docid parameter</xsl:text> +              </xsl:message> +            </xsl:otherwise> +          </xsl:choose>  +          <!-- In either case, add baseuri from its document entry--> +          <xsl:variable name="docbaseuri"> +            <xsl:for-each select="$target.database"> +              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/> +            </xsl:for-each> +          </xsl:variable> +          <xsl:if test="$docbaseuri != ''"> +            <xsl:value-of select="$docbaseuri"/> +          </xsl:if> +        </xsl:when> +        <!-- No database sitemap in use --> +        <xsl:otherwise> +          <!-- Just use any baseuri from its document entry --> +          <xsl:variable name="docbaseuri"> +            <xsl:for-each select="$target.database"> +              <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri"/> +            </xsl:for-each> +          </xsl:variable> +          <xsl:if test="$docbaseuri != ''"> +            <xsl:value-of select="$docbaseuri"/> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +   +    <!-- Form the href information --> +    <xsl:if test="not(contains($baseuri, ':'))"> +      <!-- if not an absolute uri, add upward path from olink chunk --> +      <xsl:value-of select="$upward.from.path"/> +    </xsl:if> + +    <xsl:if test="$baseuri != ''"> +      <xsl:value-of select="$baseuri"/> +      <xsl:if test="substring($target.href,1,1) != '#'"> +        <!--xsl:text>/</xsl:text--> +      </xsl:if> +    </xsl:if> +    <!-- optionally turn off frag for PDF references --> +    <xsl:if test="not($insert.olink.pdf.frag = 0 and           translate(substring($baseuri, string-length($baseuri) - 3),                     'PDF', 'pdf') = '.pdf'           and starts-with($target.href, '#') )"> +      <xsl:value-of select="$target.href"/> +    </xsl:if> +  </xsl:if> +</xsl:template> + +<!-- Computes "../" to reach top --> +<xsl:template name="upward.path"> +  <xsl:param name="path" select="''"/> +  <xsl:choose>  +    <!-- Don't bother with absolute uris --> +    <xsl:when test="contains($path, ':')"/> +    <xsl:when test="starts-with($path, '/')"/> +    <xsl:when test="contains($path, '/')"> +      <xsl:text>../</xsl:text> +      <xsl:call-template name="upward.path"> +        <xsl:with-param name="path" select="substring-after($path, '/')"/> +      </xsl:call-template> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="html.head"> +  <xsl:param name="prev" select="/foo"/> +  <xsl:param name="next" select="/foo"/> +  <xsl:variable name="this" select="."/> +  <xsl:variable name="home" select="/*[1]"/> +  <xsl:variable name="up" select="parent::*"/> + +  <head> +    <xsl:call-template name="system.head.content"/> +    <xsl:call-template name="head.content"/> + +    <xsl:if test="$home"> +      <link rel="start"> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$home"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:attribute name="title"> +          <xsl:apply-templates select="$home" mode="object.title.markup.textonly"/> +        </xsl:attribute> +      </link> +    </xsl:if> + +    <xsl:if test="$up"> +      <link rel="up"> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$up"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:attribute name="title"> +          <xsl:apply-templates select="$up" mode="object.title.markup.textonly"/> +        </xsl:attribute> +      </link> +    </xsl:if> + +    <xsl:if test="$prev"> +      <link rel="prev"> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$prev"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:attribute name="title"> +          <xsl:apply-templates select="$prev" mode="object.title.markup.textonly"/> +        </xsl:attribute> +      </link> +    </xsl:if> + +    <xsl:if test="$next"> +      <link rel="next"> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$next"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:attribute name="title"> +          <xsl:apply-templates select="$next" mode="object.title.markup.textonly"/> +        </xsl:attribute> +      </link> +    </xsl:if> + +    <xsl:if test="$html.extra.head.links != 0"> +      <xsl:for-each select="//part                             |//reference                             |//preface                             |//chapter                             |//article                             |//refentry                             |//appendix[not(parent::article)]|appendix                             |//glossary[not(parent::article)]|glossary                             |//index[not(parent::article)]|index"> +        <link rel="{local-name(.)}"> +          <xsl:attribute name="href"> +            <xsl:call-template name="href.target"> +              <xsl:with-param name="context" select="$this"/> +              <xsl:with-param name="object" select="."/> +            </xsl:call-template> +          </xsl:attribute> +          <xsl:attribute name="title"> +            <xsl:apply-templates select="." mode="object.title.markup.textonly"/> +          </xsl:attribute> +        </link> +      </xsl:for-each> + +      <xsl:for-each select="section|sect1|refsection|refsect1"> +        <link> +          <xsl:attribute name="rel"> +            <xsl:choose> +              <xsl:when test="local-name($this) = 'section'                               or local-name($this) = 'refsection'"> +                <xsl:value-of select="'subsection'"/> +              </xsl:when> +              <xsl:otherwise> +                <xsl:value-of select="'section'"/> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:attribute> +          <xsl:attribute name="href"> +            <xsl:call-template name="href.target"> +              <xsl:with-param name="context" select="$this"/> +              <xsl:with-param name="object" select="."/> +            </xsl:call-template> +          </xsl:attribute> +          <xsl:attribute name="title"> +            <xsl:apply-templates select="." mode="object.title.markup.textonly"/> +          </xsl:attribute> +        </link> +      </xsl:for-each> + +      <xsl:for-each select="sect2|sect3|sect4|sect5|refsect2|refsect3"> +        <link rel="subsection"> +          <xsl:attribute name="href"> +            <xsl:call-template name="href.target"> +              <xsl:with-param name="context" select="$this"/> +              <xsl:with-param name="object" select="."/> +            </xsl:call-template> +          </xsl:attribute> +          <xsl:attribute name="title"> +            <xsl:apply-templates select="." mode="object.title.markup.textonly"/> +          </xsl:attribute> +        </link> +      </xsl:for-each> +    </xsl:if> + +    <!-- * if we have a legalnotice and user wants it output as a --> +    <!-- * separate page and $html.head.legalnotice.link.types is --> +    <!-- * non-empty, we generate a link or links for each value in --> +    <!-- * $html.head.legalnotice.link.types --> +    <xsl:if test="//legalnotice                   and not($generate.legalnotice.link = 0)                   and not($html.head.legalnotice.link.types = '')"> +      <xsl:call-template name="make.legalnotice.head.links"/> +    </xsl:if> + +    <xsl:call-template name="user.head.content"/> +  </head> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="header.navigation"> +  <xsl:param name="prev" select="/foo"/> +  <xsl:param name="next" select="/foo"/> +  <xsl:param name="nav.context"/> + +  <xsl:variable name="home" select="/*[1]"/> +  <xsl:variable name="up" select="parent::*"/> + +  <xsl:variable name="row1" select="$navig.showtitles != 0"/> +  <xsl:variable name="row2" select="count($prev) > 0                                     or (count($up) > 0                                          and generate-id($up) != generate-id($home)                                         and $navig.showtitles != 0)                                     or count($next) > 0"/> + +  <xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'"> +    <div class="navheader"> +      <xsl:if test="$row1 or $row2"> +        <table width="100%" summary="Navigation header"> +          <xsl:if test="$row1"> +            <tr> +              <th colspan="3" align="center"> +                <xsl:apply-templates select="." mode="object.title.markup"/> +              </th> +            </tr> +          </xsl:if> + +          <xsl:if test="$row2"> +            <tr> +              <td width="20%" align="left"> +                <xsl:if test="count($prev)>0"> +                  <a accesskey="p"> +                    <xsl:attribute name="href"> +                      <xsl:call-template name="href.target"> +                        <xsl:with-param name="object" select="$prev"/> +                      </xsl:call-template> +                    </xsl:attribute> +                    <xsl:call-template name="navig.content"> +                      <xsl:with-param name="direction" select="'prev'"/> +                    </xsl:call-template> +                  </a> +                </xsl:if> +                <xsl:text> </xsl:text> +              </td> +              <th width="60%" align="center"> +                <xsl:choose> +                  <xsl:when test="count($up) > 0                                   and generate-id($up) != generate-id($home)                                   and $navig.showtitles != 0"> +                    <xsl:apply-templates select="$up" mode="object.title.markup"/> +                  </xsl:when> +                  <xsl:otherwise> </xsl:otherwise> +                </xsl:choose> +              </th> +              <td width="20%" align="right"> +                <xsl:text> </xsl:text> +                <xsl:if test="count($next)>0"> +                  <a accesskey="n"> +                    <xsl:attribute name="href"> +                      <xsl:call-template name="href.target"> +                        <xsl:with-param name="object" select="$next"/> +                      </xsl:call-template> +                    </xsl:attribute> +                    <xsl:call-template name="navig.content"> +                      <xsl:with-param name="direction" select="'next'"/> +                    </xsl:call-template> +                  </a> +                </xsl:if> +              </td> +            </tr> +          </xsl:if> +        </table> +      </xsl:if> +      <xsl:if test="$header.rule != 0"> +        <hr/> +      </xsl:if> +    </div> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="footer.navigation"> +  <xsl:param name="prev" select="/foo"/> +  <xsl:param name="next" select="/foo"/> +  <xsl:param name="nav.context"/> + +  <xsl:variable name="home" select="/*[1]"/> +  <xsl:variable name="up" select="parent::*"/> + +  <xsl:variable name="row1" select="count($prev) > 0                                     or count($up) > 0                                     or count($next) > 0"/> + +  <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)                                     or (generate-id($home) != generate-id(.)                                         or $nav.context = 'toc')                                     or ($chunk.tocs.and.lots != 0                                         and $nav.context != 'toc')                                     or ($next and $navig.showtitles != 0)"/> + +  <xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'"> +    <div class="navfooter"> +      <xsl:if test="$footer.rule != 0"> +        <hr/> +      </xsl:if> + +      <xsl:if test="$row1 or $row2"> +        <table width="100%" summary="Navigation footer"> +          <xsl:if test="$row1"> +            <tr> +              <td width="40%" align="left"> +                <xsl:if test="count($prev)>0"> +                  <a accesskey="p"> +                    <xsl:attribute name="href"> +                      <xsl:call-template name="href.target"> +                        <xsl:with-param name="object" select="$prev"/> +                      </xsl:call-template> +                    </xsl:attribute> +                    <xsl:call-template name="navig.content"> +                      <xsl:with-param name="direction" select="'prev'"/> +                    </xsl:call-template> +                  </a> +                </xsl:if> +                <xsl:text> </xsl:text> +              </td> +              <td width="20%" align="center"> +                <xsl:choose> +                  <xsl:when test="count($up)>0                                   and generate-id($up) != generate-id($home)"> +                    <a accesskey="u"> +                      <xsl:attribute name="href"> +                        <xsl:call-template name="href.target"> +                          <xsl:with-param name="object" select="$up"/> +                        </xsl:call-template> +                      </xsl:attribute> +                      <xsl:call-template name="navig.content"> +                        <xsl:with-param name="direction" select="'up'"/> +                      </xsl:call-template> +                    </a> +                  </xsl:when> +                  <xsl:otherwise> </xsl:otherwise> +                </xsl:choose> +              </td> +              <td width="40%" align="right"> +                <xsl:text> </xsl:text> +                <xsl:if test="count($next)>0"> +                  <a accesskey="n"> +                    <xsl:attribute name="href"> +                      <xsl:call-template name="href.target"> +                        <xsl:with-param name="object" select="$next"/> +                      </xsl:call-template> +                    </xsl:attribute> +                    <xsl:call-template name="navig.content"> +                      <xsl:with-param name="direction" select="'next'"/> +                    </xsl:call-template> +                  </a> +                </xsl:if> +              </td> +            </tr> +          </xsl:if> + +          <xsl:if test="$row2"> +            <tr> +              <td width="40%" align="left" valign="top"> +                <xsl:if test="$navig.showtitles != 0"> +                  <xsl:apply-templates select="$prev" mode="object.title.markup"/> +                </xsl:if> +                <xsl:text> </xsl:text> +              </td> +              <td width="20%" align="center"> +                <xsl:choose> +                  <xsl:when test="$home != . or $nav.context = 'toc'"> +                    <a accesskey="h"> +                      <xsl:attribute name="href"> +                        <xsl:call-template name="href.target"> +                          <xsl:with-param name="object" select="$home"/> +                        </xsl:call-template> +                      </xsl:attribute> +                      <xsl:call-template name="navig.content"> +                        <xsl:with-param name="direction" select="'home'"/> +                      </xsl:call-template> +                    </a> +                    <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> +                      <xsl:text> | </xsl:text> +                    </xsl:if> +                  </xsl:when> +                  <xsl:otherwise> </xsl:otherwise> +                </xsl:choose> + +                <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'"> +                  <a accesskey="t"> +                    <xsl:attribute name="href"> +                      <xsl:apply-templates select="/*[1]" mode="recursive-chunk-filename"> +                        <xsl:with-param name="recursive" select="true()"/> +                      </xsl:apply-templates> +                      <xsl:text>-toc</xsl:text> +                      <xsl:value-of select="$html.ext"/> +                    </xsl:attribute> +                    <xsl:call-template name="gentext"> +                      <xsl:with-param name="key" select="'nav-toc'"/> +                    </xsl:call-template> +                  </a> +                </xsl:if> +              </td> +              <td width="40%" align="right" valign="top"> +                <xsl:text> </xsl:text> +                <xsl:if test="$navig.showtitles != 0"> +                  <xsl:apply-templates select="$next" mode="object.title.markup"/> +                </xsl:if> +              </td> +            </tr> +          </xsl:if> +        </table> +      </xsl:if> +    </div> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="navig.content"> +    <xsl:param name="direction" select="next"/> +    <xsl:variable name="navtext"> +        <xsl:choose> +            <xsl:when test="$direction = 'prev'"> +                <xsl:call-template name="gentext.nav.prev"/> +            </xsl:when> +            <xsl:when test="$direction = 'next'"> +                <xsl:call-template name="gentext.nav.next"/> +            </xsl:when> +            <xsl:when test="$direction = 'up'"> +                <xsl:call-template name="gentext.nav.up"/> +            </xsl:when> +            <xsl:when test="$direction = 'home'"> +                <xsl:call-template name="gentext.nav.home"/> +            </xsl:when> +            <xsl:otherwise> +                <xsl:text>xxx</xsl:text> +            </xsl:otherwise> +        </xsl:choose> +    </xsl:variable> + +    <xsl:choose> +        <xsl:when test="$navig.graphics != 0"> +            <img> +                <xsl:attribute name="src"> +                    <xsl:value-of select="$navig.graphics.path"/> +                    <xsl:value-of select="$direction"/> +                    <xsl:value-of select="$navig.graphics.extension"/> +                </xsl:attribute> +                <xsl:attribute name="alt"> +                    <xsl:value-of select="$navtext"/> +                </xsl:attribute> +            </img> +        </xsl:when> +        <xsl:otherwise> +            <xsl:value-of select="$navtext"/> +        </xsl:otherwise> +    </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * The following template assumes that the first legalnotice --> +<!-- * instance found in a document applies to the contents of the --> +<!-- * entire document. It generates an HTML link in each chunk, back --> +<!-- * to the file containing the contents of the first legalnotice. --> +<!-- * --> +<!-- * Actually, it may generate multiple link instances in each chunk, --> +<!-- * because it walks through the space-separated list of link --> +<!-- * types specified in the $html.head.legalnotice.link.types param, --> +<!-- * popping off link types and generating links for them until it --> +<!-- * depletes the list. --> +   +<xsl:template name="make.legalnotice.head.links"> +  <!-- * the following ID is used as part of the legalnotice filename; --> +  <!-- * we need it in order to construct the filename for use in the --> +  <!-- * value of the href attribute on the link --> +  <xsl:param name="id"> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="(//legalnotice)[1]"/> +    </xsl:call-template> +  </xsl:param> +  <xsl:param name="linktype"> +    <xsl:choose> +      <xsl:when test="contains($html.head.legalnotice.link.types, ' ')"> +        <xsl:value-of select="normalize-space(                     substring-before($html.head.legalnotice.link.types, ' '))"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$html.head.legalnotice.link.types"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:param> +  <xsl:param name="remaining.linktypes" select="concat(               normalize-space(               substring-after($html.head.legalnotice.link.types, ' ')),' ')"/> +  <xsl:if test="not($linktype = '')"> +    <link rel="{$linktype}"> +      <xsl:attribute name="href"> +        <xsl:value-of select="concat('ln-',$id,$html.ext)"/> +      </xsl:attribute> +      <xsl:attribute name="title"> +        <xsl:apply-templates select="(//legalnotice)[1]" mode="object.title.markup.textonly"/> +      </xsl:attribute> +    </link> +    <xsl:call-template name="make.legalnotice.head.links"> +      <!-- * pop the next value off the list of link types --> +      <xsl:with-param name="linktype" select="substring-before($remaining.linktypes, ' ')"/> +      <!-- * remove the link type from the list of remaining link types --> +      <xsl:with-param name="remaining.linktypes" select="substring-after($remaining.linktypes, ' ')"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> +<xsl:template name="chunk-element-content"> +  <xsl:param name="prev"/> +  <xsl:param name="next"/> +  <xsl:param name="nav.context"/> +  <xsl:param name="content"> +    <xsl:apply-imports/> +  </xsl:param> + +  <xsl:call-template name="user.preroot"/> + +  <html> +    <xsl:call-template name="html.head"> +      <xsl:with-param name="prev" select="$prev"/> +      <xsl:with-param name="next" select="$next"/> +    </xsl:call-template> + +    <body> +      <xsl:call-template name="body.attributes"/> +      <xsl:call-template name="user.header.navigation"/> + +      <xsl:call-template name="header.navigation"> +        <xsl:with-param name="prev" select="$prev"/> +        <xsl:with-param name="next" select="$next"/> +        <xsl:with-param name="nav.context" select="$nav.context"/> +      </xsl:call-template> + +      <xsl:call-template name="user.header.content"/> + +      <xsl:copy-of select="$content"/> + +      <xsl:call-template name="user.footer.content"/> + +      <xsl:call-template name="footer.navigation"> +        <xsl:with-param name="prev" select="$prev"/> +        <xsl:with-param name="next" select="$next"/> +        <xsl:with-param name="nav.context" select="$nav.context"/> +      </xsl:call-template> + +      <xsl:call-template name="user.footer.navigation"/> +    </body> +  </html> +  <xsl:value-of select="$chunk.append"/> +</xsl:template> + +<!-- ==================================================================== --> +<xsl:template name="generate.manifest"> +  <xsl:param name="node" select="/"/> +  <xsl:call-template name="write.text.chunk"> +    <xsl:with-param name="filename"> +      <xsl:if test="$manifest.in.base.dir != 0"> +        <xsl:value-of select="$base.dir"/> +      </xsl:if> +      <xsl:value-of select="$manifest"/> +    </xsl:with-param> +    <xsl:with-param name="method" select="'text'"/> +    <xsl:with-param name="content"> +      <xsl:apply-templates select="$node" mode="enumerate-files"/> +    </xsl:with-param> +    <xsl:with-param name="encoding" select="$chunker.output.encoding"/> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="dbhtml-dir"> +  <xsl:param name="context" select="."/> +  <!-- directories are now inherited from previous levels --> +  <xsl:variable name="ppath"> +    <xsl:if test="$context/parent::*"> +      <xsl:call-template name="dbhtml-dir"> +        <xsl:with-param name="context" select="$context/parent::*"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> +  <xsl:variable name="path"> +    <xsl:call-template name="pi.dbhtml_dir"> +      <xsl:with-param name="node" select="$context"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:choose> +    <xsl:when test="$path = ''"> +      <xsl:if test="$ppath != ''"> +        <xsl:value-of select="$ppath"/> +      </xsl:if> +    </xsl:when> +    <xsl:otherwise> +      <xsl:if test="$ppath != ''"> +        <xsl:value-of select="$ppath"/> +        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'"> +          <xsl:text>/</xsl:text> +        </xsl:if> +      </xsl:if> +      <xsl:value-of select="$path"/> +      <xsl:text>/</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk.xsl.svn-base new file mode 100644 index 0000000..31fb785 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunk.xsl.svn-base @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- First import the non-chunking templates that format elements +     within each chunk file. In a customization, you should +     create a separate non-chunking customization layer such +     as mydocbook.xsl that imports the original docbook.xsl and +     customizes any presentation templates. Then your chunking +     customization should import mydocbook.xsl instead of +     docbook.xsl.  --> +<xsl:import href="docbook.xsl"/> + +<!-- chunk-common.xsl contains all the named templates for chunking. +     In a customization file, you import chunk-common.xsl, then +     add any customized chunking templates of the same name.  +     They will have import precedence over the original  +     chunking templates in chunk-common.xsl. --> +<xsl:import href="chunk-common.xsl"/> + +<!-- The manifest.xsl module is no longer imported because its +     templates were moved into chunk-common and chunk-code --> + +<!-- chunk-code.xsl contains all the chunking templates that use +     a match attribute.  In a customization it should be referenced +     using <xsl:include> instead of <xsl:import>, and then add +     any customized chunking templates with match attributes. But be sure +     to add a priority="1" to such customized templates to resolve +     its conflict with the original, since they have the +     same import precedence. +      +     Using xsl:include prevents adding another layer +     of import precedence, which would cause any +     customizations that use xsl:apply-imports to wrongly +     apply the chunking version instead of the original +     non-chunking version to format an element.  --> +<xsl:include href="chunk-code.xsl"/> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunker.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunker.xsl.svn-base new file mode 100644 index 0000000..768ebfd --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunker.xsl.svn-base @@ -0,0 +1,302 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:exsl="http://exslt.org/common" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc" extension-element-prefixes="saxon redirect lxslt exsl"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- This stylesheet works with XSLT implementations that support --> +<!-- exsl:document, saxon:output, or Xalan's redirect:write --> +<!-- Note: Only Saxon 6.4.2 or later is supported. --> + +<xsl:param name="chunker.output.method" select="'xml'"/> +<xsl:param name="chunker.output.encoding" select="'UTF-8'"/> +<xsl:param name="chunker.output.indent" select="'no'"/> +<xsl:param name="chunker.output.omit-xml-declaration" select="'no'"/> +<xsl:param name="chunker.output.standalone" select="'no'"/> +<xsl:param name="chunker.output.doctype-public" select="'-//W3C//DTD XHTML 1.0 Transitional//EN'"/> +<xsl:param name="chunker.output.doctype-system" select="'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'"/> +<xsl:param name="chunker.output.media-type" select="''"/> +<xsl:param name="chunker.output.cdata-section-elements" select="''"/> +<xsl:param name="chunker.output.quiet" select="0"/> + +<xsl:param name="saxon.character.representation" select="'entity;decimal'"/> + +<!-- ==================================================================== --> + +<xsl:template name="make-relative-filename"> +  <xsl:param name="base.dir" select="'./'"/> +  <xsl:param name="base.name" select="''"/> + +  <xsl:choose> +    <!-- put Saxon first to work around a bug in libxslt --> +    <xsl:when test="element-available('saxon:output')"> +      <!-- Saxon doesn't make the chunks relative --> +      <xsl:value-of select="concat($base.dir,$base.name)"/> +    </xsl:when> +    <xsl:when test="element-available('exsl:document')"> +      <!-- EXSL document does make the chunks relative, I think --> +      <xsl:choose> +        <xsl:when test="count(parent::*) = 0"> +          <xsl:value-of select="concat($base.dir,$base.name)"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="$base.name"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:when test="element-available('redirect:write')"> +      <!-- Xalan doesn't make the chunks relative --> +      <xsl:value-of select="concat($base.dir,$base.name)"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message terminate="yes"> +        <xsl:text>Don't know how to chunk with </xsl:text> +        <xsl:value-of select="system-property('xsl:vendor')"/> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="write.chunk"> +  <xsl:param name="filename" select="''"/> +  <xsl:param name="quiet" select="$chunker.output.quiet"/> +  <xsl:param name="suppress-context-node-name" select="0"/> +  <xsl:param name="message-prolog"/> +  <xsl:param name="message-epilog"/> + +  <xsl:param name="method" select="$chunker.output.method"/> +  <xsl:param name="encoding" select="$chunker.output.encoding"/> +  <xsl:param name="indent" select="$chunker.output.indent"/> +  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/> +  <xsl:param name="standalone" select="$chunker.output.standalone"/> +  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/> +  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/> +  <xsl:param name="media-type" select="$chunker.output.media-type"/> +  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/> + +  <xsl:param name="content"/> + +  <xsl:if test="$quiet = 0"> +    <xsl:message> +      <xsl:if test="not($message-prolog = '')"> +        <xsl:value-of select="$message-prolog"/> +      </xsl:if> +      <xsl:text>Writing </xsl:text> +      <xsl:value-of select="$filename"/> +      <xsl:if test="name(.) != '' and $suppress-context-node-name = 0"> +        <xsl:text> for </xsl:text> +        <xsl:value-of select="name(.)"/> +        <xsl:if test="@id or @xml:id"> +          <xsl:text>(</xsl:text> +          <xsl:value-of select="(@id|@xml:id)[1]"/> +          <xsl:text>)</xsl:text> +        </xsl:if> +      </xsl:if> +      <xsl:if test="not($message-epilog = '')"> +        <xsl:value-of select="$message-epilog"/> +      </xsl:if> +    </xsl:message> +  </xsl:if> + +  <xsl:choose> +    <xsl:when test="element-available('exsl:document')"> +      <xsl:choose> +        <!-- Handle the permutations ... --> +        <xsl:when test="$media-type != ''"> +          <xsl:choose> +            <xsl:when test="$doctype-public != '' and $doctype-system != ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:when test="$doctype-public != '' and $doctype-system = ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:when test="$doctype-public = '' and $doctype-system != ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> --> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:choose> +            <xsl:when test="$doctype-public != '' and $doctype-system != ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:when test="$doctype-public != '' and $doctype-system = ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:when test="$doctype-public = '' and $doctype-system != ''"> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:when> +            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> --> +              <exsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </exsl:document> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="element-available('saxon:output')"> +      <xsl:choose> +        <!-- Handle the permutations ... --> +        <xsl:when test="$media-type != ''"> +          <xsl:choose> +            <xsl:when test="$doctype-public != '' and $doctype-system != ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:when test="$doctype-public != '' and $doctype-system = ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-public="{$doctype-public}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:when test="$doctype-public = '' and $doctype-system != ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> --> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" media-type="{$media-type}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:choose> +            <xsl:when test="$doctype-public != '' and $doctype-system != ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:when test="$doctype-public != '' and $doctype-system = ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-public="{$doctype-public}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:when test="$doctype-public = '' and $doctype-system != ''"> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" doctype-system="{$doctype-system}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:when> +            <xsl:otherwise><!-- $doctype-public = '' and $doctype-system = ''"> --> +              <saxon:output saxon:character-representation="{$saxon.character.representation}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" omit-xml-declaration="{$omit-xml-declaration}" cdata-section-elements="{$cdata-section-elements}" standalone="{$standalone}"> +                <xsl:copy-of select="$content"/> +              </saxon:output> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="element-available('redirect:write')"> +      <!-- Xalan uses redirect --> +      <redirect:write file="{$filename}"> +        <xsl:copy-of select="$content"/> +      </redirect:write> +    </xsl:when> + +    <xsl:otherwise> +      <!-- it doesn't matter since we won't be making chunks... --> +      <xsl:message terminate="yes"> +        <xsl:text>Can't make chunks with </xsl:text> +        <xsl:value-of select="system-property('xsl:vendor')"/> +        <xsl:text>'s processor.</xsl:text> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="write.chunk.with.doctype"> +  <xsl:param name="filename" select="''"/> +  <xsl:param name="quiet" select="$chunker.output.quiet"/> + +  <xsl:param name="method" select="$chunker.output.method"/> +  <xsl:param name="encoding" select="$chunker.output.encoding"/> +  <xsl:param name="indent" select="$chunker.output.indent"/> +  <xsl:param name="omit-xml-declaration" select="$chunker.output.omit-xml-declaration"/> +  <xsl:param name="standalone" select="$chunker.output.standalone"/> +  <xsl:param name="doctype-public" select="$chunker.output.doctype-public"/> +  <xsl:param name="doctype-system" select="$chunker.output.doctype-system"/> +  <xsl:param name="media-type" select="$chunker.output.media-type"/> +  <xsl:param name="cdata-section-elements" select="$chunker.output.cdata-section-elements"/> + +  <xsl:param name="content"/> + +  <xsl:call-template name="write.chunk"> +    <xsl:with-param name="filename" select="$filename"/> +    <xsl:with-param name="quiet" select="$quiet"/> +    <xsl:with-param name="method" select="$method"/> +    <xsl:with-param name="encoding" select="$encoding"/> +    <xsl:with-param name="indent" select="$indent"/> +    <xsl:with-param name="omit-xml-declaration" select="$omit-xml-declaration"/> +    <xsl:with-param name="standalone" select="$standalone"/> +    <xsl:with-param name="doctype-public" select="$doctype-public"/> +    <xsl:with-param name="doctype-system" select="$doctype-system"/> +    <xsl:with-param name="media-type" select="$media-type"/> +    <xsl:with-param name="cdata-section-elements" select="$cdata-section-elements"/> +    <xsl:with-param name="content" select="$content"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="write.text.chunk"> +  <xsl:param name="filename" select="''"/> +  <xsl:param name="quiet" select="$chunker.output.quiet"/> +  <xsl:param name="suppress-context-node-name" select="0"/> +  <xsl:param name="message-prolog"/> +  <xsl:param name="message-epilog"/> +  <xsl:param name="method" select="'text'"/> +  <xsl:param name="encoding" select="$chunker.output.encoding"/> +  <xsl:param name="media-type" select="$chunker.output.media-type"/> +  <xsl:param name="content"/> + +  <xsl:call-template name="write.chunk"> +    <xsl:with-param name="filename" select="$filename"/> +    <xsl:with-param name="quiet" select="$quiet"/> +    <xsl:with-param name="suppress-context-node-name" select="$suppress-context-node-name"/> +    <xsl:with-param name="message-prolog" select="$message-prolog"/> +    <xsl:with-param name="message-epilog" select="$message-epilog"/> +    <xsl:with-param name="method" select="$method"/> +    <xsl:with-param name="encoding" select="$encoding"/> +    <xsl:with-param name="indent" select="'no'"/> +    <xsl:with-param name="omit-xml-declaration" select="'no'"/> +    <xsl:with-param name="standalone" select="'no'"/> +    <xsl:with-param name="doctype-public"/> +    <xsl:with-param name="doctype-system"/> +    <xsl:with-param name="media-type" select="$media-type"/> +    <xsl:with-param name="cdata-section-elements"/> +    <xsl:with-param name="content" select="$content"/> +  </xsl:call-template> +</xsl:template> + + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunkfast.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunkfast.xsl.svn-base new file mode 100644 index 0000000..a31a9a9 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunkfast.xsl.svn-base @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="cf exsl"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="chunk.xsl"/> +<xsl:param name="chunk.fast" select="1"/> + +<xsl:variable name="chunks" select="exsl:node-set($chunk.hierarchy)//cf:div"/> + +<!-- ==================================================================== --> + +<xsl:template name="process-chunk-element"> +  <xsl:choose> +    <xsl:when test="$chunk.fast != 0 and function-available('exsl:node-set')"> +      <xsl:variable name="genid" select="generate-id()"/> + +      <xsl:variable name="div" select="$chunks[@id=$genid or @xml:id=$genid]"/> + +      <xsl:variable name="prevdiv" select="($div/preceding-sibling::cf:div|$div/preceding::cf:div|$div/parent::cf:div)[last()]"/> +      <xsl:variable name="prev" select="key('genid', ($prevdiv/@id|$prevdiv/@xml:id)[1])"/> + +      <xsl:variable name="nextdiv" select="($div/following-sibling::cf:div|$div/following::cf:div|$div/cf:div)[1]"/> +      <xsl:variable name="next" select="key('genid', ($nextdiv/@id|$nextdiv/@xml:id)[1])"/> + +      <xsl:choose> +        <xsl:when test="$onechunk != 0 and parent::*"> +          <xsl:apply-imports/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="process-chunk"> +            <xsl:with-param name="prev" select="$prev"/> +            <xsl:with-param name="next" select="$next"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$onechunk != 0 and not(parent::*)"> +          <xsl:call-template name="chunk-all-sections"/> +        </xsl:when> +        <xsl:when test="$onechunk != 0"> +          <xsl:apply-imports/> +        </xsl:when> +        <xsl:when test="$chunk.first.sections = 0"> +          <xsl:call-template name="chunk-first-section-with-parent"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="chunk-all-sections"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunktoc.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunktoc.xsl.svn-base new file mode 100644 index 0000000..e16c88c --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/chunktoc.xsl.svn-base @@ -0,0 +1,462 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="docbook.xsl"/> +<xsl:import href="chunk-common.xsl"/> + +<xsl:template name="chunk"> +  <xsl:param name="node" select="."/> +  <!-- returns 1 if $node is a chunk --> + +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="$node"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="chunks" select="document($chunk.toc,/)"/> + +  <xsl:choose> +    <xsl:when test="$chunks//tocentry[@linkend=$id]">1</xsl:when> +    <xsl:otherwise>0</xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="chunk-filename"> +  <!-- returns the filename of a chunk --> + +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:variable name="chunks" select="document($chunk.toc,/)"/> + +  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/> +  <xsl:variable name="filename"> +    <xsl:call-template name="pi.dbhtml_filename"> +      <xsl:with-param name="node" select="$chunk"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$chunk"> +      <xsl:value-of select="$filename"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="parent::*" mode="chunk-filename"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="process-chunk"> +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:variable name="chunks" select="document($chunk.toc,/)"/> + +  <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/> +  <xsl:variable name="prev-id" select="($chunk/preceding::tocentry                          |$chunk/ancestor::tocentry)[last()]/@linkend"/> +  <xsl:variable name="next-id" select="($chunk/following::tocentry                          |$chunk/child::tocentry)[1]/@linkend"/> + +  <xsl:variable name="prev" select="key('id',$prev-id)"/> +  <xsl:variable name="next" select="key('id',$next-id)"/> + +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="chunkfn"> +    <xsl:if test="$ischunk='1'"> +      <xsl:apply-templates mode="chunk-filename" select="."/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="filename"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir" select="$base.dir"/> +      <xsl:with-param name="base.name" select="$chunkfn"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$ischunk = 0"> +      <xsl:apply-imports/> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:call-template name="write.chunk"> +        <xsl:with-param name="filename" select="$filename"/> +        <xsl:with-param name="content"> +          <xsl:call-template name="chunk-element-content"> +            <xsl:with-param name="prev" select="$prev"/> +            <xsl:with-param name="next" select="$next"/> +          </xsl:call-template> +        </xsl:with-param> +        <xsl:with-param name="quiet" select="$chunk.quietly"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="set"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="book"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="book/appendix"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="book/glossary"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="book/bibliography"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="dedication" mode="dedication"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="preface|chapter"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="part|reference"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="refentry"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="colophon"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="article"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="article/appendix"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="article/glossary"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="article/bibliography"> +  <xsl:call-template name="process-chunk"/> +</xsl:template> + +<xsl:template match="sect1|sect2|sect3|sect4|sect5|section"> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$ischunk != 0"> +      <xsl:call-template name="process-chunk"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-imports/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="setindex                      |book/index                      |article/index"> +  <!-- some implementations use completely empty index tags to indicate --> +  <!-- where an automatically generated index should be inserted. so --> +  <!-- if the index is completely empty, skip it. --> +  <xsl:if test="count(*)>0 or $generate.index != '0'"> +    <xsl:call-template name="process-chunk"/> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="/"> +  <xsl:choose> +    <xsl:when test="$chunk.toc = ''"> +      <xsl:message terminate="yes"> +        <xsl:text>The chunk.toc file is not set.</xsl:text> +      </xsl:message> +    </xsl:when> + +    <xsl:when test="$rootid != ''"> +      <xsl:choose> +        <xsl:when test="count(key('id',$rootid)) = 0"> +          <xsl:message terminate="yes"> +            <xsl:text>ID '</xsl:text> +            <xsl:value-of select="$rootid"/> +            <xsl:text>' not found in document.</xsl:text> +          </xsl:message> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="key('id',$rootid)"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:apply-templates select="/" mode="process.root"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="process.root"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template name="make.lots"> +  <xsl:param name="toc.params" select="''"/> +  <xsl:param name="toc"/> + +  <xsl:variable name="lots"> +    <xsl:if test="contains($toc.params, 'toc')"> +      <xsl:copy-of select="$toc"/> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'figure')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'figure'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'figure'"/> +                <xsl:with-param name="nodes" select=".//figure"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'figure'"/> +            <xsl:with-param name="nodes" select=".//figure"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'table')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'table'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'table'"/> +                <xsl:with-param name="nodes" select=".//table"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'table'"/> +            <xsl:with-param name="nodes" select=".//table"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'example')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'example'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'example'"/> +                <xsl:with-param name="nodes" select=".//example"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'example'"/> +            <xsl:with-param name="nodes" select=".//example"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'equation')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'equation'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'equation'"/> +                <xsl:with-param name="nodes" select=".//equation"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'equation'"/> +            <xsl:with-param name="nodes" select=".//equation"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> + +    <xsl:if test="contains($toc.params, 'procedure')"> +      <xsl:choose> +        <xsl:when test="$chunk.separate.lots != '0'"> +          <xsl:call-template name="make.lot.chunk"> +            <xsl:with-param name="type" select="'procedure'"/> +            <xsl:with-param name="lot"> +              <xsl:call-template name="list.of.titles"> +                <xsl:with-param name="titles" select="'procedure'"/> +                <xsl:with-param name="nodes" select=".//procedure[title]"/> +              </xsl:call-template> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="list.of.titles"> +            <xsl:with-param name="titles" select="'procedure'"/> +            <xsl:with-param name="nodes" select=".//procedure[title]"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> +  </xsl:variable> + +  <xsl:if test="string($lots) != ''"> +    <xsl:choose> +      <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)"> +        <xsl:call-template name="write.chunk"> +          <xsl:with-param name="filename"> +            <xsl:call-template name="make-relative-filename"> +              <xsl:with-param name="base.dir" select="$base.dir"/> +              <xsl:with-param name="base.name"> +                <xsl:call-template name="dbhtml-dir"/> +                <xsl:apply-templates select="." mode="recursive-chunk-filename"> +                  <xsl:with-param name="recursive" select="true()"/> +                </xsl:apply-templates> +                <xsl:text>-toc</xsl:text> +                <xsl:value-of select="$html.ext"/> +              </xsl:with-param> +            </xsl:call-template> +          </xsl:with-param> +          <xsl:with-param name="content"> +            <xsl:call-template name="chunk-element-content"> +              <xsl:with-param name="prev" select="/foo"/> +              <xsl:with-param name="next" select="/foo"/> +              <xsl:with-param name="nav.context" select="'toc'"/> +              <xsl:with-param name="content"> +                <h1> +                  <xsl:apply-templates select="." mode="object.title.markup"/> +                </h1> +                <xsl:copy-of select="$lots"/> +              </xsl:with-param> +            </xsl:call-template> +          </xsl:with-param> +          <xsl:with-param name="quiet" select="$chunk.quietly"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:copy-of select="$lots"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +</xsl:template> + +<xsl:template name="make.lot.chunk"> +  <xsl:param name="type" select="''"/> +  <xsl:param name="lot"/> + +  <xsl:if test="string($lot) != ''"> +    <xsl:variable name="filename"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.dir" select="$base.dir"/> +        <xsl:with-param name="base.name"> +          <xsl:call-template name="dbhtml-dir"/> +          <xsl:value-of select="$type"/> +          <xsl:text>-toc</xsl:text> +          <xsl:value-of select="$html.ext"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:variable name="href"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.name"> +          <xsl:call-template name="dbhtml-dir"/> +          <xsl:value-of select="$type"/> +          <xsl:text>-toc</xsl:text> +          <xsl:value-of select="$html.ext"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:call-template name="write.chunk"> +      <xsl:with-param name="filename" select="$filename"/> +      <xsl:with-param name="content"> +        <xsl:call-template name="chunk-element-content"> +          <xsl:with-param name="prev" select="/foo"/> +          <xsl:with-param name="next" select="/foo"/> +          <xsl:with-param name="nav.context" select="'toc'"/> +          <xsl:with-param name="content"> +            <xsl:copy-of select="$lot"/> +          </xsl:with-param> +        </xsl:call-template> +      </xsl:with-param> +      <xsl:with-param name="quiet" select="$chunk.quietly"/> +    </xsl:call-template> +    <!-- And output a link to this file --> +    <div> +      <xsl:attribute name="class"> +        <xsl:text>ListofTitles</xsl:text> +      </xsl:attribute> +      <a href="{$href}"> +        <xsl:call-template name="gentext"> +          <xsl:with-param name="key"> +            <xsl:choose> +              <xsl:when test="$type='table'">ListofTables</xsl:when> +              <xsl:when test="$type='figure'">ListofFigures</xsl:when> +              <xsl:when test="$type='equation'">ListofEquations</xsl:when> +              <xsl:when test="$type='example'">ListofExamples</xsl:when> +              <xsl:when test="$type='procedure'">ListofProcedures</xsl:when> +              <xsl:otherwise>ListofUnknown</xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> +      </a> +    </div> +  </xsl:if> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/component.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/component.xsl.svn-base new file mode 100644 index 0000000..007f27f --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/component.xsl.svn-base @@ -0,0 +1,375 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template name="component.title"> +  <xsl:param name="node" select="."/> + +  <xsl:variable name="level"> +    <xsl:choose> +      <xsl:when test="ancestor::section"> +        <xsl:value-of select="count(ancestor::section)+1"/> +      </xsl:when> +      <xsl:when test="ancestor::sect5">6</xsl:when> +      <xsl:when test="ancestor::sect4">5</xsl:when> +      <xsl:when test="ancestor::sect3">4</xsl:when> +      <xsl:when test="ancestor::sect2">3</xsl:when> +      <xsl:when test="ancestor::sect1">2</xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <!-- Let's handle the case where a component (bibliography, for example) +       occurs inside a section; will we need parameters for this? --> + +  <xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:attribute name="class">title</xsl:attribute> +    <xsl:if test="$generate.id.attributes = 0"> +      <xsl:call-template name="anchor"> +	<xsl:with-param name="node" select="$node"/> +	<xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> +    </xsl:if> +      <xsl:apply-templates select="$node" mode="object.title.markup"> +      <xsl:with-param name="allow-anchors" select="1"/> +    </xsl:apply-templates> +  </xsl:element> +</xsl:template> + +<xsl:template name="component.subtitle"> +  <xsl:param name="node" select="."/> +  <xsl:variable name="subtitle" select="($node/docinfo/subtitle                         |$node/info/subtitle                         |$node/prefaceinfo/subtitle                         |$node/chapterinfo/subtitle                         |$node/appendixinfo/subtitle                         |$node/articleinfo/subtitle                         |$node/artheader/subtitle                         |$node/subtitle)[1]"/> + +  <xsl:if test="$subtitle"> +    <h3 class="subtitle"> +      <i> +        <xsl:apply-templates select="$node" mode="object.subtitle.markup"/> +      </i> +    </h3> +  </xsl:if> +</xsl:template> + +<xsl:template name="component.separator"> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="dedication" mode="dedication"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:call-template name="dedication.titlepage"/> +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="dedication/title|dedication/info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.title"> +    <xsl:with-param name="node" select="ancestor::dedication[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="dedication/subtitle|dedication/info/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.subtitle"> +    <xsl:with-param name="node" select="ancestor::dedication[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="dedication"/> <!-- see mode="dedication" --> +<xsl:template match="dedication/title"/> +<xsl:template match="dedication/subtitle"/> +<xsl:template match="dedication/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template match="colophon"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="component.separator"/> +    <xsl:call-template name="component.title"/> +    <xsl:call-template name="component.subtitle"/> + +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="colophon/title"/> +<xsl:template match="colophon/subtitle"/> +<xsl:template match="colophon/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template match="preface"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="component.separator"/> +    <xsl:call-template name="preface.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')"> +      <xsl:call-template name="component.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="component.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="preface/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.title"> +    <xsl:with-param name="node" select="ancestor::preface[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="preface/subtitle                      |preface/prefaceinfo/subtitle                      |preface/info/subtitle                      |preface/docinfo/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.subtitle"> +    <xsl:with-param name="node" select="ancestor::preface[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="preface/docinfo|prefaceinfo"/> +<xsl:template match="preface/info"/> +<xsl:template match="preface/title"/> +<xsl:template match="preface/titleabbrev"/> +<xsl:template match="preface/subtitle"/> + +<!-- ==================================================================== --> + +<xsl:template match="chapter"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="component.separator"/> +    <xsl:call-template name="chapter.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> +    <xsl:if test="contains($toc.params, 'toc')"> +      <xsl:call-template name="component.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="component.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="chapter/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.title"> +    <xsl:with-param name="node" select="ancestor::chapter[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="chapter/subtitle                      |chapter/chapterinfo/subtitle                      |chapter/info/subtitle                      |chapter/docinfo/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.subtitle"> +    <xsl:with-param name="node" select="ancestor::chapter[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="chapter/docinfo|chapterinfo"/> +<xsl:template match="chapter/info"/> +<xsl:template match="chapter/title"/> +<xsl:template match="chapter/titleabbrev"/> +<xsl:template match="chapter/subtitle"/> + +<!-- ==================================================================== --> + +<xsl:template match="appendix"> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="parent::article and $ischunk = 0"> +        <xsl:call-template name="section.heading"> +          <xsl:with-param name="level" select="1"/> +          <xsl:with-param name="title"> +            <xsl:apply-templates select="." mode="object.title.markup"/> +          </xsl:with-param> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="component.separator"/> +        <xsl:call-template name="appendix.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')"> +      <xsl:call-template name="component.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="component.toc.separator"/> +    </xsl:if> + +    <xsl:apply-templates/> + +    <xsl:if test="not(parent::article) or $ischunk != 0"> +      <xsl:call-template name="process.footnotes"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="appendix/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.title"> +    <xsl:with-param name="node" select="ancestor::appendix[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="appendix/subtitle                      |appendix/appendixinfo/subtitle                      |appendix/info/subtitle                      |appendix/docinfo/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.subtitle"> +    <xsl:with-param name="node" select="ancestor::appendix[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="appendix/docinfo|appendixinfo"/> +<xsl:template match="appendix/info"/> +<xsl:template match="appendix/title"/> +<xsl:template match="appendix/titleabbrev"/> +<xsl:template match="appendix/subtitle"/> + +<!-- ==================================================================== --> + +<xsl:template match="article"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="article.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:call-template name="make.lots"> +      <xsl:with-param name="toc.params" select="$toc.params"/> +      <xsl:with-param name="toc"> +        <xsl:call-template name="component.toc"> +          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +        </xsl:call-template> +      </xsl:with-param> +    </xsl:call-template> + +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.title"> +    <xsl:with-param name="node" select="ancestor::article[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="article/subtitle                      |article/articleinfo/subtitle                      |article/info/subtitle                      |article/artheader/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="component.subtitle"> +    <xsl:with-param name="node" select="ancestor::article[1]"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="article/artheader|article/articleinfo"/> +<xsl:template match="article/info"/> +<xsl:template match="article/title"/> +<xsl:template match="article/titleabbrev"/> +<xsl:template match="article/subtitle"/> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/division.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/division.xsl.svn-base new file mode 100644 index 0000000..b5af13e --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/division.xsl.svn-base @@ -0,0 +1,228 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="set"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="set.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:call-template name="make.lots"> +      <xsl:with-param name="toc.params" select="$toc.params"/> +      <xsl:with-param name="toc"> +        <xsl:call-template name="set.toc"> +          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +        </xsl:call-template> +      </xsl:with-param> +    </xsl:call-template> + +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="set/setinfo"/> +<xsl:template match="set/title"/> +<xsl:template match="set/titleabbrev"/> +<xsl:template match="set/subtitle"/> + +<!-- ==================================================================== --> + +<xsl:template match="book"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="book.titlepage"/> + +    <xsl:apply-templates select="dedication" mode="dedication"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:call-template name="make.lots"> +      <xsl:with-param name="toc.params" select="$toc.params"/> +      <xsl:with-param name="toc"> +        <xsl:call-template name="division.toc"> +          <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +        </xsl:call-template> +      </xsl:with-param> +    </xsl:call-template> + +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="book/bookinfo"/> +<xsl:template match="book/info"/> +<xsl:template match="book/title"/> +<xsl:template match="book/titleabbrev"/> +<xsl:template match="book/subtitle"/> + +<!-- ==================================================================== --> + +<xsl:template match="part"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="part.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> +    <xsl:if test="not(partintro) and contains($toc.params, 'toc')"> +      <xsl:call-template name="division.toc"/> +    </xsl:if> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="part" mode="make.part.toc"> +  <xsl:call-template name="division.toc"/> +</xsl:template> + +<xsl:template match="reference" mode="make.part.toc"> +  <xsl:call-template name="division.toc"/> +</xsl:template> + +<xsl:template match="part/docinfo"/> +<xsl:template match="part/partinfo"/> +<xsl:template match="part/info"/> +<xsl:template match="part/title"/> +<xsl:template match="part/titleabbrev"/> +<xsl:template match="part/subtitle"/> + +<xsl:template match="partintro"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="partintro.titlepage"/> +    <xsl:apply-templates/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="node" select="parent::*"/> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> +    <xsl:if test="contains($toc.params, 'toc')"> +      <!-- not ancestor::part because partintro appears in reference --> +      <xsl:apply-templates select="parent::*" mode="make.part.toc"/> +    </xsl:if> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="partintro/title"/> +<xsl:template match="partintro/titleabbrev"/> +<xsl:template match="partintro/subtitle"/> + +<xsl:template match="partintro/title" mode="partintro.title.mode"> +  <h2> +    <xsl:apply-templates/> +  </h2> +</xsl:template> + +<xsl:template match="partintro/subtitle" mode="partintro.title.mode"> +  <h3> +    <i><xsl:apply-templates/></i> +  </h3> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="book" mode="division.number"> +  <xsl:number from="set" count="book" format="1."/> +</xsl:template> + +<xsl:template match="part" mode="division.number"> +  <xsl:number from="book" count="part" format="I."/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="division.title"> +  <xsl:param name="node" select="."/> + +  <h1> +    <xsl:attribute name="class">title</xsl:attribute> +    <xsl:if test="$generate.id.attributes = 0"> +      <xsl:call-template name="anchor"> +	<xsl:with-param name="node" select="$node"/> +	<xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> +    </xsl:if> +      <xsl:apply-templates select="$node" mode="object.title.markup"> +      <xsl:with-param name="allow-anchors" select="1"/> +    </xsl:apply-templates> +  </h1> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/docbook.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/docbook.xsl.svn-base new file mode 100644 index 0000000..85fdd72 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/docbook.xsl.svn-base @@ -0,0 +1,447 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="db ng exsl" version="1.0"> + +<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:include href="../VERSION"/> +<xsl:include href="param.xsl"/> +<xsl:include href="../lib/lib.xsl"/> +<xsl:include href="../common/l10n.xsl"/> +<xsl:include href="../common/common.xsl"/> +<xsl:include href="../common/utility.xsl"/> +<xsl:include href="../common/labels.xsl"/> +<xsl:include href="../common/titles.xsl"/> +<xsl:include href="../common/subtitles.xsl"/> +<xsl:include href="../common/gentext.xsl"/> +<xsl:include href="../common/targets.xsl"/> +<xsl:include href="../common/olink.xsl"/> +<xsl:include href="../common/pi.xsl"/> +<xsl:include href="autotoc.xsl"/> +<xsl:include href="autoidx.xsl"/> +<xsl:include href="lists.xsl"/> +<xsl:include href="callout.xsl"/> +<xsl:include href="verbatim.xsl"/> +<xsl:include href="graphics.xsl"/> +<xsl:include href="xref.xsl"/> +<xsl:include href="formal.xsl"/> +<xsl:include href="table.xsl"/> +<xsl:include href="htmltbl.xsl"/> +<xsl:include href="sections.xsl"/> +<xsl:include href="inline.xsl"/> +<xsl:include href="footnote.xsl"/> +<xsl:include href="html.xsl"/> +<xsl:include href="info.xsl"/> +<xsl:include href="keywords.xsl"/> +<xsl:include href="division.xsl"/> +<xsl:include href="toc.xsl"/> +<xsl:include href="index.xsl"/> +<xsl:include href="refentry.xsl"/> +<xsl:include href="math.xsl"/> +<xsl:include href="admon.xsl"/> +<xsl:include href="component.xsl"/> +<xsl:include href="biblio.xsl"/> +<xsl:include href="biblio-iso690.xsl"/> +<xsl:include href="glossary.xsl"/> +<xsl:include href="block.xsl"/> +<xsl:include href="task.xsl"/> +<xsl:include href="qandaset.xsl"/> +<xsl:include href="synop.xsl"/> +<xsl:include href="titlepage.xsl"/> +<xsl:include href="titlepage.templates.xsl"/> +<xsl:include href="pi.xsl"/> +<xsl:include href="ebnf.xsl"/> +<xsl:include href="chunker.xsl"/> +<xsl:include href="html-rtf.xsl"/> +<xsl:include href="annotations.xsl"/> +<xsl:include href="../common/stripns.xsl"/> + +<xsl:param name="stylesheet.result.type" select="'xhtml'"/> +<xsl:param name="htmlhelp.output" select="0"/> + +<!-- ==================================================================== --> + +<xsl:key name="id" match="*" use="@id|@xml:id"/> +<xsl:key name="gid" match="*" use="generate-id()"/> + +<!-- ==================================================================== --> + +<xsl:template match="*"> +  <xsl:message> +    <xsl:text>Element </xsl:text> +    <xsl:value-of select="local-name(.)"/> +    <xsl:text> in namespace '</xsl:text> +    <xsl:value-of select="namespace-uri(.)"/> +    <xsl:text>' encountered</xsl:text> +    <xsl:if test="parent::*"> +      <xsl:text> in </xsl:text> +      <xsl:value-of select="name(parent::*)"/> +    </xsl:if> +    <xsl:text>, but no template matches.</xsl:text> +  </xsl:message> + +  <span style="color: red"> +    <xsl:text><</xsl:text> +    <xsl:value-of select="name(.)"/> +    <xsl:text>></xsl:text> +    <xsl:apply-templates/> +    <xsl:text></</xsl:text> +    <xsl:value-of select="name(.)"/> +    <xsl:text>></xsl:text> +  </span> +</xsl:template> + +<xsl:template match="text()"> +  <xsl:value-of select="."/> +</xsl:template> + +<xsl:template name="body.attributes"> +<!-- no apply-templates; make it empty --> +</xsl:template> + +<xsl:template name="head.content"> +  <xsl:param name="node" select="."/> +  <xsl:param name="title"> +    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/> +  </xsl:param> + +  <title> +    <xsl:copy-of select="$title"/> +  </title> + +  <xsl:if test="$html.stylesheet != ''"> +    <xsl:call-template name="output.html.stylesheets"> +      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="$link.mailto.url != ''"> +    <link rev="made" href="{$link.mailto.url}"/> +  </xsl:if> + +  <xsl:if test="$html.base != ''"> +    <base href="{$html.base}"/> +  </xsl:if> + +  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/> + +  <xsl:if test="$generate.meta.abstract != 0"> +    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/> +    <xsl:if test="$info and $info/abstract"> +      <meta name="description"> +        <xsl:attribute name="content"> +          <xsl:for-each select="$info/abstract[1]/*"> +            <xsl:value-of select="normalize-space(.)"/> +            <xsl:if test="position() < last()"> +              <xsl:text> </xsl:text> +            </xsl:if> +          </xsl:for-each> +        </xsl:attribute> +      </meta> +    </xsl:if> +  </xsl:if> + +  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''"> +    <style type="text/css"><xsl:text> +body { background-image: url('</xsl:text> +<xsl:value-of select="$draft.watermark.image"/><xsl:text>'); +       background-repeat: no-repeat; +       background-position: top left; +       /* The following properties make the watermark "fixed" on the page. */ +       /* I think that's just a bit too distracting for the reader... */ +       /* background-attachment: fixed; */ +       /* background-position: center center; */ +     }</xsl:text> +    </style> +  </xsl:if> +  <xsl:apply-templates select="." mode="head.keywords.content"/> +</xsl:template> + +<xsl:template name="output.html.stylesheets"> +  <xsl:param name="stylesheets" select="''"/> + +  <xsl:choose> +    <xsl:when test="contains($stylesheets, ' ')"> +      <link rel="stylesheet" href="{substring-before($stylesheets, ' ')}"> +        <xsl:if test="$html.stylesheet.type != ''"> +          <xsl:attribute name="type"> +            <xsl:value-of select="$html.stylesheet.type"/> +          </xsl:attribute> +        </xsl:if> +      </link> +      <xsl:call-template name="output.html.stylesheets"> +        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="$stylesheets != ''"> +      <link rel="stylesheet" href="{$stylesheets}"> +        <xsl:if test="$html.stylesheet.type != ''"> +          <xsl:attribute name="type"> +            <xsl:value-of select="$html.stylesheet.type"/> +          </xsl:attribute> +        </xsl:if> +      </link> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template match="*" mode="head.keywords.content"> +  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="info/keywordset" mode="html.header"/> + +  <xsl:if test="$inherit.keywords != 0                 and parent::*"> +    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/> +  </xsl:if> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template name="system.head.content"> +  <xsl:param name="node" select="."/> + +  <!-- FIXME: When chunking, only the annotations actually used +              in this chunk should be referenced. I don't think it +              does any harm to reference them all, but it adds +              unnecessary bloat to each chunk. --> +  <xsl:if test="$annotation.support != 0 and //annotation"> +    <xsl:call-template name="add.annotation.links"/> +    <script type="text/javascript"> +      <xsl:text> +// Create PopupWindow objects</xsl:text> +      <xsl:for-each select="//annotation"> +        <xsl:text> +var popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text> = new PopupWindow("popup-</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>"); +</xsl:text> +        <xsl:text>popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>.offsetY = 15; +</xsl:text> +        <xsl:text>popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>.autoHide(); +</xsl:text> +      </xsl:for-each> +    </script> + +    <style type="text/css"> +      <xsl:value-of select="$annotation.css"/> +    </style> +  </xsl:if> + +  <!-- system.head.content is like user.head.content, except that +       it is called before head.content. This is important because it +       means, for example, that <style> elements output by system.head.content +       have a lower CSS precedence than the users stylesheet. --> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template name="user.preroot"> +  <!-- Pre-root output, can be used to output comments and PIs. --> +  <!-- This must not output any element content! --> +</xsl:template> + +<xsl:template name="user.head.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.header.navigation"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.header.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.footer.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.footer.navigation"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template match="/"> +  <!-- * Get a title for current doc so that we let the user --> +  <!-- * know what document we are processing at this point. --> +  <xsl:variable name="doc.title"> +    <xsl:call-template name="get.doc.title"/> +  </xsl:variable> +  <xsl:choose> +    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, +         toss the namespace and continue.  Use the docbook5 namespaced +         stylesheets for DocBook5 if you don't want to use this feature.--> +    <!-- include extra test for Xalan quirk --> +    <xsl:when test="(function-available('exsl:node-set') or                      contains(system-property('xsl:vendor'),                        'Apache Software Foundation'))                     and (*/self::ng:* or */self::db:*)"> +      <xsl:call-template name="log.message"> +        <xsl:with-param name="level">Note</xsl:with-param> +        <xsl:with-param name="source" select="$doc.title"/> +        <xsl:with-param name="context-desc"> +          <xsl:text>namesp. cut</xsl:text> +        </xsl:with-param> +        <xsl:with-param name="message"> +          <xsl:text>stripped namespace before processing</xsl:text> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:variable name="nons"> +        <xsl:apply-templates mode="stripNS"/> +      </xsl:variable> +      <!-- +      <xsl:message>Saving stripped document.</xsl:message> +      <xsl:call-template name="write.chunk"> +        <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/> +        <xsl:with-param name="method" select="'xml'"/> +        <xsl:with-param name="content"> +          <xsl:copy-of select="exsl:node-set($nons)"/> +        </xsl:with-param> +      </xsl:call-template> +      --> +      <xsl:call-template name="log.message"> +        <xsl:with-param name="level">Note</xsl:with-param> +        <xsl:with-param name="source" select="$doc.title"/> +        <xsl:with-param name="context-desc"> +          <xsl:text>namesp. cut</xsl:text> +        </xsl:with-param> +        <xsl:with-param name="message"> +          <xsl:text>processing stripped document</xsl:text> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:apply-templates select="exsl:node-set($nons)"/> +    </xsl:when> +    <!-- Can't process unless namespace removed --> +    <xsl:when test="*/self::ng:* or */self::db:*"> +      <xsl:message terminate="yes"> +        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text> +        <xsl:text> cannot proceed.</xsl:text> +      </xsl:message> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$rootid != ''"> +          <xsl:choose> +            <xsl:when test="count(key('id',$rootid)) = 0"> +              <xsl:message terminate="yes"> +                <xsl:text>ID '</xsl:text> +                <xsl:value-of select="$rootid"/> +                <xsl:text>' not found in document.</xsl:text> +              </xsl:message> +            </xsl:when> +            <xsl:otherwise> +              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'"> +                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/> +              </xsl:if> +              <xsl:if test="$collect.xref.targets != 'only'"> +                <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/> +                <xsl:if test="$tex.math.in.alt != ''"> +                  <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/> +                </xsl:if> +              </xsl:if> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'"> +            <xsl:apply-templates select="/" mode="collect.targets"/> +          </xsl:if> +          <xsl:if test="$collect.xref.targets != 'only'"> +            <xsl:apply-templates select="/" mode="process.root"/> +            <xsl:if test="$tex.math.in.alt != ''"> +              <xsl:apply-templates select="/" mode="collect.tex.math"/> +            </xsl:if> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="process.root"> +  <xsl:variable name="doc" select="self::*"/> + +  <xsl:call-template name="user.preroot"/> +  <xsl:call-template name="root.messages"/> + +  <html> +    <head> +      <xsl:call-template name="system.head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:call-template name="head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:call-template name="user.head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +    </head> +    <body> +      <xsl:call-template name="body.attributes"/> +      <xsl:call-template name="user.header.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:apply-templates select="."/> +      <xsl:call-template name="user.footer.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +    </body> +  </html> +  <xsl:value-of select="$html.append"/> +</xsl:template> + +<xsl:template name="root.messages"> +  <!-- redefine this any way you'd like to output messages --> +  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE --> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="chunk"> +  <xsl:param name="node" select="."/> + +  <!-- The default is that we are not chunking... --> +  <xsl:text>0</xsl:text> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/ebnf.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/ebnf.xsl.svn-base new file mode 100644 index 0000000..06182a1 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/ebnf.xsl.svn-base @@ -0,0 +1,328 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<doc:reference xmlns=""> +<referenceinfo xmlns="http://www.w3.org/1999/xhtml"> +<releaseinfo role="meta"> +$Id$ +</releaseinfo> +<author><surname>Walsh</surname> +<firstname>Norman</firstname></author> +<copyright><year>1999</year><year>2000</year> +<holder>Norman Walsh</holder> +</copyright> +</referenceinfo> +<title xmlns="http://www.w3.org/1999/xhtml">HTML EBNF Reference</title> + +<partintro xmlns="http://www.w3.org/1999/xhtml"> +<section><title>Introduction</title> + +<para>This is technical reference documentation for the DocBook XSL +Stylesheets; it documents (some of) the parameters, templates, and +other elements of the stylesheets.</para> + +<para>This reference describes the templates and parameters relevant +to formatting EBNF markup.</para> + +<para>This is not intended to be <quote>user</quote> documentation. +It is provided for developers writing customization layers for the +stylesheets, and for anyone who's interested in <quote>how it +works</quote>.</para> + +<para>Although I am trying to be thorough, this documentation is known +to be incomplete. Don't forget to read the source, too :-)</para> +</section> +</partintro> +</doc:reference> + +<!-- ==================================================================== --> + +<xsl:template match="productionset"> +  <table width="100%" cellpadding="5"> +    <xsl:if test="$ebnf.table.bgcolor != ''"> +      <xsl:attribute name="bgcolor"> +        <xsl:value-of select="$ebnf.table.bgcolor"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="$ebnf.table.border != 0"> +      <xsl:attribute name="border">1</xsl:attribute> +    </xsl:if> +    <xsl:attribute name="class"> +      <xsl:value-of select="local-name(.)"/> +    </xsl:attribute> +    <xsl:attribute name="summary"> +      <xsl:text>EBNF</xsl:text> +      <xsl:if test="title"> +        <xsl:text> for </xsl:text> +        <xsl:value-of select="title"/> +      </xsl:if> +    </xsl:attribute> + +    <xsl:if test="title"> +      <tr> +        <th align="left" valign="top"> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:apply-templates select="title"/> +        </th> +      </tr> +    </xsl:if> +    <tr> +      <td> +        <table border="0" width="99%" cellpadding="0"> +          <xsl:if test="$ebnf.table.bgcolor != ''"> +            <xsl:attribute name="bgcolor"> +              <xsl:value-of select="$ebnf.table.bgcolor"/> +            </xsl:attribute> +          </xsl:if> +          <xsl:attribute name="class"> +            <xsl:value-of select="local-name(.)"/> +          </xsl:attribute> +          <xsl:attribute name="summary">EBNF productions</xsl:attribute> +          <xsl:apply-templates select="production|productionrecap"/> +        </table> +      </td> +    </tr> +  </table> +</xsl:template> + +<xsl:template match="productionset/title"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="production"> +  <xsl:param name="recap" select="false()"/> +  <tr> +    <td align="left" valign="top" width="3%"> +      <xsl:text>[</xsl:text> +      <xsl:number count="production" level="any"/> +      <xsl:text>]</xsl:text> +    </td> +    <td align="right" valign="top" width="10%"> +      <xsl:choose> +        <xsl:when test="$recap"> +          <a> +            <xsl:attribute name="href"> +              <xsl:call-template name="href.target"> +                <xsl:with-param name="object" select="."/> +              </xsl:call-template> +            </xsl:attribute> +            <xsl:apply-templates select="lhs"/> +          </a> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="anchor"/> +          <xsl:apply-templates select="lhs"/> +        </xsl:otherwise> +      </xsl:choose> +    </td> +    <td valign="top" width="5%" align="center"> +      <xsl:copy-of select="$ebnf.assignment"/> +    </td> +    <td valign="top" width="52%"> +      <xsl:apply-templates select="rhs"/> +      <xsl:copy-of select="$ebnf.statement.terminator"/> +    </td> +    <td align="left" valign="top" width="30%"> +      <xsl:choose> +        <xsl:when test="rhs/lineannotation|constraint"> +          <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/> +          <xsl:apply-templates select="constraint"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:text> </xsl:text> +        </xsl:otherwise> +      </xsl:choose> +    </td> +  </tr> +</xsl:template> + +<xsl:template match="productionrecap"> +  <xsl:variable name="targets" select="key('id',@linkend)"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <xsl:if test="count($targets)=0"> +    <xsl:message> +      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text> +      <xsl:value-of select="@linkend"/> +      <xsl:text>.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="count($targets)>1"> +    <xsl:message> +      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text> +      <xsl:value-of select="@linkend"/> +      <xsl:text>.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:apply-templates select="$target"> +    <xsl:with-param name="recap" select="true()"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="lhs"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="rhs"> +  <xsl:apply-templates/> +  <xsl:if test="following-sibling::rhs"> +    <xsl:text> |</xsl:text> +    <br/> +  </xsl:if> +</xsl:template> + +<xsl:template match="nonterminal"> +  <xsl:variable name="linkend"> +    <xsl:call-template name="xpointer.idref"> +      <xsl:with-param name="xpointer" select="@def"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:call-template name="check.id.unique"> +    <xsl:with-param name="linkend" select="$linkend"/> +  </xsl:call-template> + +  <xsl:call-template name="check.idref.targets"> +    <xsl:with-param name="linkend" select="$linkend"/> +    <xsl:with-param name="element-list">production</xsl:with-param> +  </xsl:call-template> + +  <!-- If you don't provide content, you can't point outside this doc. --> +  <xsl:choose> +    <xsl:when test="*|text()"><!--nop--></xsl:when> +    <xsl:otherwise> +      <xsl:if test="$linkend = ''"> +        <xsl:message> +          <xsl:text>Non-terminals with no content must point to </xsl:text> +          <xsl:text>production elements in the current document.</xsl:text> +        </xsl:message> +        <xsl:message> +          <xsl:text>Invalid xpointer for empty nt: </xsl:text> +          <xsl:value-of select="@def"/> +        </xsl:message> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> + +  <xsl:variable name="href"> +    <xsl:choose> +      <xsl:when test="$linkend != ''"> +        <xsl:variable name="targets" select="key('id',$linkend)"/> +        <xsl:variable name="target" select="$targets[1]"/> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="object" select="$target"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="@def"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <a href="{$href}"> +    <xsl:choose> +      <xsl:when test="*|text()"> +        <xsl:apply-templates/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:choose> +          <xsl:when test="$linkend != ''"> +            <xsl:variable name="targets" select="key('id',$linkend)"/> +            <xsl:variable name="target" select="$targets[1]"/> +            <xsl:apply-templates select="$target/lhs"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:text>???</xsl:text> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:otherwise> +    </xsl:choose> +  </a> +</xsl:template> + +<xsl:template match="rhs/lineannotation"> +  <!--nop--> +</xsl:template> + +<xsl:template match="rhs/lineannotation" mode="rhslo"> +  <xsl:text>/* </xsl:text> +  <xsl:apply-templates/> +  <xsl:text> */</xsl:text> +  <br/> +</xsl:template> + +<xsl:template match="constraint"> +  <xsl:call-template name="check.id.unique"> +    <xsl:with-param name="linkend" select="@linkend"/> +  </xsl:call-template> + +  <xsl:call-template name="check.idref.targets"> +    <xsl:with-param name="linkend" select="@linkend"/> +    <xsl:with-param name="element-list">constraintdef</xsl:with-param> +  </xsl:call-template> + +  <xsl:variable name="href"> +    <xsl:variable name="targets" select="key('id',@linkend)"/> +    <xsl:variable name="target" select="$targets[1]"/> +    <xsl:call-template name="href.target"> +      <xsl:with-param name="object" select="$target"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:text>[ </xsl:text> + +  <xsl:choose> +    <xsl:when test="@role"> +      <xsl:value-of select="@role"/> +      <xsl:text>: </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="targets" select="key('id',@linkend)"/> +      <xsl:variable name="target" select="$targets[1]"/> +      <xsl:if test="$target/@role"> +        <xsl:value-of select="$target/@role"/> +        <xsl:text>: </xsl:text> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> + +  <a href="{$href}"> +    <xsl:variable name="targets" select="key('id',@linkend)"/> +    <xsl:variable name="target" select="$targets[1]"/> +    <xsl:apply-templates select="$target" mode="title.markup"/> +  </a> +  <xsl:text> ]</xsl:text> +  <xsl:if test="following-sibling::constraint"> +    <br/> +  </xsl:if> +</xsl:template> + +<xsl:template match="constraintdef"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="constraintdef/title"> +  <p><b><xsl:apply-templates/></b></p> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/footnote.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/footnote.xsl.svn-base new file mode 100644 index 0000000..1458572 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/footnote.xsl.svn-base @@ -0,0 +1,292 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:template match="footnote"> +  <xsl:variable name="name"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> +  <xsl:variable name="href"> +    <xsl:text>#ftn.</xsl:text> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="ancestor::tgroup"> +      <sup> +        <xsl:text>[</xsl:text> +        <a id="{$name}" href="{$href}"> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:apply-templates select="." mode="footnote.number"/> +        </a> +        <xsl:text>]</xsl:text> +      </sup> +    </xsl:when> +    <xsl:otherwise> +      <sup> +        <xsl:text>[</xsl:text> +        <a id="{$name}" href="{$href}"> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:apply-templates select="." mode="footnote.number"/> +        </a> +        <xsl:text>]</xsl:text> +      </sup> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="footnoteref"> +  <xsl:variable name="targets" select="key('id',@linkend)"/> +  <xsl:variable name="footnote" select="$targets[1]"/> + +  <xsl:variable name="target.href"> +    <xsl:call-template name="href.target"> +      <xsl:with-param name="object" select="$footnote"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="href"> +    <xsl:value-of select="substring-before($target.href, '#')"/> +    <xsl:text>#ftn.</xsl:text> +    <xsl:value-of select="substring-after($target.href, '#')"/> +  </xsl:variable> + +  <sup> +    <xsl:text>[</xsl:text> +    <a href="{$href}"> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:apply-templates select="$footnote" mode="footnote.number"/> +    </a> +    <xsl:text>]</xsl:text> +  </sup> +</xsl:template> + +<xsl:template match="footnote" mode="footnote.number"> +  <xsl:choose> +    <xsl:when test="string-length(@label) != 0"> +      <xsl:value-of select="@label"/> +    </xsl:when> +    <xsl:when test="ancestor::tgroup"> +      <xsl:variable name="tfnum"> +        <xsl:number level="any" from="table|informaltable" format="1"/> +      </xsl:variable> + +      <xsl:choose> +        <xsl:when test="string-length($table.footnote.number.symbols) >= $tfnum"> +          <xsl:value-of select="substring($table.footnote.number.symbols, $tfnum, 1)"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:number level="any" from="tgroup" format="{$table.footnote.number.format}"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="pfoot" select="preceding::footnote[not(@label)]"/> +      <xsl:variable name="ptfoot" select="preceding::tgroup//footnote"/> +      <xsl:variable name="fnum" select="count($pfoot) - count($ptfoot) + 1"/> + +      <xsl:choose> +        <xsl:when test="string-length($footnote.number.symbols) >= $fnum"> +          <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:number value="$fnum" format="{$footnote.number.format}"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2"> +  <!-- this only works if the first thing in a footnote is a para, --> +  <!-- which is ok, because it usually is. --> +  <xsl:variable name="name"> +    <xsl:text>ftn.</xsl:text> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="ancestor::footnote"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="href"> +    <xsl:text>#</xsl:text> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="ancestor::footnote"/> +    </xsl:call-template> +  </xsl:variable> +  <p> +    <xsl:if test="@role and $para.propagates.style != 0"> +      <xsl:apply-templates select="." mode="class.attribute"> +        <xsl:with-param name="class" select="@role"/> +      </xsl:apply-templates> +    </xsl:if> +    <sup> +      <xsl:text>[</xsl:text> +      <a id="{$name}" href="{$href}"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/> +      </a> +      <xsl:text>] </xsl:text> +    </sup> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="footnote.body.number"> +  <xsl:variable name="name"> +    <xsl:text>ftn.</xsl:text> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="ancestor::footnote"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="href"> +    <xsl:text>#</xsl:text> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="ancestor::footnote"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="footnote.mark"> +    <sup> +      <xsl:text>[</xsl:text> +      <a id="{$name}" href="{$href}"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/> +      </a> +      <xsl:text>] </xsl:text> +    </sup> +  </xsl:variable> + +  <xsl:variable name="html"> +    <xsl:apply-templates select="."/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="function-available('exsl:node-set')"> +      <xsl:variable name="html-nodes" select="exsl:node-set($html)"/> +      <xsl:choose> +        <xsl:when test="$html-nodes//p"> +          <xsl:apply-templates select="$html-nodes" mode="insert.html.p"> +            <xsl:with-param name="mark" select="$footnote.mark"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="$html-nodes" mode="insert.html.text"> +            <xsl:with-param name="mark" select="$footnote.mark"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$html"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- +<xsl:template name="count-element-from"> +  <xsl:param name="from" select=".."/> +  <xsl:param name="to" select="."/> +  <xsl:param name="count" select="0"/> +  <xsl:param name="list" select="$from/following::*[local-name(.)=local-name($to)] +                                 |$from/descendant-or-self::*[local-name(.)=local-name($to)]"/> + +  <xsl:choose> +    <xsl:when test="not($list)"> +      <xsl:text>-1</xsl:text> +    </xsl:when> +    <xsl:when test="$list[1] = $to"> +      <xsl:value-of select="$count + 1"/> +    </xsl:when> +    <xsl:otherwise> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> +--> + +<!-- ==================================================================== --> + +<xsl:template name="process.footnotes"> +  <xsl:variable name="footnotes" select=".//footnote"/> +  <xsl:variable name="table.footnotes" select=".//tgroup//footnote"/> + +  <!-- Only bother to do this if there's at least one non-table footnote --> +  <xsl:if test="count($footnotes)>count($table.footnotes)"> +    <div class="footnotes"> +      <br/> +      <hr width="100" align="left"/> +      <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/> +    </div> +  </xsl:if> + +  <xsl:if test="$annotation.support != 0 and //annotation"> +    <div class="annotation-list"> +      <div class="annotation-nocss"> +	<p>The following annotations are from this essay. You are seeing +	them here because your browser doesn’t support the user-interface +	techniques used to make them appear as ‘popups’ on modern browsers.</p> +      </div> + +      <xsl:apply-templates select="//annotation" mode="annotation-popup"/> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template name="process.chunk.footnotes"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode"> +  <xsl:choose> +    <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'"> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates/> +      </div> +    </xsl:when> + +    <xsl:when test="$html.cleanup != 0 and function-available('exsl:node-set')"> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates select="*[1]" mode="footnote.body.number"/> +        <xsl:apply-templates select="*[position() > 1]"/> +      </div> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:message> +        <xsl:text>Warning: footnote number may not be generated </xsl:text> +        <xsl:text>correctly; </xsl:text> +        <xsl:value-of select="local-name(*[1])"/> +        <xsl:text> unexpected as first child of footnote.</xsl:text> +      </xsl:message> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates/> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="tgroup//footnote" mode="process.footnote.mode"> +</xsl:template> + +<xsl:template match="footnote" mode="table.footnote.mode"> +  <xsl:call-template name="process.footnote"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/formal.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/formal.xsl.svn-base new file mode 100644 index 0000000..b1f57ef --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/formal.xsl.svn-base @@ -0,0 +1,386 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:param name="formal.object.break.after">1</xsl:param> + +<xsl:template name="formal.object"> +  <xsl:param name="placement" select="'before'"/> +  <xsl:param name="class"> +    <xsl:apply-templates select="." mode="class.value"/> +  </xsl:param> + +  <xsl:call-template name="id.warning"/> + +  <xsl:variable name="content"> +    <div class="{$class}"> +      <xsl:call-template name="anchor"> +        <xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> +     +      <xsl:choose> +        <xsl:when test="$placement = 'before'"> +          <xsl:call-template name="formal.object.heading"/> +          <div class="{$class}-contents"> +            <xsl:apply-templates/> +          </div> +          <!-- HACK: This doesn't belong inside formal.object; it  +               should be done by the table template, but I want  +               the link to be inside the DIV, so... --> +          <xsl:if test="local-name(.) = 'table'"> +            <xsl:call-template name="table.longdesc"/> +          </xsl:if> +     +          <xsl:if test="$spacing.paras != 0"><p/></xsl:if> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$spacing.paras != 0"><p/></xsl:if> +          <div class="{$class}-contents"><xsl:apply-templates/></div> +          <!-- HACK: This doesn't belong inside formal.object; it  +               should be done by the table template, but I want  +               the link to be inside the DIV, so... --> +          <xsl:if test="local-name(.) = 'table'"> +            <xsl:call-template name="table.longdesc"/> +          </xsl:if> +     +          <xsl:call-template name="formal.object.heading"/> +        </xsl:otherwise> +      </xsl:choose> +    </div> +    <xsl:if test="not($formal.object.break.after = '0')"> +      <br class="{$class}-break"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="floatstyle"> +    <xsl:call-template name="floatstyle"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$floatstyle != ''"> +      <xsl:call-template name="floater"> +        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param> +        <xsl:with-param name="floatstyle" select="$floatstyle"/> +        <xsl:with-param name="content" select="$content"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$content"/> +    </xsl:otherwise> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="formal.object.heading"> +  <xsl:param name="object" select="."/> +  <xsl:param name="title"> +    <xsl:apply-templates select="$object" mode="object.title.markup"> +      <xsl:with-param name="allow-anchors" select="1"/> +    </xsl:apply-templates> +  </xsl:param> + +  <p class="title"> +    <b> +      <xsl:copy-of select="$title"/> +    </b> +  </p> +</xsl:template> + +<xsl:template name="informal.object"> +  <xsl:param name="class" select="local-name(.)"/> + +  <xsl:variable name="content"> +    <div class="{$class}"> +      <xsl:if test="$spacing.paras != 0"><p/></xsl:if> +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates/> +   +      <!-- HACK: This doesn't belong inside formal.object; it  +           should be done by the table template, but I want  +           the link to be inside the DIV, so... --> +      <xsl:if test="local-name(.) = 'informaltable'"> +        <xsl:call-template name="table.longdesc"/> +      </xsl:if> +   +      <xsl:if test="$spacing.paras != 0"><p/></xsl:if> +    </div> +  </xsl:variable> + +  <xsl:variable name="floatstyle"> +    <xsl:call-template name="floatstyle"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$floatstyle != ''"> +      <xsl:call-template name="floater"> +        <xsl:with-param name="class"><xsl:value-of select="$class"/>-float</xsl:with-param> +        <xsl:with-param name="floatstyle" select="$floatstyle"/> +        <xsl:with-param name="content" select="$content"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$content"/> +    </xsl:otherwise> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="semiformal.object"> +  <xsl:param name="placement" select="'before'"/> +  <xsl:param name="class" select="local-name(.)"/> + +  <xsl:choose> +    <xsl:when test="title"> +      <xsl:call-template name="formal.object"> +        <xsl:with-param name="placement" select="$placement"/> +        <xsl:with-param name="class" select="$class"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="informal.object"> +        <xsl:with-param name="class" select="$class"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="figure"> +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="formal.object"> +    <xsl:with-param name="placement" select="$placement"/> +  </xsl:call-template> + +</xsl:template> + +<xsl:template match="table"> +  <xsl:choose> +    <xsl:when test="tgroup|mediaobject|graphic"> +      <xsl:call-template name="calsTable"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy> +        <xsl:copy-of select="@*[not(local-name()='id')]"/> +        <xsl:attribute name="id"> +          <xsl:call-template name="object.id"/> +        </xsl:attribute> +        <xsl:call-template name="htmlTable"/> +      </xsl:copy> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="calsTable"> +  <xsl:if test="tgroup/tbody/tr                 |tgroup/thead/tr                 |tgroup/tfoot/tr"> +    <xsl:message terminate="yes">Broken table: tr descendent of CALS Table.</xsl:message> +  </xsl:if> + +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="formal.object"> +    <xsl:with-param name="placement" select="$placement"/> +    <xsl:with-param name="class"> +      <xsl:choose> +        <xsl:when test="@tabstyle"> +          <!-- hack, this will only ever occur on table, not example --> +          <xsl:value-of select="@tabstyle"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="local-name(.)"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="htmlTable"> +  <xsl:if test="tgroup/tbody/row                 |tgroup/thead/row                 |tgroup/tfoot/row"> +    <xsl:message terminate="yes">Broken table: row descendent of HTML table.</xsl:message> +  </xsl:if> + +  <xsl:apply-templates mode="htmlTable"/> +</xsl:template> + +<xsl:template match="example"> +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                      concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="formal.object"> +    <xsl:with-param name="placement" select="$placement"/> +  </xsl:call-template> + +</xsl:template> + +<xsl:template match="equation"> +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                       concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="formal.object"> +    <xsl:with-param name="placement" select="$placement"/> +  </xsl:call-template> + +</xsl:template> + +<xsl:template match="figure/title"/> +<xsl:template match="figure/titleabbrev"/> +<xsl:template match="table/title"/> +<xsl:template match="table/titleabbrev"/> +<xsl:template match="table/textobject"/> +<xsl:template match="example/title"/> +<xsl:template match="example/titleabbrev"/> +<xsl:template match="equation/title"/> +<xsl:template match="equation/titleabbrev"/> + +<xsl:template match="informalfigure"> +  <xsl:call-template name="informal.object"/> +</xsl:template> + +<xsl:template match="informalexample"> +  <xsl:call-template name="informal.object"/> +</xsl:template> + +<xsl:template match="informaltable"> +  <xsl:choose> +    <xsl:when test="tgroup|mediaobject|graphic"> +      <xsl:call-template name="informal.object"> +        <xsl:with-param name="class"> +          <xsl:choose> +            <xsl:when test="@tabstyle"> +              <xsl:value-of select="@tabstyle"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:value-of select="local-name(.)"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <table> +        <xsl:copy-of select="@*"/> +        <xsl:call-template name="htmlTable"/> +      </table> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="informaltable/textobject"/> + +<xsl:template name="table.longdesc"> +  <!-- HACK: This doesn't belong inside formal.objectt; it should be done by --> +  <!-- the table template, but I want the link to be inside the DIV, so... --> +  <xsl:variable name="longdesc.uri"> +    <xsl:call-template name="longdesc.uri"> +      <xsl:with-param name="mediaobject" select="."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="irrelevant"> +    <!-- write.longdesc returns the filename ... --> +    <xsl:call-template name="write.longdesc"> +      <xsl:with-param name="mediaobject" select="."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                 and textobject[not(phrase)]"> +    <xsl:call-template name="longdesc.link"> +      <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="informalequation"> +  <xsl:call-template name="informal.object"/> +</xsl:template> + +<xsl:template name="floatstyle"> +  <xsl:if test="(@float and @float != '0') or @floatstyle != ''"> +    <xsl:choose> +      <xsl:when test="@floatstyle != ''"> +        <xsl:value-of select="@floatstyle"/> +      </xsl:when> +      <xsl:when test="@float = '1'"> +        <xsl:value-of select="$default.float.class"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="@float"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +</xsl:template> + +<xsl:template name="floater"> +  <xsl:param name="content"/> +  <xsl:param name="class" select="'float'"/> +  <xsl:param name="floatstyle" select="'left'"/> + +  <div class="{$class}"> +    <xsl:if test="$floatstyle = 'left' or $floatstyle = 'right'"> +      <xsl:attribute name="style"> +        <xsl:text>float: </xsl:text> +        <xsl:value-of select="$floatstyle"/> +        <xsl:text>;</xsl:text> +      </xsl:attribute> +    </xsl:if> +    <xsl:copy-of select="$content"/> +  </div> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/glossary.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/glossary.xsl.svn-base new file mode 100644 index 0000000..1663a9c --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/glossary.xsl.svn-base @@ -0,0 +1,548 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="glossary"> +   +<xsl:variable name="language"> +  <xsl:call-template name="l10n.language"/> +</xsl:variable> + +<xsl:variable name="lowercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.input</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +<xsl:variable name="uppercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.output</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="glossary.titlepage"/> + +    <xsl:choose> +      <xsl:when test="glossdiv"> +        <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/> +      </xsl:when> +      <xsl:when test="glossentry"> +        <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:choose> +      <xsl:when test="glossdiv"> +        <xsl:apply-templates select="glossdiv"/> +      </xsl:when> +      <xsl:when test="glossentry"> +        <dl> +          <xsl:choose> +            <xsl:when test="$glossary.sort != 0"> +              <xsl:apply-templates select="glossentry"> +                <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                              $uppercase)"/> +              </xsl:apply-templates> +            </xsl:when> +            <xsl:otherwise> +              <xsl:apply-templates select="glossentry"/> +            </xsl:otherwise> +          </xsl:choose> +        </dl> +      </xsl:when> +      <xsl:otherwise> +        <!-- empty glossary --> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:if test="not(parent::article)"> +      <xsl:call-template name="process.footnotes"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="glossary/glossaryinfo"/> +<xsl:template match="glossary/info"/> +<xsl:template match="glossary/title"/> +<xsl:template match="glossary/subtitle"/> +<xsl:template match="glossary/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template match="glosslist"> +   +<xsl:variable name="language"> +  <xsl:call-template name="l10n.language"/> +</xsl:variable> + +<xsl:variable name="lowercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.input</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +<xsl:variable name="uppercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.output</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="blockinfo/title|info/title|title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> +    <dl> +      <xsl:choose> +        <xsl:when test="$glossary.sort != 0"> +          <xsl:apply-templates select="glossentry"> +            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="glossentry"/> +        </xsl:otherwise> +      </xsl:choose> +    </dl> +  </div> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="glossdiv"> +   +<xsl:variable name="language"> +  <xsl:call-template name="l10n.language"/> +</xsl:variable> + +<xsl:variable name="lowercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.input</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +<xsl:variable name="uppercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.output</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/> + +    <dl> +      <xsl:choose> +        <xsl:when test="$glossary.sort != 0"> +          <xsl:apply-templates select="glossentry"> +            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="glossentry"/> +        </xsl:otherwise> +      </xsl:choose> +    </dl> +  </div> +</xsl:template> + +<xsl:template match="glossdiv/title"> +  <h3> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </h3> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- +GlossEntry ::= +  GlossTerm, Acronym?, Abbrev?, +  (IndexTerm)*, +  RevHistory?, +  (GlossSee | GlossDef+) +--> + +<xsl:template match="glossentry"> +  <xsl:choose> +    <xsl:when test="$glossentry.show.acronym = 'primary'"> +      <dt> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional"> +            <xsl:choose> +              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when> +              <xsl:otherwise>1</xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> + +        <xsl:choose> +          <xsl:when test="acronym|abbrev"> +            <xsl:apply-templates select="acronym|abbrev"/> +            <xsl:text> (</xsl:text> +            <xsl:apply-templates select="glossterm"/> +            <xsl:text>)</xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <xsl:apply-templates select="glossterm"/> +          </xsl:otherwise> +        </xsl:choose> +      </dt> +    </xsl:when> +    <xsl:when test="$glossentry.show.acronym = 'yes'"> +      <dt> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional"> +            <xsl:choose> +              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when> +              <xsl:otherwise>1</xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> + +        <xsl:apply-templates select="glossterm"/> + +        <xsl:if test="acronym|abbrev"> +          <xsl:text> (</xsl:text> +          <xsl:apply-templates select="acronym|abbrev"/> +          <xsl:text>)</xsl:text> +        </xsl:if> +      </dt> +    </xsl:when> +    <xsl:otherwise> +      <dt> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional"> +            <xsl:choose> +              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when> +              <xsl:otherwise>1</xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> + +        <xsl:apply-templates select="glossterm"/> +      </dt> +    </xsl:otherwise> +  </xsl:choose> + +  <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/> +</xsl:template> + +<xsl:template match="glossentry/glossterm"> +  <xsl:apply-templates/> +  <xsl:if test="following-sibling::glossterm">, </xsl:if> +</xsl:template> + +<xsl:template match="glossentry/acronym"> +  <xsl:apply-templates/> +  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if> +</xsl:template> + +<xsl:template match="glossentry/abbrev"> +  <xsl:apply-templates/> +  <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if> +</xsl:template> + +<xsl:template match="glossentry/revhistory"> +</xsl:template> + +<xsl:template match="glossentry/glosssee"> +  <xsl:variable name="otherterm" select="@otherterm"/> +  <xsl:variable name="targets" select="key('id', $otherterm)"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <dd> +    <p> +      <xsl:variable name="template"> +        <xsl:call-template name="gentext.template"> +          <xsl:with-param name="context" select="'glossary'"/> +          <xsl:with-param name="name" select="'see'"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="title"> +        <xsl:choose> +          <xsl:when test="$target"> +            <a> +              <xsl:apply-templates select="." mode="class.attribute"/> +              <xsl:attribute name="href"> +                <xsl:call-template name="href.target"> +                  <xsl:with-param name="object" select="$target"/> +                </xsl:call-template> +              </xsl:attribute> +              <xsl:apply-templates select="$target" mode="xref-to"/> +            </a> +          </xsl:when> +          <xsl:when test="$otherterm != '' and not($target)"> +            <xsl:message> +              <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text> +              <xsl:value-of select="$otherterm"/> +            </xsl:message> +            <xsl:apply-templates/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:apply-templates/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:call-template name="substitute-markup"> +        <xsl:with-param name="template" select="$template"/> +        <xsl:with-param name="title" select="$title"/> +      </xsl:call-template> +      <xsl:text>.</xsl:text> +    </p> +  </dd> +</xsl:template> + +<xsl:template match="glossentry/glossdef"> +  <dd> +    <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/> +    <xsl:if test="glossseealso"> +      <p> +        <xsl:variable name="template"> +          <xsl:call-template name="gentext.template"> +            <xsl:with-param name="context" select="'glossary'"/> +            <xsl:with-param name="name" select="'seealso'"/> +          </xsl:call-template> +        </xsl:variable> +        <xsl:variable name="title"> +          <xsl:apply-templates select="glossseealso"/> +        </xsl:variable> +        <xsl:call-template name="substitute-markup"> +          <xsl:with-param name="template" select="$template"/> +          <xsl:with-param name="title" select="$title"/> +        </xsl:call-template> +      </p> +    </xsl:if> +  </dd> +</xsl:template> + +<xsl:template match="glossseealso"> +  <xsl:variable name="otherterm" select="@otherterm"/> +  <xsl:variable name="targets" select="key('id', $otherterm)"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <xsl:choose> +    <xsl:when test="$target"> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates select="$target" mode="xref-to"/> +      </a> +    </xsl:when> +    <xsl:when test="$otherterm != '' and not($target)"> +      <xsl:message> +        <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text> +        <xsl:value-of select="$otherterm"/> +      </xsl:message> +      <xsl:apply-templates/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates/> +    </xsl:otherwise> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="position() = last()"> +      <xsl:text>.</xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <xsl:text>, </xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- Glossary collection --> + +<xsl:template match="glossary[@role='auto']" priority="2"> +   +<xsl:variable name="language"> +  <xsl:call-template name="l10n.language"/> +</xsl:variable> + +<xsl:variable name="lowercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.input</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +<xsl:variable name="uppercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.output</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +  <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/> +  <xsl:variable name="collection" select="document($glossary.collection, .)"/> + +  <xsl:call-template name="id.warning"/> + +  <xsl:if test="$glossary.collection = ''"> +    <xsl:message> +      <xsl:text>Warning: processing automatic glossary </xsl:text> +      <xsl:text>without a glossary.collection file.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:if test="not($collection) and $glossary.collection != ''"> +    <xsl:message> +      <xsl:text>Warning: processing automatic glossary but unable to </xsl:text> +      <xsl:text>open glossary.collection file '</xsl:text> +      <xsl:value-of select="$glossary.collection"/> +      <xsl:text>'</xsl:text> +    </xsl:message> +  </xsl:if> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="glossary.titlepage"/> + +    <xsl:choose> +      <xsl:when test="glossdiv and $collection//glossdiv"> +        <xsl:for-each select="$collection//glossdiv"> +          <!-- first see if there are any in this div --> +          <xsl:variable name="exist.test"> +            <xsl:for-each select="glossentry"> +              <xsl:variable name="cterm" select="glossterm"/> +              <xsl:if test="$terms[@baseform = $cterm or . = $cterm]"> +                <xsl:value-of select="glossterm"/> +              </xsl:if> +            </xsl:for-each> +          </xsl:variable> + +          <xsl:if test="$exist.test != ''"> +            <xsl:apply-templates select="." mode="auto-glossary"> +              <xsl:with-param name="terms" select="$terms"/> +            </xsl:apply-templates> +          </xsl:if> +        </xsl:for-each> +      </xsl:when> +      <xsl:otherwise> +        <dl> +          <xsl:choose> +            <xsl:when test="$glossary.sort != 0"> +              <xsl:for-each select="$collection//glossentry"> +                <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                              $uppercase)"/> +                <xsl:variable name="cterm" select="glossterm"/> +                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]"> +                  <xsl:apply-templates select="." mode="auto-glossary"/> +                </xsl:if> +              </xsl:for-each> +            </xsl:when> +            <xsl:otherwise> +              <xsl:for-each select="$collection//glossentry"> +                <xsl:variable name="cterm" select="glossterm"/> +                <xsl:if test="$terms[@baseform = $cterm or . = $cterm]"> +                  <xsl:apply-templates select="." mode="auto-glossary"/> +                </xsl:if> +              </xsl:for-each> +            </xsl:otherwise> +          </xsl:choose> +        </dl> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:if test="not(parent::article)"> +      <xsl:call-template name="process.footnotes"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="*" mode="auto-glossary"> +  <!-- pop back out to the default mode for most elements --> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="glossdiv" mode="auto-glossary"> +  <xsl:param name="terms" select="."/> + +   +<xsl:variable name="language"> +  <xsl:call-template name="l10n.language"/> +</xsl:variable> + +<xsl:variable name="lowercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.input</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + +<xsl:variable name="uppercase"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key">normalize.sort.output</xsl:with-param> +  </xsl:call-template> +</xsl:variable> + + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/> + +    <dl> +      <xsl:choose> +        <xsl:when test="$glossary.sort != 0"> +          <xsl:for-each select="glossentry"> +            <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase,                                          $uppercase)"/> +            <xsl:variable name="cterm" select="glossterm"/> +            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]"> +              <xsl:apply-templates select="." mode="auto-glossary"/> +            </xsl:if> +          </xsl:for-each> +        </xsl:when> +        <xsl:otherwise> +          <xsl:for-each select="glossentry"> +            <xsl:variable name="cterm" select="glossterm"/> +            <xsl:if test="$terms[@baseform = $cterm or . = $cterm]"> +              <xsl:apply-templates select="." mode="auto-glossary"/> +            </xsl:if> +          </xsl:for-each> +        </xsl:otherwise> +      </xsl:choose> +    </dl> +  </div> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/graphics.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/graphics.xsl.svn-base new file mode 100644 index 0000000..08fdd88 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/graphics.xsl.svn-base @@ -0,0 +1,1414 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory" xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics" xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics" xmlns:xtext="xalan://com.nwalsh.xalan.Text" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink stext xtext lxslt simg ximg" extension-element-prefixes="stext xtext" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     Contributors: +     Colin Paul Adams, <colin@colina.demon.co.uk> + +     ******************************************************************** --> + +<lxslt:component prefix="xtext" elements="insertfile"/> +<lxslt:component prefix="ximg" functions="new getWidth getDepth"/> + +<!-- ==================================================================== --> +<!-- Graphic format tests for the HTML backend --> + +<xsl:template name="is.graphic.format"> +  <xsl:param name="format"/> +  <xsl:if test="$format = 'SVG'                 or $format = 'PNG'                 or $format = 'JPG'                 or $format = 'JPEG'                 or $format = 'linespecific'                 or $format = 'GIF'                 or $format = 'GIF87a'                 or $format = 'GIF89a'                 or $format = 'BMP'">1</xsl:if> +</xsl:template> + +<xsl:template name="is.graphic.extension"> +  <xsl:param name="ext"/> +  <xsl:variable name="lcext" select="translate($ext,                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ',                                        'abcdefghijklmnopqrstuvwxyz')"/> +  <xsl:if test="$lcext = 'svg'              or $lcext = 'png'              or $lcext = 'jpeg'              or $lcext = 'jpg'              or $lcext = 'avi'              or $lcext = 'mpg'              or $lcext = 'mpeg'              or $lcext = 'qt'              or $lcext = 'gif'              or $lcext = 'bmp'">1</xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="screenshot"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="screeninfo"> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="process.image"> +  <!-- When this template is called, the current node should be  --> +  <!-- a graphic, inlinegraphic, imagedata, or videodata. All    --> +  <!-- those elements have the same set of attributes, so we can --> +  <!-- handle them all in one place.                             --> +  <xsl:param name="tag" select="'img'"/> +  <xsl:param name="alt"/> +  <xsl:param name="longdesc"/> + +  <!-- The HTML img element only supports the notion of content-area +       scaling; it doesn't support the distinction between a +       content-area and a viewport-area, so we have to make some +       compromises. + +       1. If only the content-area is specified, everything is fine. +          (If you ask for a three inch image, that's what you'll get.) + +       2. If only the viewport-area is provided: +          - If scalefit=1, treat it as both the content-area and +            the viewport-area. (If you ask for an image in a five inch +            area, we'll make the image five inches to fill that area.) +          - If scalefit=0, ignore the viewport-area specification. + +          Note: this is not quite the right semantic and has the additional +          problem that it can result in anamorphic scaling, which scalefit +          should never cause. + +       3. If both the content-area and the viewport-area is specified +          on a graphic element, ignore the viewport-area. +          (If you ask for a three inch image in a five inch area, we'll assume +           it's better to give you a three inch image in an unspecified area +           than a five inch image in a five inch area. + +       Relative units also cause problems. As a general rule, the stylesheets +       are operating too early and too loosely coupled with the rendering engine +       to know things like the current font size or the actual dimensions of +       an image. Therefore: + +       1. We use a fixed size for pixels, $pixels.per.inch + +       2. We use a fixed size for "em"s, $points.per.em + +       Percentages are problematic. In the following discussion, we speak +       of width and contentwidth, but the same issues apply to depth and +       contentdepth + +       1. A width of 50% means "half of the available space for the image." +          That's fine. But note that in HTML, this is a dynamic property and +          the image size will vary if the browser window is resized. + +       2. A contentwidth of 50% means "half of the actual image width". But +          the stylesheets have no way to assess the image's actual size. Treating +          this as a width of 50% is one possibility, but it produces behavior +          (dynamic scaling) that seems entirely out of character with the +          meaning. + +          Instead, the stylesheets define a $nominal.image.width +          and convert percentages to actual values based on that nominal size. + +       Scale can be problematic. Scale applies to the contentwidth, so +       a scale of 50 when a contentwidth is not specified is analagous to a +       width of 50%. (If a contentwidth is specified, the scaling factor can +       be applied to that value and no problem exists.) + +       If scale is specified but contentwidth is not supplied, the +       nominal.image.width is used to calculate a base size +       for scaling. + +       Warning: as a consequence of these decisions, unless the aspect ratio +       of your image happens to be exactly the same as (nominal width / nominal height), +       specifying contentwidth="50%" and contentdepth="50%" is NOT going to +       scale the way you expect (or really, the way it should). + +       Don't do that. In fact, a percentage value is not recommended for content +       size at all. Use scale instead. + +       Finally, align and valign are troublesome. Horizontal alignment is now +       supported by wrapping the image in a <div align="{@align}"> (in block +       contexts!). I can't think of anything (practical) to do about vertical +       alignment. +  --> + +  <xsl:variable name="width-units"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="@width"> +        <xsl:call-template name="length-units"> +          <xsl:with-param name="length" select="@width"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:when test="not(@depth) and $default.image.width != ''"> +        <xsl:call-template name="length-units"> +          <xsl:with-param name="length" select="$default.image.width"/> +        </xsl:call-template> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="width"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="@width"> +        <xsl:choose> +          <xsl:when test="$width-units = '%'"> +            <xsl:value-of select="@width"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:call-template name="length-spec"> +              <xsl:with-param name="length" select="@width"/> +            </xsl:call-template> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:when test="not(@depth) and $default.image.width != ''"> +        <xsl:value-of select="$default.image.width"/> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="scalefit"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when> +      <xsl:when test="@contentwidth or @contentdepth">0</xsl:when> +      <xsl:when test="@scale">0</xsl:when> +      <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when> +      <xsl:when test="$width != '' or @depth">1</xsl:when> +      <xsl:otherwise>0</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="scale"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when> +      <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when> +      <xsl:when test="@scale"> +        <xsl:value-of select="@scale div 100.0"/> +      </xsl:when> +      <xsl:otherwise>1.0</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="local-name(.) = 'graphic'                       or local-name(.) = 'inlinegraphic'"> +        <!-- handle legacy graphic and inlinegraphic by new template -->  +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select="."/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <!-- imagedata, videodata, audiodata --> +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select=".."/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="output_filename"> +    <xsl:choose> +      <xsl:when test="@entityref"> +        <xsl:value-of select="$filename"/> +      </xsl:when> +      <!-- +        Moved test for $keep.relative.image.uris to template below: +            <xsl:template match="@fileref"> +      --> +      <xsl:otherwise> +        <xsl:value-of select="$filename"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="img.src.path.pi"> +    <xsl:call-template name="pi.dbhtml_img.src.path"> +      <xsl:with-param name="node" select=".."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="filename.for.graphicsize"> +    <xsl:choose> +      <xsl:when test="$img.src.path.pi != ''"> +        <xsl:value-of select="concat($img.src.path.pi, $filename)"/> +      </xsl:when> +      <xsl:when test="$img.src.path != '' and                       $graphicsize.use.img.src.path != 0 and                       $tag = 'img' and                       not(starts-with($filename, '/')) and                       not(contains($filename, '://'))"> +        <xsl:value-of select="concat($img.src.path, $filename)"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$filename"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="realintrinsicwidth"> +    <!-- This funny compound test works around a bug in XSLTC --> +    <xsl:choose> +      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0"> +        <xsl:choose> +          <xsl:when test="function-available('simg:getWidth')"> +            <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/> +          </xsl:when> +          <xsl:when test="function-available('ximg:getWidth')"> +            <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/> +          </xsl:when> +          <xsl:otherwise> +           <xsl:value-of select="0"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="0"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="intrinsicwidth"> +    <xsl:choose> +      <xsl:when test="$realintrinsicwidth = 0"> +       <xsl:value-of select="$nominal.image.width"/> +      </xsl:when> +      <xsl:otherwise> +       <xsl:value-of select="$realintrinsicwidth"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="intrinsicdepth"> +    <!-- This funny compound test works around a bug in XSLTC --> +    <xsl:choose> +      <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0"> +        <xsl:choose> +          <xsl:when test="function-available('simg:getDepth')"> +            <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/> +          </xsl:when> +          <xsl:when test="function-available('ximg:getDepth')"> +            <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$nominal.image.depth"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$nominal.image.depth"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="contentwidth"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="@contentwidth"> +        <xsl:variable name="units"> +          <xsl:call-template name="length-units"> +            <xsl:with-param name="length" select="@contentwidth"/> +          </xsl:call-template> +        </xsl:variable> + +        <xsl:choose> +          <xsl:when test="$units = '%'"> +            <xsl:variable name="cmagnitude"> +              <xsl:call-template name="length-magnitude"> +                <xsl:with-param name="length" select="@contentwidth"/> +              </xsl:call-template> +            </xsl:variable> +            <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/> +            <xsl:text>px</xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <xsl:call-template name="length-spec"> +              <xsl:with-param name="length" select="@contentwidth"/> +            </xsl:call-template> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$intrinsicwidth"/> +        <xsl:text>px</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="scaled.contentwidth"> +    <xsl:if test="$contentwidth != ''"> +      <xsl:variable name="cwidth.in.points"> +        <xsl:call-template name="length-in-points"> +          <xsl:with-param name="length" select="$contentwidth"/> +          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/> +          <xsl:with-param name="em.size" select="$points.per.em"/> +        </xsl:call-template> +      </xsl:variable> +      <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="html.width"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="$width-units = '%'"> +        <xsl:value-of select="$width"/> +      </xsl:when> +      <xsl:when test="$width != ''"> +        <xsl:variable name="width.in.points"> +          <xsl:call-template name="length-in-points"> +            <xsl:with-param name="length" select="$width"/> +            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/> +            <xsl:with-param name="em.size" select="$points.per.em"/> +          </xsl:call-template> +        </xsl:variable> +        <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="contentdepth"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="@contentdepth"> +        <xsl:variable name="units"> +          <xsl:call-template name="length-units"> +            <xsl:with-param name="length" select="@contentdepth"/> +          </xsl:call-template> +        </xsl:variable> + +        <xsl:choose> +          <xsl:when test="$units = '%'"> +            <xsl:variable name="cmagnitude"> +              <xsl:call-template name="length-magnitude"> +                <xsl:with-param name="length" select="@contentdepth"/> +              </xsl:call-template> +            </xsl:variable> +            <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/> +            <xsl:text>px</xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <xsl:call-template name="length-spec"> +              <xsl:with-param name="length" select="@contentdepth"/> +            </xsl:call-template> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$intrinsicdepth"/> +        <xsl:text>px</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="scaled.contentdepth"> +    <xsl:if test="$contentdepth != ''"> +      <xsl:variable name="cdepth.in.points"> +        <xsl:call-template name="length-in-points"> +          <xsl:with-param name="length" select="$contentdepth"/> +          <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/> +          <xsl:with-param name="em.size" select="$points.per.em"/> +        </xsl:call-template> +      </xsl:variable> +      <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="depth-units"> +    <xsl:if test="@depth"> +      <xsl:call-template name="length-units"> +        <xsl:with-param name="length" select="@depth"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="depth"> +    <xsl:if test="@depth"> +      <xsl:choose> +        <xsl:when test="$depth-units = '%'"> +          <xsl:value-of select="@depth"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="length-spec"> +            <xsl:with-param name="length" select="@depth"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="html.depth"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0"/> +      <xsl:when test="$depth-units = '%'"> +        <xsl:value-of select="$depth"/> +      </xsl:when> +      <xsl:when test="@depth and @depth != ''"> +        <xsl:variable name="depth.in.points"> +          <xsl:call-template name="length-in-points"> +            <xsl:with-param name="length" select="$depth"/> +            <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/> +            <xsl:with-param name="em.size" select="$points.per.em"/> +          </xsl:call-template> +        </xsl:variable> +        <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="viewport"> +    <xsl:choose> +      <xsl:when test="$ignore.image.scaling != 0">0</xsl:when> +      <xsl:when test="local-name(.) = 'inlinegraphic'                       or ancestor::inlinemediaobject                       or ancestor::inlineequation">0</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$make.graphic.viewport"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +<!-- +  <xsl:message>===================================== +scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/> +@contentwidth <xsl:value-of select="@contentwidth"/> +$contentwidth <xsl:value-of select="$contentwidth"/> +scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/> +@width: <xsl:value-of select="@width"/> +width: <xsl:value-of select="$width"/> +html.width: <xsl:value-of select="$html.width"/> +@contentdepth <xsl:value-of select="@contentdepth"/> +$contentdepth <xsl:value-of select="$contentdepth"/> +scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/> +@depth: <xsl:value-of select="@depth"/> +depth: <xsl:value-of select="$depth"/> +html.depth: <xsl:value-of select="$html.depth"/> +align: <xsl:value-of select="@align"/> +valign: <xsl:value-of select="@valign"/></xsl:message> +--> + +  <xsl:variable name="scaled" select="@width|@depth|@contentwidth|@contentdepth                         |@scale|@scalefit"/> + +  <xsl:variable name="img"> +    <xsl:choose> +      <xsl:when test="@format = 'SVG'"> +        <object data="{$output_filename}" type="image/svg+xml"> +          <xsl:call-template name="process.image.attributes"> +            <!--xsl:with-param name="alt" select="$alt"/ there's no alt here--> +            <xsl:with-param name="html.depth" select="$html.depth"/> +            <xsl:with-param name="html.width" select="$html.width"/> +            <xsl:with-param name="longdesc" select="$longdesc"/> +            <xsl:with-param name="scale" select="$scale"/> +            <xsl:with-param name="scalefit" select="$scalefit"/> +            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/> +            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/> +            <xsl:with-param name="viewport" select="$viewport"/> +          </xsl:call-template> +          <xsl:if test="@align"> +            <xsl:attribute name="align"> +                <xsl:choose> +                  <xsl:when test="@align = 'center'">middle</xsl:when> +                  <xsl:otherwise> +                    <xsl:value-of select="@align"/> +                  </xsl:otherwise> +                </xsl:choose> +            </xsl:attribute> +          </xsl:if> +          <xsl:if test="$use.embed.for.svg != 0"> +            <embed src="{$output_filename}" type="image/svg+xml"> +              <xsl:call-template name="process.image.attributes"> +                <!--xsl:with-param name="alt" select="$alt"/ there's no alt here --> +                <xsl:with-param name="html.depth" select="$html.depth"/> +                <xsl:with-param name="html.width" select="$html.width"/> +                <xsl:with-param name="longdesc" select="$longdesc"/> +                <xsl:with-param name="scale" select="$scale"/> +                <xsl:with-param name="scalefit" select="$scalefit"/> +                <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/> +                <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/> +                <xsl:with-param name="viewport" select="$viewport"/> +              </xsl:call-template> +            </embed> +          </xsl:if> +        </object> +      </xsl:when> +      <xsl:otherwise> +        <xsl:element name="{$tag}" namespace="http://www.w3.org/1999/xhtml"> +         <xsl:if test="$tag = 'img' and ../../self::imageobjectco"> +           <xsl:variable name="mapname"> +             <xsl:call-template name="object.id"> +               <xsl:with-param name="object" select="../../areaspec"/> +             </xsl:call-template> +           </xsl:variable> +           <xsl:choose> +             <xsl:when test="$scaled"> +              <!-- It might be possible to handle some scaling; needs --> +              <!-- more investigation --> +              <xsl:message> +                <xsl:text>Warning: imagemaps not supported </xsl:text> +                <xsl:text>on scaled images</xsl:text> +              </xsl:message> +             </xsl:when> +             <xsl:otherwise> +              <xsl:attribute name="border">0</xsl:attribute> +              <xsl:attribute name="usemap"> +                <xsl:value-of select="concat('#', $mapname)"/> +              </xsl:attribute> +             </xsl:otherwise> +           </xsl:choose> +         </xsl:if> + +          <xsl:attribute name="src"> +           <xsl:choose> +             <xsl:when test="$img.src.path != '' and                            $tag = 'img' and                              not(starts-with($output_filename, '/')) and                            not(contains($output_filename, '://'))"> +               <xsl:value-of select="$img.src.path"/> +             </xsl:when> +           </xsl:choose> +            <xsl:value-of select="$output_filename"/> +          </xsl:attribute> + +          <xsl:if test="@align"> +            <xsl:attribute name="align"> +              <xsl:choose> +                <xsl:when test="@align = 'center'">middle</xsl:when> +                <xsl:otherwise> +                  <xsl:value-of select="@align"/> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:attribute> +          </xsl:if> + +          <xsl:call-template name="process.image.attributes"> +            <xsl:with-param name="alt"> +              <xsl:choose> +                <xsl:when test="$alt != ''"> +                  <xsl:copy-of select="$alt"/> +                </xsl:when> +                <xsl:when test="ancestor::figure"> +                  <xsl:value-of select="normalize-space(ancestor::figure/title)"/> +                </xsl:when> +              </xsl:choose> +            </xsl:with-param> +            <xsl:with-param name="html.depth" select="$html.depth"/> +            <xsl:with-param name="html.width" select="$html.width"/> +            <xsl:with-param name="longdesc" select="$longdesc"/> +            <xsl:with-param name="scale" select="$scale"/> +            <xsl:with-param name="scalefit" select="$scalefit"/> +            <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/> +            <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/> +            <xsl:with-param name="viewport" select="$viewport"/> +          </xsl:call-template> +        </xsl:element> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="bgcolor"> +    <xsl:call-template name="pi.dbhtml_background-color"> +      <xsl:with-param name="node" select=".."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="use.viewport" select="$viewport != 0                         and ($html.width != ''                              or ($html.depth != '' and $depth-units != '%')                              or $bgcolor != ''                              or @valign)"/> + +  <xsl:choose> +    <xsl:when test="$use.viewport"> +      <table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0"> +        <xsl:if test="$html.width != ''"> +          <xsl:attribute name="width"> +            <xsl:value-of select="$html.width"/> +          </xsl:attribute> +        </xsl:if> +        <tr> +          <xsl:if test="$html.depth != '' and $depth-units != '%'"> +            <!-- don't do this for percentages because browsers get confused --> +            <xsl:choose> +              <xsl:when test="$css.decoration != 0"> +                <xsl:attribute name="style"> +                  <xsl:text>height: </xsl:text> +                  <xsl:value-of select="$html.depth"/> +                  <xsl:text>px</xsl:text> +                </xsl:attribute> +              </xsl:when> +              <xsl:otherwise> +                <xsl:attribute name="height"> +                  <xsl:value-of select="$html.depth"/> +                </xsl:attribute> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:if> +          <td> +            <xsl:if test="$bgcolor != ''"> +              <xsl:choose> +                <xsl:when test="$css.decoration != 0"> +                  <xsl:attribute name="style"> +                    <xsl:text>background-color: </xsl:text> +                    <xsl:value-of select="$bgcolor"/> +                  </xsl:attribute> +                </xsl:when> +                <xsl:otherwise> +                  <xsl:attribute name="bgcolor"> +                    <xsl:value-of select="$bgcolor"/> +                  </xsl:attribute> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:if> +            <xsl:if test="@align"> +              <xsl:attribute name="align"> +                <xsl:value-of select="@align"/> +              </xsl:attribute> +            </xsl:if> +            <xsl:if test="@valign"> +              <xsl:attribute name="valign"> +                <xsl:value-of select="@valign"/> +              </xsl:attribute> +            </xsl:if> +            <xsl:copy-of select="$img"/> +          </td> +        </tr> +      </table> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$img"/> +    </xsl:otherwise> +  </xsl:choose> + +  <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)"> +    <xsl:variable name="mapname"> +      <xsl:call-template name="object.id"> +        <xsl:with-param name="object" select="../../areaspec"/> +      </xsl:call-template> +    </xsl:variable> + +    <map name="{$mapname}"> +      <xsl:for-each select="../../areaspec//area"> +        <xsl:variable name="units"> +          <xsl:choose> +            <xsl:when test="@units = 'other' and @otherunits"> +              <xsl:value-of select="@otherunits"/> +            </xsl:when> +            <xsl:when test="@units"> +              <xsl:value-of select="@units"/> +            </xsl:when> +            <!-- areaspec|areaset/area --> +            <xsl:when test="../@units = 'other' and ../@otherunits"> +              <xsl:value-of select="../@otherunits"/> +            </xsl:when> +            <xsl:when test="../@units"> +              <xsl:value-of select="../@units"/> +            </xsl:when> +            <!-- areaspec/areaset/area --> +            <xsl:when test="../../@units = 'other' and ../../@otherunits"> +              <xsl:value-of select="../@otherunits"/> +            </xsl:when> +            <xsl:when test="../../@units"> +              <xsl:value-of select="../../@units"/> +            </xsl:when> +            <xsl:otherwise>calspair</xsl:otherwise> +          </xsl:choose> +        </xsl:variable> +  +        <xsl:choose> +          <xsl:when test="$units = 'calspair' or                           $units = 'imagemap'"> +            <xsl:variable name="coords" select="normalize-space(@coords)"/> + +            <area shape="rect"> +              <xsl:variable name="linkends"> +                <xsl:choose> +                  <xsl:when test="@linkends"> +                    <xsl:value-of select="normalize-space(@linkends)"/> +                  </xsl:when> +                  <xsl:otherwise> +                    <xsl:value-of select="normalize-space(../@linkends)"/> +                  </xsl:otherwise> +                </xsl:choose> +              </xsl:variable> +  +              <xsl:variable name="href"> +                <xsl:choose> +                  <xsl:when test="@xlink:href"> +                    <xsl:value-of select="@xlink:href"/> +                  </xsl:when> +                  <xsl:otherwise> +                    <xsl:value-of select="../@xlink:href"/> +                  </xsl:otherwise> +                </xsl:choose> +              </xsl:variable> +  +              <xsl:choose> +                <xsl:when test="$linkends != ''"> +                  <xsl:variable name="linkend"> +                    <xsl:choose> +                      <xsl:when test="contains($linkends, ' ')"> +                        <xsl:value-of select="substring-before($linkends, ' ')"/> +                      </xsl:when> +                      <xsl:otherwise> +                        <xsl:value-of select="$linkends"/> +                      </xsl:otherwise> +                    </xsl:choose> +                  </xsl:variable> +                   +                  <xsl:variable name="target" select="key('id', $linkend)[1]"/> +                  +                  <xsl:if test="$target"> +                    <xsl:attribute name="href"> +                      <xsl:call-template name="href.target"> +                        <xsl:with-param name="object" select="$target"/> +                      </xsl:call-template> +                    </xsl:attribute> +                  </xsl:if> +                </xsl:when> +                <xsl:when test="$href != ''"> +                  <xsl:attribute name="href"> +                    <xsl:value-of select="$href"/> +                  </xsl:attribute> +                </xsl:when> +              </xsl:choose> +  +              <xsl:if test="alt"> +                <xsl:attribute name="alt"> +                  <xsl:value-of select="alt[1]"/> +                </xsl:attribute> +              </xsl:if> +  +              <xsl:attribute name="coords"> +                <xsl:choose> +                  <xsl:when test="$units = 'calspair'"> + +                    <xsl:variable name="p1" select="substring-before($coords, ' ')"/> +                    <xsl:variable name="p2" select="substring-after($coords, ' ')"/> +          +                    <xsl:variable name="x1" select="substring-before($p1,',')"/> +                    <xsl:variable name="y1" select="substring-after($p1,',')"/> +                    <xsl:variable name="x2" select="substring-before($p2,',')"/> +                    <xsl:variable name="y2" select="substring-after($p2,',')"/> +          +                    <xsl:variable name="x1p" select="$x1 div 100.0"/> +                    <xsl:variable name="y1p" select="$y1 div 100.0"/> +                    <xsl:variable name="x2p" select="$x2 div 100.0"/> +                    <xsl:variable name="y2p" select="$y2 div 100.0"/> +          +         <!-- +                    <xsl:message> +                      <xsl:text>units: </xsl:text> +                      <xsl:value-of select="$units"/> +                      <xsl:text> </xsl:text> +                      <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text> +                      <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text> +                      <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text> +                      <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text> +                    </xsl:message> +          +                    <xsl:message> +                      <xsl:text>      </xsl:text> +                      <xsl:value-of select="$intrinsicwidth"/> +                      <xsl:text>, </xsl:text> +                      <xsl:value-of select="$intrinsicdepth"/> +                    </xsl:message> +          +                    <xsl:message> +                      <xsl:text>      </xsl:text> +                      <xsl:value-of select="$units"/> +                      <xsl:text> </xsl:text> +                      <xsl:value-of  +                            select="round($x1p * $intrinsicwidth div 100.0)"/> +                      <xsl:text>,</xsl:text> +                      <xsl:value-of select="round($intrinsicdepth +                                       - ($y2p * $intrinsicdepth div 100.0))"/> +                      <xsl:text>,</xsl:text> +                      <xsl:value-of select="round($x2p *  +                                            $intrinsicwidth div 100.0)"/> +                      <xsl:text>,</xsl:text> +                      <xsl:value-of select="round($intrinsicdepth +                                       - ($y1p * $intrinsicdepth div 100.0))"/> +                    </xsl:message> +         --> +                    <xsl:value-of select="round($x1p * $intrinsicwidth div 100.0)"/> +                    <xsl:text>,</xsl:text> +                    <xsl:value-of select="round($intrinsicdepth                                         - ($y2p * $intrinsicdepth div 100.0))"/> +                    <xsl:text>,</xsl:text> +                    <xsl:value-of select="round($x2p * $intrinsicwidth div 100.0)"/> +                    <xsl:text>,</xsl:text> +                    <xsl:value-of select="round($intrinsicdepth                                       - ($y1p * $intrinsicdepth div 100.0))"/> +                  </xsl:when> +                  <xsl:otherwise> +                    <xsl:copy-of select="$coords"/> +                  </xsl:otherwise> +                </xsl:choose> +              </xsl:attribute> +            </area> +          </xsl:when> +          <xsl:otherwise> +            <xsl:message> +              <xsl:text>Warning: only calspair or </xsl:text> +              <xsl:text>otherunits='imagemap' supported </xsl:text> +              <xsl:text>in imageobjectco</xsl:text> +            </xsl:message> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:for-each> +    </map> +  </xsl:if> +</xsl:template> + +<xsl:template name="process.image.attributes"> +  <xsl:param name="alt"/> +  <xsl:param name="html.width"/> +  <xsl:param name="html.depth"/> +  <xsl:param name="longdesc"/> +  <xsl:param name="scale"/> +  <xsl:param name="scalefit"/> +  <xsl:param name="scaled.contentdepth"/> +  <xsl:param name="scaled.contentwidth"/> +  <xsl:param name="viewport"/> + +  <xsl:choose> +    <xsl:when test="@contentwidth or @contentdepth"> +      <!-- ignore @width/@depth, @scale, and @scalefit if specified --> +      <xsl:if test="@contentwidth and $scaled.contentwidth != ''"> +        <xsl:attribute name="width"> +          <xsl:value-of select="$scaled.contentwidth"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:if test="@contentdepth and $scaled.contentdepth != ''"> +        <xsl:attribute name="height"> +          <xsl:value-of select="$scaled.contentdepth"/> +        </xsl:attribute> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="number($scale) != 1.0"> +      <!-- scaling is always uniform, so we only have to specify one dimension --> +      <!-- ignore @scalefit if specified --> +      <xsl:attribute name="width"> +        <xsl:value-of select="$scaled.contentwidth"/> +      </xsl:attribute> +    </xsl:when> + +    <xsl:when test="$scalefit != 0"> +      <xsl:choose> +        <xsl:when test="contains($html.width, '%')"> +          <xsl:choose> +            <xsl:when test="$viewport != 0"> +              <!-- The *viewport* will be scaled, so use 100% here! --> +              <xsl:attribute name="width"> +                <xsl:value-of select="'100%'"/> +              </xsl:attribute> +            </xsl:when> +            <xsl:otherwise> +              <xsl:attribute name="width"> +                <xsl:value-of select="$html.width"/> +              </xsl:attribute> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> + +        <xsl:when test="contains($html.depth, '%')"> +          <!-- HTML doesn't deal with this case very well...do nothing --> +        </xsl:when> + +        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''                         and $scaled.contentdepth != '' and $html.depth != ''"> +          <!-- scalefit should not be anamorphic; figure out which direction --> +          <!-- has the limiting scale factor and scale in that direction --> +          <xsl:choose> +            <xsl:when test="$html.width div $scaled.contentwidth >                             $html.depth div $scaled.contentdepth"> +              <xsl:attribute name="height"> +                <xsl:value-of select="$html.depth"/> +              </xsl:attribute> +            </xsl:when> +            <xsl:otherwise> +              <xsl:attribute name="width"> +                <xsl:value-of select="$html.width"/> +              </xsl:attribute> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> + +        <xsl:when test="$scaled.contentwidth != '' and $html.width != ''"> +          <xsl:attribute name="width"> +            <xsl:value-of select="$html.width"/> +          </xsl:attribute> +        </xsl:when> + +        <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''"> +          <xsl:attribute name="height"> +            <xsl:value-of select="$html.depth"/> +          </xsl:attribute> +        </xsl:when> +      </xsl:choose> +    </xsl:when> +  </xsl:choose> + +  <xsl:if test="$alt != ''"> +    <xsl:attribute name="alt"> +      <xsl:value-of select="normalize-space($alt)"/> +    </xsl:attribute> +  </xsl:if> + +  <xsl:if test="$longdesc != ''"> +    <xsl:attribute name="longdesc"> +      <xsl:value-of select="$longdesc"/> +    </xsl:attribute> +  </xsl:if> + +  <xsl:if test="@align and $viewport = 0"> +    <xsl:attribute name="align"> +      <xsl:choose> +        <xsl:when test="@align = 'center'">middle</xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="@align"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:attribute> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="graphic"> +  <xsl:choose> +    <xsl:when test="parent::inlineequation"> +      <xsl:call-template name="anchor"/> +      <xsl:call-template name="process.image"/> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:if test="@align"> +          <xsl:attribute name="align"> +            <xsl:value-of select="@align"/> +          </xsl:attribute> +        </xsl:if> +        <xsl:call-template name="anchor"/> +        <xsl:call-template name="process.image"/> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="inlinegraphic"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="@entityref"> +        <xsl:value-of select="unparsed-entity-uri(@entityref)"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates select="@fileref"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="anchor"/> + +  <xsl:choose> +    <xsl:when test="@format='linespecific'"> +      <xsl:choose> +        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'"> +          <xsl:choose> +            <xsl:when test="element-available('stext:insertfile')"> +              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/> +            </xsl:when> +            <xsl:when test="element-available('xtext:insertfile')"> +              <xtext:insertfile href="{$filename}"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:message terminate="yes"> +                <xsl:text>No insertfile extension available.</xsl:text> +              </xsl:message> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="process.image"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="mediaobject|mediaobjectco"> + +  <xsl:variable name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject                      |textobject"/> + +  <xsl:variable name="object.index"> +    <xsl:call-template name="select.mediaobject.index"> +      <xsl:with-param name="olist" select="$olist"/> +      <xsl:with-param name="count" select="1"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="object" select="$olist[position() = $object.index]"/> + +  <xsl:variable name="align"> +    <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$align != '' "> +      <xsl:attribute name="align"> +        <xsl:value-of select="$align"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:call-template name="anchor"/> + +    <xsl:apply-templates select="$object"/> +    <xsl:apply-templates select="caption"/> +  </div> +</xsl:template> + +<xsl:template match="inlinemediaobject"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="select.mediaobject"/> +  </span> +</xsl:template> + +<xsl:template match="programlisting/inlinemediaobject                      |screen/inlinemediaobject" priority="2"> +  <!-- the additional span causes problems in some cases --> +  <xsl:call-template name="select.mediaobject"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="imageobjectco"> +  <xsl:call-template name="anchor"/> +  <xsl:apply-templates select="imageobject"/> +  <xsl:apply-templates select="calloutlist"/> +</xsl:template> + +<xsl:template match="imageobject"> +  <xsl:apply-templates select="imagedata"/> +</xsl:template> + +<xsl:template match="imagedata"> +  <xsl:variable name="filename"> +    <xsl:call-template name="mediaobject.filename"> +      <xsl:with-param name="object" select=".."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <!-- Handle MathML and SVG markup in imagedata --> +    <xsl:when xmlns:mml="http://www.w3.org/1998/Math/MathML" test="mml:*"> +      <xsl:apply-templates/> +    </xsl:when> +     +    <xsl:when xmlns:svg="http://www.w3.org/2000/svg" test="svg:*"> +      <xsl:apply-templates/> +    </xsl:when> + +    <xsl:when test="@format='linespecific'"> +      <xsl:choose> +        <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'"> +          <xsl:choose> +            <xsl:when test="element-available('stext:insertfile')"> +              <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/> +            </xsl:when> +            <xsl:when test="element-available('xtext:insertfile')"> +              <xtext:insertfile href="{$filename}"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:message terminate="yes"> +                <xsl:text>No insertfile extension available.</xsl:text> +              </xsl:message> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="longdesc.uri"> +        <xsl:call-template name="longdesc.uri"> +          <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="phrases" select="ancestor::mediaobject/textobject[phrase]                             |ancestor::inlinemediaobject/textobject[phrase]                             |ancestor::mediaobjectco/textobject[phrase]"/> + +      <xsl:call-template name="process.image"> +        <xsl:with-param name="alt"> +          <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/> +        </xsl:with-param> +        <xsl:with-param name="longdesc"> +          <xsl:call-template name="write.longdesc"> +            <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/> +          </xsl:call-template> +        </xsl:with-param> +      </xsl:call-template> + +      <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                     and ancestor::imageobject/parent::*/textobject[not(phrase)]"> +        <xsl:call-template name="longdesc.link"> +          <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/> +        </xsl:call-template> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="longdesc.uri"> +  <xsl:param name="mediaobject" select="."/> +  <xsl:if test="$html.longdesc"> +    <xsl:if test="$mediaobject/textobject[not(phrase)]"> +      <xsl:variable name="dbhtml.dir"> +        <xsl:call-template name="dbhtml-dir"/> +      </xsl:variable> +      <xsl:variable name="filename"> +        <xsl:call-template name="make-relative-filename"> +          <xsl:with-param name="base.dir"> +            <xsl:choose> +              <xsl:when test="$dbhtml.dir != ''"> +                <xsl:value-of select="$dbhtml.dir"/> +              </xsl:when> +              <xsl:otherwise> +                <xsl:value-of select="$base.dir"/> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +          <xsl:with-param name="base.name"> +            <xsl:choose> +              <xsl:when test="                 $mediaobject/@*[local-name() = 'id']                 and not($use.id.as.filename = 0)"> +                <!-- * if this mediaobject has an ID, then we use the --> +                <!-- * value of that ID as basename for the "longdesc" --> +                <!-- * file (that is, without prepending an "ld-" too it) --> +                <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/> +                <xsl:value-of select="$html.ext"/> +              </xsl:when> +              <xsl:otherwise> +                <!-- * otherwise, if this mediaobject does not have an --> +                <!-- * ID, then we generate an ID... --> +                <xsl:variable name="image-id"> +                  <xsl:call-template name="object.id"> +                    <xsl:with-param name="object" select="$mediaobject"/> +                  </xsl:call-template> +                </xsl:variable> +                <!-- * ...and then we take that generated ID, prepend an --> +                <!-- * "ld-" to it, and use that as the basename for the file --> +                <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:value-of select="$filename"/> +    </xsl:if> +  </xsl:if> +</xsl:template> + +<xsl:template name="write.longdesc"> +  <xsl:param name="mediaobject" select="."/> +  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]"> +    <xsl:variable name="filename"> +      <xsl:call-template name="longdesc.uri"> +        <xsl:with-param name="mediaobject" select="$mediaobject"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:value-of select="$filename"/> + +    <xsl:call-template name="write.chunk"> +      <xsl:with-param name="filename" select="$filename"/> +      <xsl:with-param name="quiet" select="$chunk.quietly"/> +      <xsl:with-param name="content"> +      <xsl:call-template name="user.preroot"/> +        <html> +          <head> +            <xsl:call-template name="system.head.content"/> +            <xsl:call-template name="head.content"> +              <xsl:with-param name="title" select="'Long Description'"/> +            </xsl:call-template> +            <xsl:call-template name="user.head.content"/> +          </head> +          <body> +            <xsl:call-template name="body.attributes"/> +            <xsl:for-each select="$mediaobject/textobject[not(phrase)]"> +              <xsl:apply-templates select="./*"/> +            </xsl:for-each> +          </body> +        </html> +        <xsl:value-of select="$chunk.append"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="longdesc.link"> +  <xsl:param name="longdesc.uri" select="''"/> + +  <xsl:variable name="this.uri"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir" select="$base.dir"/> +      <xsl:with-param name="base.name"> +        <xsl:call-template name="href.target.uri"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="href.to"> +    <xsl:call-template name="trim.common.uri.paths"> +      <xsl:with-param name="uriA" select="$longdesc.uri"/> +      <xsl:with-param name="uriB" select="$this.uri"/> +      <xsl:with-param name="return" select="'A'"/> +    </xsl:call-template> +  </xsl:variable> + +  <div class="longdesc-link" align="right"> +    <br clear="all"/> +    <span class="longdesc-link"> +      <xsl:text>[</xsl:text> +      <a href="{$href.to}" target="longdesc">D</a> +      <xsl:text>]</xsl:text> +    </span> +  </div> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="videoobject"> +  <xsl:apply-templates select="videodata"/> +</xsl:template> + +<xsl:template match="videodata"> +  <xsl:call-template name="process.image"> +    <xsl:with-param name="tag" select="'embed'"/> +    <xsl:with-param name="alt"> +      <xsl:apply-templates select="(../../textobject/phrase)[1]"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="audioobject"> +  <xsl:apply-templates select="audiodata"/> +</xsl:template> + +<xsl:template match="audiodata"> +  <xsl:call-template name="process.image"> +    <xsl:with-param name="tag" select="'embed'"/> +    <xsl:with-param name="alt"> +      <xsl:apply-templates select="(../../textobject/phrase)[1]"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="textobject"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="textdata"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="@entityref"> +        <xsl:value-of select="unparsed-entity-uri(@entityref)"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates select="@fileref"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="encoding"> +    <xsl:choose> +      <xsl:when test="@encoding"> +        <xsl:value-of select="@encoding"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$textdata.default.encoding"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$use.extensions != '0'                     and $textinsert.extension != '0'"> +      <xsl:choose> +        <xsl:when test="element-available('stext:insertfile')"> +          <stext:insertfile href="{$filename}" encoding="{$encoding}"/> +        </xsl:when> +        <xsl:when test="element-available('xtext:insertfile')"> +          <xtext:insertfile href="{$filename}"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message terminate="yes"> +            <xsl:text>No insertfile extension available.</xsl:text> +          </xsl:message> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="caption"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="@align = 'right' or @align = 'left' or @align='center'"> +      <xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute> +    </xsl:if> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<!-- ==================================================================== --> +<!-- "Support" for SVG --> + +<xsl:template xmlns:svg="http://www.w3.org/2000/svg" match="svg:*"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates/> +  </xsl:copy> +</xsl:template> + + +<!-- The following works sometimes, but needs to take into account +             1. When there is no /*/@xml:base +             2. When the chunks are going somewhere else +<xsl:variable name="relpath"> +  <xsl:call-template name="relative-uri"> +    <xsl:with-param name="filename" select="@fileref"/> +  </xsl:call-template> +</xsl:variable> + +<xsl:choose> +  <xsl:when test="/*/@xml:base +                  and starts-with($relpath,/*/@xml:base)"> +    <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/> +  </xsl:when> +  <xsl:otherwise> +    <xsl:value-of select="@fileref"/> +  </xsl:otherwise> +</xsl:choose> +<xsl:value-of select="@fileref"/> +      </xsl:when> +--> +<!-- Resolve xml:base attributes --> +<xsl:template match="@fileref"> +  <!-- need a check for absolute urls --> +  <xsl:choose> +    <xsl:when test="contains(., ':')"> +      <!-- it has a uri scheme so it is an absolute uri --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:when test="$keep.relative.image.uris != 0"> +      <!-- leave it alone --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:otherwise> +      <!-- its a relative uri that needs xml:base processing --> +      <xsl:call-template name="relative-uri"> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/highlight.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/highlight.xsl.svn-base new file mode 100644 index 0000000..27634a0 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/highlight.xsl.svn-base @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslthl="http://xslthl.sf.net" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xslthl" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     This file is part of the XSL DocBook Stylesheet distribution. +     See ../README or http://docbook.sf.net/release/xsl/current/ for +     and other information. + +     ******************************************************************** --> + +<xsl:template match="xslthl:keyword"> +  <b class="hl-keyword"><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="xslthl:string"> +  <b class="hl-string"><i style="color:red"><xsl:apply-templates/></i></b> +</xsl:template> + +<xsl:template match="xslthl:comment"> +  <i class="hl-comment" style="color: silver"><xsl:apply-templates/></i> +</xsl:template> + +<xsl:template match="xslthl:tag"> +  <b class="hl-tag" style="color: blue"><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="xslthl:attribute"> +  <span class="hl-attribute" style="color: blue"><xsl:apply-templates/></span> +</xsl:template> + +<xsl:template match="xslthl:value"> +  <span class="hl-value" style="color: blue"><xsl:apply-templates/></span> +</xsl:template> + +<xsl:template match="xslthl:html"> +  <b><i style="color: red"><xsl:apply-templates/></i></b> +</xsl:template> + +<xsl:template match="xslthl:xslt"> +  <b style="color: blue"><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="xslthl:section"> +  <b><xsl:apply-templates/></b> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html-rtf.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html-rtf.xsl.svn-base new file mode 100644 index 0000000..83a1ae4 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html-rtf.xsl.svn-base @@ -0,0 +1,321 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:set="http://exslt.org/sets" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="exsl set" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- This module contains templates that match against HTML nodes. It is used +     to post-process result tree fragments for some sorts of cleanup. +     These templates can only ever be fired by a processor that supports +     exslt:node-set(). --> + +<!-- ==================================================================== --> + +<!-- insert.html.p mode templates insert a particular RTF at the beginning +     of the first paragraph in the primary RTF. --> + +<xsl:template match="/" mode="insert.html.p"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:apply-templates mode="insert.html.p"> +    <xsl:with-param name="mark" select="$mark"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="*" mode="insert.html.p"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="insert.html.p"> +      <xsl:with-param name="mark" select="$mark"/> +    </xsl:apply-templates> +  </xsl:copy> +</xsl:template> + +<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="insert.html.p"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:if test="not(preceding::p|preceding::html:p)"> +      <xsl:copy-of select="$mark"/> +    </xsl:if> +    <xsl:apply-templates mode="insert.html.p"> +      <xsl:with-param name="mark" select="$mark"/> +    </xsl:apply-templates> +  </xsl:copy> +</xsl:template> + +<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.p"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:copy/> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- insert.html.text mode templates insert a particular RTF at the beginning +     of the first text-node in the primary RTF. --> + +<xsl:template match="/" mode="insert.html.text"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:apply-templates mode="insert.html.text"> +    <xsl:with-param name="mark" select="$mark"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="*" mode="insert.html.text"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="insert.html.text"> +      <xsl:with-param name="mark" select="$mark"/> +    </xsl:apply-templates> +  </xsl:copy> +</xsl:template> + +<xsl:template match="text()|processing-instruction()|comment()" mode="insert.html.text"> +  <xsl:param name="mark" select="'?'"/> + +  <xsl:if test="not(preceding::text())"> +    <xsl:copy-of select="$mark"/> +  </xsl:if> + +  <xsl:copy/> +</xsl:template> + +<xsl:template match="processing-instruction()|comment()" mode="insert.html.text"> +  <xsl:param name="mark" select="'?'"/> +  <xsl:copy/> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- unwrap.p mode templates remove blocks from HTML p elements (and +     other places where blocks aren't allowed) --> + +<xsl:template name="unwrap.p"> +  <xsl:param name="p"/> +  <xsl:choose> +    <xsl:when test="function-available('exsl:node-set')                     and function-available('set:leading')                     and function-available('set:trailing')"> +      <xsl:apply-templates select="exsl:node-set($p)" mode="unwrap.p"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$p"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p" mode="unwrap.p"> +  <!-- xmlns:html is necessary for the xhtml stylesheet case --> +  <xsl:variable name="blocks" select="address|blockquote|div|hr|h1|h2|h3|h4|h5|h6                         |layer|p|pre|table|dl|menu|ol|ul|form                         |html:address|html:blockquote|html:div|html:hr                         |html:h1|html:h2|html:h3|html:h4|html:h5|html:h6                         |html:layer|html:p|html:pre|html:table|html:dl                         |html:menu|html:ol|html:ul|html:form"/> +  <xsl:choose> +    <xsl:when test="$blocks"> +      <xsl:call-template name="unwrap.p.nodes"> +        <xsl:with-param name="wrap" select="."/> +        <xsl:with-param name="first" select="1"/> +        <xsl:with-param name="nodes" select="node()"/> +        <xsl:with-param name="blocks" select="$blocks"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy> +        <xsl:copy-of select="@*"/> +        <xsl:apply-templates mode="unwrap.p"/> +      </xsl:copy> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="unwrap.p"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="unwrap.p"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="text()|processing-instruction()|comment()" mode="unwrap.p"> +  <xsl:copy/> +</xsl:template> + +<xsl:template name="unwrap.p.nodes"> +  <xsl:param name="wrap" select="."/> +  <xsl:param name="first" select="0"/> +  <xsl:param name="nodes"/> +  <xsl:param name="blocks"/> +  <xsl:variable name="block" select="$blocks[1]"/> + +  <!-- This template should never get called if these functions aren't available --> +  <!-- but this test is still necessary so that processors don't choke on the --> +  <!-- function calls if they don't support the set: functions --> +  <xsl:if test="function-available('set:leading')                 and function-available('set:trailing')"> +    <xsl:choose> +      <xsl:when test="$blocks"> +        <xsl:variable name="leading" select="set:leading($nodes,$block)"/> +        <xsl:variable name="trailing" select="set:trailing($nodes,$block)"/> + +        <xsl:if test="(($wrap/@id or $wrap/@xml:id)                          and $first = 1) or $leading"> +          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml"> +            <xsl:for-each select="$wrap/@*"> +              <xsl:if test="$first != 0 or local-name(.) != 'id'"> +                <xsl:copy/> +              </xsl:if> +            </xsl:for-each> +            <xsl:apply-templates select="$leading" mode="unwrap.p"/> +          </xsl:element> +        </xsl:if> + +        <xsl:apply-templates select="$block" mode="unwrap.p"/> + +        <xsl:if test="$trailing"> +          <xsl:call-template name="unwrap.p.nodes"> +            <xsl:with-param name="wrap" select="$wrap"/> +            <xsl:with-param name="nodes" select="$trailing"/> +            <xsl:with-param name="blocks" select="$blocks[position() > 1]"/> +          </xsl:call-template> +        </xsl:if> +      </xsl:when> + +      <xsl:otherwise> +        <xsl:if test="(($wrap/@id or $wrap/@xml:id) and $first = 1) or $nodes"> +          <xsl:element name="{local-name($wrap)}" namespace="http://www.w3.org/1999/xhtml"> +            <xsl:for-each select="$wrap/@*"> +              <xsl:if test="$first != 0 or local-name(.) != 'id'"> +                <xsl:copy/> +              </xsl:if> +            </xsl:for-each> +            <xsl:apply-templates select="$nodes" mode="unwrap.p"/> +          </xsl:element> +        </xsl:if> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> +<!-- make.verbatim.mode replaces spaces and newlines --> + +<xsl:template match="/" mode="make.verbatim.mode"> +  <xsl:apply-templates mode="make.verbatim.mode"/> +</xsl:template> + +<xsl:template match="*" mode="make.verbatim.mode"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="make.verbatim.mode"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="processing-instruction()|comment()" mode="make.verbatim.mode"> +  <xsl:copy/> +</xsl:template> + +<xsl:template match="text()" mode="make.verbatim.mode"> +  <xsl:variable name="text" select="translate(., ' ', ' ')"/> + +  <xsl:choose> +    <xsl:when test="not(contains($text, '
'))"> +      <xsl:value-of select="$text"/> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:variable name="len" select="string-length($text)"/> + +      <xsl:choose> +        <xsl:when test="$len = 1"> +          <br/><xsl:text> +</xsl:text> +        </xsl:when> + +        <xsl:otherwise> +          <xsl:variable name="half" select="$len div 2"/> +          <xsl:call-template name="make-verbatim-recursive"> +            <xsl:with-param name="text" select="substring($text, 1, $half)"/> +          </xsl:call-template> +          <xsl:call-template name="make-verbatim-recursive"> +            <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/> +          </xsl:call-template> +    	</xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="make-verbatim-recursive"> +  <xsl:param name="text" select="''"/> + +  <xsl:choose> +    <xsl:when test="not(contains($text, '
'))"> +      <xsl:value-of select="$text"/> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:variable name="len" select="string-length($text)"/> + +      <xsl:choose> +        <xsl:when test="$len = 1"> +          <br/><xsl:text> +</xsl:text> +        </xsl:when> + +        <xsl:otherwise> +    	  <xsl:variable name="half" select="$len div 2"/> +          <xsl:call-template name="make-verbatim-recursive"> +    	    <xsl:with-param name="text" select="substring($text, 1, $half)"/> +    	  </xsl:call-template> +    	  <xsl:call-template name="make-verbatim-recursive"> +    	    <xsl:with-param name="text" select="substring($text, ($half + 1), $len)"/> +    	  </xsl:call-template> +    	</xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- remove.empty.div mode templates remove empty blocks --> + +<xsl:template name="remove.empty.div"> +  <xsl:param name="div"/> +  <xsl:choose> +    <xsl:when test="function-available('exsl:node-set')"> +      <xsl:apply-templates select="exsl:node-set($div)" mode="remove.empty.div"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$div"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template xmlns:html="http://www.w3.org/1999/xhtml" match="html:p|p|html:div|div" mode="remove.empty.div"> +  <xsl:if test="node()"> +    <xsl:copy> +      <xsl:copy-of select="@*"/> +      <xsl:apply-templates mode="remove.empty.div"/> +    </xsl:copy> +  </xsl:if> +</xsl:template> + +<xsl:template match="*" mode="remove.empty.div"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="remove.empty.div"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="text()|processing-instruction()|comment()" mode="remove.empty.div"> +  <xsl:copy/> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html.xsl.svn-base new file mode 100644 index 0000000..564e05e --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/html.xsl.svn-base @@ -0,0 +1,236 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- 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:template name="generate.html.title"> +  <xsl:apply-templates select="." mode="html.title.attribute"/> +</xsl:template> + +<!-- Generate a title attribute for the context node --> +<xsl:template match="*" mode="html.title.attribute"> +  <xsl:variable name="is.title"> +    <xsl:call-template name="gentext.template.exists"> +      <xsl:with-param name="context" select="'title'"/> +      <xsl:with-param name="name" select="local-name(.)"/> +      <xsl:with-param name="lang"> +        <xsl:call-template name="l10n.language"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="is.title-numbered"> +    <xsl:call-template name="gentext.template.exists"> +      <xsl:with-param name="context" select="'title-numbered'"/> +      <xsl:with-param name="name" select="local-name(.)"/> +      <xsl:with-param name="lang"> +        <xsl:call-template name="l10n.language"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="is.title-unnumbered"> +    <xsl:call-template name="gentext.template.exists"> +      <xsl:with-param name="context" select="'title-unnumbered'"/> +      <xsl:with-param name="name" select="local-name(.)"/> +      <xsl:with-param name="lang"> +        <xsl:call-template name="l10n.language"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="gentext.title"> +    <xsl:if test="$is.title != 0 or                   $is.title-numbered != 0 or                   $is.title-unnumbered != 0"> +      <xsl:apply-templates select="." mode="object.title.markup.textonly"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="string-length($gentext.title) != 0"> +      <xsl:attribute name="title"> +        <xsl:value-of select="$gentext.title"/> +      </xsl:attribute> +    </xsl:when> +    <!-- Fall back to alt if available --> +    <xsl:when test="alt"> +      <xsl:attribute name="title"> +        <xsl:value-of select="normalize-space(alt)"/> +      </xsl:attribute> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="dir"> +  <xsl:param name="inherit" select="0"/> + +  <xsl:variable name="dir"> +    <xsl:choose> +      <xsl:when test="@dir"> +        <xsl:value-of select="@dir"/> +      </xsl:when> +      <xsl:when test="$inherit != 0"> +        <xsl:value-of select="ancestor::*/@dir[1]"/> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <xsl:if test="$dir != ''"> +    <xsl:attribute name="dir"> +      <xsl:value-of select="$dir"/> +    </xsl:attribute> +  </xsl:if> +</xsl:template> + +<xsl:template name="anchor"> +  <xsl:param name="node" select="."/> +  <xsl:param name="conditional" select="1"/> +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="$node"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:if test="$conditional = 0 or $node/@id or $node/@xml:id"> +    <a id="{$id}"/> +  </xsl:if> +</xsl:template> + +<xsl:template name="href.target.uri"> +  <xsl:param name="context" select="."/> +  <xsl:param name="object" select="."/> +  <xsl:text>#</xsl:text> +  <xsl:call-template name="object.id"> +    <xsl:with-param name="object" select="$object"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="href.target"> +  <xsl:param name="context" select="."/> +  <xsl:param name="object" select="."/> +  <xsl:text>#</xsl:text> +  <xsl:call-template name="object.id"> +    <xsl:with-param name="object" select="$object"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="href.target.with.base.dir"> +  <xsl:param name="context" select="."/> +  <xsl:param name="object" select="."/> +  <xsl:if test="$manifest.in.base.dir = 0"> +    <xsl:value-of select="$base.dir"/> +  </xsl:if> +  <xsl:call-template name="href.target"> +    <xsl:with-param name="context" select="$context"/> +    <xsl:with-param name="object" select="$object"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="dingbat"> +  <xsl:param name="dingbat">bullet</xsl:param> +  <xsl:call-template name="dingbat.characters"> +    <xsl:with-param name="dingbat" select="$dingbat"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template name="dingbat.characters"> +  <!-- now that I'm using the real serializer, all that dingbat malarky --> +  <!-- isn't necessary anymore... --> +  <xsl:param name="dingbat">bullet</xsl:param> +  <xsl:choose> +    <xsl:when test="$dingbat='bullet'">•</xsl:when> +    <xsl:when test="$dingbat='copyright'">©</xsl:when> +    <xsl:when test="$dingbat='trademark'">™</xsl:when> +    <xsl:when test="$dingbat='trade'">™</xsl:when> +    <xsl:when test="$dingbat='registered'">®</xsl:when> +    <xsl:when test="$dingbat='service'">(SM)</xsl:when> +    <xsl:when test="$dingbat='nbsp'"> </xsl:when> +    <xsl:when test="$dingbat='ldquo'">“</xsl:when> +    <xsl:when test="$dingbat='rdquo'">”</xsl:when> +    <xsl:when test="$dingbat='lsquo'">‘</xsl:when> +    <xsl:when test="$dingbat='rsquo'">’</xsl:when> +    <xsl:when test="$dingbat='em-dash'">—</xsl:when> +    <xsl:when test="$dingbat='mdash'">—</xsl:when> +    <xsl:when test="$dingbat='en-dash'">–</xsl:when> +    <xsl:when test="$dingbat='ndash'">–</xsl:when> +    <xsl:otherwise> +      <xsl:text>•</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="id.warning"> +  <xsl:if test="$id.warnings != 0 and not(@id) and not(@xml:id) and parent::*"> +    <xsl:variable name="title"> +      <xsl:choose> +        <xsl:when test="title"> +          <xsl:value-of select="title[1]"/> +        </xsl:when> +        <xsl:when test="substring(local-name(*[1]),                                   string-length(local-name(*[1])-3) = 'info')                         and *[1]/title"> +          <xsl:value-of select="*[1]/title[1]"/> +        </xsl:when> +        <xsl:when test="refmeta/refentrytitle"> +          <xsl:value-of select="refmeta/refentrytitle"/> +        </xsl:when> +        <xsl:when test="refnamediv/refname"> +          <xsl:value-of select="refnamediv/refname[1]"/> +        </xsl:when> +      </xsl:choose> +    </xsl:variable> + +    <xsl:message> +      <xsl:text>ID recommended on </xsl:text> +      <xsl:value-of select="local-name(.)"/> +      <xsl:if test="$title != ''"> +        <xsl:text>: </xsl:text> +        <xsl:choose> +          <xsl:when test="string-length($title) > 40"> +            <xsl:value-of select="substring($title,1,40)"/> +            <xsl:text>...</xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$title"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:if> +    </xsl:message> +  </xsl:if> +</xsl:template> + +<xsl:template match="*" mode="class.attribute"> +  <xsl:param name="class" select="local-name(.)"/> +  <!-- permit customization of class attributes --> +  <!-- Use element name by default --> +  <xsl:attribute name="class"> +    <xsl:apply-templates select="." mode="class.value"> +      <xsl:with-param name="class" select="$class"/> +    </xsl:apply-templates> +  </xsl:attribute> +</xsl:template> + +<xsl:template match="*" mode="class.value"> +  <xsl:param name="class" select="local-name(.)"/> +  <!-- permit customization of class value only --> +  <!-- Use element name by default --> +  <xsl:value-of select="$class"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/htmltbl.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/htmltbl.xsl.svn-base new file mode 100644 index 0000000..6728c74 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/htmltbl.xsl.svn-base @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="colgroup" mode="htmlTable"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="htmlTable"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="col" mode="htmlTable"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="caption" mode="htmlTable"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> + +    <xsl:apply-templates select=".." mode="object.title.markup"> +      <xsl:with-param name="allow-anchors" select="1"/> +    </xsl:apply-templates> + +  </xsl:copy> +</xsl:template> + +<xsl:template match="thead|tbody|tgroup|tr" mode="htmlTable"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates mode="htmlTable"/> +  </xsl:copy> +</xsl:template> + +<xsl:template match="th|td" mode="htmlTable"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates/> <!-- *not* mode=htmlTable --> +  </xsl:copy> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/index.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/index.xsl.svn-base new file mode 100644 index 0000000..0f1942f --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/index.xsl.svn-base @@ -0,0 +1,224 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="index"> +  <!-- some implementations use completely empty index tags to indicate --> +  <!-- where an automatically generated index should be inserted. so --> +  <!-- if the index is completely empty, skip it. Unless generate.index --> +  <!-- is non-zero, in which case, this is where the automatically --> +  <!-- generated index should go. --> + +  <xsl:call-template name="id.warning"/> + +  <xsl:if test="count(*)>0 or $generate.index != '0'"> +    <div> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:if test="$generate.id.attributes != 0"> +        <xsl:attribute name="id"> +          <xsl:call-template name="object.id"/> +        </xsl:attribute> +      </xsl:if> + +      <xsl:call-template name="index.titlepage"/> +      <xsl:choose> +	<xsl:when test="indexdiv"> +	  <xsl:apply-templates/> +	</xsl:when> +	<xsl:otherwise> +	  <xsl:apply-templates select="*[not(self::indexentry)]"/> +	  <!-- Because it's actually valid for Index to have neither any --> +	  <!-- Indexdivs nor any Indexentries, we need to check and make --> +	  <!-- sure that at least one Indexentry exists, and generate a --> +	  <!-- wrapper dl if there is at least one; otherwise, do nothing. --> +	  <xsl:if test="indexentry"> +	    <!-- The indexentry template assumes a parent dl wrapper has --> +	    <!-- been generated; for Indexes that have Indexdivs, the dl --> +	    <!-- wrapper is generated by the indexdiv template; however, --> +	    <!-- for Indexes that lack Indexdivs, if we don't generate a --> +	    <!-- dl here, HTML output will not be valid. --> +	    <dl> +	      <xsl:apply-templates select="indexentry"/> +	    </dl> +	  </xsl:if> +	</xsl:otherwise> +      </xsl:choose> + +      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0"> +        <xsl:call-template name="generate-index"> +          <xsl:with-param name="scope" select="(ancestor::book|/)[last()]"/> +        </xsl:call-template> +      </xsl:if> + +      <xsl:if test="not(parent::article)"> +        <xsl:call-template name="process.footnotes"/> +      </xsl:if> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template match="setindex"> +  <!-- some implementations use completely empty index tags to indicate --> +  <!-- where an automatically generated index should be inserted. so --> +  <!-- if the index is completely empty, skip it. Unless generate.index --> +  <!-- is non-zero, in which case, this is where the automatically --> +  <!-- generated index should go. --> + +  <xsl:call-template name="id.warning"/> + +  <xsl:if test="count(*)>0 or $generate.index != '0'"> +    <div> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:if test="$generate.id.attributes != 0"> +        <xsl:attribute name="id"> +          <xsl:call-template name="object.id"/> +        </xsl:attribute> +      </xsl:if> + +      <xsl:call-template name="setindex.titlepage"/> +      <xsl:apply-templates/> + +      <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0"> +        <xsl:call-template name="generate-index"> +          <xsl:with-param name="scope" select="/"/> +        </xsl:call-template> +      </xsl:if> + +      <xsl:if test="not(parent::article)"> +        <xsl:call-template name="process.footnotes"/> +      </xsl:if> +    </div> +  </xsl:if> +</xsl:template> + +<xsl:template match="index/indexinfo"/> +<xsl:template match="index/info"/> +<xsl:template match="index/title"/> +<xsl:template match="index/subtitle"/> +<xsl:template match="index/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template match="indexdiv"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates select="*[not(self::indexentry)]"/> +    <dl> +      <xsl:apply-templates select="indexentry"/> +    </dl> +  </div> +</xsl:template> + +<xsl:template match="indexdiv/title"> +  <h3> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </h3> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="indexterm"> +  <!-- this one must have a name, even if it doesn't have an ID --> +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <a id="{$id}" class="indexterm"/> +</xsl:template> + +<xsl:template match="primary|secondary|tertiary|see|seealso"> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="indexentry"> +  <xsl:apply-templates select="primaryie"/> +</xsl:template> + +<xsl:template match="primaryie"> +  <dt> +    <xsl:apply-templates/> +  </dt> +  <xsl:choose> +    <xsl:when test="following-sibling::secondaryie"> +      <dd> +        <dl> +          <xsl:apply-templates select="following-sibling::secondaryie"/> +        </dl> +      </dd> +    </xsl:when> +    <xsl:when test="following-sibling::seeie                     |following-sibling::seealsoie"> +      <dd> +        <dl> +          <xsl:apply-templates select="following-sibling::seeie                                        |following-sibling::seealsoie"/> +        </dl> +      </dd> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="secondaryie"> +  <dt> +    <xsl:apply-templates/> +  </dt> +  <xsl:choose> +    <xsl:when test="following-sibling::tertiaryie"> +      <dd> +        <dl> +          <xsl:apply-templates select="following-sibling::tertiaryie"/> +        </dl> +      </dd> +    </xsl:when> +    <xsl:when test="following-sibling::seeie                     |following-sibling::seealsoie"> +      <dd> +        <dl> +          <xsl:apply-templates select="following-sibling::seeie                                        |following-sibling::seealsoie"/> +        </dl> +      </dd> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<xsl:template match="tertiaryie"> +  <dt> +    <xsl:apply-templates/> +  </dt> +  <xsl:if test="following-sibling::seeie                 |following-sibling::seealsoie"> +    <dd> +      <dl> +        <xsl:apply-templates select="following-sibling::seeie                                      |following-sibling::seealsoie"/> +      </dl> +    </dd> +  </xsl:if> +</xsl:template> + +<xsl:template match="seeie|seealsoie"> +  <dt> +    <xsl:apply-templates/> +  </dt> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/info.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/info.xsl.svn-base new file mode 100644 index 0000000..11028dc --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/info.xsl.svn-base @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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 templates define the "default behavior" for info +     elements.  Even if you don't process the *info wrappers, +     some of these elements are needed because the elements are +     processed from named templates that are called with modes. +     Since modes aren't sticky, these rules apply.  +     (TODO: clarify this comment) --> + +<!-- ==================================================================== --> +<!-- called from named templates in a given mode --> + +<xsl:template match="corpauthor"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="jobtitle"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/inline.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/inline.xsl.svn-base new file mode 100644 index 0000000..3751e71 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/inline.xsl.svn-base @@ -0,0 +1,1404 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink suwl" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> +<xsl:template name="simple.xlink"> +  <xsl:param name="node" select="."/> +  <xsl:param name="content"> +    <xsl:apply-templates/> +  </xsl:param> +  <xsl:param name="a.target"/> +  <xsl:param name="linkend" select="$node/@linkend"/> +  <xsl:param name="xhref" select="$node/@xlink:href"/> + +  <xsl:variable name="link"> +    <xsl:choose> +      <xsl:when test="$xhref and                        (not($node/@xlink:type) or                             $node/@xlink:type='simple')"> + +        <!-- Is it a local idref or a uri? --> +        <xsl:variable name="is.idref"> +          <xsl:choose> +            <!-- if the href starts with # and does not contain an "(" --> +            <!-- or if the href starts with #xpointer(id(, it's just an ID --> +            <xsl:when test="starts-with($xhref,'#')                             and (not(contains($xhref,'('))                             or starts-with($xhref,                                        '#xpointer(id('))">1</xsl:when> +            <xsl:otherwise>0</xsl:otherwise> +          </xsl:choose> +        </xsl:variable> + +        <!-- Is it an olink ? --> +        <xsl:variable name="is.olink"> +          <xsl:choose> +	    <!-- If xlink:role="http://docbook.org/xlink/role/olink" --> +            <!-- and if the href contains # --> +            <xsl:when test="contains($xhref,'#') and           @xlink:role = $xolink.role">1</xsl:when> +            <xsl:otherwise>0</xsl:otherwise> +          </xsl:choose> +        </xsl:variable> + +        <xsl:choose> +          <xsl:when test="$is.idref = 1"> + +            <xsl:variable name="idref"> +              <xsl:call-template name="xpointer.idref"> +                <xsl:with-param name="xpointer" select="$xhref"/> +              </xsl:call-template> +            </xsl:variable> + +            <xsl:variable name="targets" select="key('id',$idref)"/> +            <xsl:variable name="target" select="$targets[1]"/> + +            <xsl:call-template name="check.id.unique"> +              <xsl:with-param name="linkend" select="$idref"/> +            </xsl:call-template> + +            <xsl:choose> +              <xsl:when test="count($target) = 0"> +                <xsl:message> +                  <xsl:text>XLink to nonexistent id: </xsl:text> +                  <xsl:value-of select="$idref"/> +                </xsl:message> +                <xsl:copy-of select="$content"/> +              </xsl:when> + +              <xsl:otherwise> +                <a> +                  <xsl:apply-templates select="." mode="class.attribute"/> + +                  <xsl:attribute name="href"> +                    <xsl:call-template name="href.target"> +                      <xsl:with-param name="object" select="$target"/> +                    </xsl:call-template> +                  </xsl:attribute> + +                  <xsl:choose> +                    <xsl:when test="$node/@xlink:title"> +                      <xsl:attribute name="title"> +                        <xsl:value-of select="$node/@xlink:title"/> +                      </xsl:attribute> +                    </xsl:when> +                    <xsl:otherwise> +                      <xsl:apply-templates select="$target" mode="html.title.attribute"/> +                    </xsl:otherwise> +                  </xsl:choose> + +                  <xsl:if test="$a.target"> +                    <xsl:attribute name="target"> +                      <xsl:value-of select="$a.target"/> +                    </xsl:attribute> +                  </xsl:if> + +                  <xsl:copy-of select="$content"/> + +                </a> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:when> + +          <xsl:when test="$is.olink = 1"> +	    <xsl:call-template name="olink"> +	      <xsl:with-param name="content" select="$content"/> +	    </xsl:call-template> +          </xsl:when> + +          <!-- otherwise it's a URI --> +          <xsl:otherwise> +            <a> +              <xsl:apply-templates select="." mode="class.attribute"/> +              <xsl:attribute name="href"> +                <xsl:value-of select="$xhref"/> +              </xsl:attribute> +              <xsl:if test="$node/@xlink:title"> +                <xsl:attribute name="title"> +                  <xsl:value-of select="$node/@xlink:title"/> +                </xsl:attribute> +              </xsl:if> +              <xsl:copy-of select="$content"/> +            </a> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> + +      <xsl:when test="$linkend"> +        <xsl:variable name="targets" select="key('id',$linkend)"/> +        <xsl:variable name="target" select="$targets[1]"/> + +        <xsl:call-template name="check.id.unique"> +          <xsl:with-param name="linkend" select="$linkend"/> +        </xsl:call-template> + +        <a> +          <xsl:apply-templates select="." mode="class.attribute"/> +          <xsl:attribute name="href"> +            <xsl:call-template name="href.target"> +              <xsl:with-param name="object" select="$target"/> +            </xsl:call-template> +          </xsl:attribute> + +          <xsl:apply-templates select="$target" mode="html.title.attribute"/> + +          <xsl:copy-of select="$content"/> +           +        </a> +      </xsl:when> +      <xsl:otherwise> +        <xsl:copy-of select="$content"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="function-available('suwl:unwrapLinks')"> +      <xsl:copy-of select="suwl:unwrapLinks($link)"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$link"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="inline.charseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <!-- * if you want output from the inline.charseq template wrapped in --> +  <!-- * something other than a Span, call the template with some value --> +  <!-- * for the 'wrapper-name' param --> +  <xsl:param name="wrapper-name">span</xsl:param> +  <xsl:element name="{$wrapper-name}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:attribute name="class"> +      <xsl:value-of select="local-name(.)"/> +    </xsl:attribute> +    <xsl:call-template name="dir"/> +    <xsl:call-template name="generate.html.title"/> +    <xsl:copy-of select="$content"/> +    <xsl:call-template name="apply-annotations"/> +  </xsl:element> +</xsl:template> + +<xsl:template name="inline.monoseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"/> +    <xsl:call-template name="generate.html.title"/> +    <xsl:copy-of select="$content"/> +    <xsl:call-template name="apply-annotations"/> +  </code> +</xsl:template> + +<xsl:template name="inline.boldseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="dir"/> + +    <!-- don't put <strong> inside figure, example, or table titles --> +    <xsl:choose> +      <xsl:when test="local-name(..) = 'title'                       and (local-name(../..) = 'figure'                       or local-name(../..) = 'example'                       or local-name(../..) = 'table')"> +        <xsl:copy-of select="$content"/> +      </xsl:when> +      <xsl:otherwise> +        <strong> +          <xsl:copy-of select="$content"/> +        </strong> +      </xsl:otherwise> +    </xsl:choose> +    <xsl:call-template name="apply-annotations"/> +  </span> +</xsl:template> + +<xsl:template name="inline.italicseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <em> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="dir"/> +    <xsl:copy-of select="$content"/> +    <xsl:call-template name="apply-annotations"/> +  </em> +</xsl:template> + +<xsl:template name="inline.boldmonoseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <!-- don't put <strong> inside figure, example, or table titles --> +  <!-- or other titles that may already be represented with <strong>'s. --> +  <xsl:choose> +    <xsl:when test="local-name(..) = 'title'                     and (local-name(../..) = 'figure'                          or local-name(../..) = 'example'                          or local-name(../..) = 'table'                          or local-name(../..) = 'formalpara')"> +      <code> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:call-template name="generate.html.title"/> +        <xsl:call-template name="dir"/> +        <xsl:copy-of select="$content"/> +        <xsl:call-template name="apply-annotations"/> +      </code> +    </xsl:when> +    <xsl:otherwise> +      <strong> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <code> +          <xsl:call-template name="generate.html.title"/> +          <xsl:call-template name="dir"/> +          <xsl:copy-of select="$content"/> +        </code> +        <xsl:call-template name="apply-annotations"/> +      </strong> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="inline.italicmonoseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <em> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <code> +      <xsl:call-template name="generate.html.title"/> +      <xsl:call-template name="dir"/> +      <xsl:copy-of select="$content"/> +      <xsl:call-template name="apply-annotations"/> +    </code> +  </em> +</xsl:template> + +<xsl:template name="inline.superscriptseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <sup> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="dir"/> +    <xsl:copy-of select="$content"/> +    <xsl:call-template name="apply-annotations"/> +  </sup> +</xsl:template> + +<xsl:template name="inline.subscriptseq"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <sub> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="dir"/> +    <xsl:copy-of select="$content"/> +    <xsl:call-template name="apply-annotations"/> +  </sub> +</xsl:template> + +<!-- ==================================================================== --> +<!-- some special cases --> + +<xsl:template match="author"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:call-template name="person.name"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="editor"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:call-template name="person.name"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="othercredit"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:call-template name="person.name"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="authorinitials"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="accel"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="action"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="application"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="classname"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="exceptionname"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="interfacename"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="methodname"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="command"> +  <xsl:call-template name="inline.boldseq"/> +</xsl:template> + +<xsl:template match="computeroutput"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="constant"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="database"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="date"> +  <!-- should this support locale-specific formatting? how? --> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="errorcode"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="errorname"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="errortype"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="errortext"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="envar"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="filename"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="function"> +  <xsl:choose> +    <xsl:when test="$function.parens != '0'                     and (parameter or function or replaceable)"> +      <xsl:variable name="nodes" select="text()|*"/> +      <xsl:call-template name="inline.monoseq"> +        <xsl:with-param name="content"> +          <xsl:call-template name="simple.xlink"> +            <xsl:with-param name="content"> +              <xsl:apply-templates select="$nodes[1]"/> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:text>(</xsl:text> +      <xsl:apply-templates select="$nodes[position()>1]"/> +      <xsl:text>)</xsl:text> +    </xsl:when> +    <xsl:otherwise> +     <xsl:call-template name="inline.monoseq"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="function/parameter" priority="2"> +  <xsl:call-template name="inline.italicmonoseq"/> +  <xsl:if test="following-sibling::*"> +    <xsl:text>, </xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="function/replaceable" priority="2"> +  <xsl:call-template name="inline.italicmonoseq"/> +  <xsl:if test="following-sibling::*"> +    <xsl:text>, </xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="guibutton"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="guiicon"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="guilabel"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="guimenu"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="guimenuitem"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="guisubmenu"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="hardware"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="interface"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="interfacedefinition"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="keycap"> +  <xsl:call-template name="inline.boldseq"/> +</xsl:template> + +<xsl:template match="keycode"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="keysym"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="literal"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="code"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="medialabel"> +  <xsl:call-template name="inline.italicseq"/> +</xsl:template> + +<xsl:template match="shortcut"> +  <xsl:call-template name="inline.boldseq"/> +</xsl:template> + +<xsl:template match="mousebutton"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="option"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="package"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="parameter"> +  <xsl:call-template name="inline.italicmonoseq"/> +</xsl:template> + +<xsl:template match="property"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="prompt"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="replaceable" priority="1"> +  <xsl:call-template name="inline.italicmonoseq"/> +</xsl:template> + +<xsl:template match="returnvalue"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="structfield"> +  <xsl:call-template name="inline.italicmonoseq"/> +</xsl:template> + +<xsl:template match="structname"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="symbol"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="systemitem"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="token"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="type"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="userinput"> +  <xsl:call-template name="inline.boldmonoseq"/> +</xsl:template> + +<xsl:template match="abbrev"> +  <xsl:call-template name="inline.charseq"> +    <xsl:with-param name="wrapper-name">abbr</xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="acronym"> +  <xsl:call-template name="inline.charseq"> +    <xsl:with-param name="wrapper-name">acronym</xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="citerefentry"> +  <xsl:choose> +    <xsl:when test="$citerefentry.link != '0'"> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="generate.citerefentry.link"/> +        </xsl:attribute> +        <xsl:call-template name="inline.charseq"/> +      </a> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="inline.charseq"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="generate.citerefentry.link"> +  <!-- nop --> +</xsl:template> + +<xsl:template name="x.generate.citerefentry.link"> +  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text> +  <xsl:value-of select="refentrytitle"/> +  <xsl:text>(</xsl:text> +  <xsl:value-of select="manvolnum"/> +  <xsl:text>)</xsl:text> +</xsl:template> + +<xsl:template match="citetitle"> +  <xsl:choose> +    <xsl:when test="@pubwork = 'article'"> +      <xsl:call-template name="gentext.startquote"/> +      <xsl:call-template name="inline.charseq"/> +      <xsl:call-template name="gentext.endquote"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="inline.italicseq"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="emphasis"> +  <span> +    <xsl:choose> +      <xsl:when test="@role and $emphasis.propagates.style != 0"> +        <xsl:apply-templates select="." mode="class.attribute"> +          <xsl:with-param name="class" select="@role"/> +        </xsl:apply-templates> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates select="." mode="class.attribute"/> +      </xsl:otherwise> +    </xsl:choose> +    <xsl:call-template name="anchor"/> + +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:choose> +          <xsl:when test="@role = 'bold' or @role='strong'"> +            <!-- backwards compatibility: make bold into b elements, but --> +            <!-- don't put bold inside figure, example, or table titles --> +            <xsl:choose> +              <xsl:when test="local-name(..) = 'title'                               and (local-name(../..) = 'figure'                               or local-name(../..) = 'example'                               or local-name(../..) = 'table')"> +                <xsl:apply-templates/> +              </xsl:when> +              <xsl:otherwise> +                <strong><xsl:apply-templates/></strong> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:when> +          <xsl:when test="@role and $emphasis.propagates.style != 0"> +            <xsl:apply-templates/> +          </xsl:when> +          <xsl:otherwise> +            <em><xsl:apply-templates/></em> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:with-param> +    </xsl:call-template> +  </span> +</xsl:template> + +<xsl:template match="foreignphrase"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="@lang or @xml:lang"> +      <xsl:call-template name="language.attribute"/> +    </xsl:if> +    <xsl:call-template name="inline.italicseq"/> +  </span> +</xsl:template> + +<xsl:template match="markup"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="phrase"> +  <span> +    <xsl:call-template name="generate.html.title"/> +    <xsl:if test="@lang or @xml:lang"> +      <xsl:call-template name="language.attribute"/> +    </xsl:if> +    <xsl:if test="@role and $phrase.propagates.style != 0"> +      <xsl:apply-templates select="." mode="class.attribute"> +        <xsl:with-param name="class" select="@role"/> +      </xsl:apply-templates> +    </xsl:if> +    <xsl:call-template name="dir"/> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </span> +</xsl:template> + +<xsl:template match="quote"> +  <xsl:variable name="depth"> +    <xsl:call-template name="dot.count"> +      <xsl:with-param name="string"> +        <xsl:number level="multiple"/> +      </xsl:with-param> +    </xsl:call-template> +  </xsl:variable> +  <xsl:choose> +    <xsl:when test="$depth mod 2 = 0"> +      <xsl:call-template name="gentext.startquote"/> +      <xsl:call-template name="inline.charseq"/> +      <xsl:call-template name="gentext.endquote"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="gentext.nestedstartquote"/> +      <xsl:call-template name="inline.charseq"/> +      <xsl:call-template name="gentext.nestedendquote"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="varname"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="wordasword"> +  <xsl:call-template name="inline.italicseq"/> +</xsl:template> + +<xsl:template match="lineannotation"> +  <em> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="inline.charseq"/> +  </em> +</xsl:template> + +<xsl:template match="superscript"> +  <xsl:call-template name="inline.superscriptseq"/> +</xsl:template> + +<xsl:template match="subscript"> +  <xsl:call-template name="inline.subscriptseq"/> +</xsl:template> + +<xsl:template match="trademark"> +  <xsl:call-template name="inline.charseq"/> +  <xsl:choose> +    <xsl:when test="@class = 'copyright'                     or @class = 'registered'"> +      <xsl:call-template name="dingbat"> +        <xsl:with-param name="dingbat" select="@class"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="@class = 'service'"> +      <sup>SM</sup> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="dingbat"> +        <xsl:with-param name="dingbat" select="'trademark'"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="firstterm"> +  <xsl:call-template name="glossterm"> +    <xsl:with-param name="firstterm" select="1"/> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="glossterm" name="glossterm"> +  <xsl:param name="firstterm" select="0"/> + +  <!-- To avoid extra <a name=""> anchor from inline.italicseq --> +  <xsl:variable name="content"> +    <xsl:apply-templates/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend"> +      <xsl:variable name="targets" select="key('id',@linkend)"/> +      <xsl:variable name="target" select="$targets[1]"/> + +      <xsl:call-template name="check.id.unique"> +        <xsl:with-param name="linkend" select="@linkend"/> +      </xsl:call-template> + +      <xsl:choose> +        <xsl:when test="$target"> +          <a> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:if test="@id or @xml:id"> +              <xsl:attribute name="id"> +                <xsl:value-of select="(@id|@xml:id)[1]"/> +              </xsl:attribute> +            </xsl:if> + +            <xsl:attribute name="href"> +              <xsl:call-template name="href.target"> +                <xsl:with-param name="object" select="$target"/> +              </xsl:call-template> +            </xsl:attribute> + +            <xsl:call-template name="inline.italicseq"> +              <xsl:with-param name="content" select="$content"/> +            </xsl:call-template> +          </a> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="inline.italicseq"> +            <xsl:with-param name="content" select="$content"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and ($glossterm.auto.link != 0)                     and $glossary.collection != ''"> +      <xsl:variable name="term"> +        <xsl:choose> +          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when> +          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:variable name="cterm" select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/> + +      <!-- HACK HACK HACK! But it works... --> +      <!-- You'd need to do more work if you wanted to chunk on glossdiv, though --> + +      <xsl:variable name="glossary" select="//glossary[@role='auto']"/> + +      <xsl:if test="count($glossary) != 1"> +        <xsl:message> +          <xsl:text>Warning: glossary.collection specified, but there are </xsl:text> +          <xsl:value-of select="count($glossary)"/> +          <xsl:text> automatic glossaries</xsl:text> +        </xsl:message> +      </xsl:if> + +      <xsl:variable name="glosschunk"> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="object" select="$glossary"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="chunkbase"> +        <xsl:choose> +          <xsl:when test="contains($glosschunk, '#')"> +            <xsl:value-of select="substring-before($glosschunk, '#')"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$glosschunk"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:choose> +        <xsl:when test="not($cterm)"> +          <xsl:message> +            <xsl:text>There's no entry for </xsl:text> +            <xsl:value-of select="$term"/> +            <xsl:text> in </xsl:text> +            <xsl:value-of select="$glossary.collection"/> +          </xsl:message> +          <xsl:call-template name="inline.italicseq"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:variable name="id"> +            <xsl:call-template name="object.id"> +              <xsl:with-param name="object" select="$cterm"/> +            </xsl:call-template> +          </xsl:variable> +          <a href="{$chunkbase}#{$id}"> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:call-template name="inline.italicseq"> +              <xsl:with-param name="content" select="$content"/> +            </xsl:call-template> +          </a> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and $glossterm.auto.link != 0"> +      <xsl:variable name="term"> +        <xsl:choose> +          <xsl:when test="@baseform"> +            <xsl:value-of select="normalize-space(@baseform)"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="normalize-space(.)"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> +      <xsl:variable name="targets" select="//glossentry[normalize-space(glossterm)=$term                               or normalize-space(glossterm/@baseform)=$term]"/> +      <xsl:variable name="target" select="$targets[1]"/> + +      <xsl:choose> +        <xsl:when test="count($targets)=0"> +          <xsl:message> +            <xsl:text>Error: no glossentry for glossterm: </xsl:text> +            <xsl:value-of select="."/> +            <xsl:text>.</xsl:text> +          </xsl:message> +          <xsl:call-template name="inline.italicseq"/> +        </xsl:when> +        <xsl:otherwise> +          <a> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:if test="@id or @xml:id"> +              <xsl:attribute name="id"> +                <xsl:value-of select="(@id|@xml:id)[1]"/> +              </xsl:attribute> +            </xsl:if> + +            <xsl:attribute name="href"> +              <xsl:call-template name="href.target"> +                <xsl:with-param name="object" select="$target"/> +              </xsl:call-template> +            </xsl:attribute> + +            <xsl:call-template name="inline.italicseq"> +              <xsl:with-param name="content" select="$content"/> +            </xsl:call-template> +          </a> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:call-template name="inline.italicseq"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="termdef"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="gentext.template"> +      <xsl:with-param name="context" select="'termdef'"/> +      <xsl:with-param name="name" select="'prefix'"/> +    </xsl:call-template> +    <xsl:apply-templates/> +    <xsl:call-template name="gentext.template"> +      <xsl:with-param name="context" select="'termdef'"/> +      <xsl:with-param name="name" select="'suffix'"/> +    </xsl:call-template> +  </span> +</xsl:template> + +<xsl:template match="sgmltag|tag"> +  <xsl:call-template name="format.sgmltag"/> +</xsl:template> + +<xsl:template name="format.sgmltag"> +  <xsl:param name="class"> +    <xsl:choose> +      <xsl:when test="@class"> +        <xsl:value-of select="@class"/> +      </xsl:when> +      <xsl:otherwise>element</xsl:otherwise> +    </xsl:choose> +  </xsl:param> + +  <xsl:variable name="content"> +    <xsl:choose> +      <xsl:when test="$class='attribute'"> +        <xsl:apply-templates/> +      </xsl:when> +      <xsl:when test="$class='attvalue'"> +        <xsl:apply-templates/> +      </xsl:when> +      <xsl:when test="$class='element'"> +        <xsl:apply-templates/> +      </xsl:when> +      <xsl:when test="$class='endtag'"> +        <xsl:text></</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>></xsl:text> +      </xsl:when> +      <xsl:when test="$class='genentity'"> +        <xsl:text>&</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>;</xsl:text> +      </xsl:when> +      <xsl:when test="$class='numcharref'"> +        <xsl:text>&#</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>;</xsl:text> +      </xsl:when> +      <xsl:when test="$class='paramentity'"> +        <xsl:text>%</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>;</xsl:text> +      </xsl:when> +      <xsl:when test="$class='pi'"> +        <xsl:text><?</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>></xsl:text> +      </xsl:when> +      <xsl:when test="$class='xmlpi'"> +        <xsl:text><?</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>?></xsl:text> +      </xsl:when> +      <xsl:when test="$class='starttag'"> +        <xsl:text><</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>></xsl:text> +      </xsl:when> +      <xsl:when test="$class='emptytag'"> +        <xsl:text><</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>/></xsl:text> +      </xsl:when> +      <xsl:when test="$class='sgmlcomment' or $class='comment'"> +        <xsl:text><!--</xsl:text> +        <xsl:apply-templates/> +        <xsl:text>--></xsl:text> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <code> +    <xsl:apply-templates select="." mode="class.attribute"> +      <xsl:with-param name="class" select="concat('sgmltag-', $class)"/> +    </xsl:apply-templates> +    <xsl:call-template name="generate.html.title"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content" select="$content"/> +    </xsl:call-template> +  </code> +</xsl:template> + +<xsl:template match="email"> +  <xsl:call-template name="inline.monoseq"> +    <xsl:with-param name="content"> +      <xsl:if test="not($email.delimiters.enabled = 0)"> +        <xsl:text><</xsl:text> +      </xsl:if> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:text>mailto:</xsl:text> +          <xsl:value-of select="."/> +        </xsl:attribute> +        <xsl:apply-templates/> +      </a> +      <xsl:if test="not($email.delimiters.enabled = 0)"> +        <xsl:text>></xsl:text> +      </xsl:if> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="keycombo"> +  <xsl:variable name="action" select="@action"/> +  <xsl:variable name="joinchar"> +    <xsl:choose> +      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when> +      <xsl:when test="$action='simul'">+</xsl:when> +      <xsl:when test="$action='press'">-</xsl:when> +      <xsl:when test="$action='click'">-</xsl:when> +      <xsl:when test="$action='double-click'">-</xsl:when> +      <xsl:when test="$action='other'"/> +      <xsl:otherwise>+</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:for-each select="*"> +    <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if> +    <xsl:apply-templates select="."/> +  </xsl:for-each> +</xsl:template> + +<xsl:template match="uri"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="menuchoice"> +  <xsl:variable name="shortcut" select="./shortcut"/> +  <xsl:call-template name="process.menuchoice"/> +  <xsl:if test="$shortcut"> +    <xsl:text> (</xsl:text> +    <xsl:apply-templates select="$shortcut"/> +    <xsl:text>)</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template name="process.menuchoice"> +  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) --> +  <xsl:param name="count" select="1"/> + +  <xsl:choose> +    <xsl:when test="$count>count($nodelist)"/> +    <xsl:when test="$count=1"> +      <xsl:apply-templates select="$nodelist[$count=position()]"/> +      <xsl:call-template name="process.menuchoice"> +        <xsl:with-param name="nodelist" select="$nodelist"/> +        <xsl:with-param name="count" select="$count+1"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="node" select="$nodelist[$count=position()]"/> +      <xsl:choose> +        <xsl:when test="local-name($node)='guimenuitem'                         or local-name($node)='guisubmenu'"> +          <xsl:value-of select="$menuchoice.menu.separator"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="$menuchoice.separator"/> +        </xsl:otherwise> +      </xsl:choose> +      <xsl:apply-templates select="$node"/> +      <xsl:call-template name="process.menuchoice"> +        <xsl:with-param name="nodelist" select="$nodelist"/> +        <xsl:with-param name="count" select="$count+1"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="optional"> +  <xsl:value-of select="$arg.choice.opt.open.str"/> +  <xsl:call-template name="inline.charseq"/> +  <xsl:value-of select="$arg.choice.opt.close.str"/> +</xsl:template> + +<xsl:template match="citation"> +  <!-- todo: integrate with bibliography collection --> +  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <xsl:choose> +    <!-- try automatic linking based on match to abbrev --> +    <xsl:when test="$target and not(xref) and not(link)"> + +      <xsl:text>[</xsl:text> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target"/> +          </xsl:call-template> +        </xsl:attribute> + +	<xsl:choose> +	  <xsl:when test="$bibliography.numbered != 0"> +	    <xsl:apply-templates select="$target" mode="citation"/> +	  </xsl:when> +	  <xsl:otherwise> +	    <xsl:call-template name="inline.charseq"/> +	  </xsl:otherwise> +	</xsl:choose> + +      </a> +      <xsl:text>]</xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <xsl:text>[</xsl:text> +      <xsl:call-template name="inline.charseq"/> +      <xsl:text>]</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="citation"> +  <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="comment[parent::answer|parent::appendix|parent::article|parent::bibliodiv|parent::bibliography|parent::blockquote|parent::caution|parent::chapter|parent::glossary|parent::glossdiv|parent::important|parent::index|parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|parent::partintro|parent::preface|parent::procedure|parent::qandadiv|parent::qandaset|parent::question|parent::refentry|parent::refnamediv|parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|parent::sect5|parent::section|parent::setindex|parent::sidebar|parent::simplesect|parent::taskprerequisites|parent::taskrelated|parent::tasksummary|parent::warning]|remark[parent::answer|parent::appendix|parent::article|parent::bibliodiv|parent::bibliography|parent::blockquote|parent::caution|parent::chapter|parent::glossary|parent::glossdiv|parent::important|parent::index|parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|parent::partintro|parent::preface|parent::procedure|parent::qandadiv|parent::qandaset|parent::question|parent::refentry|parent::refnamediv|parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|parent::sect5|parent::section|parent::setindex|parent::sidebar|parent::simplesect|parent::taskprerequisites|parent::taskrelated|parent::tasksummary|parent::warning]"> +  <xsl:if test="$show.comments != 0"> +    <p class="remark"><i><xsl:call-template name="inline.charseq"/></i></p> +  </xsl:if> +</xsl:template> + +<xsl:template match="comment|remark"> +  <xsl:if test="$show.comments != 0"> +    <em><xsl:call-template name="inline.charseq"/></em> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="productname"> +  <xsl:call-template name="inline.charseq"/> +  <xsl:if test="@class"> +    <xsl:call-template name="dingbat"> +      <xsl:with-param name="dingbat" select="@class"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="productnumber"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="pob|street|city|state|postcode|country|otheraddr"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="phone|fax"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<!-- in Addresses, for example --> +<xsl:template match="honorific|firstname|surname|lineage|othername"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="person"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates select="personname"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="personname"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:call-template name="person.name"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="org"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="orgname"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="orgdiv"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<xsl:template match="affiliation"> +  <xsl:param name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:call-template name="person.name"/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="apply-annotations"/> +  </xsl:param> + +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$content"/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="beginpage"> +  <!-- does nothing; this *is not* markup to force a page break. --> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/keywords.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/keywords.xsl.svn-base new file mode 100644 index 0000000..f8cf64c --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/keywords.xsl.svn-base @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:template match="keywordset"/> +<xsl:template match="subjectset"/> + +<!-- ==================================================================== --> + +<xsl:template match="keywordset" mode="html.header"> +  <meta name="keywords"> +    <xsl:attribute name="content"> +      <xsl:apply-templates select="keyword" mode="html.header"/> +    </xsl:attribute> +  </meta> +</xsl:template> + +<xsl:template match="keyword" mode="html.header"> +  <xsl:apply-templates/> +  <xsl:if test="following-sibling::keyword">, </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/lists.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/lists.xsl.svn-base new file mode 100644 index 0000000..dcb72e3 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/lists.xsl.svn-base @@ -0,0 +1,1045 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="itemizedlist"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <!-- Preserve order of PIs and comments --> +    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/> + +    <ul> +      <xsl:if test="$css.decoration != 0"> +        <xsl:attribute name="type"> +          <xsl:call-template name="list.itemsymbol"/> +        </xsl:attribute> +      </xsl:if> + +      <xsl:if test="@spacing='compact'"> +        <xsl:attribute name="compact"> +          <xsl:value-of select="@spacing"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:apply-templates select="listitem                     |comment()[preceding-sibling::listitem]                     |processing-instruction()[preceding-sibling::listitem]"/> +    </ul> +  </div> +</xsl:template> + +<xsl:template match="itemizedlist/title"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="itemizedlist/listitem"> +  <xsl:variable name="mark" select="../@mark"/> +  <xsl:variable name="override" select="@override"/> + +  <xsl:variable name="usemark"> +    <xsl:choose> +      <xsl:when test="$override != ''"> +        <xsl:value-of select="$override"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$mark"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="cssmark"> +    <xsl:choose> +      <xsl:when test="$usemark = 'opencircle'">circle</xsl:when> +      <xsl:when test="$usemark = 'bullet'">disc</xsl:when> +      <xsl:when test="$usemark = 'box'">square</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$usemark"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <li> +    <xsl:if test="$css.decoration = '1' and $cssmark != ''"> +      <xsl:attribute name="style"> +        <xsl:text>list-style-type: </xsl:text> +        <xsl:value-of select="$cssmark"/> +      </xsl:attribute> +    </xsl:if> + +    <!-- we can't just drop the anchor in since some browsers (Opera) +         get confused about line breaks if we do. So if the first child +         is a para, assume the para will put in the anchor. Otherwise, +         put the anchor in anyway. --> +    <xsl:if test="local-name(child::*[1]) != 'para'"> +      <xsl:call-template name="anchor"/> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +        <div class="{@revisionflag}"> +          <xsl:apply-templates/> +        </div> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates/> +      </xsl:otherwise> +    </xsl:choose> +  </li> +</xsl:template> + +<xsl:template match="orderedlist"> +  <xsl:variable name="start"> +    <xsl:call-template name="orderedlist-starting-number"/> +  </xsl:variable> + +  <xsl:variable name="numeration"> +    <xsl:call-template name="list.numeration"/> +  </xsl:variable> + +  <xsl:variable name="type"> +    <xsl:choose> +      <xsl:when test="$numeration='arabic'">1</xsl:when> +      <xsl:when test="$numeration='loweralpha'">a</xsl:when> +      <xsl:when test="$numeration='lowerroman'">i</xsl:when> +      <xsl:when test="$numeration='upperalpha'">A</xsl:when> +      <xsl:when test="$numeration='upperroman'">I</xsl:when> +      <!-- What!? This should never happen --> +      <xsl:otherwise> +        <xsl:message> +          <xsl:text>Unexpected numeration: </xsl:text> +          <xsl:value-of select="$numeration"/> +        </xsl:message> +        <xsl:value-of select="1"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> + +    <xsl:if test="title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <!-- Preserve order of PIs and comments --> +    <xsl:apply-templates select="*[not(self::listitem                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::listitem)]                 |processing-instruction()[not(preceding-sibling::listitem)]"/> + +    <ol> +      <xsl:if test="$start != '1'"> +        <xsl:attribute name="start"> +          <xsl:value-of select="$start"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:if test="$numeration != ''"> +        <xsl:attribute name="type"> +          <xsl:value-of select="$type"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:if test="@spacing='compact'"> +        <xsl:attribute name="compact"> +          <xsl:value-of select="@spacing"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:apply-templates select="listitem                     |comment()[preceding-sibling::listitem]                     |processing-instruction()[preceding-sibling::listitem]"/> +    </ol> +  </div> +</xsl:template> + +<xsl:template match="orderedlist/title"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="orderedlist/listitem"> +  <li> +    <xsl:if test="@override"> +      <xsl:attribute name="value"> +        <xsl:value-of select="@override"/> +      </xsl:attribute> +    </xsl:if> + +    <!-- we can't just drop the anchor in since some browsers (Opera) +         get confused about line breaks if we do. So if the first child +         is a para, assume the para will put in the anchor. Otherwise, +         put the anchor in anyway. --> +    <xsl:if test="local-name(child::*[1]) != 'para'"> +      <xsl:call-template name="anchor"/> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +        <div class="{@revisionflag}"> +          <xsl:apply-templates/> +        </div> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates/> +      </xsl:otherwise> +    </xsl:choose> +  </li> +</xsl:template> + +<xsl:template match="variablelist"> +  <xsl:variable name="pi-presentation"> +    <xsl:call-template name="pi.dbhtml_list-presentation"/> +  </xsl:variable> + +  <xsl:variable name="presentation"> +    <xsl:choose> +      <xsl:when test="$pi-presentation != ''"> +        <xsl:value-of select="$pi-presentation"/> +      </xsl:when> +      <xsl:when test="$variablelist.as.table != 0"> +        <xsl:value-of select="'table'"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="'list'"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="list-width"> +    <xsl:call-template name="pi.dbhtml_list-width"/> +  </xsl:variable> + +  <xsl:variable name="term-width"> +    <xsl:call-template name="pi.dbhtml_term-width"/> +  </xsl:variable> + +  <xsl:variable name="table-summary"> +    <xsl:call-template name="pi.dbhtml_table-summary"/> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="$presentation = 'table'"> +        <!-- Preserve order of PIs and comments --> +        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/> +        <table border="0"> +          <xsl:if test="$list-width != ''"> +            <xsl:attribute name="width"> +              <xsl:value-of select="$list-width"/> +            </xsl:attribute> +          </xsl:if> +          <xsl:if test="$table-summary != ''"> +            <xsl:attribute name="summary"> +              <xsl:value-of select="$table-summary"/> +            </xsl:attribute> +          </xsl:if> +          <col align="left" valign="top"> +            <xsl:if test="$term-width != ''"> +              <xsl:attribute name="width"> +                <xsl:value-of select="$term-width"/> +              </xsl:attribute> +            </xsl:if> +          </col> +          <tbody> +            <xsl:apply-templates mode="varlist-table" select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/> +          </tbody> +        </table> +      </xsl:when> +      <xsl:otherwise> +        <!-- Preserve order of PIs and comments --> +        <xsl:apply-templates select="*[not(self::varlistentry                     or self::title                     or self::titleabbrev)]                   |comment()[not(preceding-sibling::varlistentry)]                   |processing-instruction()[not(preceding-sibling::varlistentry)]"/> +        <dl> +          <xsl:apply-templates select="varlistentry                       |comment()[preceding-sibling::varlistentry]                       |processing-instruction()[preceding-sibling::varlistentry]"/> +        </dl> +      </xsl:otherwise> +    </xsl:choose> +  </div> +</xsl:template> + +<xsl:template match="variablelist/title"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="itemizedlist/titleabbrev|orderedlist/titleabbrev"> +  <!--nop--> +</xsl:template> + +<xsl:template match="variablelist/titleabbrev"> +  <!--nop--> +</xsl:template> + +<xsl:template match="listitem" mode="xref"> +  <xsl:number format="1"/> +</xsl:template> + +<xsl:template match="listitem/simpara" priority="2"> +  <!-- If a listitem contains only a single simpara, don't output +       the <p> wrapper; this has the effect of creating an li +       with simple text content. --> +  <xsl:choose> +    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)"> +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates/> +    </xsl:when> +    <xsl:otherwise> +      <p> +        <xsl:if test="@role and $para.propagates.style != 0"> +           <xsl:apply-templates select="." mode="class.attribute"> +             <xsl:with-param name="class" select="@role"/> +           </xsl:apply-templates> +        </xsl:if> + +        <xsl:call-template name="anchor"/> +        <xsl:apply-templates/> +      </p> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="varlistentry"> +  <dt> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates select="term"/> +  </dt> +  <dd> +    <xsl:apply-templates select="listitem"/> +  </dd> +</xsl:template> + +<xsl:template match="varlistentry" mode="varlist-table"> +  <xsl:variable name="presentation"> +    <xsl:call-template name="pi.dbhtml_term-presentation"> +      <xsl:with-param name="node" select=".."/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="separator"> +    <xsl:call-template name="pi.dbhtml_term-separator"> +      <xsl:with-param name="node" select=".."/> +    </xsl:call-template> +  </xsl:variable> +  <tr> +    <xsl:call-template name="tr.attributes"> +      <xsl:with-param name="rownum"> +        <xsl:number from="variablelist" count="varlistentry"/> +      </xsl:with-param> +    </xsl:call-template> + +    <td> +      <p> +      <xsl:call-template name="anchor"/> +      <xsl:choose> +        <xsl:when test="$presentation = 'bold'"> +          <b> +            <xsl:apply-templates select="term"/> +            <xsl:value-of select="$separator"/> +          </b> +        </xsl:when> +        <xsl:when test="$presentation = 'italic'"> +          <i> +            <xsl:apply-templates select="term"/> +            <xsl:value-of select="$separator"/> +          </i> +        </xsl:when> +        <xsl:when test="$presentation = 'bold-italic'"> +          <b> +            <i> +              <xsl:apply-templates select="term"/> +              <xsl:value-of select="$separator"/> +            </i> +          </b> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="term"/> +          <xsl:value-of select="$separator"/> +        </xsl:otherwise> +      </xsl:choose> +      </p> +    </td> +    <td> +      <xsl:apply-templates select="listitem"/> +    </td> +  </tr> +</xsl:template> + +<xsl:template match="varlistentry/term"> +  <span class="term"> +    <xsl:call-template name="anchor"/> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:choose> +      <xsl:when test="position() = last()"/> <!-- do nothing --> +      <xsl:otherwise> +        <!-- * if we have multiple terms in the same varlistentry, generate --> +        <!-- * a separator (", " by default) and/or an additional line --> +        <!-- * break after each one except the last --> +        <xsl:value-of select="$variablelist.term.separator"/> +        <xsl:if test="not($variablelist.term.break.after = '0')"> +          <br/> +        </xsl:if> +      </xsl:otherwise> +    </xsl:choose> +  </span> +</xsl:template> + +<xsl:template match="varlistentry/listitem"> +  <!-- we can't just drop the anchor in since some browsers (Opera) +       get confused about line breaks if we do. So if the first child +       is a para, assume the para will put in the anchor. Otherwise, +       put the anchor in anyway. --> +  <xsl:if test="local-name(child::*[1]) != 'para'"> +    <xsl:call-template name="anchor"/> +  </xsl:if> + +  <xsl:choose> +    <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +      <div class="{@revisionflag}"> +        <xsl:apply-templates/> +      </div> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="simplelist"> +  <!-- with no type specified, the default is 'vert' --> +  <xsl:call-template name="anchor"/> +  <table class="simplelist" border="0" summary="Simple list"> +    <xsl:call-template name="simplelist.vert"> +      <xsl:with-param name="cols"> +        <xsl:choose> +          <xsl:when test="@columns"> +            <xsl:value-of select="@columns"/> +          </xsl:when> +          <xsl:otherwise>1</xsl:otherwise> +        </xsl:choose> +      </xsl:with-param> +    </xsl:call-template> +  </table> +</xsl:template> + +<xsl:template match="simplelist[@type='inline']"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +  <!-- if dbchoice PI exists, use that to determine the choice separator --> +  <!-- (that is, equivalent of "and" or "or" in current locale), or literal --> +  <!-- value of "choice" otherwise --> +  <xsl:variable name="localized-choice-separator"> +    <xsl:choose> +      <xsl:when test="processing-instruction('dbchoice')"> +        <xsl:call-template name="select.choice.separator"/> +      </xsl:when> +      <xsl:otherwise> +        <!-- empty --> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:for-each select="member"> +    <xsl:call-template name="simple.xlink"> +      <xsl:with-param name="content"> +        <xsl:apply-templates/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:choose> +      <xsl:when test="position() = last()"/> <!-- do nothing --> +      <xsl:otherwise> +	<xsl:text>, </xsl:text> +	<xsl:if test="position() = last() - 1"> +	  <xsl:if test="$localized-choice-separator != ''"> +	    <xsl:value-of select="$localized-choice-separator"/> +	    <xsl:text> </xsl:text> +	  </xsl:if> +	</xsl:if> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:for-each> +  </span> +</xsl:template> + +<xsl:template match="simplelist[@type='horiz']"> +  <xsl:call-template name="anchor"/> +  <table class="simplelist" border="0" summary="Simple list"> +    <xsl:call-template name="simplelist.horiz"> +      <xsl:with-param name="cols"> +        <xsl:choose> +          <xsl:when test="@columns"> +            <xsl:value-of select="@columns"/> +          </xsl:when> +          <xsl:otherwise>1</xsl:otherwise> +        </xsl:choose> +      </xsl:with-param> +    </xsl:call-template> +  </table> +</xsl:template> + +<xsl:template match="simplelist[@type='vert']"> +  <xsl:call-template name="anchor"/> +  <table class="simplelist" border="0" summary="Simple list"> +    <xsl:call-template name="simplelist.vert"> +      <xsl:with-param name="cols"> +        <xsl:choose> +          <xsl:when test="@columns"> +            <xsl:value-of select="@columns"/> +          </xsl:when> +          <xsl:otherwise>1</xsl:otherwise> +        </xsl:choose> +      </xsl:with-param> +    </xsl:call-template> +  </table> +</xsl:template> + +<xsl:template name="simplelist.horiz"> +  <xsl:param name="cols">1</xsl:param> +  <xsl:param name="cell">1</xsl:param> +  <xsl:param name="members" select="./member"/> + +  <xsl:if test="$cell <= count($members)"> +    <tr> +      <xsl:call-template name="tr.attributes"> +        <xsl:with-param name="row" select="$members[1]"/> +        <xsl:with-param name="rownum" select="(($cell - 1) div $cols) + 1"/> +      </xsl:call-template> + +      <xsl:call-template name="simplelist.horiz.row"> +        <xsl:with-param name="cols" select="$cols"/> +        <xsl:with-param name="cell" select="$cell"/> +        <xsl:with-param name="members" select="$members"/> +      </xsl:call-template> +   </tr> +    <xsl:call-template name="simplelist.horiz"> +      <xsl:with-param name="cols" select="$cols"/> +      <xsl:with-param name="cell" select="$cell + $cols"/> +      <xsl:with-param name="members" select="$members"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="simplelist.horiz.row"> +  <xsl:param name="cols">1</xsl:param> +  <xsl:param name="cell">1</xsl:param> +  <xsl:param name="members" select="./member"/> +  <xsl:param name="curcol">1</xsl:param> + +  <xsl:if test="$curcol <= $cols"> +    <td> +      <xsl:choose> +        <xsl:when test="$members[position()=$cell]"> +          <xsl:apply-templates select="$members[position()=$cell]"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:text> </xsl:text> +        </xsl:otherwise> +      </xsl:choose> +    </td> +    <xsl:call-template name="simplelist.horiz.row"> +      <xsl:with-param name="cols" select="$cols"/> +      <xsl:with-param name="cell" select="$cell+1"/> +      <xsl:with-param name="members" select="$members"/> +      <xsl:with-param name="curcol" select="$curcol+1"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="simplelist.vert"> +  <xsl:param name="cols">1</xsl:param> +  <xsl:param name="cell">1</xsl:param> +  <xsl:param name="members" select="./member"/> +  <xsl:param name="rows" select="floor((count($members)+$cols - 1) div $cols)"/> + +  <xsl:if test="$cell <= $rows"> +    <tr> +      <xsl:call-template name="tr.attributes"> +        <xsl:with-param name="row" select="$members[1]"/> +        <xsl:with-param name="rownum" select="$cell"/> +      </xsl:call-template> + +      <xsl:call-template name="simplelist.vert.row"> +        <xsl:with-param name="cols" select="$cols"/> +        <xsl:with-param name="rows" select="$rows"/> +        <xsl:with-param name="cell" select="$cell"/> +        <xsl:with-param name="members" select="$members"/> +      </xsl:call-template> +    </tr> +    <xsl:call-template name="simplelist.vert"> +      <xsl:with-param name="cols" select="$cols"/> +      <xsl:with-param name="cell" select="$cell+1"/> +      <xsl:with-param name="members" select="$members"/> +      <xsl:with-param name="rows" select="$rows"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="simplelist.vert.row"> +  <xsl:param name="cols">1</xsl:param> +  <xsl:param name="rows">1</xsl:param> +  <xsl:param name="cell">1</xsl:param> +  <xsl:param name="members" select="./member"/> +  <xsl:param name="curcol">1</xsl:param> + +  <xsl:if test="$curcol <= $cols"> +    <td> +      <xsl:choose> +        <xsl:when test="$members[position()=$cell]"> +          <xsl:apply-templates select="$members[position()=$cell]"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:text> </xsl:text> +        </xsl:otherwise> +      </xsl:choose> +    </td> +    <xsl:call-template name="simplelist.vert.row"> +      <xsl:with-param name="cols" select="$cols"/> +      <xsl:with-param name="rows" select="$rows"/> +      <xsl:with-param name="cell" select="$cell+$rows"/> +      <xsl:with-param name="members" select="$members"/> +      <xsl:with-param name="curcol" select="$curcol+1"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template match="member"> +  <xsl:call-template name="anchor"/> +  <xsl:call-template name="simple.xlink"> +    <xsl:with-param name="content"> +      <xsl:apply-templates/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="procedure"> +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <!-- Preserve order of PIs and comments --> +  <xsl:variable name="preamble" select="*[not(self::step                   or self::title                   or self::titleabbrev)]                 |comment()[not(preceding-sibling::step)]                 |processing-instruction()[not(preceding-sibling::step)]"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="conditional"> +        <xsl:choose> +	  <xsl:when test="title">0</xsl:when> +	  <xsl:otherwise>1</xsl:otherwise> +	</xsl:choose> +      </xsl:with-param> +    </xsl:call-template> + +    <xsl:if test="title and $placement = 'before'"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <xsl:apply-templates select="$preamble"/> + +    <xsl:choose> +      <xsl:when test="count(step) = 1"> +        <ul> +          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/> +        </ul> +      </xsl:when> +      <xsl:otherwise> +        <ol> +          <xsl:attribute name="type"> +            <xsl:value-of select="substring($procedure.step.numeration.formats,1,1)"/> +          </xsl:attribute> +          <xsl:apply-templates select="step                     |comment()[preceding-sibling::step]                     |processing-instruction()[preceding-sibling::step]"/> +        </ol> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:if test="title and $placement != 'before'"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="procedure/title"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="substeps"> +  <xsl:variable name="numeration"> +    <xsl:call-template name="procedure.step.numeration"/> +  </xsl:variable> + +  <xsl:call-template name="anchor"/> + +  <ol type="{$numeration}"> +    <xsl:apply-templates/> +  </ol> +</xsl:template> + +<xsl:template match="step"> +  <li> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates/> +  </li> +</xsl:template> + +<xsl:template match="stepalternatives"> +  <xsl:call-template name="anchor"/> +  <ul> +    <xsl:apply-templates/> +  </ul> +</xsl:template> + +<xsl:template match="step/title"> +  <p class="title"> +    <b> +      <xsl:apply-templates/> +    </b> +  </p> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="segmentedlist"> +  <xsl:variable name="presentation"> +    <xsl:call-template name="pi.dbhtml_list-presentation"/> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> + +    <xsl:choose> +      <xsl:when test="$presentation = 'table'"> +        <xsl:apply-templates select="." mode="seglist-table"/> +      </xsl:when> +      <xsl:when test="$presentation = 'list'"> +        <xsl:apply-templates/> +      </xsl:when> +      <xsl:when test="$segmentedlist.as.table != 0"> +        <xsl:apply-templates select="." mode="seglist-table"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:apply-templates/> +      </xsl:otherwise> +    </xsl:choose> +  </div> +</xsl:template> + +<xsl:template match="segmentedlist/title"> +  <div class="title"> +    <strong><span class="title"><xsl:apply-templates/></span></strong> +  </div> +</xsl:template> + +<xsl:template match="segtitle"> +</xsl:template> + +<xsl:template match="segtitle" mode="segtitle-in-seg"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="seglistitem"> +  <div class="seglistitem"> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="seg"> +  <xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/> +  <xsl:variable name="seglist" select="ancestor::segmentedlist"/> +  <xsl:variable name="segtitles" select="$seglist/segtitle"/> + +  <!-- +     Note: segtitle is only going to be the right thing in a well formed +     SegmentedList.  If there are too many Segs or too few SegTitles, +     you'll get something odd...maybe an error +  --> + +  <div class="seg"> +    <strong> +      <span class="segtitle"> +        <xsl:apply-templates select="$segtitles[$segnum=position()]" mode="segtitle-in-seg"/> +        <xsl:text>: </xsl:text> +      </span> +    </strong> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="segmentedlist" mode="seglist-table"> +  <xsl:variable name="table-summary"> +    <xsl:call-template name="pi.dbhtml_table-summary"/> +  </xsl:variable> + +  <xsl:variable name="list-width"> +    <xsl:call-template name="pi.dbhtml_list-width"/> +  </xsl:variable> + +  <xsl:apply-templates select="title"/> + +  <table border="0"> +    <xsl:if test="$list-width != ''"> +      <xsl:attribute name="width"> +        <xsl:value-of select="$list-width"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="$table-summary != ''"> +      <xsl:attribute name="summary"> +        <xsl:value-of select="$table-summary"/> +      </xsl:attribute> +    </xsl:if> +    <thead> +      <tr class="segtitle"> +        <xsl:call-template name="tr.attributes"> +          <xsl:with-param name="row" select="segtitle[1]"/> +          <xsl:with-param name="rownum" select="1"/> +        </xsl:call-template> +        <xsl:apply-templates select="segtitle" mode="seglist-table"/> +      </tr> +    </thead> +    <tbody> +      <xsl:apply-templates select="seglistitem" mode="seglist-table"/> +    </tbody> +  </table> +</xsl:template> + +<xsl:template match="segtitle" mode="seglist-table"> +  <th><xsl:apply-templates/></th> +</xsl:template> + +<xsl:template match="seglistitem" mode="seglist-table"> +  <xsl:variable name="seglinum"> +    <xsl:number from="segmentedlist" count="seglistitem"/> +  </xsl:variable> + +  <tr class="seglistitem"> +    <xsl:call-template name="tr.attributes"> +      <xsl:with-param name="rownum" select="$seglinum + 1"/> +    </xsl:call-template> +    <xsl:apply-templates mode="seglist-table"/> +  </tr> +</xsl:template> + +<xsl:template match="seg" mode="seglist-table"> +  <td class="seg"><xsl:apply-templates/></td> +</xsl:template> + +<xsl:template match="seg[1]" mode="seglist-table"> +  <td class="seg"> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="node" select="ancestor::seglistitem"/> +    </xsl:call-template> +    <xsl:apply-templates/> +  </td> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="calloutlist"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="title|info/title"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <!-- Preserve order of PIs and comments --> +    <xsl:apply-templates select="*[not(self::callout or self::title or self::titleabbrev)]                    |comment()[not(preceding-sibling::callout)]      |processing-instruction()[not(preceding-sibling::callout)]"/> + +    <xsl:choose> +      <xsl:when test="$callout.list.table != 0"> +        <table border="0" summary="Callout list"> +	  <xsl:apply-templates select="callout            |comment()[preceding-sibling::callout]     |processing-instruction()[preceding-sibling::callout]"/> +	</table> +      </xsl:when> +      <xsl:otherwise> +	<dl compact="compact"> +	  <xsl:apply-templates select="callout            |comment()[preceding-sibling::callout]     |processing-instruction()[preceding-sibling::callout]"/> +	</dl> +      </xsl:otherwise> +    </xsl:choose> +  </div> +</xsl:template> + +<xsl:template match="calloutlist/title"> +</xsl:template> + +<xsl:template match="callout"> +  <xsl:choose> +    <xsl:when test="$callout.list.table != 0"> +      <tr> +        <xsl:call-template name="tr.attributes"> +          <xsl:with-param name="rownum"> +            <xsl:number from="calloutlist" count="callout"/> +          </xsl:with-param> +        </xsl:call-template> + +        <td width="5%" valign="top" align="left"> +          <p> +            <xsl:call-template name="anchor"/> +            <xsl:call-template name="callout.arearefs"> +              <xsl:with-param name="arearefs" select="@arearefs"/> +            </xsl:call-template> +          </p> +        </td> +        <td valign="top" align="left"> +          <xsl:apply-templates/> +        </td> +      </tr> +    </xsl:when> +    <xsl:otherwise> +      <dt> +        <xsl:call-template name="anchor"/> +        <xsl:call-template name="callout.arearefs"> +          <xsl:with-param name="arearefs" select="@arearefs"/> +        </xsl:call-template> +      </dt> +      <dd><xsl:apply-templates/></dd> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="callout/simpara" priority="2"> +  <!-- If a callout contains only a single simpara, don't output +       the <p> wrapper; this has the effect of creating an li +       with simple text content. --> +  <xsl:choose> +    <xsl:when test="not(preceding-sibling::*)                     and not (following-sibling::*)"> +      <xsl:call-template name="anchor"/> +      <xsl:apply-templates/> +    </xsl:when> +    <xsl:otherwise> +      <p> +        <xsl:if test="@role and $para.propagates.style != 0"> +          <xsl:apply-templates select="." mode="class.attribute"> +            <xsl:with-param name="class" select="@role"/> +          </xsl:apply-templates> +        </xsl:if> + +        <xsl:call-template name="anchor"/> +        <xsl:apply-templates/> +      </p> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="callout.arearefs"> +  <xsl:param name="arearefs"/> +  <xsl:if test="$arearefs!=''"> +    <xsl:choose> +      <xsl:when test="substring-before($arearefs,' ')=''"> +        <xsl:call-template name="callout.arearef"> +          <xsl:with-param name="arearef" select="$arearefs"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="callout.arearef"> +          <xsl:with-param name="arearef" select="substring-before($arearefs,' ')"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +    <xsl:call-template name="callout.arearefs"> +      <xsl:with-param name="arearefs" select="substring-after($arearefs,' ')"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="callout.arearef"> +  <xsl:param name="arearef"/> +  <xsl:variable name="targets" select="key('id',$arearef)"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <xsl:call-template name="check.id.unique"> +    <xsl:with-param name="linkend" select="$arearef"/> +  </xsl:call-template> + +  <xsl:choose> +    <xsl:when test="count($target)=0"> +      <xsl:text>???</xsl:text> +    </xsl:when> +    <xsl:when test="local-name($target)='co'"> +      <a> +        <xsl:attribute name="href"> +          <xsl:text>#</xsl:text> +          <xsl:value-of select="$arearef"/> +        </xsl:attribute> +        <xsl:apply-templates select="$target" mode="callout-bug"/> +      </a> +      <xsl:text> </xsl:text> +    </xsl:when> +    <xsl:when test="local-name($target)='areaset'"> +      <xsl:call-template name="callout-bug"> +        <xsl:with-param name="conum"> +          <xsl:apply-templates select="$target" mode="conumber"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="local-name($target)='area'"> +      <xsl:choose> +        <xsl:when test="$target/parent::areaset"> +          <xsl:call-template name="callout-bug"> +            <xsl:with-param name="conum"> +              <xsl:apply-templates select="$target/parent::areaset" mode="conumber"/> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="callout-bug"> +            <xsl:with-param name="conum"> +              <xsl:apply-templates select="$target" mode="conumber"/> +            </xsl:with-param> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:text>???</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="orderedlist-starting-number"> +  <xsl:param name="list" select="."/> +  <xsl:variable name="pi-start"> +    <xsl:call-template name="pi.dbhtml_start"> +      <xsl:with-param name="node" select="$list"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:call-template name="output-orderedlist-starting-number"> +    <xsl:with-param name="list" select="$list"/> +    <xsl:with-param name="pi-start" select="$pi-start"/> +  </xsl:call-template> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/maketoc.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/maketoc.xsl.svn-base new file mode 100644 index 0000000..ef1f27c --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/maketoc.xsl.svn-base @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="docbook.xsl"/> +<xsl:import href="chunk.xsl"/> + +<xsl:output method="xml" indent="no" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> + +<xsl:param name="toc.list.type" select="'tocentry'"/> + +<!-- refentry in autotoc.xsl does not use subtoc, so must +     handle it explicitly here. --> +<xsl:template match="refentry" mode="toc"> +  <xsl:param name="toc-context" select="."/> + +  <xsl:call-template name="subtoc"> +    <xsl:with-param name="toc-context" select="$toc-context"/> +  </xsl:call-template> +</xsl:template> + + +<xsl:template name="subtoc"> +  <xsl:param name="nodes" select="NOT-AN-ELEMENT"/> +  <xsl:variable name="filename"> +    <xsl:apply-templates select="." mode="chunk-filename"/> +  </xsl:variable> + +  <xsl:variable name="chunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:if test="$chunk != 0"> +    <xsl:call-template name="indent-spaces"/> +    <xsl:variable name="id"> +      <xsl:call-template name="object.id"/> +    </xsl:variable> +    <tocentry linkend="{$id}"> +      <xsl:processing-instruction name="dbhtml"> +        <xsl:text>filename="</xsl:text> +        <xsl:value-of select="$filename"/> +        <xsl:text>"</xsl:text> +      </xsl:processing-instruction> +      <xsl:text> +</xsl:text> +      <xsl:apply-templates mode="toc" select="$nodes"/> +      <xsl:call-template name="indent-spaces"/> +    </tocentry> +    <xsl:text> +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template name="indent-spaces"> +  <xsl:param name="node" select="."/> +  <xsl:text>  </xsl:text> +  <xsl:if test="$node/parent::*"> +    <xsl:call-template name="indent-spaces"> +      <xsl:with-param name="node" select="$node/parent::*"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="/" priority="-1"> +  <xsl:text> +</xsl:text> +  <toc role="chunk-toc"> +    <xsl:text> +</xsl:text> +    <xsl:apply-templates select="/" mode="toc"/> +  </toc> +  <xsl:text> +</xsl:text> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/manifest.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/manifest.xsl.svn-base new file mode 100644 index 0000000..40023b3 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/manifest.xsl.svn-base @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> +<!-- OBSOLETE. The templates from this file were moved to                 --> +<!-- chunk-common.xsl and chunk-code.xsl.                                 --> +<!-- ==================================================================== --> + + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/math.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/math.xsl.svn-base new file mode 100644 index 0000000..f9b5535 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/math.xsl.svn-base @@ -0,0 +1,284 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="mml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:template match="inlineequation"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="alt"> +</xsl:template> + +<xsl:template match="mathphrase"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </span> +</xsl:template> + +<!-- "Support" for MathML --> + +<xsl:template match="mml:*"> +  <xsl:copy> +    <xsl:copy-of select="@*"/> +    <xsl:apply-templates/> +  </xsl:copy> +</xsl:template> + +<!-- Support for TeX math in alt --> + +<xsl:template match="*" mode="collect.tex.math"> +  <xsl:call-template name="write.text.chunk"> +    <xsl:with-param name="filename" select="$tex.math.file"/> +    <xsl:with-param name="method" select="'text'"/> +    <xsl:with-param name="content"> +      <xsl:choose> +        <xsl:when test="$tex.math.in.alt = 'plain'"> +          <xsl:call-template name="tex.math.plain.head"/> +          <xsl:apply-templates select="." mode="collect.tex.math.plain"/> +          <xsl:call-template name="tex.math.plain.tail"/> +        </xsl:when> +        <xsl:when test="$tex.math.in.alt = 'latex'"> +          <xsl:call-template name="tex.math.latex.head"/> +          <xsl:apply-templates select="." mode="collect.tex.math.latex"/> +          <xsl:call-template name="tex.math.latex.tail"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            Unsupported TeX math notation:  +            <xsl:value-of select="$tex.math.in.alt"/> +          </xsl:message> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:with-param> +    <xsl:with-param name="encoding" select="$chunker.output.encoding"/> +  </xsl:call-template> +</xsl:template> + +<!-- PlainTeX --> + +<xsl:template name="tex.math.plain.head"> +  <xsl:text>\nopagenumbers  +</xsl:text> +</xsl:template> + +<xsl:template name="tex.math.plain.tail"> +  <xsl:text>\bye  +</xsl:text> +</xsl:template> + +<xsl:template match="inlineequation" mode="collect.tex.math.plain"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="graphic"> +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select="graphic"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="select.mediaobject.filename"> +          <xsl:with-param name="olist" select="inlinemediaobject/*"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:variable name="output.delims"> +    <xsl:call-template name="tex.math.output.delims"/> +  </xsl:variable> +  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/> +  <xsl:if test="$tex"> +    <xsl:text>\special{dvi2bitmap outputfile </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:text>}  +</xsl:text> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$</xsl:text> +    </xsl:if> +    <xsl:value-of select="$tex"/> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$  +</xsl:text> +    </xsl:if> +    <xsl:text>\vfill\eject  +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="equation|informalequation" mode="collect.tex.math.plain"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="graphic"> +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select="graphic"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="select.mediaobject.filename"> +          <xsl:with-param name="olist" select="mediaobject/*"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:variable name="output.delims"> +    <xsl:call-template name="tex.math.output.delims"/> +  </xsl:variable> +  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/> +  <xsl:if test="$tex"> +    <xsl:text>\special{dvi2bitmap outputfile </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:text>}  +</xsl:text> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$$</xsl:text> +    </xsl:if> +    <xsl:value-of select="$tex"/> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$$  +</xsl:text> +    </xsl:if> +    <xsl:text>\vfill\eject  +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="text()" mode="collect.tex.math.plain"/> + +<!-- LaTeX --> + +<xsl:template name="tex.math.latex.head"> +  <xsl:text>\documentclass{article}  +</xsl:text> +  <xsl:text>\pagestyle{empty}  +</xsl:text> +  <xsl:text>\begin{document}  +</xsl:text> +</xsl:template> + +<xsl:template name="tex.math.latex.tail"> +  <xsl:text>\end{document}  +</xsl:text> +</xsl:template> + +<xsl:template match="inlineequation" mode="collect.tex.math.latex"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="graphic"> +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select="graphic"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="select.mediaobject.filename"> +          <xsl:with-param name="olist" select="inlinemediaobject/*"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:variable name="output.delims"> +    <xsl:call-template name="tex.math.output.delims"/> +  </xsl:variable> +  <xsl:variable name="tex" select="alt[@role='tex'] | inlinemediaobject/textobject[@role='tex']"/> +  <xsl:if test="$tex"> +    <xsl:text>\special{dvi2bitmap outputfile </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:text>}  +</xsl:text> +    <xsl:if test="$output.delims != 0">   +      <xsl:text>$</xsl:text> +    </xsl:if> +    <xsl:value-of select="$tex"/> +    <xsl:if test="$output.delims != 0">   +      <xsl:text>$  +</xsl:text> +    </xsl:if> +    <xsl:text>\newpage  +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="equation|informalequation" mode="collect.tex.math.latex"> +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="graphic"> +        <xsl:call-template name="mediaobject.filename"> +          <xsl:with-param name="object" select="graphic"/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="select.mediaobject.filename"> +          <xsl:with-param name="olist" select="mediaobject/*"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:variable name="output.delims"> +    <xsl:call-template name="tex.math.output.delims"/> +  </xsl:variable> +  <xsl:variable name="tex" select="alt[@role='tex'] | mediaobject/textobject[@role='tex']"/> +  <xsl:if test="$tex"> +    <xsl:text>\special{dvi2bitmap outputfile </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:text>}  +</xsl:text> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$$</xsl:text> +    </xsl:if> +    <xsl:value-of select="$tex"/> +    <xsl:if test="$output.delims != 0"> +      <xsl:text>$$  +</xsl:text> +    </xsl:if> +    <xsl:text>\newpage  +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="text()" mode="collect.tex.math.latex"/> + +<!-- Extracting image filename from mediaobject and graphic elements --> + +<xsl:template name="select.mediaobject.filename"> +  <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/> + +  <xsl:variable name="mediaobject.index"> +    <xsl:call-template name="select.mediaobject.index"> +      <xsl:with-param name="olist" select="$olist"/> +      <xsl:with-param name="count" select="1"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:if test="$mediaobject.index != ''"> +    <xsl:call-template name="mediaobject.filename"> +      <xsl:with-param name="object" select="$olist[position() = $mediaobject.index]"/> +    </xsl:call-template> +  </xsl:if> +</xsl:template> + +<xsl:template name="tex.math.output.delims"> +  <xsl:variable name="pi.delims"> +    <xsl:call-template name="pi.dbtex_delims"> +      <xsl:with-param name="node" select="descendant-or-self::*"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="result"> +    <xsl:choose> +      <xsl:when test="$pi.delims = 'no'">0</xsl:when> +      <xsl:when test="$pi.delims = '' and $tex.math.delims = 0">0</xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:value-of select="$result"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/oldchunker.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/oldchunker.xsl.svn-base new file mode 100644 index 0000000..5f7c42a --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/oldchunker.xsl.svn-base @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="http://xml.apache.org/xalan/redirect" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.1" exclude-result-prefixes="doc" extension-element-prefixes="saxon redirect lxslt"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- This stylesheet works with Saxon and Xalan; for XT use xtchunker.xsl --> + +<!-- ==================================================================== --> + +<xsl:param name="default.encoding" select="'ISO-8859-1'" doc:type="string"/> + +<doc:param xmlns="" name="default.encoding"> +<refpurpose xmlns="http://www.w3.org/1999/xhtml">Encoding used in generated HTML pages</refpurpose> +<refdescription xmlns="http://www.w3.org/1999/xhtml"> +<para>This encoding is used in files generated by chunking stylesheet. Currently +only Saxon is able to change output encoding. +</para> +</refdescription> +</doc:param> + +<!-- ==================================================================== --> + +<xsl:param name="saxon.character.representation" select="'entity;decimal'" doc:type="string"/> + +<doc:param xmlns="" name="saxon.character.representation"> +<refpurpose xmlns="http://www.w3.org/1999/xhtml">Saxon character representation used in generated HTML pages</refpurpose> +<refdescription xmlns="http://www.w3.org/1999/xhtml"> +<para>This character representation is used in files generated by chunking stylesheet. If +you want to suppress entity references for characters with direct representation  +in default.encoding, set this parameter to value <literal>native</literal>.  +</para> +</refdescription> +</doc:param> + +<!-- ==================================================================== --> + +<xsl:template name="make-relative-filename"> +  <xsl:param name="base.dir" select="'./'"/> +  <xsl:param name="base.name" select="''"/> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> + +  <xsl:choose> +    <xsl:when test="contains($vendor, 'SAXON')"> +      <!-- Saxon doesn't make the chunks relative --> +      <xsl:value-of select="concat($base.dir,$base.name)"/> +    </xsl:when> +    <xsl:when test="contains($vendor, 'Apache')"> +      <!-- Xalan doesn't make the chunks relative --> +      <xsl:value-of select="concat($base.dir,$base.name)"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message terminate="yes"> +        <xsl:text>Chunking isn't supported with </xsl:text> +        <xsl:value-of select="$vendor"/> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="write.chunk"> +  <xsl:param name="filename" select="''"/> +  <xsl:param name="method" select="'html'"/> +  <xsl:param name="encoding" select="$default.encoding"/> +  <xsl:param name="indent" select="'no'"/> +  <xsl:param name="content" select="''"/> + +  <xsl:message> +    <xsl:text>Writing </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:if test="name(.) != ''"> +      <xsl:text> for </xsl:text> +      <xsl:value-of select="name(.)"/> +      <xsl:if test="@id"> +        <xsl:text>(</xsl:text> +        <xsl:value-of select="@id"/> +        <xsl:text>)</xsl:text> +      </xsl:if> +    </xsl:if> +  </xsl:message> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> + +  <xsl:choose> +    <xsl:when test="contains($vendor, 'SAXON 6.2')"> +      <!-- Saxon 6.2.x uses xsl:document --> +      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}"> +        <xsl:copy-of select="$content"/> +      </xsl:document> +    </xsl:when> +    <xsl:when test="contains($vendor, 'SAXON')"> +      <!-- Saxon uses saxon:output --> +      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" saxon:character-representation="{$saxon.character.representation}"> +        <xsl:copy-of select="$content"/> +      </saxon:output> +    </xsl:when> +    <xsl:when test="contains($vendor, 'Apache')"> +      <!-- Xalan uses redirect --> +      <redirect:write file="{$filename}"> +        <xsl:copy-of select="$content"/> +      </redirect:write> +    </xsl:when> +    <xsl:otherwise> +      <!-- it doesn't matter since we won't be making chunks... --> +      <xsl:message terminate="yes"> +        <xsl:text>Can't make chunks with </xsl:text> +        <xsl:value-of select="$vendor"/> +        <xsl:text>'s processor.</xsl:text> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="write.chunk.with.doctype"> +  <xsl:param name="filename" select="''"/> +  <xsl:param name="method" select="'html'"/> +  <xsl:param name="encoding" select="$default.encoding"/> +  <xsl:param name="indent" select="'no'"/> +  <xsl:param name="doctype-public" select="''"/> +  <xsl:param name="doctype-system" select="''"/> +  <xsl:param name="content" select="''"/> + +  <xsl:message> +    <xsl:text>Writing </xsl:text> +    <xsl:value-of select="$filename"/> +    <xsl:if test="name(.) != ''"> +      <xsl:text> for </xsl:text> +      <xsl:value-of select="name(.)"/> +    </xsl:if> +  </xsl:message> + +  <xsl:variable name="vendor" select="system-property('xsl:vendor')"/> + +  <xsl:choose> +    <xsl:when test="contains($vendor, 'SAXON 6.2')"> +      <!-- Saxon 6.2.x uses xsl:document --> +      <xsl:document href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}"> +        <xsl:copy-of select="$content"/> +      </xsl:document> +    </xsl:when> +    <xsl:when test="contains($vendor, 'SAXON')"> +      <!-- Saxon uses saxon:output --> +      <saxon:output file="{$filename}" href="{$filename}" method="{$method}" encoding="{$encoding}" indent="{$indent}" doctype-public="{$doctype-public}" doctype-system="{$doctype-system}" saxon:character-representation="{$saxon.character.representation}"> +        <xsl:copy-of select="$content"/> +      </saxon:output> +    </xsl:when> +    <xsl:when test="contains($vendor, 'Apache')"> +      <!-- Xalan uses redirect --> +      <redirect:write file="{$filename}"> +        <xsl:copy-of select="$content"/> +      </redirect:write> +    </xsl:when> +    <xsl:otherwise> +      <!-- it doesn't matter since we won't be making chunks... --> +      <xsl:message terminate="yes"> +        <xsl:text>Can't make chunks with </xsl:text> +        <xsl:value-of select="$vendor"/> +        <xsl:text>'s processor.</xsl:text> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/onechunk.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/onechunk.xsl.svn-base new file mode 100644 index 0000000..2b05307 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/onechunk.xsl.svn-base @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="chunk.xsl"/> + +<!-- Ok, using the onechunk parameter makes this all work again. --> +<!-- It does have the disadvantage that it only works for documents that have --> +<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. --> +<!-- Ideally, onechunk would let anything be a chunk. But not today. --> + +<xsl:param name="onechunk" select="1"/> +<xsl:param name="suppress.navigation">1</xsl:param> + +<xsl:template name="href.target.uri"> +  <xsl:param name="object" select="."/> +  <xsl:text>#</xsl:text> +  <xsl:call-template name="object.id"> +    <xsl:with-param name="object" select="$object"/> +  </xsl:call-template> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/param.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/param.xsl.svn-base new file mode 100644 index 0000000..1eee787 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/param.xsl.svn-base @@ -0,0 +1,414 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<!-- This file is generated from param.xweb --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:param name="admon.graphics.extension">.png</xsl:param> +<xsl:param name="admon.graphics" select="0"/> +<xsl:param name="admon.graphics.path">images/</xsl:param> +<xsl:param name="admon.style"> +  <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text> +</xsl:param> +<xsl:param name="admon.textlabel" select="1"/> +<xsl:param name="annotate.toc" select="1"/> +<xsl:param name="annotation.css"> +/* ====================================================================== +   Annotations +*/ + +div.annotation-list  { visibility: hidden; +                     } + +div.annotation-nocss { position: absolute; +                       visibility: hidden; +                     } + +div.annotation-popup { position: absolute; +                       z-index: 4; +                       visibility: hidden; +                       padding: 0px; +                       margin: 2px; +                       border-style: solid; +                       border-width: 1px; +                       width: 200px; +		       background-color: white; +                     } + +div.annotation-title { padding: 1px; +                       font-weight: bold; +                       border-bottom-style: solid; +                       border-bottom-width: 1px; +		       color: white; +		       background-color: black; +                     } + +div.annotation-body  { padding: 2px; +                     } + +div.annotation-body p { margin-top: 0px; +                        padding-top: 0px; +                      } + +div.annotation-close { position: absolute; +                       top: 2px; +                       right: 2px; +                     } +</xsl:param> + +<xsl:param name="annotation.js"> +<xsl:text>http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js</xsl:text></xsl:param> + +<xsl:param name="annotation.graphic.open">http://docbook.sourceforge.net/release/images/annot-open.png</xsl:param> +<xsl:param name="annotation.graphic.close"> +http://docbook.sourceforge.net/release/images/annot-close.png</xsl:param> +<xsl:param name="annotation.support" select="0"/> +<xsl:param name="appendix.autolabel">A</xsl:param> +<xsl:param name="author.othername.in.middle" select="1"/> +<xsl:param name="autotoc.label.separator">. </xsl:param> +<xsl:param name="autotoc.label.in.hyperlink" select="1"/> +<xsl:param name="base.dir"/> +<xsl:param name="biblioentry.item.separator">. </xsl:param> +<xsl:param name="bibliography.collection">http://docbook.sourceforge.net/release/bibliography/bibliography.xml</xsl:param> + +<xsl:param name="bibliography.numbered" select="0"/> +<xsl:param name="bibliography.style">normal</xsl:param> +<xsl:param name="blurb.on.titlepage.enabled" select="0"/> +<xsl:param name="bridgehead.in.toc" select="0"/> +<xsl:param name="callout.defaultcolumn">60</xsl:param> +<xsl:param name="callout.graphics.extension">.png</xsl:param> + +<xsl:param name="callout.graphics" select="1"/> +<xsl:param name="callout.graphics.number.limit">15</xsl:param> + +<xsl:param name="callout.graphics.path">images/callouts/</xsl:param> +<xsl:param name="callout.list.table" select="1"/> +<xsl:param name="callout.unicode" select="0"/> +<xsl:param name="callout.unicode.number.limit">10</xsl:param> +<xsl:param name="callout.unicode.start.character">10102</xsl:param> +<xsl:param name="callouts.extension" select="1"/> +<xsl:param name="chapter.autolabel" select="1"/> +<xsl:param name="chunk.append"/> +<xsl:param name="chunk.first.sections" select="0"/> +<xsl:param name="chunk.quietly" select="0"/> +<xsl:param name="chunk.section.depth" select="1"/> +<xsl:param name="chunk.toc"/> +<xsl:param name="chunk.tocs.and.lots" select="0"/> +<xsl:param name="chunk.tocs.and.lots.has.title" select="1"/> +<xsl:param name="chunk.separate.lots" select="0"/> +<xsl:param name="citerefentry.link" select="0"/> +<xsl:param name="collect.xref.targets">no</xsl:param> +<xsl:param name="component.label.includes.part.label" select="0"/> +<xsl:param name="contrib.inline.enabled">1</xsl:param> +<xsl:param name="css.decoration" select="1"/> +<xsl:param name="current.docid"/> +<xsl:param name="default.float.class"> +  <xsl:choose> +    <xsl:when test="contains($stylesheet.result.type,'html')">left</xsl:when> +    <xsl:otherwise>before</xsl:otherwise> +  </xsl:choose> +</xsl:param> +<xsl:param name="default.image.width"/> +<xsl:param name="default.table.width"/> +<xsl:param name="default.table.frame">all</xsl:param> +<xsl:param name="draft.mode">maybe</xsl:param> +<xsl:param name="draft.watermark.image">http://docbook.sourceforge.net/release/images/draft.png</xsl:param> +<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param> +<xsl:param name="ebnf.table.border" select="1"/> +<xsl:param name="ebnf.assignment"> +<code>::=</code> +</xsl:param> + +<xsl:param name="ebnf.statement.terminator"/> + +<xsl:param name="eclipse.autolabel" select="0"/> +<xsl:param name="eclipse.plugin.name">DocBook Online Help Sample</xsl:param> +<xsl:param name="eclipse.plugin.id">com.example.help</xsl:param> +<xsl:param name="eclipse.plugin.provider">Example provider</xsl:param> +<xsl:param name="editedby.enabled">1</xsl:param> +<xsl:param name="email.delimiters.enabled" select="1"/> +<xsl:param name="emphasis.propagates.style" select="1"/> +<xsl:param name="entry.propagates.style" select="1"/> +<xsl:param name="firstterm.only.link" select="0"/> +<xsl:param name="footer.rule" select="1"/> +<xsl:param name="footnote.number.format">1</xsl:param> +<xsl:param name="footnote.number.symbols"/> +<xsl:param name="formal.procedures" select="1"/> +<xsl:param name="formal.title.placement"> +figure before +example before +equation before +table before +procedure before +task before +</xsl:param> +<xsl:param name="funcsynopsis.decoration" select="1"/> +<xsl:param name="funcsynopsis.style">kr</xsl:param> +<xsl:param name="funcsynopsis.tabular.threshold">40</xsl:param> +<xsl:param name="function.parens" select="0"/> +<xsl:param name="generate.id.attributes" select="0"/> +<xsl:param name="generate.index" select="1"/> +<xsl:param name="generate.legalnotice.link" select="0"/> +<xsl:param name="generate.revhistory.link" select="0"/> +<xsl:param name="generate.manifest" select="0"/> +<xsl:param name="generate.meta.abstract" select="1"/> +<xsl:param name="generate.section.toc.level" select="0"/> +<xsl:param name="generate.toc"> +appendix  toc,title +article/appendix  nop +article   toc,title +book      toc,title,figure,table,example,equation +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:param name="glossary.collection"/> +<xsl:param name="glossary.sort" select="0"/> +<xsl:param name="glossentry.show.acronym">no</xsl:param> +<xsl:param name="glossterm.auto.link" select="0"/> +<xsl:param name="graphic.default.extension"/> +<xsl:param name="graphicsize.extension" select="1"/> +<xsl:param name="graphicsize.use.img.src.path" select="0"/> +<xsl:param name="header.rule" select="1"/> +<xsl:param name="highlight.default.language"/> +<xsl:param name="highlight.source" select="0"/> +<xsl:param name="html.append"/> +<xsl:param name="html.base"/> +<xsl:param name="html.cellpadding"/> +<xsl:param name="html.cellspacing"/> +<xsl:param name="html.cleanup" select="1"/> +<xsl:param name="html.ext">.html</xsl:param> +<xsl:param name="html.extra.head.links" select="0"/> +<xsl:param name="html.head.legalnotice.link.types">copyright</xsl:param> +<xsl:param name="html.head.legalnotice.link.multiple" select="1"/> +<xsl:param name="html.longdesc" select="1"/> +<xsl:param name="html.longdesc.link" select="$html.longdesc"/> +<xsl:param name="html.stylesheet"/> +<xsl:param name="html.stylesheet.type">text/css</xsl:param> +<xsl:param name="htmlhelp.alias.file">alias.h</xsl:param> +<xsl:param name="htmlhelp.autolabel" select="0"/> +<xsl:param name="htmlhelp.button.back" select="1"/> +<xsl:param name="htmlhelp.button.forward" select="0"/> +<xsl:param name="htmlhelp.button.hideshow" select="1"/> +<xsl:param name="htmlhelp.button.home" select="0"/> +<xsl:param name="htmlhelp.button.home.url"/> +<xsl:param name="htmlhelp.button.jump1" select="0"/> +<xsl:param name="htmlhelp.button.jump1.title">User1</xsl:param> +<xsl:param name="htmlhelp.button.jump1.url"/> +<xsl:param name="htmlhelp.button.jump2" select="0"/> +<xsl:param name="htmlhelp.button.jump2.title">User2</xsl:param> +<xsl:param name="htmlhelp.button.jump2.url"/> +<xsl:param name="htmlhelp.button.locate" select="0"/> +<xsl:param name="htmlhelp.button.next" select="1"/> +<xsl:param name="htmlhelp.button.options" select="1"/> +<xsl:param name="htmlhelp.button.prev" select="1"/> +<xsl:param name="htmlhelp.button.print" select="1"/> +<xsl:param name="htmlhelp.button.refresh" select="0"/> +<xsl:param name="htmlhelp.button.stop" select="0"/> +<xsl:param name="htmlhelp.button.zoom" select="0"/> +<xsl:param name="htmlhelp.chm">htmlhelp.chm</xsl:param> +<xsl:param name="htmlhelp.default.topic"/> +<xsl:param name="htmlhelp.display.progress" select="1"/> +<xsl:param name="htmlhelp.encoding">iso-8859-1</xsl:param> +<xsl:param name="htmlhelp.enhanced.decompilation" select="0"/> +<xsl:param name="htmlhelp.enumerate.images" select="0"/> +<xsl:param name="htmlhelp.force.map.and.alias" select="0"/> +<xsl:param name="htmlhelp.hhc.binary" select="1"/> +<xsl:param name="htmlhelp.hhc.folders.instead.books" select="1"/> +<xsl:param name="htmlhelp.hhc">toc.hhc</xsl:param> +<xsl:param name="htmlhelp.hhc.section.depth">5</xsl:param> +<xsl:param name="htmlhelp.hhc.show.root" select="1"/> +<xsl:param name="htmlhelp.hhc.width"/> +<xsl:param name="htmlhelp.hhk">index.hhk</xsl:param> +<xsl:param name="htmlhelp.hhp">htmlhelp.hhp</xsl:param> +<xsl:param name="htmlhelp.hhp.tail"/> +<xsl:param name="htmlhelp.hhp.window">Main</xsl:param> +<xsl:param name="htmlhelp.hhp.windows"/> +<xsl:param name="htmlhelp.map.file">context.h</xsl:param> +<xsl:param name="htmlhelp.only" select="0"/> +<xsl:param name="htmlhelp.remember.window.position" select="0"/> +<xsl:param name="htmlhelp.show.advanced.search" select="0"/> +<xsl:param name="htmlhelp.show.favorities" select="0"/> +<xsl:param name="htmlhelp.show.menu" select="0"/> +<xsl:param name="htmlhelp.show.toolbar.text" select="1"/> +<xsl:param name="htmlhelp.title"/> +<xsl:param name="htmlhelp.use.hhk" select="0"/> +<xsl:param name="htmlhelp.window.geometry"/> +<xsl:param name="img.src.path"/> +<xsl:param name="id.warnings" select="0"/> +<xsl:param name="index.method">basic</xsl:param> +<xsl:param name="index.on.role" select="0"/> +<xsl:param name="index.on.type" select="0"/> +<xsl:param name="index.number.separator"/> +<xsl:param name="index.term.separator"/> +<xsl:param name="index.range.separator"/> +<xsl:param name="index.prefer.titleabbrev" select="0"/> +<xsl:param name="ignore.image.scaling" select="0"/> +<xsl:param name="inherit.keywords" select="1"/> +<xsl:param name="insert.xref.page.number">no</xsl:param> +<xsl:param name="javahelp.encoding">iso-8859-1</xsl:param> +<xsl:param name="keep.relative.image.uris" select="1"/> + +<xsl:param name="l10n.gentext.default.language">en</xsl:param> +<xsl:param name="l10n.gentext.language"/> +<xsl:param name="l10n.gentext.use.xref.language" select="0"/> +<xsl:param name="l10n.lang.value.rfc.compliant" select="1"/> +<xsl:param name="label.from.part" select="0"/> +<xsl:param name="linenumbering.everyNth">5</xsl:param> +<xsl:param name="linenumbering.extension" select="1"/> +<xsl:param name="linenumbering.separator"><xsl:text> </xsl:text></xsl:param> +<xsl:param name="linenumbering.width">3</xsl:param> +<xsl:param name="link.mailto.url"/> +<xsl:param name="make.graphic.viewport" select="1"/> +<xsl:param name="make.single.year.ranges" select="0"/> +<xsl:param name="make.valid.html" select="1"/> +<xsl:param name="make.year.ranges" select="0"/> +    <xsl:param name="manifest">HTML.manifest</xsl:param> +     +<xsl:param name="manifest.in.base.dir" select="0"/> +<xsl:param name="manual.toc"/> +<xsl:param name="menuchoice.menu.separator"> → </xsl:param> +<xsl:param name="menuchoice.separator">+</xsl:param> +<xsl:param name="navig.graphics.extension">.gif</xsl:param> +<xsl:param name="navig.graphics" select="0"/> +<xsl:param name="navig.graphics.path">images/</xsl:param> +<xsl:param name="navig.showtitles">1</xsl:param> +<xsl:param name="nominal.image.depth" select="4 * $pixels.per.inch"/> +<xsl:param name="nominal.image.width" select="6 * $pixels.per.inch"/> +<xsl:param name="nominal.table.width">6in</xsl:param> +<xsl:param name="olink.base.uri"/> +<xsl:param name="olink.debug" select="0"/> +<xsl:attribute-set name="olink.properties"> +  <xsl:attribute name="show-destination">replace</xsl:attribute> +</xsl:attribute-set> +<xsl:param name="insert.olink.page.number">no</xsl:param> +<xsl:param name="insert.olink.pdf.frag" select="0"/> +<xsl:param name="prefer.internal.olink" select="0"/> +<xsl:param name="olink.lang.fallback.sequence"/> +<xsl:param name="olink.doctitle">no</xsl:param>  +<xsl:param name="olink.fragid">fragid=</xsl:param> +<xsl:param name="olink.outline.ext">.olink</xsl:param> +<xsl:param name="olink.pubid">pubid</xsl:param> +  <xsl:param name="olink.resolver">/cgi-bin/olink</xsl:param> +<xsl:param name="olink.sysid">sysid</xsl:param> +<xsl:param name="abstract.notitle.enabled" select="0"/> +<xsl:param name="othercredit.like.author.enabled">0</xsl:param> +<xsl:param name="para.propagates.style" select="1"/> +<xsl:param name="part.autolabel">I</xsl:param> +<xsl:param name="phrase.propagates.style" select="1"/> +<xsl:param name="pixels.per.inch">90</xsl:param> +<xsl:param name="points.per.em">10</xsl:param> +<xsl:param name="preface.autolabel" select="0"/> +<xsl:param name="preferred.mediaobject.role"/> +<xsl:param name="process.empty.source.toc" select="0"/> +<xsl:param name="process.source.toc" select="0"/> +<xsl:param name="profile.arch"/> +<xsl:param name="profile.audience"/> +<xsl:param name="profile.attribute"/> +<xsl:param name="profile.condition"/> +<xsl:param name="profile.conformance"/> +<xsl:param name="profile.lang"/> +<xsl:param name="profile.os"/> +<xsl:param name="profile.revision"/> +<xsl:param name="profile.revisionflag"/> +<xsl:param name="profile.role"/> +<xsl:param name="profile.security"/> +<xsl:param name="profile.separator">;</xsl:param> +<xsl:param name="profile.status"/> +<xsl:param name="profile.userlevel"/> +<xsl:param name="profile.value"/> +<xsl:param name="profile.vendor"/> +<xsl:param name="profile.wordsize"/> +<xsl:param name="punct.honorific">.</xsl:param> +<xsl:param name="qanda.defaultlabel">number</xsl:param> +<xsl:param name="qanda.inherit.numeration" select="1"/> +<xsl:param name="qanda.in.toc" select="0"/> +<xsl:param name="qanda.nested.in.toc" select="0"/> +<xsl:param name="qandadiv.autolabel" select="1"/> +<xsl:param name="refentry.generate.name" select="1"/> +<xsl:param name="refentry.generate.title" select="0"/> +<xsl:param name="refentry.separator" select="1"/> +<xsl:param name="refentry.xref.manvolnum" select="1"/> +  <xsl:param name="reference.autolabel">I</xsl:param> +<xsl:param name="refclass.suppress" select="0"/> +<xsl:param name="root.filename">index</xsl:param> +<xsl:param name="rootid"/> +<xsl:param name="runinhead.default.title.end.punct">.</xsl:param> +<xsl:param name="runinhead.title.end.punct">.!?:</xsl:param> +<xsl:param name="section.autolabel" select="0"/> +<xsl:param name="section.autolabel.max.depth">8</xsl:param> +<xsl:param name="section.label.includes.component.label" select="0"/> +<xsl:param name="segmentedlist.as.table" select="0"/> +<xsl:param name="shade.verbatim" select="0"/> +<xsl:attribute-set name="shade.verbatim.style"> +  <xsl:attribute name="border">0</xsl:attribute> +  <xsl:attribute name="bgcolor">#E0E0E0</xsl:attribute> +</xsl:attribute-set> + +<xsl:param name="show.comments" select="1"/> +<xsl:param name="show.revisionflag" select="0"/> +<xsl:param name="simplesect.in.toc" select="0"/> +<xsl:param name="spacing.paras" select="0"/> +<xsl:param name="suppress.footer.navigation">0</xsl:param> +<xsl:param name="suppress.header.navigation" select="0"/> +<xsl:param name="suppress.navigation" select="0"/> +<xsl:param name="table.borders.with.css" select="0"/> +<xsl:param name="table.cell.border.color"/> + +<xsl:param name="table.cell.border.style">solid</xsl:param> +<xsl:param name="table.cell.border.thickness">0.5pt</xsl:param> +<xsl:param name="table.footnote.number.format">a</xsl:param> +<xsl:param name="table.footnote.number.symbols"/> +<xsl:param name="table.frame.border.color"/> + +<xsl:param name="table.frame.border.style">solid</xsl:param> +<xsl:param name="table.frame.border.thickness">0.5pt</xsl:param> +<xsl:param name="tablecolumns.extension" select="1"/> + <xsl:param name="target.database.document">olinkdb.xml</xsl:param> +<xsl:param name="targets.filename">target.db</xsl:param> +<xsl:param name="textdata.default.encoding"/> +<xsl:param name="tex.math.delims" select="1"/> +<xsl:param name="tex.math.file">tex-math-equations.tex</xsl:param> +<xsl:param name="tex.math.in.alt"/> +  <xsl:param name="textinsert.extension" select="1"/> +<xsl:param name="toc.list.type">dl</xsl:param> +<xsl:param name="toc.section.depth">2</xsl:param> +<xsl:param name="toc.max.depth">8</xsl:param> +<xsl:param name="ulink.target">_top</xsl:param> +<xsl:param name="use.embed.for.svg" select="0"/> +<xsl:param name="use.extensions" select="0"/> +<xsl:param name="use.id.as.filename" select="0"/> +<xsl:param name="use.local.olink.style" select="0"/>  +<xsl:param name="use.role.as.xrefstyle" select="1"/> +<xsl:param name="use.role.for.mediaobject" select="1"/> +<xsl:param name="use.svg" select="1"/> +<xsl:param name="variablelist.as.table" select="0"/> +<xsl:param name="variablelist.term.separator">, </xsl:param> +<xsl:param name="variablelist.term.break.after">0</xsl:param> +<xsl:param name="xref.with.number.and.title" select="1"/> +<xsl:param name="xref.label-title.separator">: </xsl:param> +<xsl:param name="xref.label-page.separator"><xsl:text> </xsl:text></xsl:param> +<xsl:param name="xref.title-page.separator"><xsl:text> </xsl:text></xsl:param> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/pi.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/pi.xsl.svn-base new file mode 100644 index 0000000..5bd4d88 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/pi.xsl.svn-base @@ -0,0 +1,1182 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<doc:reference xmlns=""><info xmlns="http://www.w3.org/1999/xhtml"><title>HTML Processing Instruction Reference</title> +    <releaseinfo role="meta"> +      $Id$ +    </releaseinfo> +  </info> +  <partintro xmlns="http://www.w3.org/1999/xhtml" xml:id="partintro"> +    <title>Introduction</title> +    <para>This is generated reference documentation for all +      user-specifiable processing instructions (PIs) in the DocBook +      XSL stylesheets for HTML output. +      <note> +        <para>You add these PIs at particular points in a document to +          cause specific “exceptions” to formatting/output behavior. To +          make global changes in formatting/output behavior across an +          entire document, it’s better to do it by setting an +          appropriate stylesheet parameter (if there is one).</para> +      </note> +    </para> +  </partintro> +</doc:reference> + +<!-- ==================================================================== --> + +<doc:pi xmlns="" name="dbhtml_background-color"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color for an image</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml background-color</tag> PI before or +      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>, +      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a +      sibling to the element, to set a background color for the +      image.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term> +        <listitem> +          <para>An HTML color value</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_background-color"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'background-color'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_bgcolor"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color on a table row or table cell</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml bgcolor</tag> PI as child of a table row +      or cell to set a background color for that table row or cell.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term> +        <listitem> +          <para>An HTML color value</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_bgcolor"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'bgcolor'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_cellpadding"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellpadding in table or qandaset output</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml cellpadding</tag> PI as a child of a +      <tag>table</tag> or <tag>qandaset</tag> to specify the value +      for the HTML <literal>cellpadding</literal> attribute in the +      output HTML table.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term> +        <listitem> +          <para>Specifies the cellpadding</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>html.cellpadding</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>, +      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_cellpadding"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'cellpadding'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_cellspacing"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellspacing in table or qandaset output</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml cellspacing</tag> PI as a child of a +      <tag>table</tag> or <tag>qandaset</tag> to specify the value +      for the HTML <literal>cellspacing</literal> attribute in the +      output HTML table.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term> +        <listitem> +          <para>Specifies the cellspacing</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>html.cellspacing</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>, +      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para> +    </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_cellspacing"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'cellspacing'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_class"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Set value of the class attribute for a table row</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml class</tag> PI as a child of a +      <tag>row</tag> to specify a <literal>class</literal> +      attribute and value in the HTML output for that row.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>class="<replaceable>name</replaceable>"</term> +        <listitem> +          <para>Specifies the class name</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_class"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'class'"/> +  </xsl:call-template> +</xsl:template>  + +<doc:pi xmlns="" name="dbhtml_dir"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a directory name in which to write files</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>When chunking output, use the <tag class="xmlpi">dbhtml dir</tag> PI +      as a child of a chunk source to cause the output of that +      chunk to be written to the specified directory; also, use it +      as a child of a <tag>mediaobject</tag> to specify a +      directory into which any long-description files for that +      <tag>mediaobject</tag> will be written.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>dir="<replaceable>path</replaceable>"</term> +        <listitem> +          <para>Specifies the pathname for the directory</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>base.dir</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_dir"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'dir'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_filename"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a filename for a chunk</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>When chunking output, use the <tag class="xmlpi">dbhtml filename</tag> +      PI as a child of a chunk source to specify a filename for +      the output file for that chunk.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>filename="<replaceable>path</replaceable>"</term> +        <listitem> +          <para>Specifies the filename for the file</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>use.id.as.filename</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_filename"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'filename'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_funcsynopsis-style"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a funcsynopsis</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml funcsynopsis-style</tag> PI as a child of +      a <tag>funcprototype</tag> or anywhere within a funcprototype +      control the presentation style for the <tag>funcsynopsis</tag> +      in output.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>funcsynopsis-style="kr"</term> +        <listitem> +          <para>Displays the <tag>funcprototype</tag> in K&R style</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>funcsynopsis-style="ansi"</term> +        <listitem> +          <para>Displays the <tag>funcprototype</tag> in ANSI style</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>funcsynopsis.style</parameter></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_funcsynopsis-style"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_img.src.path"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a path to the location of an image file</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml img.src.path</tag> PI before or +      after an image (<tag>graphic</tag>, +      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or +      <tag>videodata</tag> element) as a sibling to the element, +      to specify a path to the location of the image; in HTML +      output, the value specified for the +      <code>img.src.path</code> attribute is prepended to the +      filename.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term> +        <listitem> +          <para>Specifies the pathname to prepend to the name of the image file</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>img.src.path</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_img.src.path"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'img.src.path'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_label-width"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the label width for a qandaset</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml label-width</tag> PI as a child of a +      <tag>qandaset</tag> to specify the width of labels.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term> +        <listitem> +          <para>Specifies the label width (including units)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_label-width"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'label-width'"/> +  </xsl:call-template> +</xsl:template>  + +<doc:pi xmlns="" name="dbhtml_linenumbering.everyNth"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies interval for lines numbers in verbatims</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml linenumbering.everyNth</tag> PI as a child +      of a “verbatim” element – <tag>programlisting</tag>, +      <tag>screen</tag>, <tag>synopsis</tag> — to specify +      the interval at which lines are numbered.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term> +        <listitem> +          <para>Specifies numbering interval; a number is output +            before every <replaceable>N</replaceable>th line</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>linenumbering.everyNth</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_linenumbering.everyNth"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_linenumbering.separator"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text for line numbers in verbatims</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml linenumbering.separator</tag> PI as a child +      of a “verbatim” element – <tag>programlisting</tag>, +      <tag>screen</tag>, <tag>synopsis</tag> — to specify +      the separator text output between the line numbers and content.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term> +        <listitem> +          <para>Specifies the text (zero or more characters)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>linenumbering.separator</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_linenumbering.separator"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'linenumbering.separator'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_linenumbering.width"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies width for line numbers in verbatims</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml linenumbering.width</tag> PI as a child +      of a “verbatim” element – <tag>programlisting</tag>, +      <tag>screen</tag>, <tag>synopsis</tag> — to specify +      the width set aside for line numbers.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term> +        <listitem> +          <para>Specifies the width (inluding units)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>linenumbering.width</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_linenumbering.width"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'linenumbering.width'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_list-presentation"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a variablelist or +    segmentedlist</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml list-presentation</tag> PI as a child of +      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to +      control the presentation style for the list (to cause it, for +      example, to be displayed as a table).</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>list-presentation="list"</term> +        <listitem> +          <para>Displays the list as a list</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>list-presentation="table"</term> +        <listitem> +          <para>Displays the list as a table</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <itemizedlist> +      <listitem> +        <para><parameter>variablelist.as.table</parameter></para> +      </listitem> +      <listitem> +        <para><parameter>segmentedlist.as.table</parameter></para> +      </listitem> +    </itemizedlist> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_list-presentation"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'list-presentation'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_list-width"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width of a variablelist or simplelist</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml list-width</tag> PI as a child of a +      <tag>variablelist</tag> or a <tag>simplelist</tag> presented +      as a table, to specify the output width.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term> +        <listitem> +          <para>Specifies the output width (including units)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_list-width"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'list-width'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_row-height"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the height for a table row</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml row-height</tag> PI as a child of a +      <tag>row</tag> to specify the height of the row.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term> +        <listitem> +          <para>Specifies the label height (including units)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_row-height"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'row-height'"/> +  </xsl:call-template> +</xsl:template>  + +<doc:pi xmlns="" name="dbhtml_start"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">(obsolete) Sets the starting number on an ordered list</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para><emphasis>This PI is obsolete</emphasis>. The intent of +      this PI was to provide a means for setting a specific starting +      number for an ordered list. Instead of this PI, set a value +      for the <literal>override</literal> attribute on the first +      <tag>listitem</tag> in the list; that will have the same +      effect as what this PI was intended for.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>start="<replaceable>character</replaceable>"</term> +        <listitem> +          <para>Specifies the character to use as the starting +            number; use 0-9, a-z, A-Z, or lowercase or uppercase +            Roman numerals</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_start"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="pi-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'start'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_table-summary"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies summary for table, variablelist, segmentedlist, or qandaset output</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml table-summary</tag> PI as a child of +      a <tag>table</tag>, <tag>variablelist</tag>, +      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify +      the text for the HTML <literal>summary</literal> attribute +      in the output HTML table.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term> +        <listitem> +          <para>Specifies the summary text (zero or more characters)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>, +      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_table-summary"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'table-summary'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_table-width"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width for a table</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml table-width</tag> PI as a child of a +      <tag>table</tag> to specify the width of the table in +      output.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term> +        <listitem> +          <para>Specifies the table width (including units or as a percentage)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>default.table.width</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_table-width"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'table-width'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_term-presentation"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets character formatting for terms in a variablelist</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml term-presentation</tag> PI as a child +      of a <tag>variablelist</tag> to set character formatting for +      the <tag>term</tag> output of the list.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term> +        <listitem> +          <para>Specifies that terms are displayed in bold</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term> +        <listitem> +          <para>Specifies that terms are displayed in italic</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term> +        <listitem> +          <para>Specifies that terms are displayed in bold-italic</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_term-presentation"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'term-presentation'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_term-separator"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text among terms in a varlistentry</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml term-separator</tag> PI as a child +      of a <tag>variablelist</tag> to specify the separator text +      among <tag>term</tag> instances.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term> +        <listitem> +          <para>Specifies the text (zero or more characters)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>variablelist.term.separator</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_term-separator"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'term-separator'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_term-width"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the term width for a variablelist</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml term-width</tag> PI as a child of a +      <tag>variablelist</tag> to specify the width for +      <tag>term</tag> output.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term> +        <listitem> +          <para>Specifies the term width (including units)</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_term-width"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'term-width'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml_toc"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies whether a TOC should be generated for a qandaset</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml toc</tag> PI as a child of a +      <tag>qandaset</tag> to specify whether a table of contents +      (TOC) is generated for the <tag>qandaset</tag>.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>toc="0"</term> +        <listitem> +          <para>If zero, no TOC is generated</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>toc="1"</term> +        <listitem> +          <para>If <code>1</code> (or any non-zero value), +            a TOC is generated</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>, +      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml_toc"> +  <xsl:param name="node" select="."/> +  <xsl:call-template name="dbhtml-attribute"> +    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/> +    <xsl:with-param name="attribute" select="'toc'"/> +  </xsl:call-template> +</xsl:template> + +<doc:pi xmlns="" name="dbcmdlist"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of commands</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbcmdlist</tag> PI as the child of any +      element (for example, <tag>refsynopsisdiv</tag>) containing multiple +      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational +      “command list” will be generated at the top of output for that +      element, enabling users to quickly jump +      to each command synopsis.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <para>[No parameters]</para> +  </refparameter> +</doc:pi> +<xsl:template name="pi.dbcmdlist"> +  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/> +  <xsl:if test="count($cmdsynopses)<1"> +    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text> +    </xsl:message> +  </xsl:if> +  <dl> +    <xsl:call-template name="process.cmdsynopsis.list"> +      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/> +    </xsl:call-template> +  </dl> +</xsl:template> + +<doc:pi xmlns="" name="dbfunclist"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of functions</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbfunclist</tag> PI as the child of any +      element (for example, <tag>refsynopsisdiv</tag>) containing multiple +      <tag>funcsynopsis</tag> instances; a hyperlinked +      navigational “function list” will be generated at the top of +      output for that element, enabling users to quickly +      jump to to each function synopsis.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <para>[No parameters]</para> +  </refparameter> +</doc:pi> +<xsl:template name="pi.dbfunclist"> +  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/> +  <xsl:if test="count($funcsynopses)<1"> +    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text> +    </xsl:message> +  </xsl:if> +  <dl> +    <xsl:call-template name="process.funcsynopsis.list"> +      <xsl:with-param name="funcsynopses" select="$funcsynopses"/> +    </xsl:call-template> +  </dl> +</xsl:template> + +<doc:pi xmlns="" name="dbhtml-include_href"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Copies an external well-formed HTML/XML file into current doc</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhtml-include href</tag> PI anywhere in a +      document to cause the contents of the file referenced by the +      <code>href</code> pseudo-attribute to be copied/inserted “as +      is” into your HTML output at the point in document order +      where the PI occurs in the source.</para> +    <note> +      <para>The referenced file may contain plain text (as long as +        it is “wrapped” in an <tag>html</tag> element — see the +        note below) or markup in any arbitrary vocabulary, +        including HTML — but it must conform to XML +        well-formedness constraints (because the feature in XSLT +        1.0 for opening external files, the +        <function>document()</function> function, can only handle +        files that meet XML well-formedness constraints).</para> +      <para>Among other things, XML well-formedness constraints +        require a document to have <emphasis>a single root +          element</emphasis>. So if the content you want to +        include is plain text or is markup that does +        <emphasis>not</emphasis> have a single root element, +        <emphasis role="strong">wrap the content in an +          <tag>html</tag> element</emphasis>. The stylesheets will +        strip out that surrounding <tag>html</tag> “wrapper” when +        they find it, leaving just the content you want to +        insert.</para> +    </note> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhtml-include href="<replaceable>URI</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>href="<replaceable>URI</replaceable>"</term> +        <listitem> +          <para>Specifies the URI for the file to include; the URI +            can be, for example, a remote <literal>http:</literal> +            URI, or a local filesystem <literal>file:</literal> +            URI</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params"> +    <para><parameter>textinsert.extension</parameter></para> +  </refsee> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>, +      <link xlink:href="ExternalCode.html">External code files</link></para> +  </refsee> +</doc:pi> +<xsl:template name="pi.dbhtml-include"> +  <xsl:param name="href"> +    <xsl:call-template name="dbhtml-attribute"> +      <xsl:with-param name="pis" select="."/> +      <xsl:with-param name="attribute">href</xsl:with-param> +    </xsl:call-template> +  </xsl:param> +  <xsl:choose> +    <xsl:when test="$href != ''"> +      <xsl:variable name="content" select="document($href,/)"/> +      <xsl:choose> +        <xsl:when test="$content/*"> +          <xsl:choose> +            <xsl:when test="$content/*[1][self::html]"> +              <!-- include just the children of html wrapper --> +              <xsl:copy-of select="$content/*[1]/node()"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:copy-of select="$content"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            <xsl:text>ERROR: dbhtml-include processing instruction </xsl:text> +            <xsl:text>href has no content.</xsl:text> +          </xsl:message> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message> +        <xsl:text>ERROR: dbhtml-include processing instruction has </xsl:text> +        <xsl:text>missing or empty href value.</xsl:text> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="dbhtml-attribute"> +  <!-- * dbhtml-attribute is an interal utility template for retrieving --> +  <!-- * pseudo-attributes/parameters from PIs --> +  <xsl:param name="pis" select="processing-instruction('dbhtml')"/> +  <xsl:param name="attribute">filename</xsl:param> +  <xsl:call-template name="pi-attribute"> +    <xsl:with-param name="pis" select="$pis"/> +    <xsl:with-param name="attribute" select="$attribute"/> +  </xsl:call-template> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="processing-instruction()"> +</xsl:template> + +<xsl:template match="processing-instruction('dbhtml')"> +  <!-- nop --> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="processing-instruction('dbcmdlist')"> +  <xsl:call-template name="pi.dbcmdlist"/> +</xsl:template> +<xsl:template name="process.cmdsynopsis.list"> +  <xsl:param name="cmdsynopses"/><!-- empty node list by default --> +  <xsl:param name="count" select="1"/> + +  <xsl:choose> +    <xsl:when test="$count>count($cmdsynopses)"/> +    <xsl:otherwise> +      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/> + +       <dt> +       <a> +         <xsl:attribute name="href"> +           <xsl:text>#</xsl:text> +           <xsl:call-template name="object.id"> +             <xsl:with-param name="object" select="$cmdsyn"/> +           </xsl:call-template> +         </xsl:attribute> + +         <xsl:choose> +           <xsl:when test="$cmdsyn/@xreflabel"> +             <xsl:call-template name="xref.xreflabel"> +               <xsl:with-param name="target" select="$cmdsyn"/> +             </xsl:call-template> +           </xsl:when> +           <xsl:otherwise> +             <xsl:apply-templates select="$cmdsyn" mode="xref-to"> +               <xsl:with-param name="target" select="$cmdsyn"/> +             </xsl:apply-templates> +           </xsl:otherwise> +         </xsl:choose> +       </a> +       </dt> + +        <xsl:call-template name="process.cmdsynopsis.list"> +          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/> +          <xsl:with-param name="count" select="$count+1"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="processing-instruction('dbfunclist')"> +  <xsl:call-template name="pi.dbfunclist"/> +</xsl:template> +<xsl:template name="process.funcsynopsis.list"> +  <xsl:param name="funcsynopses"/><!-- empty node list by default --> +  <xsl:param name="count" select="1"/> + +  <xsl:choose> +    <xsl:when test="$count>count($funcsynopses)"/> +    <xsl:otherwise> +      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/> + +       <dt> +       <a> +         <xsl:attribute name="href"> +           <xsl:text>#</xsl:text> +           <xsl:call-template name="object.id"> +             <xsl:with-param name="object" select="$cmdsyn"/> +           </xsl:call-template> +         </xsl:attribute> + +         <xsl:choose> +           <xsl:when test="$cmdsyn/@xreflabel"> +             <xsl:call-template name="xref.xreflabel"> +               <xsl:with-param name="target" select="$cmdsyn"/> +             </xsl:call-template> +           </xsl:when> +           <xsl:otherwise> +              <xsl:apply-templates select="$cmdsyn" mode="xref-to"> +                <xsl:with-param name="target" select="$cmdsyn"/> +              </xsl:apply-templates> +           </xsl:otherwise> +         </xsl:choose> +       </a> +       </dt> + +        <xsl:call-template name="process.funcsynopsis.list"> +          <xsl:with-param name="funcsynopses" select="$funcsynopses"/> +          <xsl:with-param name="count" select="$count+1"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="processing-instruction('dbhtml-include')"> +  <xsl:call-template name="pi.dbhtml-include"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="dbhtml-dir"> +  <xsl:param name="context" select="."/> +  <!-- directories are now inherited from previous levels --> +  <xsl:variable name="ppath"> +    <xsl:if test="$context/parent::*"> +      <xsl:call-template name="dbhtml-dir"> +        <xsl:with-param name="context" select="$context/parent::*"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:variable> +  <xsl:variable name="path"> +    <xsl:call-template name="pi.dbhtml_dir"> +      <xsl:with-param name="node" select="$context"/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:choose> +    <xsl:when test="$path = ''"> +      <xsl:if test="$ppath != ''"> +        <xsl:value-of select="$ppath"/> +      </xsl:if> +    </xsl:when> +    <xsl:otherwise> +      <xsl:if test="$ppath != ''"> +        <xsl:value-of select="$ppath"/> +        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'"> +          <xsl:text>/</xsl:text> +        </xsl:if> +      </xsl:if> +      <xsl:value-of select="$path"/> +      <xsl:text>/</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- There are two templates matching this PI in htmlhelp-common.xsl --> +<doc:pi xmlns="" name="dbhh"> +  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets topic name and topic id for context-sensitive HTML Help</refpurpose> +  <refdescription xmlns="http://www.w3.org/1999/xhtml"> +    <para>Use the <tag class="xmlpi">dbhh</tag> PI as a child of components +      that should be used as targets for context-sensitive help requests.</para> +  </refdescription> +  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml"> +    <synopsis><tag class="xmlpi">dbhh topicname="<replaceable>name</replaceable>" topicid="<replaceable>id</replaceable>"</tag></synopsis> +  </refsynopsisdiv> +  <refparameter xmlns="http://www.w3.org/1999/xhtml"> +    <variablelist> +      <varlistentry><term>topicname="<replaceable>name</replaceable>"</term> +        <listitem> +          <para>Specifies a unique string constant that identifies a help topic</para> +        </listitem> +      </varlistentry> +      <varlistentry><term>topicid="<replaceable>id</replaceable>"</term> +        <listitem> +          <para>Specifies a unique integer value for the <literal>topicname</literal> string</para> +        </listitem> +      </varlistentry> +    </variablelist> +  </refparameter> +  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg"> +    <para><link role="tcg" xlink:href="HtmlHelp.html#HHContextHelp">Context-sensitive help</link></para> +  </refsee> +</doc:pi> + + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk-code.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk-code.xsl.svn-base new file mode 100644 index 0000000..2236209 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk-code.xsl.svn-base @@ -0,0 +1,611 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<!--This file was created automatically by xsl2profile--> +<!--from the DocBook XSL stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="exsl cf ng db exslt" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + + +<xsl:template match="*" mode="chunk-filename"> +  <!-- returns the filename of a chunk --> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="fn"> +    <xsl:apply-templates select="." mode="recursive-chunk-filename"/> +  </xsl:variable> + +  <!-- +  <xsl:message> +    <xsl:value-of select="$ischunk"/> +    <xsl:text> (</xsl:text> +    <xsl:value-of select="local-name(.)"/> +    <xsl:text>) </xsl:text> +    <xsl:value-of select="$fn"/> +    <xsl:text>, </xsl:text> +    <xsl:call-template name="dbhtml-dir"/> +  </xsl:message> +  --> + +  <!-- 2003-11-25 by ndw: +       The following test used to read test="$ischunk != 0 and $fn != ''" +       I've removed the ischunk part of the test so that href.to.uri and +       href.from.uri will be fully qualified even if the source or target +       isn't a chunk. I *think* that if $fn != '' then it's appropriate +       to put the directory on the front, even if the element isn't a +       chunk. I could be wrong. --> + +  <xsl:if test="$fn != ''"> +    <xsl:call-template name="dbhtml-dir"/> +  </xsl:if> + +  <xsl:value-of select="$fn"/> +  <!-- You can't add the html.ext here because dbhtml filename= may already --> +  <!-- have added it. It really does have to be handled in the recursive template --> +</xsl:template> + +<xsl:template match="*" mode="recursive-chunk-filename"> +  <xsl:param name="recursive" select="false()"/> + +  <!-- returns the filename of a chunk --> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:variable name="dbhtml-filename"> +    <xsl:call-template name="pi.dbhtml_filename"/> +  </xsl:variable> + +  <xsl:variable name="filename"> +    <xsl:choose> +      <xsl:when test="$dbhtml-filename != ''"> +        <xsl:value-of select="$dbhtml-filename"/> +      </xsl:when> +      <!-- if this is the root element, use the root.filename --> +      <xsl:when test="not(parent::*) and $root.filename != ''"> +        <xsl:value-of select="$root.filename"/> +        <xsl:value-of select="$html.ext"/> +      </xsl:when> +      <!-- Special case --> +      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)"> +        <xsl:choose> +          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)"> +            <!-- * if this legalnotice has an ID, then go ahead and use --> +            <!-- * just the value of that ID as the basename for the file --> +            <!-- * (that is, without prepending an "ln-" too it) --> +            <xsl:value-of select="(@id|@xml:id)[1]"/> +            <xsl:value-of select="$html.ext"/> +          </xsl:when> +          <xsl:otherwise> +            <!-- * otherwise, if this legalnotice does not have an ID, --> +            <!-- * then we generate an ID... --> +            <xsl:variable name="id"> +              <xsl:call-template name="object.id"/> +            </xsl:variable> +            <!-- * ...and then we take that generated ID, prepend an --> +            <!-- * "ln-" to it, and use that as the basename for the file --> +            <xsl:value-of select="concat('ln-',$id,$html.ext)"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <!-- if there's no dbhtml filename, and if we're to use IDs as --> +      <!-- filenames, then use the ID to generate the filename. --> +      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0"> +        <xsl:value-of select="(@id|@xml:id)[1]"/> +        <xsl:value-of select="$html.ext"/> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$ischunk='0'"> +      <!-- if called on something that isn't a chunk, walk up... --> +      <xsl:choose> +        <xsl:when test="count(parent::*)>0"> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="$recursive"/> +          </xsl:apply-templates> +        </xsl:when> +        <!-- unless there is no up, in which case return "" --> +        <xsl:otherwise/> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="not($recursive) and $filename != ''"> +      <!-- if this chunk has an explicit name, use it --> +      <xsl:value-of select="$filename"/> +    </xsl:when> + +    <xsl:when test="self::set"> +      <xsl:value-of select="$root.filename"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::book"> +      <xsl:text>bk</xsl:text> +      <xsl:number level="any" format="01"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::article"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ar</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::preface"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>pr</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::chapter"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ch</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::appendix"> +      <xsl:if test="/set"> +        <!-- in a set, make sure we inherit the right book info... --> +        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +          <xsl:with-param name="recursive" select="true()"/> +        </xsl:apply-templates> +      </xsl:if> + +      <xsl:text>ap</xsl:text> +      <xsl:number level="any" format="a" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::part"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>pt</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::reference"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>rn</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::refentry"> +      <xsl:choose> +        <xsl:when test="parent::reference"> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>re</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::colophon"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>co</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::sect1                     or self::sect2                     or self::sect3                     or self::sect4                     or self::sect5                     or self::section"> +      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +        <xsl:with-param name="recursive" select="true()"/> +      </xsl:apply-templates> +      <xsl:text>s</xsl:text> +      <xsl:number format="01"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::bibliography"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>bi</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::glossary"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>go</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::index"> +      <xsl:choose> +        <xsl:when test="/set"> +          <!-- in a set, make sure we inherit the right book info... --> +          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*"> +            <xsl:with-param name="recursive" select="true()"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +        </xsl:otherwise> +      </xsl:choose> + +      <xsl:text>ix</xsl:text> +      <xsl:number level="any" format="01" from="book"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:when test="self::setindex"> +      <xsl:text>si</xsl:text> +      <xsl:number level="any" format="01" from="set"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:text>chunk-filename-error-</xsl:text> +      <xsl:value-of select="name(.)"/> +      <xsl:number level="any" format="01" from="set"/> +      <xsl:if test="not($recursive)"> +        <xsl:value-of select="$html.ext"/> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + + + +<xsl:template match="processing-instruction('dbhtml')"> +  <!-- nop --> +</xsl:template> + +<!-- ==================================================================== --> + + +<xsl:template match="*" mode="find.chunks"> +  <xsl:variable name="chunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$chunk != 0"> +      <cf:div id="{generate-id()}"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates select="*" mode="find.chunks"/> +      </cf:div> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="*" mode="find.chunks"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/"> +  <!-- * Get a title for current doc so that we let the user --> +  <!-- * know what document we are processing at this point. --> +  <xsl:variable name="doc.title"> +    <xsl:call-template name="get.doc.title"/> +  </xsl:variable> +  <xsl:choose> +    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, +         toss the namespace and continue.  Use the docbook5 namespaced +	 stylesheets for DocBook5 if you don't want to use this feature.--> +    <!-- include extra test for Xalan quirk --> +    <xsl:when test="false()"/> +    <!-- Can't process unless namespace removed --> +    <xsl:when test="false()"/> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$rootid != ''"> +          <xsl:choose> +            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0"> +              <xsl:message terminate="yes"> +                <xsl:text>ID '</xsl:text> +                <xsl:value-of select="$rootid"/> +                <xsl:text>' not found in document.</xsl:text> +              </xsl:message> +            </xsl:when> +            <xsl:otherwise> +              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'"> +                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/> +              </xsl:if> +              <xsl:if test="$collect.xref.targets != 'only'"> +                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/> +                <xsl:if test="$tex.math.in.alt != ''"> +                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/> +                </xsl:if> +                <xsl:if test="$generate.manifest != 0"> +                  <xsl:call-template name="generate.manifest"> +                    <xsl:with-param name="node" select="key('id',$rootid)"/> +                  </xsl:call-template> +                </xsl:if> +              </xsl:if> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'"> +            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/> +          </xsl:if> +          <xsl:if test="$collect.xref.targets != 'only'"> +            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/> +            <xsl:if test="$tex.math.in.alt != ''"> +              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/> +            </xsl:if> +            <xsl:if test="$generate.manifest != 0"> +              <xsl:call-template name="generate.manifest"> +                <xsl:with-param name="node" select="$profiled-nodes"/> +              </xsl:call-template> +            </xsl:if> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="process.root"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |reference|refentry                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon"> +  <xsl:choose> +    <xsl:when test="$onechunk != 0 and parent::*"> +      <xsl:apply-imports/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="sect1|sect2|sect3|sect4|sect5|section"> +  <xsl:variable name="ischunk"> +    <xsl:call-template name="chunk"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="not(parent::*)"> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:when> +    <xsl:when test="$ischunk = 0"> +      <xsl:apply-imports/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="process-chunk-element"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="setindex                      |book/index                      |article/index                      |part/index"> +  <!-- some implementations use completely empty index tags to indicate --> +  <!-- where an automatically generated index should be inserted. so --> +  <!-- if the index is completely empty, skip it. --> +  <xsl:if test="count(*)>0 or $generate.index != '0'"> +    <xsl:call-template name="process-chunk-element"/> +  </xsl:if> +</xsl:template> + +<!-- Resolve xml:base attributes --> +<xsl:template match="@fileref"> +  <!-- need a check for absolute urls --> +  <xsl:choose> +    <xsl:when test="contains(., ':')"> +      <!-- it has a uri scheme so it is an absolute uri --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:when test="$keep.relative.image.uris != 0"> +      <!-- leave it alone --> +      <xsl:value-of select="."/> +    </xsl:when> +    <xsl:otherwise> +      <!-- its a relative uri --> +      <xsl:call-template name="relative-uri"> +        <xsl:with-param name="destdir"> +          <xsl:call-template name="dbhtml-dir"> +            <xsl:with-param name="context" select=".."/> +          </xsl:call-template> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> +<xsl:template match="set|book|part|preface|chapter|appendix                      |article                      |reference|refentry                      |sect1|sect2|sect3|sect4|sect5                      |section                      |book/glossary|article/glossary|part/glossary                      |book/bibliography|article/bibliography|part/bibliography                      |colophon" mode="enumerate-files"> +  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable> +  <xsl:if test="$ischunk='1'"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir"> +        <xsl:if test="$manifest.in.base.dir = 0"> +          <xsl:value-of select="$base.dir"/> +        </xsl:if> +      </xsl:with-param> +      <xsl:with-param name="base.name"> +        <xsl:apply-templates mode="chunk-filename" select="."/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +  <xsl:apply-templates select="*" mode="enumerate-files"/> +</xsl:template> + +<xsl:template match="book/index|article/index|part/index" mode="enumerate-files"> +  <xsl:if test="$htmlhelp.output != 1"> +    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable> +    <xsl:if test="$ischunk='1'"> +      <xsl:call-template name="make-relative-filename"> +        <xsl:with-param name="base.dir"> +          <xsl:if test="$manifest.in.base.dir = 0"> +            <xsl:value-of select="$base.dir"/> +          </xsl:if> +        </xsl:with-param> +        <xsl:with-param name="base.name"> +          <xsl:apply-templates mode="chunk-filename" select="."/> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:text> +</xsl:text> +    </xsl:if> +    <xsl:apply-templates select="*" mode="enumerate-files"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="legalnotice" mode="enumerate-files"> +  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> +  <xsl:if test="$generate.legalnotice.link != 0"> +    <xsl:call-template name="make-relative-filename"> +      <xsl:with-param name="base.dir"> +        <xsl:if test="$manifest.in.base.dir = 0"> +          <xsl:value-of select="$base.dir"/> +        </xsl:if> +      </xsl:with-param> +      <xsl:with-param name="base.name"> +        <xsl:apply-templates mode="chunk-filename" select="."/> +      </xsl:with-param> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files"> +  <xsl:variable name="longdesc.uri"> +    <xsl:call-template name="longdesc.uri"> +      <xsl:with-param name="mediaobject" select="."/> +    </xsl:call-template> +  </xsl:variable> +  <xsl:variable name="mediaobject" select="."/> + +  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]"> +    <xsl:call-template name="longdesc.uri"> +      <xsl:with-param name="mediaobject" select="$mediaobject"/> +    </xsl:call-template> +    <xsl:text> +</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="text()" mode="enumerate-files"> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk.xsl.svn-base new file mode 100644 index 0000000..96d8033 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-chunk.xsl.svn-base @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- First import the non-chunking templates that format elements +     within each chunk file. In a customization, you should +     create a separate non-chunking customization layer such +     as mydocbook.xsl that imports the original docbook.xsl and +     customizes any presentation templates. Then your chunking +     customization should import mydocbook.xsl instead of +     docbook.xsl.  --> +<xsl:import href="docbook.xsl"/> + +<!-- chunk-common.xsl contains all the named templates for chunking. +     In a customization file, you import chunk-common.xsl, then +     add any customized chunking templates of the same name.  +     They will have import precedence over the original  +     chunking templates in chunk-common.xsl. --> +<xsl:import href="chunk-common.xsl"/> + +<!-- The manifest.xsl module is no longer imported because its +     templates were moved into chunk-common and chunk-code --> + +<!-- chunk-code.xsl contains all the chunking templates that use +     a match attribute.  In a customization it should be referenced +     using <xsl:include> instead of <xsl:import>, and then add +     any customized chunking templates with match attributes. But be sure +     to add a priority="1" to such customized templates to resolve +     its conflict with the original, since they have the +     same import precedence. +      +     Using xsl:include prevents adding another layer +     of import precedence, which would cause any +     customizations that use xsl:apply-imports to wrongly +     apply the chunking version instead of the original +     non-chunking version to format an element.  --> +<xsl:include href="profile-chunk-code.xsl"/> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-docbook.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-docbook.xsl.svn-base new file mode 100644 index 0000000..102b387 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-docbook.xsl.svn-base @@ -0,0 +1,409 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<!--This file was created automatically by xsl2profile--> +<!--from the DocBook XSL stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ng="http://docbook.org/docbook-ng" xmlns:db="http://docbook.org/ns/docbook" xmlns:exsl="http://exslt.org/common" xmlns:exslt="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exslt:dummy="dummy" ng:dummy="dummy" db:dummy="dummy" extension-element-prefixes="exslt" exclude-result-prefixes="db ng exsl exslt" version="1.0"> + +<xsl:output method="xml" encoding="UTF-8" indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:include href="../VERSION"/> +<xsl:include href="param.xsl"/> +<xsl:include href="../lib/lib.xsl"/> +<xsl:include href="../common/l10n.xsl"/> +<xsl:include href="../common/common.xsl"/> +<xsl:include href="../common/utility.xsl"/> +<xsl:include href="../common/labels.xsl"/> +<xsl:include href="../common/titles.xsl"/> +<xsl:include href="../common/subtitles.xsl"/> +<xsl:include href="../common/gentext.xsl"/> +<xsl:include href="../common/targets.xsl"/> +<xsl:include href="../common/olink.xsl"/> +<xsl:include href="../common/pi.xsl"/> +<xsl:include href="autotoc.xsl"/> +<xsl:include href="autoidx.xsl"/> +<xsl:include href="lists.xsl"/> +<xsl:include href="callout.xsl"/> +<xsl:include href="verbatim.xsl"/> +<xsl:include href="graphics.xsl"/> +<xsl:include href="xref.xsl"/> +<xsl:include href="formal.xsl"/> +<xsl:include href="table.xsl"/> +<xsl:include href="htmltbl.xsl"/> +<xsl:include href="sections.xsl"/> +<xsl:include href="inline.xsl"/> +<xsl:include href="footnote.xsl"/> +<xsl:include href="html.xsl"/> +<xsl:include href="info.xsl"/> +<xsl:include href="keywords.xsl"/> +<xsl:include href="division.xsl"/> +<xsl:include href="toc.xsl"/> +<xsl:include href="index.xsl"/> +<xsl:include href="refentry.xsl"/> +<xsl:include href="math.xsl"/> +<xsl:include href="admon.xsl"/> +<xsl:include href="component.xsl"/> +<xsl:include href="biblio.xsl"/> +<xsl:include href="biblio-iso690.xsl"/> +<xsl:include href="glossary.xsl"/> +<xsl:include href="block.xsl"/> +<xsl:include href="task.xsl"/> +<xsl:include href="qandaset.xsl"/> +<xsl:include href="synop.xsl"/> +<xsl:include href="titlepage.xsl"/> +<xsl:include href="titlepage.templates.xsl"/> +<xsl:include href="pi.xsl"/> +<xsl:include href="ebnf.xsl"/> +<xsl:include href="chunker.xsl"/> +<xsl:include href="html-rtf.xsl"/> +<xsl:include href="annotations.xsl"/> +<xsl:include href="../common/stripns.xsl"/> + +<xsl:param name="stylesheet.result.type" select="'xhtml'"/> +<xsl:param name="htmlhelp.output" select="0"/> + +<!-- ==================================================================== --> + +<xsl:key name="id" match="*" use="@id|@xml:id"/> +<xsl:key name="gid" match="*" use="generate-id()"/> + +<!-- ==================================================================== --> + +<xsl:template match="*"> +  <xsl:message> +    <xsl:text>Element </xsl:text> +    <xsl:value-of select="local-name(.)"/> +    <xsl:text> in namespace '</xsl:text> +    <xsl:value-of select="namespace-uri(.)"/> +    <xsl:text>' encountered</xsl:text> +    <xsl:if test="parent::*"> +      <xsl:text> in </xsl:text> +      <xsl:value-of select="name(parent::*)"/> +    </xsl:if> +    <xsl:text>, but no template matches.</xsl:text> +  </xsl:message> + +  <span style="color: red"> +    <xsl:text><</xsl:text> +    <xsl:value-of select="name(.)"/> +    <xsl:text>></xsl:text> +    <xsl:apply-templates/> +    <xsl:text></</xsl:text> +    <xsl:value-of select="name(.)"/> +    <xsl:text>></xsl:text> +  </span> +</xsl:template> + +<xsl:template match="text()"> +  <xsl:value-of select="."/> +</xsl:template> + +<xsl:template name="body.attributes"> +<!-- no apply-templates; make it empty --> +</xsl:template> + +<xsl:template name="head.content"> +  <xsl:param name="node" select="."/> +  <xsl:param name="title"> +    <xsl:apply-templates select="$node" mode="object.title.markup.textonly"/> +  </xsl:param> + +  <title> +    <xsl:copy-of select="$title"/> +  </title> + +  <xsl:if test="$html.stylesheet != ''"> +    <xsl:call-template name="output.html.stylesheets"> +      <xsl:with-param name="stylesheets" select="normalize-space($html.stylesheet)"/> +    </xsl:call-template> +  </xsl:if> + +  <xsl:if test="$link.mailto.url != ''"> +    <link rev="made" href="{$link.mailto.url}"/> +  </xsl:if> + +  <xsl:if test="$html.base != ''"> +    <base href="{$html.base}"/> +  </xsl:if> + +  <meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/> + +  <xsl:if test="$generate.meta.abstract != 0"> +    <xsl:variable name="info" select="(articleinfo                                       |bookinfo                                       |prefaceinfo                                       |chapterinfo                                       |appendixinfo                                       |sectioninfo                                       |sect1info                                       |sect2info                                       |sect3info                                       |sect4info                                       |sect5info                                       |referenceinfo                                       |refentryinfo                                       |partinfo                                       |info                                       |docinfo)[1]"/> +    <xsl:if test="$info and $info/abstract"> +      <meta name="description"> +        <xsl:attribute name="content"> +          <xsl:for-each select="$info/abstract[1]/*"> +            <xsl:value-of select="normalize-space(.)"/> +            <xsl:if test="position() < last()"> +              <xsl:text> </xsl:text> +            </xsl:if> +          </xsl:for-each> +        </xsl:attribute> +      </meta> +    </xsl:if> +  </xsl:if> + +  <xsl:if test="($draft.mode = 'yes' or                 ($draft.mode = 'maybe' and                 ancestor-or-self::*[@status][1]/@status = 'draft'))                 and $draft.watermark.image != ''"> +    <style type="text/css"><xsl:text> +body { background-image: url('</xsl:text> +<xsl:value-of select="$draft.watermark.image"/><xsl:text>'); +       background-repeat: no-repeat; +       background-position: top left; +       /* The following properties make the watermark "fixed" on the page. */ +       /* I think that's just a bit too distracting for the reader... */ +       /* background-attachment: fixed; */ +       /* background-position: center center; */ +     }</xsl:text> +    </style> +  </xsl:if> +  <xsl:apply-templates select="." mode="head.keywords.content"/> +</xsl:template> + +<xsl:template name="output.html.stylesheets"> +  <xsl:param name="stylesheets" select="''"/> + +  <xsl:choose> +    <xsl:when test="contains($stylesheets, ' ')"> +      <link rel="stylesheet" href="{substring-before($stylesheets, ' ')}"> +        <xsl:if test="$html.stylesheet.type != ''"> +          <xsl:attribute name="type"> +            <xsl:value-of select="$html.stylesheet.type"/> +          </xsl:attribute> +        </xsl:if> +      </link> +      <xsl:call-template name="output.html.stylesheets"> +        <xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:when test="$stylesheets != ''"> +      <link rel="stylesheet" href="{$stylesheets}"> +        <xsl:if test="$html.stylesheet.type != ''"> +          <xsl:attribute name="type"> +            <xsl:value-of select="$html.stylesheet.type"/> +          </xsl:attribute> +        </xsl:if> +      </link> +    </xsl:when> +  </xsl:choose> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template match="*" mode="head.keywords.content"> +  <xsl:apply-templates select="chapterinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="appendixinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="prefaceinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="bookinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="setinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="articleinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="artheader/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect1info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect2info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect3info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect4info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sect5info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="sectioninfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect1info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect2info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refsect3info/keywordset" mode="html.header"/> +  <xsl:apply-templates select="bibliographyinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="glossaryinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="indexinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="refentryinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="partinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="referenceinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="docinfo/keywordset" mode="html.header"/> +  <xsl:apply-templates select="info/keywordset" mode="html.header"/> + +  <xsl:if test="$inherit.keywords != 0                 and parent::*"> +    <xsl:apply-templates select="parent::*" mode="head.keywords.content"/> +  </xsl:if> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template name="system.head.content"> +  <xsl:param name="node" select="."/> + +  <!-- FIXME: When chunking, only the annotations actually used +              in this chunk should be referenced. I don't think it +              does any harm to reference them all, but it adds +              unnecessary bloat to each chunk. --> +  <xsl:if test="$annotation.support != 0 and //annotation"> +    <xsl:call-template name="add.annotation.links"/> +    <script type="text/javascript"> +      <xsl:text> +// Create PopupWindow objects</xsl:text> +      <xsl:for-each select="//annotation"> +        <xsl:text> +var popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text> = new PopupWindow("popup-</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>"); +</xsl:text> +        <xsl:text>popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>.offsetY = 15; +</xsl:text> +        <xsl:text>popup_</xsl:text> +        <xsl:value-of select="generate-id(.)"/> +        <xsl:text>.autoHide(); +</xsl:text> +      </xsl:for-each> +    </script> + +    <style type="text/css"> +      <xsl:value-of select="$annotation.css"/> +    </style> +  </xsl:if> + +  <!-- system.head.content is like user.head.content, except that +       it is called before head.content. This is important because it +       means, for example, that <style> elements output by system.head.content +       have a lower CSS precedence than the users stylesheet. --> +</xsl:template> + +<!-- ============================================================ --> + +<xsl:template name="user.preroot"> +  <!-- Pre-root output, can be used to output comments and PIs. --> +  <!-- This must not output any element content! --> +</xsl:template> + +<xsl:template name="user.head.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.header.navigation"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.header.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.footer.content"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="user.footer.navigation"> +  <xsl:param name="node" select="."/> +</xsl:template> + +<xslo:include xmlns:xslo="http://www.w3.org/1999/XSL/Transform" href="../profiling/profile-mode.xsl"/><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-content"><xslo:choose><xslo:when test="*/self::ng:* or */self::db:*"><xslo:message>Note: namesp. cut : stripped namespace before processing</xslo:message><xslo:variable name="stripped-content"><xslo:apply-templates select="/" mode="stripNS"/></xslo:variable><xslo:message>Note: namesp. cut : processing stripped document</xslo:message><xslo:apply-templates select="exslt:node-set($stripped-content)" mode="profile"/></xslo:when><xslo:otherwise><xslo:apply-templates select="/" mode="profile"/></xslo:otherwise></xslo:choose></xslo:variable><xslo:variable xmlns:xslo="http://www.w3.org/1999/XSL/Transform" name="profiled-nodes" select="exslt:node-set($profiled-content)"/><xsl:template match="/"> +  <!-- * Get a title for current doc so that we let the user --> +  <!-- * know what document we are processing at this point. --> +  <xsl:variable name="doc.title"> +    <xsl:call-template name="get.doc.title"/> +  </xsl:variable> +  <xsl:choose> +    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, +         toss the namespace and continue.  Use the docbook5 namespaced +         stylesheets for DocBook5 if you don't want to use this feature.--> +    <!-- include extra test for Xalan quirk --> +    <xsl:when test="false()"/> +    <!-- Can't process unless namespace removed --> +    <xsl:when test="false()"/> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$rootid != ''"> +          <xsl:choose> +            <xsl:when test="count($profiled-nodes//*[@id=$rootid]) = 0"> +              <xsl:message terminate="yes"> +                <xsl:text>ID '</xsl:text> +                <xsl:value-of select="$rootid"/> +                <xsl:text>' not found in document.</xsl:text> +              </xsl:message> +            </xsl:when> +            <xsl:otherwise> +              <xsl:if test="$collect.xref.targets = 'yes' or                             $collect.xref.targets = 'only'"> +                <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/> +              </xsl:if> +              <xsl:if test="$collect.xref.targets != 'only'"> +                <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="process.root"/> +                <xsl:if test="$tex.math.in.alt != ''"> +                  <xsl:apply-templates select="$profiled-nodes//*[@id=$rootid]" mode="collect.tex.math"/> +                </xsl:if> +              </xsl:if> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:if test="$collect.xref.targets = 'yes' or                         $collect.xref.targets = 'only'"> +            <xsl:apply-templates select="$profiled-nodes" mode="collect.targets"/> +          </xsl:if> +          <xsl:if test="$collect.xref.targets != 'only'"> +            <xsl:apply-templates select="$profiled-nodes" mode="process.root"/> +            <xsl:if test="$tex.math.in.alt != ''"> +              <xsl:apply-templates select="$profiled-nodes" mode="collect.tex.math"/> +            </xsl:if> +          </xsl:if> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="process.root"> +  <xsl:variable name="doc" select="self::*"/> + +  <xsl:call-template name="user.preroot"/> +  <xsl:call-template name="root.messages"/> + +  <html> +    <head> +      <xsl:call-template name="system.head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:call-template name="head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:call-template name="user.head.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +    </head> +    <body> +      <xsl:call-template name="body.attributes"/> +      <xsl:call-template name="user.header.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +      <xsl:apply-templates select="."/> +      <xsl:call-template name="user.footer.content"> +        <xsl:with-param name="node" select="$doc"/> +      </xsl:call-template> +    </body> +  </html> +  <xsl:value-of select="$html.append"/> +</xsl:template> + +<xsl:template name="root.messages"> +  <!-- redefine this any way you'd like to output messages --> +  <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE --> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="chunk"> +  <xsl:param name="node" select="."/> + +  <!-- The default is that we are not chunking... --> +  <xsl:text>0</xsl:text> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-onechunk.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-onechunk.xsl.svn-base new file mode 100644 index 0000000..b550b77 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/profile-onechunk.xsl.svn-base @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="doc"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:import href="profile-chunk.xsl"/> + +<!-- Ok, using the onechunk parameter makes this all work again. --> +<!-- It does have the disadvantage that it only works for documents that have --> +<!-- a root element that is considered a chunk by the chunk.xsl stylesheet. --> +<!-- Ideally, onechunk would let anything be a chunk. But not today. --> + +<xsl:param name="onechunk" select="1"/> +<xsl:param name="suppress.navigation">1</xsl:param> + +<xsl:template name="href.target.uri"> +  <xsl:param name="object" select="."/> +  <xsl:text>#</xsl:text> +  <xsl:call-template name="object.id"> +    <xsl:with-param name="object" select="$object"/> +  </xsl:call-template> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/qandaset.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/qandaset.xsl.svn-base new file mode 100644 index 0000000..5283675 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/qandaset.xsl.svn-base @@ -0,0 +1,371 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="qandaset"> +  <xsl:variable name="title" select="(blockinfo/title|info/title|title)[1]"/> +  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/> +  <xsl:variable name="toc"> +    <xsl:call-template name="pi.dbhtml_toc"/> +  </xsl:variable> + +  <xsl:variable name="toc.params"> +    <xsl:call-template name="find.path.params"> +      <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +    </xsl:call-template> +  </xsl:variable> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates select="$title"/> +    <xsl:if test="((contains($toc.params, 'toc') and $toc != '0') or $toc = '1')                   and not(ancestor::answer and not($qanda.nested.in.toc=0))"> +      <xsl:call-template name="process.qanda.toc"/> +    </xsl:if> +    <xsl:apply-templates select="$preamble"/> +    <xsl:call-template name="process.qandaset"/> +  </div> +</xsl:template> + +<xsl:template match="qandaset/blockinfo/title|                      qandaset/info/title|                      qandaset/title"> +  <xsl:variable name="qalevel"> +    <xsl:call-template name="qanda.section.level"/> +  </xsl:variable> +  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:attribute name="class"> +      <xsl:value-of select="local-name(.)"/> +    </xsl:attribute> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="node" select=".."/> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +    <xsl:apply-templates/> +  </xsl:element> +</xsl:template> + +<xsl:template match="qandaset/blockinfo|qandaset/info"> +  <!-- what should this template really do? --> +  <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="qandadiv"> +  <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/> + +  <xsl:if test="blockinfo/title|info/title|title"> +    <tr class="qandadiv"> +      <td align="left" valign="top" colspan="2"> +        <xsl:apply-templates select="(blockinfo/title|info/title|title)[1]"/> +      </td> +    </tr> +  </xsl:if> + +  <xsl:variable name="toc"> +    <xsl:call-template name="pi.dbhtml_toc"/> +  </xsl:variable> + +  <xsl:variable name="toc.params"> +    <xsl:call-template name="find.path.params"> +      <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:if test="(contains($toc.params, 'toc') and $toc != '0') or $toc = '1'"> +    <tr class="toc"> +      <td align="left" valign="top" colspan="2"> +        <xsl:call-template name="process.qanda.toc"/> +      </td> +    </tr> +  </xsl:if> +  <xsl:if test="$preamble"> +    <tr class="toc"> +      <td align="left" valign="top" colspan="2"> +        <xsl:apply-templates select="$preamble"/> +      </td> +    </tr> +  </xsl:if> +  <xsl:apply-templates select="qandadiv|qandaentry"/> +</xsl:template> + +<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title"> +  <xsl:variable name="qalevel"> +    <xsl:call-template name="qandadiv.section.level"/> +  </xsl:variable> + +  <xsl:element name="h{string(number($qalevel)+1)}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:attribute name="class"> +      <xsl:value-of select="local-name(.)"/> +    </xsl:attribute> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="node" select=".."/> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +    <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/> +    <xsl:if test="$qandadiv.autolabel != 0"> +      <xsl:apply-templates select="." mode="intralabel.punctuation"/> +      <xsl:text> </xsl:text> +    </xsl:if> +    <xsl:apply-templates/> +  </xsl:element> +</xsl:template> + +<xsl:template match="qandaentry"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="question"> +  <xsl:variable name="deflabel"> +    <xsl:choose> +      <xsl:when test="ancestor-or-self::*[@defaultlabel]"> +        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                               /@defaultlabel"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$qanda.defaultlabel"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <tr> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <td align="left" valign="top"> +      <xsl:call-template name="anchor"> +        <xsl:with-param name="node" select=".."/> +        <xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> +      <xsl:call-template name="anchor"> +        <xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> + +      <xsl:variable name="label.content"> +        <xsl:apply-templates select="." mode="label.markup"/> +        <xsl:if test="$deflabel = 'number' and not(label)"> +          <xsl:apply-templates select="." mode="intralabel.punctuation"/> +        </xsl:if> +      </xsl:variable> + +      <xsl:if test="string-length($label.content) > 0"> +        <p><b> +          <xsl:copy-of select="$label.content"/> +        </b></p> +      </xsl:if> +    </td> +    <td align="left" valign="top"> +      <xsl:choose> +        <xsl:when test="$deflabel = 'none' and not(label)"> +          <b><xsl:apply-templates select="*[local-name(.) != 'label']"/></b> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="*[local-name(.) != 'label']"/> +        </xsl:otherwise> +      </xsl:choose> +    </td> +  </tr> +</xsl:template> + +<xsl:template match="answer"> +  <xsl:variable name="deflabel"> +    <xsl:choose> +      <xsl:when test="ancestor-or-self::*[@defaultlabel]"> +        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                               /@defaultlabel"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$qanda.defaultlabel"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <tr class="{local-name(.)}"> +    <td align="left" valign="top"> +      <xsl:call-template name="anchor"/> +      <xsl:variable name="answer.label"> +        <xsl:apply-templates select="." mode="label.markup"/> +      </xsl:variable> +      <xsl:if test="string-length($answer.label) > 0"> +        <p><b> +          <xsl:copy-of select="$answer.label"/> +        </b></p> +      </xsl:if> +    </td> +    <td align="left" valign="top"> +      <xsl:apply-templates select="*[local-name(.) != 'label'         and local-name(.) != 'qandaentry']"/> +      <!-- * handle nested answer/qandaentry instances --> +      <!-- * (bug 1509043 from Daniel Leidert) --> +      <xsl:if test="descendant::question"> +        <xsl:call-template name="process.qandaset"/> +      </xsl:if> +    </td> +  </tr> +</xsl:template> + +<xsl:template match="label"> +  <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="process.qanda.toc"> +  <!-- * if user wants nested qandaset and qandaentry in main Qandaset TOC, --> +  <!-- * then don't also include the nested stuff in the sub TOCs --> +  <dl> +    <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/> +    <xsl:apply-templates select="qandaset|qandaentry" mode="qandatoc.mode"/> +  </dl> +</xsl:template> + +<xsl:template match="qandadiv" mode="qandatoc.mode"> +  <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt> +  <dd><xsl:call-template name="process.qanda.toc"/></dd> +</xsl:template> + +<xsl:template match="qandadiv/blockinfo/title|                      qandadiv/info/title|                      qandadiv/title" mode="qandatoc.mode"> +  <xsl:variable name="qalevel"> +    <xsl:call-template name="qandadiv.section.level"/> +  </xsl:variable> +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"> +      <xsl:with-param name="object" select="parent::*"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:apply-templates select="parent::qandadiv" mode="label.markup"/> +  <xsl:value-of select="$autotoc.label.separator"/> +  <xsl:text> </xsl:text> +  <a> +    <xsl:attribute name="href"> +      <xsl:call-template name="href.target"> +        <xsl:with-param name="object" select="parent::*"/> +      </xsl:call-template> +    </xsl:attribute> +    <xsl:apply-templates/> +  </a> +</xsl:template> + +<xsl:template match="qandaset" mode="qandatoc.mode"> +  <xsl:for-each select="qandaentry"> +    <xsl:apply-templates select="." mode="qandatoc.mode"/> +  </xsl:for-each> +</xsl:template> + +<xsl:template match="qandaentry" mode="qandatoc.mode"> +  <xsl:apply-templates select="question" mode="qandatoc.mode"/> +</xsl:template> + +<xsl:template match="question" mode="qandatoc.mode"> +  <xsl:variable name="firstch"> +    <xsl:apply-templates select="(*[local-name(.)!='label'])[1]"/> +  </xsl:variable> +  <xsl:variable name="deflabel"> +    <xsl:choose> +      <xsl:when test="ancestor-or-self::*[@defaultlabel]"> +        <xsl:value-of select="(ancestor-or-self::*[@defaultlabel])[last()]                               /@defaultlabel"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$qanda.defaultlabel"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <dt> +    <xsl:apply-templates select="." mode="label.markup"/> +    <xsl:if test="$deflabel = 'number' and not(label)"> +      <xsl:apply-templates select="." mode="intralabel.punctuation"/> +    </xsl:if> +    <xsl:text> </xsl:text> +    <a> +      <xsl:attribute name="href"> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="object" select=".."/> +        </xsl:call-template> +      </xsl:attribute> +      <xsl:value-of select="$firstch"/> +    </a> +  </dt> +  <!-- * include nested qandaset/qandaentry in TOC if user wants it --> +  <xsl:if test="not($qanda.nested.in.toc = 0)"> +    <xsl:apply-templates select="following-sibling::answer" mode="qandatoc.mode"/> +  </xsl:if> +</xsl:template> + +<xsl:template match="answer" mode="qandatoc.mode"> +  <xsl:if test="descendant::question"> +    <dd> +      <xsl:call-template name="process.qanda.toc"/> +    </dd> +  </xsl:if> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="process.qandaset"> + +  <xsl:variable name="label-width"> +    <xsl:call-template name="pi.dbhtml_label-width"/> +  </xsl:variable> + +  <xsl:variable name="table-summary"> +    <xsl:call-template name="pi.dbhtml_table-summary"/> +  </xsl:variable> + +  <xsl:variable name="cellpadding"> +    <xsl:call-template name="pi.dbhtml_cellpadding"/> +  </xsl:variable> + +  <xsl:variable name="cellspacing"> +    <xsl:call-template name="pi.dbhtml_cellspacing"/> +  </xsl:variable> + +  <table border="0" summary="Q and A Set"> +    <xsl:if test="$table-summary != ''"> +      <xsl:attribute name="summary"> +        <xsl:value-of select="$table-summary"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$cellpadding != ''"> +      <xsl:attribute name="cellpadding"> +        <xsl:value-of select="$cellpadding"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$cellspacing != ''"> +      <xsl:attribute name="cellspacing"> +        <xsl:value-of select="$cellspacing"/> +      </xsl:attribute> +    </xsl:if> + +    <col align="left"> +      <xsl:attribute name="width"> +        <xsl:choose> +          <xsl:when test="$label-width != ''"> +            <xsl:value-of select="$label-width"/> +          </xsl:when> +          <xsl:otherwise>1%</xsl:otherwise> +        </xsl:choose> +      </xsl:attribute> +    </col> +    <tbody> +      <xsl:apply-templates select="qandaentry|qandadiv"/> +    </tbody> +  </table> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="no.wrapper.mode"> +  <xsl:apply-templates/> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/refentry.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/refentry.xsl.svn-base new file mode 100644 index 0000000..459c6e8 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/refentry.xsl.svn-base @@ -0,0 +1,309 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="reference"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$generate.id.attributes != 0"> +      <xsl:attribute name="id"> +        <xsl:call-template name="object.id"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:call-template name="reference.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="not(partintro) and contains($toc.params, 'toc')"> +      <xsl:call-template name="division.toc"/> +    </xsl:if> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="reference" mode="division.number"> +  <xsl:number from="book" count="reference" format="I."/> +</xsl:template> + +<xsl:template match="reference/docinfo"/> +<xsl:template match="reference/referenceinfo"/> +<xsl:template match="reference/title"/> +<xsl:template match="reference/subtitle"/> +<xsl:template match="reference/titleabbrev"/> + +<!-- ==================================================================== --> + +<xsl:template name="refentry.title"> +  <xsl:param name="node" select="."/> +  <xsl:variable name="refmeta" select="$node//refmeta"/> +  <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/> +  <xsl:variable name="refnamediv" select="$node//refnamediv"/> +  <xsl:variable name="refname" select="$refnamediv//refname"/> +  <xsl:variable name="refdesc" select="$refnamediv//refdescriptor"/> +  <xsl:variable name="title"> +    <xsl:choose> +      <xsl:when test="$refentrytitle"> +        <xsl:apply-templates select="$refentrytitle[1]" mode="title"/> +      </xsl:when> +      <xsl:when test="$refdesc"> +	<xsl:apply-templates select="$refdesc[1]" mode="title"/> +      </xsl:when> +      <xsl:when test="$refname"> +        <xsl:apply-templates select="$refname[1]" mode="title"/> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </xsl:variable> + +  <h1 class="title"> +    <xsl:copy-of select="$title"/> +  </h1> +</xsl:template> + +<xsl:template match="refentry"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:if test="$refentry.separator != 0 and preceding-sibling::refentry"> +      <div class="refentry.separator"> +        <hr/> +      </div> +    </xsl:if> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +    <xsl:call-template name="refentry.titlepage"/> +    <xsl:apply-templates/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="refentry/docinfo|refentry/refentryinfo"/> +<xsl:template match="refentry/info"/> + +<xsl:template match="refentrytitle|refname|refdescriptor" mode="title"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="refmeta"> +</xsl:template> + +<xsl:template match="manvolnum"> +  <xsl:if test="$refentry.xref.manvolnum != 0"> +    <xsl:text>(</xsl:text> +    <xsl:apply-templates/> +    <xsl:text>)</xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="refmiscinfo"> +</xsl:template> + +<xsl:template match="refentrytitle"> +  <xsl:call-template name="inline.charseq"/> +</xsl:template> + +<xsl:template match="refnamediv"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="anchor"/> + +    <xsl:choose> +      <xsl:when test="preceding-sibling::refnamediv"> +	<!-- no title on secondary refnamedivs! --> +      </xsl:when> +      <xsl:when test="$refentry.generate.name != 0"> +        <h2> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key" select="'RefName'"/> +          </xsl:call-template> +        </h2> +      </xsl:when> +      <xsl:when test="$refentry.generate.title != 0"> +        <h2> +          <xsl:choose> +            <xsl:when test="../refmeta/refentrytitle"> +              <xsl:apply-templates select="../refmeta/refentrytitle"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:apply-templates select="refname[1]"/> +            </xsl:otherwise> +          </xsl:choose> +        </h2> +      </xsl:when> +    </xsl:choose> + +    <p> +      <xsl:apply-templates/> +    </p> +  </div> +</xsl:template> + +<xsl:template match="refname"> +  <xsl:if test="not(preceding-sibling::refdescriptor)"> +    <xsl:apply-templates/> +    <xsl:if test="following-sibling::refname"> +      <xsl:text>, </xsl:text> +    </xsl:if> +  </xsl:if> +</xsl:template> + +<xsl:template match="refpurpose"> +  <xsl:if test="node()"> +    <xsl:text> </xsl:text> +    <xsl:call-template name="dingbat"> +      <xsl:with-param name="dingbat">em-dash</xsl:with-param> +    </xsl:call-template> +    <xsl:text> </xsl:text> +    <xsl:apply-templates/> +  </xsl:if> +</xsl:template> + +<xsl:template match="refdescriptor"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="refclass"> +  <xsl:if test="$refclass.suppress = 0"> +  <p> +    <b> +      <xsl:if test="@role"> +        <xsl:value-of select="@role"/> +        <xsl:text>: </xsl:text> +      </xsl:if> +      <xsl:apply-templates/> +    </b> +  </p> +  </xsl:if> +</xsl:template> + +<xsl:template match="refsynopsisdiv"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="anchor"/> +    <h2> +      <xsl:choose> +        <xsl:when test="refsynopsisdiv/title|title"> +          <xsl:apply-templates select="(refsynopsisdiv/title|title)[1]" mode="titlepage.mode"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="gentext"> +            <xsl:with-param name="key" select="'RefSynopsisDiv'"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </h2> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="refsynopsisdivinfo"/> + +<xsl:template match="refsynopsisdiv/title"> +</xsl:template> + +<xsl:template match="refsynopsisdiv/title" mode="titlepage.mode"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="refsection|refsect1|refsect2|refsect3"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +    <!-- pick up info title --> +    <xsl:apply-templates select="(title|info/title)[1]"/> +    <xsl:apply-templates select="node()[not(self::title) and not(self::info)]"/> +  </div> +</xsl:template> + +<xsl:template match="refsection/title|refsection/info/title"> +  <!-- the ID is output in the block.object call for refsect1 --> +  <xsl:variable name="level" select="count(ancestor-or-self::refsection)"/> +  <xsl:variable name="refsynopsisdiv"> +    <xsl:text>0</xsl:text> +    <xsl:if test="ancestor::refsynopsisdiv">1</xsl:if> +  </xsl:variable> +  <xsl:variable name="hlevel"> +    <xsl:choose> +      <xsl:when test="$level+$refsynopsisdiv > 5">6</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$level+1+$refsynopsisdiv"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:apply-templates/> +  </xsl:element> +</xsl:template> + +<xsl:template match="refsect1/title|refsect1/info/title"> +  <!-- the ID is output in the block.object call for refsect1 --> +  <h2> +    <xsl:apply-templates/> +  </h2> +</xsl:template> + +<xsl:template match="refsect2/title|refsect2/info/title"> +  <!-- the ID is output in the block.object call for refsect2 --> +  <h3> +    <xsl:apply-templates/> +  </h3> +</xsl:template> + +<xsl:template match="refsect3/title|refsect3/info/title"> +  <!-- the ID is output in the block.object call for refsect3 --> +  <h4> +    <xsl:apply-templates/> +  </h4> +</xsl:template> + +<xsl:template match="refsectioninfo|refsection/info"/> +<xsl:template match="refsect1info|refsect1/info"/> +<xsl:template match="refsect2info|refsect2/info"/> +<xsl:template match="refsect3info|refsect3/info"/> + + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/sections.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/sections.xsl.svn-base new file mode 100644 index 0000000..42e6917 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/sections.xsl.svn-base @@ -0,0 +1,548 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="section"> +  <xsl:variable name="depth" select="count(ancestor::section)+1"/> + +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:call-template name="section.titlepage"/> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $depth <= $generate.section.toc.level"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template name="section.title"> +  <!-- the context node should be the title of a section when called --> +  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/> + +  <xsl:variable name="renderas"> +    <xsl:choose> +      <xsl:when test="$section/@renderas = 'sect1'">1</xsl:when> +      <xsl:when test="$section/@renderas = 'sect2'">2</xsl:when> +      <xsl:when test="$section/@renderas = 'sect3'">3</xsl:when> +      <xsl:when test="$section/@renderas = 'sect4'">4</xsl:when> +      <xsl:when test="$section/@renderas = 'sect5'">5</xsl:when> +      <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="level"> +    <xsl:choose> +      <xsl:when test="$renderas != ''"> +        <xsl:value-of select="$renderas"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="section.level"> +          <xsl:with-param name="node" select="$section"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="section.heading"> +    <xsl:with-param name="section" select="$section"/> +    <xsl:with-param name="level" select="$level"/> +    <xsl:with-param name="title"> +      <xsl:apply-templates select="$section" mode="object.title.markup"> +        <xsl:with-param name="allow-anchors" select="1"/> +      </xsl:apply-templates> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="section/title                     |section/info/title                     |sectioninfo/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="sect1"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> + +    <xsl:choose> +      <xsl:when test="@renderas = 'sect2'"> +        <xsl:call-template name="sect2.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect3'"> +        <xsl:call-template name="sect3.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect4'"> +        <xsl:call-template name="sect4.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect5'"> +        <xsl:call-template name="sect5.titlepage"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="sect1.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level >= 1"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="sect1/title                     |sect1/info/title                     |sect1info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="sect2"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> + +    <xsl:choose> +      <xsl:when test="@renderas = 'sect1'"> +        <xsl:call-template name="sect1.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect3'"> +        <xsl:call-template name="sect3.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect4'"> +        <xsl:call-template name="sect4.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect5'"> +        <xsl:call-template name="sect5.titlepage"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="sect2.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level >= 2"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="sect2/title                     |sect2/info/title                     |sect2info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="sect3"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> + +    <xsl:choose> +      <xsl:when test="@renderas = 'sect1'"> +        <xsl:call-template name="sect1.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect2'"> +        <xsl:call-template name="sect2.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect4'"> +        <xsl:call-template name="sect4.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect5'"> +        <xsl:call-template name="sect5.titlepage"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="sect3.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level >= 3"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="sect3/title                     |sect3/info/title                     |sect3info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="sect4"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> + +    <xsl:choose> +      <xsl:when test="@renderas = 'sect1'"> +        <xsl:call-template name="sect1.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect2'"> +        <xsl:call-template name="sect2.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect3'"> +        <xsl:call-template name="sect3.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect5'"> +        <xsl:call-template name="sect5.titlepage"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="sect4.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level >= 4"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="sect4/title                     |sect4/info/title                     |sect4info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="sect5"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> + +    <xsl:choose> +      <xsl:when test="@renderas = 'sect1'"> +        <xsl:call-template name="sect1.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect2'"> +        <xsl:call-template name="sect2.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect3'"> +        <xsl:call-template name="sect3.titlepage"/> +      </xsl:when> +      <xsl:when test="@renderas = 'sect4'"> +        <xsl:call-template name="sect4.titlepage"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="sect5.titlepage"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="toc.params"> +      <xsl:call-template name="find.path.params"> +        <xsl:with-param name="table" select="normalize-space($generate.toc)"/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:if test="contains($toc.params, 'toc')                   and $generate.section.toc.level >= 5"> +      <xsl:call-template name="section.toc"> +        <xsl:with-param name="toc.title.p" select="contains($toc.params, 'title')"/> +      </xsl:call-template> +      <xsl:call-template name="section.toc.separator"/> +    </xsl:if> +    <xsl:apply-templates/> +    <xsl:call-template name="process.chunk.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="sect5/title                     |sect5/info/title                     |sect5info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="simplesect"> +  <xsl:call-template name="id.warning"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="dir"> +      <xsl:with-param name="inherit" select="1"/> +    </xsl:call-template> +    <xsl:call-template name="language.attribute"/> +    <xsl:call-template name="simplesect.titlepage"/> +    <xsl:apply-templates/> +  </div> +</xsl:template> + +<xsl:template match="simplesect/title|simplesect/info/title" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.title"/> +</xsl:template> + +<xsl:template match="section/title"/> +<xsl:template match="section/titleabbrev"/> +<xsl:template match="section/subtitle"/> +<xsl:template match="sectioninfo"/> +<xsl:template match="section/info"/> + +<xsl:template match="sect1/title"/> +<xsl:template match="sect1/titleabbrev"/> +<xsl:template match="sect1/subtitle"/> +<xsl:template match="sect1info"/> +<xsl:template match="sect1/info"/> + +<xsl:template match="sect2/title"/> +<xsl:template match="sect2/subtitle"/> +<xsl:template match="sect2/titleabbrev"/> +<xsl:template match="sect2info"/> +<xsl:template match="sect2/info"/> + +<xsl:template match="sect3/title"/> +<xsl:template match="sect3/subtitle"/> +<xsl:template match="sect3/titleabbrev"/> +<xsl:template match="sect3info"/> +<xsl:template match="sect3/info"/> + +<xsl:template match="sect4/title"/> +<xsl:template match="sect4/subtitle"/> +<xsl:template match="sect4/titleabbrev"/> +<xsl:template match="sect4info"/> +<xsl:template match="sect4/info"/> + +<xsl:template match="sect5/title"/> +<xsl:template match="sect5/subtitle"/> +<xsl:template match="sect5/titleabbrev"/> +<xsl:template match="sect5info"/> +<xsl:template match="sect5/info"/> + +<xsl:template match="simplesect/title"/> +<xsl:template match="simplesect/subtitle"/> +<xsl:template match="simplesect/titleabbrev"/> +<xsl:template match="simplesect/info"/> + +<!-- ==================================================================== --> + +<xsl:template name="section.heading"> +  <xsl:param name="section" select="."/> +  <xsl:param name="level" select="1"/> +  <xsl:param name="allow-anchors" select="1"/> +  <xsl:param name="title"/> +  <xsl:param name="class" select="'title'"/> + +  <xsl:variable name="id"> +    <xsl:choose> +      <!-- if title is in an *info wrapper, get the grandparent --> +      <xsl:when test="contains(local-name(..), 'info')"> +        <xsl:call-template name="object.id"> +          <xsl:with-param name="object" select="../.."/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="object.id"> +          <xsl:with-param name="object" select=".."/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <!-- HTML H level is one higher than section level --> +  <xsl:variable name="hlevel"> +    <xsl:choose> +      <!-- highest valid HTML H level is H6; so anything nested deeper +           than 5 levels down just becomes H6 --> +      <xsl:when test="$level > 5">6</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$level + 1"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> +  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute> +    <xsl:if test="$css.decoration != '0'"> +      <xsl:if test="$hlevel<3"> +        <xsl:attribute name="style">clear: both</xsl:attribute> +      </xsl:if> +    </xsl:if> +    <xsl:if test="$allow-anchors != 0 and $generate.id.attributes = 0"> +      <xsl:call-template name="anchor"> +        <xsl:with-param name="node" select="$section"/> +        <xsl:with-param name="conditional" select="0"/> +      </xsl:call-template> +    </xsl:if> +    <xsl:if test="$generate.id.attributes != 0 and not(local-name(.) = 'appendix')"> +      <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute> +    </xsl:if> +    <xsl:copy-of select="$title"/> +  </xsl:element> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="bridgehead"> +  <xsl:variable name="container" select="(ancestor::appendix                         |ancestor::article                         |ancestor::bibliography                         |ancestor::chapter                         |ancestor::glossary                         |ancestor::glossdiv                         |ancestor::index                         |ancestor::partintro                         |ancestor::preface                         |ancestor::refsect1                         |ancestor::refsect2                         |ancestor::refsect3                         |ancestor::sect1                         |ancestor::sect2                         |ancestor::sect3                         |ancestor::sect4                         |ancestor::sect5                         |ancestor::section                         |ancestor::setindex                         |ancestor::simplesect)[last()]"/> + +  <xsl:variable name="clevel"> +    <xsl:choose> +      <xsl:when test="local-name($container) = 'appendix'                       or local-name($container) = 'chapter'                       or local-name($container) = 'article'                       or local-name($container) = 'bibliography'                       or local-name($container) = 'glossary'                       or local-name($container) = 'index'                       or local-name($container) = 'partintro'                       or local-name($container) = 'preface'                       or local-name($container) = 'setindex'">1</xsl:when> +      <xsl:when test="local-name($container) = 'glossdiv'"> +        <xsl:value-of select="count(ancestor::glossdiv)+1"/> +      </xsl:when> +      <xsl:when test="local-name($container) = 'sect1'                       or local-name($container) = 'sect2'                       or local-name($container) = 'sect3'                       or local-name($container) = 'sect4'                       or local-name($container) = 'sect5'                       or local-name($container) = 'refsect1'                       or local-name($container) = 'refsect2'                       or local-name($container) = 'refsect3'                       or local-name($container) = 'section'                       or local-name($container) = 'simplesect'"> +        <xsl:variable name="slevel"> +          <xsl:call-template name="section.level"> +            <xsl:with-param name="node" select="$container"/> +          </xsl:call-template> +        </xsl:variable> +        <xsl:value-of select="$slevel + 1"/> +      </xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <!-- HTML H level is one higher than section level --> +  <xsl:variable name="hlevel"> +    <xsl:choose> +      <xsl:when test="@renderas = 'sect1'">2</xsl:when> +      <xsl:when test="@renderas = 'sect2'">3</xsl:when> +      <xsl:when test="@renderas = 'sect3'">4</xsl:when> +      <xsl:when test="@renderas = 'sect4'">5</xsl:when> +      <xsl:when test="@renderas = 'sect5'">6</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$clevel + 1"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:element name="h{$hlevel}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +    <xsl:apply-templates/> +  </xsl:element> +</xsl:template> + +<xsl:template match="section/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="simplesect/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="sect1/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="sect2/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="sect3/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="sect4/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template match="sect5/subtitle" mode="titlepage.mode" priority="2"> +  <xsl:call-template name="section.subtitle"/> +</xsl:template> + +<xsl:template name="section.subtitle"> +  <!-- the context node should be the subtitle of a section when called --> +  <xsl:variable name="section" select="(ancestor::section                                         |ancestor::simplesect                                         |ancestor::sect1                                         |ancestor::sect2                                         |ancestor::sect3                                         |ancestor::sect4                                         |ancestor::sect5)[last()]"/> + +  <xsl:variable name="level"> +    <xsl:call-template name="section.level"> +      <xsl:with-param name="node" select="$section"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:call-template name="section.heading"> +    <xsl:with-param name="section" select=".."/> +    <xsl:with-param name="allow-anchors" select="0"/> +    <!-- subtitle heading level one higher than section level --> +    <xsl:with-param name="level" select="$level + 1"/> +    <xsl:with-param name="class" select="'subtitle'"/> +    <xsl:with-param name="title"> +      <xsl:apply-templates select="$section" mode="object.subtitle.markup"> +        <xsl:with-param name="allow-anchors" select="0"/> +      </xsl:apply-templates> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/synop.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/synop.xsl.svn-base new file mode 100644 index 0000000..3e115ec --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/synop.xsl.svn-base @@ -0,0 +1,1551 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<!-- synopsis is in verbatim --> + +<!-- ==================================================================== --> + +<xsl:template match="cmdsynopsis"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <p> +      <xsl:if test="..//processing-instruction('dbcmdlist')"> +        <!-- * Placing a dbcmdlist PI as a child of a particular element --> +        <!-- * creates a hyperlinked list of all cmdsynopsis instances --> +        <!-- * that are descendants of that element; so for any --> +        <!-- * cmdsynopsis that is a descendant of an element containing --> +        <!-- * a dbcmdlist PI, we need to output an a@id instance so that --> +        <!-- * we will have something to link to --> +        <xsl:call-template name="anchor"> +          <xsl:with-param name="conditional" select="0"/> +        </xsl:call-template> +      </xsl:if> +      <xsl:apply-templates/> +    </p> +  </div> +</xsl:template> + +<xsl:template match="cmdsynopsis/command"> +  <br/> +  <xsl:call-template name="inline.monoseq"/> +  <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="cmdsynopsis/command[1]" priority="2"> +  <xsl:call-template name="inline.monoseq"/> +  <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="group|arg" name="group-or-arg"> +  <xsl:variable name="choice" select="@choice"/> +  <xsl:variable name="rep" select="@rep"/> +  <xsl:variable name="sepchar"> +    <xsl:choose> +      <xsl:when test="ancestor-or-self::*/@sepchar"> +        <xsl:value-of select="ancestor-or-self::*/@sepchar"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:text> </xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:if test="preceding-sibling::*"> +    <xsl:value-of select="$sepchar"/> +  </xsl:if> +  <xsl:choose> +    <xsl:when test="$choice='plain'"> +      <xsl:value-of select="$arg.choice.plain.open.str"/> +    </xsl:when> +    <xsl:when test="$choice='req'"> +      <xsl:value-of select="$arg.choice.req.open.str"/> +    </xsl:when> +    <xsl:when test="$choice='opt'"> +      <xsl:value-of select="$arg.choice.opt.open.str"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$arg.choice.def.open.str"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:apply-templates/> +  <xsl:choose> +    <xsl:when test="$rep='repeat'"> +      <xsl:value-of select="$arg.rep.repeat.str"/> +    </xsl:when> +    <xsl:when test="$rep='norepeat'"> +      <xsl:value-of select="$arg.rep.norepeat.str"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$arg.rep.def.str"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:choose> +    <xsl:when test="$choice='plain'"> +      <xsl:value-of select="$arg.choice.plain.close.str"/> +    </xsl:when> +    <xsl:when test="$choice='req'"> +      <xsl:value-of select="$arg.choice.req.close.str"/> +    </xsl:when> +    <xsl:when test="$choice='opt'"> +      <xsl:value-of select="$arg.choice.opt.close.str"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$arg.choice.def.close.str"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="group/arg"> +  <xsl:variable name="choice" select="@choice"/> +  <xsl:variable name="rep" select="@rep"/> +  <xsl:if test="preceding-sibling::*"> +    <xsl:value-of select="$arg.or.sep"/> +  </xsl:if> +  <xsl:call-template name="group-or-arg"/> +</xsl:template> + +<xsl:template match="sbr"> +  <br/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="synopfragmentref"> +  <xsl:variable name="target" select="key('id',@linkend)"/> +  <xsl:variable name="snum"> +    <xsl:apply-templates select="$target" mode="synopfragment.number"/> +  </xsl:variable> +  <i> +    <a href="#{@linkend}"> +      <xsl:text>(</xsl:text> +      <xsl:value-of select="$snum"/> +      <xsl:text>)</xsl:text> +    </a> +    <xsl:text> </xsl:text> +    <xsl:apply-templates/> +  </i> +</xsl:template> + +<xsl:template match="synopfragment" mode="synopfragment.number"> +  <xsl:number format="1"/> +</xsl:template> + +<xsl:template match="synopfragment"> +  <xsl:variable name="snum"> +    <xsl:apply-templates select="." mode="synopfragment.number"/> +  </xsl:variable> +  <p> +    <xsl:variable name="id"> +      <xsl:call-template name="object.id"/> +    </xsl:variable> +    <a id="{$id}"> +      <xsl:text>(</xsl:text> +      <xsl:value-of select="$snum"/> +      <xsl:text>)</xsl:text> +    </a> +    <xsl:text> </xsl:text> +    <xsl:apply-templates/> +  </p> +</xsl:template> + +<xsl:template match="funcsynopsis"> +  <xsl:if test="..//processing-instruction('dbfunclist')"> +    <!-- * Placing a dbfunclist PI as a child of a particular element --> +    <!-- * creates a hyperlinked list of all funcsynopsis instances that --> +    <!-- * are descendants of that element; so for any funcsynopsis that is --> +    <!-- * a descendant of an element containing a dbfunclist PI, we need --> +    <!-- * to output an a@id instance so that we will have something to --> +    <!-- * link to --> +    <xsl:call-template name="anchor"> +      <xsl:with-param name="conditional" select="0"/> +    </xsl:call-template> +  </xsl:if> +  <xsl:call-template name="informal.object"/> +</xsl:template> + +<xsl:template match="funcsynopsisinfo"> +  <pre> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates/> +  </pre> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype --> +<!-- + +funcprototype ::= (funcdef, +                   (void|varargs|paramdef+)) + +funcdef       ::= (#PCDATA|type|replaceable|function)* + +paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)* +--> + +<xsl:template match="funcprototype"> +  <xsl:variable name="html-style"> +    <xsl:call-template name="pi.dbhtml_funcsynopsis-style"> +      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="style"> +    <xsl:choose> +      <xsl:when test="$html-style != ''"> +        <xsl:value-of select="$html-style"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$funcsynopsis.style"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +<!-- +  <xsl:variable name="tabular-p" +                select="$funcsynopsis.tabular.threshold > 0 +                        and string-length(.) > $funcsynopsis.tabular.threshold"/> +--> + +  <xsl:variable name="tabular-p" select="true()"/> + +  <xsl:choose> +    <xsl:when test="$style = 'kr' and $tabular-p"> +      <xsl:apply-templates select="." mode="kr-tabular"/> +    </xsl:when> +    <xsl:when test="$style = 'kr'"> +      <xsl:apply-templates select="." mode="kr-nontabular"/> +    </xsl:when> +    <xsl:when test="$style = 'ansi' and $tabular-p"> +      <xsl:apply-templates select="." mode="ansi-tabular"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="." mode="ansi-nontabular"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: kr, non-tabular --> + +<xsl:template match="funcprototype" mode="kr-nontabular"> +  <p> +    <xsl:apply-templates mode="kr-nontabular"/> +    <xsl:if test="paramdef"> +      <br/> +      <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/> +    </xsl:if> +  </p> +</xsl:template> + +<xsl:template match="funcdef" mode="kr-nontabular"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="kr-nontabular"/> +    <xsl:text>(</xsl:text> +  </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="kr-nontabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="kr-nontabular"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="kr-nontabular"> +  <code>)</code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="varargs" mode="kr-nontabular"> +  <xsl:text>...</xsl:text> +  <code>)</code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-nontabular"> +  <xsl:apply-templates select="parameter" mode="kr-nontabular"/> +  <xsl:choose> +    <xsl:when test="following-sibling::*"> +      <xsl:text>, </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <code>)</code> +      <xsl:text>;</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-nontabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="kr-nontabular"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="kr-nontabular"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-funcsynopsis-mode"> +  <xsl:if test="preceding-sibling::paramdef"><br/></xsl:if> +  <code> +    <xsl:apply-templates mode="kr-funcsynopsis-mode"/> +  </code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="kr-funcsynopsis-mode"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="kr-funcsynopsis-mode"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="kr-funcsynopsis-mode"> +  <code>(</code> +  <xsl:apply-templates mode="kr-funcsynopsis-mode"/> +  <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: kr, tabular --> + +<xsl:template match="funcprototype" mode="kr-tabular"> +  <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" style="padding-bottom: 1em"> +    <tr> +      <td> +        <xsl:apply-templates select="funcdef" mode="kr-tabular"/> +      </td> +      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/> +    </tr> +    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]"> +      <tr> +        <td> </td> +        <xsl:apply-templates select="." mode="kr-tabular"/> +      </tr> +    </xsl:for-each> +  </table> +  <xsl:if test="paramdef"> +    <table border="0" summary="Function argument synopsis" cellspacing="0" cellpadding="0"> +      <xsl:if test="following-sibling::funcprototype"> +        <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute> +      </xsl:if> +      <xsl:apply-templates select="paramdef" mode="kr-tabular-funcsynopsis-mode"/> +    </table> +  </xsl:if> +</xsl:template> + +<xsl:template match="funcdef" mode="kr-tabular"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="kr-tabular"/> +    <xsl:text>(</xsl:text> +  </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="kr-tabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="kr-tabular"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="kr-tabular"> +  <td> +    <code>)</code> +    <xsl:text>;</xsl:text> +  </td> +  <td> </td> +</xsl:template> + +<xsl:template match="varargs" mode="kr-tabular"> +  <td> +    <xsl:text>...</xsl:text> +    <code>)</code> +    <xsl:text>;</xsl:text> +  </td> +  <td> </td> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-tabular"> +  <td> +    <xsl:apply-templates select="parameter" mode="kr-tabular"/> +    <xsl:choose> +      <xsl:when test="following-sibling::*"> +	<xsl:text>, </xsl:text> +      </xsl:when> +      <xsl:otherwise> +	<code>)</code> +	<xsl:text>;</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </td> +  <td> </td> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-tabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="kr-tabular"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="kr-tabular"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode"> +  <xsl:variable name="type"> +    <xsl:choose> +      <xsl:when test="type"> +	<xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/> +      </xsl:when> +      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''"> +	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <tr> +    <xsl:choose> +      <xsl:when test="$type != '' and funcparams"> +        <td> +	  <code> +	    <xsl:copy-of select="$type"/> +	  </code> +          <xsl:text> </xsl:text> +        </td> +        <td> +	  <code> +	    <xsl:choose> +	      <xsl:when test="type"> +		<xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/> +	      </xsl:when> +	      <xsl:otherwise> +		<xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/> +	      </xsl:otherwise> +	    </xsl:choose> +	  </code> +        </td> +      </xsl:when> + +      <xsl:when test="funcparams"> +        <td colspan="2"> +	  <code> +	    <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> +	  </code> +        </td> +      </xsl:when> + +      <xsl:otherwise> +        <td> +	  <code> +	    <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/> +	  </code> +          <xsl:text> </xsl:text> +        </td> +        <td> +	  <code> +	    <xsl:apply-templates select="parameter" mode="kr-tabular"/> +	    <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/> +	    <xsl:text>;</xsl:text> +	  </code> +        </td> +      </xsl:otherwise> +    </xsl:choose> +  </tr> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode"> +  <code>(</code> +  <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/> +  <code>)</code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: ansi, non-tabular --> + +<xsl:template match="funcprototype" mode="ansi-nontabular"> +  <p> +    <xsl:apply-templates mode="ansi-nontabular"/> +  </p> +</xsl:template> + +<xsl:template match="funcdef" mode="ansi-nontabular"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="ansi-nontabular"/> +    <xsl:text>(</xsl:text> +  </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="ansi-nontabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="ansi-nontabular"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="ansi-nontabular"> +  <code>void)</code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="varargs" mode="ansi-nontabular"> +  <xsl:text>...</xsl:text> +  <code>)</code> +  <xsl:text>;</xsl:text> +</xsl:template> + +<xsl:template match="paramdef" mode="ansi-nontabular"> +  <xsl:apply-templates mode="ansi-nontabular"/> +  <xsl:choose> +    <xsl:when test="following-sibling::*"> +      <xsl:text>, </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <code>)</code> +      <xsl:text>;</xsl:text> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="ansi-nontabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="ansi-nontabular"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="ansi-nontabular"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="ansi-nontabular"> +  <code>(</code> +  <xsl:apply-templates mode="ansi-nontabular"/> +  <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> +<!-- funcprototype: ansi, tabular --> + +<xsl:template match="funcprototype" mode="ansi-tabular"> +  <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> +    <xsl:if test="following-sibling::funcprototype"> +      <xsl:attribute name="style">padding-bottom: 1em</xsl:attribute> +    </xsl:if> +    <tr> +      <td> +        <xsl:apply-templates select="funcdef" mode="ansi-tabular"/> +      </td> +      <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/> +    </tr> +    <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]"> +      <tr> +        <td> </td> +        <xsl:apply-templates select="." mode="ansi-tabular"/> +      </tr> +    </xsl:for-each> +  </table> +</xsl:template> + +<xsl:template match="funcdef" mode="ansi-tabular"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="ansi-tabular"/> +    <xsl:text>(</xsl:text> +  </code> +</xsl:template> + +<xsl:template match="funcdef/function" mode="ansi-tabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="kr-tabular"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="void" mode="ansi-tabular"> +  <td> +    <code>void)</code> +    <xsl:text>;</xsl:text> +  </td> +  <td> </td> +</xsl:template> + +<xsl:template match="varargs" mode="ansi-tabular"> +  <td> +    <xsl:text>...</xsl:text> +    <code>)</code> +    <xsl:text>;</xsl:text> +  </td> +  <td> </td> +</xsl:template> + +<xsl:template match="paramdef" mode="ansi-tabular"> +  <xsl:variable name="type"> +    <xsl:choose> +      <xsl:when test="type"> +	<xsl:apply-templates select="type" mode="ansi-tabular"/> +      </xsl:when> +      <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''"> +	<xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/> +      </xsl:when> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$type != '' and funcparams"> +      <td> +	<xsl:copy-of select="$type"/> +        <xsl:text> </xsl:text> +      </td> +      <td> +	<xsl:choose> +	  <xsl:when test="type"> +	    <xsl:apply-templates select="type/following-sibling::*" mode="ansi-tabular"/> +	  </xsl:when> +	  <xsl:otherwise> +	    <xsl:apply-templates select="*" mode="ansi-tabular"/> +	  </xsl:otherwise> +	</xsl:choose> +        <xsl:choose> +          <xsl:when test="following-sibling::*"> +            <xsl:text>, </xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <code>)</code> +            <xsl:text>;</xsl:text> +          </xsl:otherwise> +        </xsl:choose> +      </td> +    </xsl:when> +    <xsl:otherwise> +      <td> +        <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="ansi-tabular"/> +        <xsl:text> </xsl:text> +      </td> +      <td> +        <xsl:apply-templates select="parameter" mode="ansi-tabular"/> +        <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="ansi-tabular"/> +        <xsl:choose> +          <xsl:when test="following-sibling::*"> +            <xsl:text>, </xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <code>)</code> +            <xsl:text>;</xsl:text> +          </xsl:otherwise> +        </xsl:choose> +      </td> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="paramdef/parameter" mode="ansi-tabular"> +  <xsl:choose> +    <xsl:when test="$funcsynopsis.decoration != 0"> +      <var class="pdparam"> +        <xsl:apply-templates mode="ansi-tabular"/> +      </var> +    </xsl:when> +    <xsl:otherwise> +      <code> +	<xsl:apply-templates mode="ansi-tabular"/> +      </code> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="funcparams" mode="ansi-tabular"> +  <code>(</code> +  <xsl:apply-templates/> +  <code>)</code> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:variable name="default-classsynopsis-language">java</xsl:variable> + +<xsl:template match="classsynopsis                      |fieldsynopsis                      |methodsynopsis                      |constructorsynopsis                      |destructorsynopsis"> +  <xsl:param name="language"> +    <xsl:choose> +      <xsl:when test="@language"> +	<xsl:value-of select="@language"/> +      </xsl:when> +      <xsl:otherwise> +	<xsl:value-of select="$default-classsynopsis-language"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:param> + +  <xsl:choose> +    <xsl:when test="$language='java' or $language='Java'"> +      <xsl:apply-templates select="." mode="java"/> +    </xsl:when> +    <xsl:when test="$language='perl' or $language='Perl'"> +      <xsl:apply-templates select="." mode="perl"/> +    </xsl:when> +    <xsl:when test="$language='idl' or $language='IDL'"> +      <xsl:apply-templates select="." mode="idl"/> +    </xsl:when> +    <xsl:when test="$language='cpp' or $language='c++' or $language='C++'"> +      <xsl:apply-templates select="." mode="cpp"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message> +	<xsl:text>Unrecognized language on </xsl:text> +        <xsl:value-of select="local-name(.)"/> +        <xsl:text>: </xsl:text> +	<xsl:value-of select="$language"/> +      </xsl:message> +      <xsl:apply-templates select="."> +	<xsl:with-param name="language" select="$default-classsynopsis-language"/> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="synop-break"> +  <xsl:if test="parent::classsynopsis                 or (following-sibling::fieldsynopsis                     |following-sibling::methodsynopsis                     |following-sibling::constructorsynopsis                     |following-sibling::destructorsynopsis)"> +    <br/> +  </xsl:if> +</xsl:template> + + +<!-- ===== Java ======================================================== --> + +<xsl:template match="classsynopsis" mode="java"> +  <pre> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates select="ooclass[1]" mode="java"/> +    <xsl:if test="ooclass[preceding-sibling::*]"> +      <xsl:text> extends</xsl:text> +      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/> +      <xsl:if test="oointerface|ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="oointerface"> +      <xsl:text>implements</xsl:text> +      <xsl:apply-templates select="oointerface" mode="java"/> +      <xsl:if test="ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="ooexception"> +      <xsl:text>throws</xsl:text> +      <xsl:apply-templates select="ooexception" mode="java"/> +    </xsl:if> +    <xsl:text> {</xsl:text> +    <br/> +    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="java"/> +    <xsl:text>}</xsl:text> +  </pre> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="java"> +  <xsl:apply-templates mode="java"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="java"> +  <xsl:choose> +    <xsl:when test="preceding-sibling::*"> +      <xsl:text>, </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <xsl:text> </xsl:text> +    </xsl:otherwise> +  </xsl:choose> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +    <xsl:if test="following-sibling::*"> +      <xsl:text> </xsl:text> +    </xsl:if> +  </span> +</xsl:template> + +<xsl:template match="classname" mode="java"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="interfacename" mode="java"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="java"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="java"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates mode="java"/> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="varname" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="initializer" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>= </xsl:text> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="void" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>void </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="methodname" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="methodparam" mode="java"> +  <xsl:param name="indent">0</xsl:param> +  <xsl:if test="preceding-sibling::methodparam"> +    <xsl:text>,</xsl:text> +    <br/> +    <xsl:if test="$indent > 0"> +      <xsl:call-template name="copy-string"> +	<xsl:with-param name="string"> </xsl:with-param> +	<xsl:with-param name="count" select="$indent + 1"/> +      </xsl:call-template> +    </xsl:if> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template match="parameter" mode="java"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="java"/> +  </span> +</xsl:template> + +<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> +  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> +  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> +  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> +  <xsl:variable name="decl"> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates select="$start-modifiers" mode="java"/> + +    <!-- type --> +    <xsl:if test="local-name($notmod[1]) != 'methodname'"> +      <xsl:apply-templates select="$notmod[1]" mode="java"/> +    </xsl:if> + +    <xsl:apply-templates select="methodname" mode="java"/> +  </xsl:variable> + +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:copy-of select="$decl"/> +    <xsl:text>(</xsl:text> +    <xsl:apply-templates select="methodparam" mode="java"> +      <xsl:with-param name="indent" select="string-length($decl)"/> +    </xsl:apply-templates> +    <xsl:text>)</xsl:text> +    <xsl:if test="exceptionname"> +      <br/> +      <xsl:text>    throws </xsl:text> +      <xsl:apply-templates select="exceptionname" mode="java"/> +    </xsl:if> +    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> +      <xsl:text> </xsl:text> +      <xsl:apply-templates select="$end-modifiers" mode="java"/> +    </xsl:if> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== C++ ========================================================= --> + +<xsl:template match="classsynopsis" mode="cpp"> +  <pre> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates select="ooclass[1]" mode="cpp"/> +    <xsl:if test="ooclass[preceding-sibling::*]"> +      <xsl:text>: </xsl:text> +      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/> +      <xsl:if test="oointerface|ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="oointerface"> +      <xsl:text> implements</xsl:text> +      <xsl:apply-templates select="oointerface" mode="cpp"/> +      <xsl:if test="ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="ooexception"> +      <xsl:text> throws</xsl:text> +      <xsl:apply-templates select="ooexception" mode="cpp"/> +    </xsl:if> +    <xsl:text> {</xsl:text> +    <br/> +    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="cpp"/> +    <xsl:text>}</xsl:text> +  </pre> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="cpp"> +  <xsl:apply-templates mode="cpp"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="cpp"> +  <xsl:if test="preceding-sibling::*"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +    <xsl:if test="following-sibling::*"> +      <xsl:text> </xsl:text> +    </xsl:if> +  </span> +</xsl:template> + +<xsl:template match="classname" mode="cpp"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="interfacename" mode="cpp"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="cpp"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="cpp"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates mode="cpp"/> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="varname" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="initializer" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>= </xsl:text> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="void" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>void </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="methodname" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="methodparam" mode="cpp"> +  <xsl:if test="preceding-sibling::methodparam"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template match="parameter" mode="cpp"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="cpp"/> +  </span> +</xsl:template> + +<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> +  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> +  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> +  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates select="$start-modifiers" mode="cpp"/> + +    <!-- type --> +    <xsl:if test="local-name($notmod[1]) != 'methodname'"> +      <xsl:apply-templates select="$notmod[1]" mode="cpp"/> +    </xsl:if> + +    <xsl:apply-templates select="methodname" mode="cpp"/> +    <xsl:text>(</xsl:text> +    <xsl:apply-templates select="methodparam" mode="cpp"/> +    <xsl:text>)</xsl:text> +    <xsl:if test="exceptionname"> +      <br/> +      <xsl:text>    throws </xsl:text> +      <xsl:apply-templates select="exceptionname" mode="cpp"/> +    </xsl:if> +    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> +      <xsl:text> </xsl:text> +      <xsl:apply-templates select="$end-modifiers" mode="cpp"/> +    </xsl:if> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== IDL ========================================================= --> + +<xsl:template match="classsynopsis" mode="idl"> +  <pre> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>interface </xsl:text> +    <xsl:apply-templates select="ooclass[1]" mode="idl"/> +    <xsl:if test="ooclass[preceding-sibling::*]"> +      <xsl:text>: </xsl:text> +      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/> +      <xsl:if test="oointerface|ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="oointerface"> +      <xsl:text> implements</xsl:text> +      <xsl:apply-templates select="oointerface" mode="idl"/> +      <xsl:if test="ooexception"> +        <br/> +	<xsl:text>    </xsl:text> +      </xsl:if> +    </xsl:if> +    <xsl:if test="ooexception"> +      <xsl:text> throws</xsl:text> +      <xsl:apply-templates select="ooexception" mode="idl"/> +    </xsl:if> +    <xsl:text> {</xsl:text> +    <br/> +    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="idl"/> +    <xsl:text>}</xsl:text> +  </pre> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="idl"> +  <xsl:apply-templates mode="idl"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="idl"> +  <xsl:if test="preceding-sibling::*"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +    <xsl:if test="following-sibling::*"> +      <xsl:text> </xsl:text> +    </xsl:if> +  </span> +</xsl:template> + +<xsl:template match="classname" mode="idl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="interfacename" mode="idl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="idl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="idl"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates mode="idl"/> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="varname" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="initializer" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>= </xsl:text> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="void" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>void </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="methodname" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="methodparam" mode="idl"> +  <xsl:if test="preceding-sibling::methodparam"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template match="parameter" mode="idl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="idl"/> +  </span> +</xsl:template> + +<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> +  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> +  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> +  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates select="$start-modifiers" mode="idl"/> + +    <!-- type --> +    <xsl:if test="local-name($notmod[1]) != 'methodname'"> +      <xsl:apply-templates select="$notmod[1]" mode="idl"/> +    </xsl:if> + +    <xsl:apply-templates select="methodname" mode="idl"/> +    <xsl:text>(</xsl:text> +    <xsl:apply-templates select="methodparam" mode="idl"/> +    <xsl:text>)</xsl:text> +    <xsl:if test="exceptionname"> +      <br/> +      <xsl:text>    raises(</xsl:text> +      <xsl:apply-templates select="exceptionname" mode="idl"/> +      <xsl:text>)</xsl:text> +    </xsl:if> +    <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"> +      <xsl:text> </xsl:text> +      <xsl:apply-templates select="$end-modifiers" mode="idl"/> +    </xsl:if> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ===== Perl ======================================================== --> + +<xsl:template match="classsynopsis" mode="perl"> +  <pre> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>package </xsl:text> +    <xsl:apply-templates select="ooclass[1]" mode="perl"/> +    <xsl:text>;</xsl:text> +    <br/> + +    <xsl:if test="ooclass[preceding-sibling::*]"> +      <xsl:text>@ISA = (</xsl:text> +      <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/> +      <xsl:text>);</xsl:text> +      <br/> +    </xsl:if> + +    <xsl:apply-templates select="constructorsynopsis                                  |destructorsynopsis                                  |fieldsynopsis                                  |methodsynopsis                                  |classsynopsisinfo" mode="perl"/> +  </pre> +</xsl:template> + +<xsl:template match="classsynopsisinfo" mode="perl"> +  <xsl:apply-templates mode="perl"/> +</xsl:template> + +<xsl:template match="ooclass|oointerface|ooexception" mode="perl"> +  <xsl:if test="preceding-sibling::*"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="modifier|package" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +    <xsl:if test="following-sibling::*"> +      <xsl:text> </xsl:text> +    </xsl:if> +  </span> +</xsl:template> + +<xsl:template match="classname" mode="perl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="interfacename" mode="perl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="exceptionname" mode="perl"> +  <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="fieldsynopsis" mode="perl"> +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="parent::classsynopsis"> +      <xsl:text>  </xsl:text> +    </xsl:if> +    <xsl:apply-templates mode="perl"/> +    <xsl:text>;</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<xsl:template match="type" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="varname" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +    <xsl:text> </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="initializer" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>= </xsl:text> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="void" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>void </xsl:text> +  </span> +</xsl:template> + +<xsl:template match="methodname" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="methodparam" mode="perl"> +  <xsl:if test="preceding-sibling::methodparam"> +    <xsl:text>, </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template match="parameter" mode="perl"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="perl"/> +  </span> +</xsl:template> + +<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis"> +  <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/> +  <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/> +  <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/> + +  <code> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:text>sub </xsl:text> + +    <xsl:apply-templates select="methodname" mode="perl"/> +    <xsl:text> { ... };</xsl:text> +  </code> +  <xsl:call-template name="synop-break"/> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * DocBook 5 allows linking elements (link, olink, and xref) --> +<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, --> +<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and --> +<!-- * their children. So we need to have mode="java|cpp|idl|perl" --> +<!-- * per-mode matches for those linking elements in order for them --> +<!-- * to be processed as expected. --> + +<xsl:template match="link|olink|xref" mode="java"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="cpp"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="idl"> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="link|olink|xref" mode="perl"> +  <xsl:apply-templates select="."/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/table.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/table.xsl.svn-base new file mode 100644 index 0000000..b8a3651 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/table.xsl.svn-base @@ -0,0 +1,1093 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table" xmlns:xtbl="xalan://com.nwalsh.xalan.Table" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc stbl xtbl lxslt ptbl" version="1.0"> + +<xsl:include href="../common/table.xsl"/> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<lxslt:component prefix="xtbl" functions="adjustColumnWidths"/> + +<xsl:template name="empty.table.cell"> +  <xsl:param name="colnum" select="0"/> + +  <xsl:variable name="rowsep"> +    <xsl:choose> +      <!-- If this is the last row, rowsep never applies. --> +      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)"> +        <xsl:value-of select="0"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inherited.table.attribute"> +          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/> +          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/> +          <xsl:with-param name="colnum" select="$colnum"/> +          <xsl:with-param name="attribute" select="'rowsep'"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="colsep"> +    <xsl:choose> +      <!-- If this is the last column, colsep never applies. --> +      <xsl:when test="number($colnum) >= ancestor::tgroup/@cols">0</xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inherited.table.attribute"> +          <xsl:with-param name="entry" select="NOT-AN-ELEMENT-NAME"/> +          <xsl:with-param name="row" select="ancestor-or-self::row[1]"/> +          <xsl:with-param name="colnum" select="$colnum"/> +          <xsl:with-param name="attribute" select="'colsep'"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <td class="auto-generated"> +    <xsl:if test="$table.borders.with.css != 0"> +      <xsl:attribute name="style"> +        <xsl:if test="$colsep > 0"> +          <xsl:call-template name="border"> +            <xsl:with-param name="side" select="'right'"/> +          </xsl:call-template> +        </xsl:if> +        <xsl:if test="$rowsep > 0"> +          <xsl:call-template name="border"> +            <xsl:with-param name="side" select="'bottom'"/> +          </xsl:call-template> +        </xsl:if> +      </xsl:attribute> +    </xsl:if> +    <xsl:text> </xsl:text> +  </td> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="border"> +  <xsl:param name="side" select="'left'"/> +  <xsl:param name="padding" select="0"/> +  <xsl:param name="style" select="$table.cell.border.style"/> +  <xsl:param name="color" select="$table.cell.border.color"/> +  <xsl:param name="thickness" select="$table.cell.border.thickness"/> + +  <!-- Note: Some browsers (mozilla) require at least a width and style. --> + +  <xsl:choose> +    <xsl:when test="($thickness != ''                      and $style != ''                      and $color != '')                     or ($thickness != ''                         and $style != '')                     or ($thickness != '')"> +      <!-- use the compound property if we can: --> +      <!-- it saves space and probably works more reliably --> +      <xsl:text>border-</xsl:text> +      <xsl:value-of select="$side"/> +      <xsl:text>: </xsl:text> +      <xsl:value-of select="$thickness"/> +      <xsl:text> </xsl:text> +      <xsl:value-of select="$style"/> +      <xsl:text> </xsl:text> +      <xsl:value-of select="$color"/> +      <xsl:text>; </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <!-- we need to specify the styles individually --> +      <xsl:if test="$thickness != ''"> +        <xsl:text>border-</xsl:text> +        <xsl:value-of select="$side"/> +        <xsl:text>-width: </xsl:text> +        <xsl:value-of select="$thickness"/> +        <xsl:text>; </xsl:text> +      </xsl:if> + +      <xsl:if test="$style != ''"> +        <xsl:text>border-</xsl:text> +        <xsl:value-of select="$side"/> +        <xsl:text>-style: </xsl:text> +        <xsl:value-of select="$style"/> +        <xsl:text>; </xsl:text> +      </xsl:if> + +      <xsl:if test="$color != ''"> +        <xsl:text>border-</xsl:text> +        <xsl:value-of select="$side"/> +        <xsl:text>-color: </xsl:text> +        <xsl:value-of select="$color"/> +        <xsl:text>; </xsl:text> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="tgroup" name="tgroup"> +  <xsl:if test="not(@cols) or @cols = '' or string(number(@cols)) = 'NaN'"> +    <xsl:message terminate="yes"> +      <xsl:text>Error: CALS tables must specify the number of columns.</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:variable name="summary"> +    <xsl:call-template name="pi.dbhtml_table-summary"/> +  </xsl:variable> + +  <xsl:variable name="cellspacing"> +    <xsl:call-template name="pi.dbhtml_cellspacing"/> +  </xsl:variable> + +  <xsl:variable name="cellpadding"> +    <xsl:call-template name="pi.dbhtml_cellpadding"/> +  </xsl:variable> + +  <table> +    <xsl:choose> +      <!-- If there's a textobject/phrase for the table summary, use it --> +      <xsl:when test="../textobject/phrase"> +        <xsl:attribute name="summary"> +          <xsl:value-of select="../textobject/phrase"/> +        </xsl:attribute> +      </xsl:when> + +      <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for +           the HTML table summary attribute --> +      <xsl:when test="$summary != ''"> +        <xsl:attribute name="summary"> +          <xsl:value-of select="$summary"/> +        </xsl:attribute> +      </xsl:when> + +      <!-- Otherwise, if there's a title, use that --> +      <xsl:when test="../title"> +        <xsl:attribute name="summary"> +          <xsl:value-of select="string(../title)"/> +        </xsl:attribute> +      </xsl:when> + +      <!-- Otherwise, forget the whole idea --> +      <xsl:otherwise><!-- nevermind --></xsl:otherwise> +    </xsl:choose> + +    <xsl:if test="$cellspacing != '' or $html.cellspacing != ''"> +      <xsl:attribute name="cellspacing"> +        <xsl:choose> +          <xsl:when test="$cellspacing != ''"> +            <xsl:value-of select="$cellspacing"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$html.cellspacing"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$cellpadding != '' or $html.cellpadding != ''"> +      <xsl:attribute name="cellpadding"> +        <xsl:choose> +          <xsl:when test="$cellpadding != ''"> +            <xsl:value-of select="$cellpadding"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$html.cellpadding"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="../@pgwide=1 or local-name(.) = 'entrytbl'"> +      <xsl:attribute name="width">100%</xsl:attribute> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="$table.borders.with.css != 0"> +        <xsl:choose> +          <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')"> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'top'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'bottom'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'left'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'right'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +            </xsl:attribute> +          </xsl:when> +          <xsl:when test="../@frame='topbot' or (not(../@frame) and $default.table.frame='topbot')"> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'top'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'bottom'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +            </xsl:attribute> +          </xsl:when> +          <xsl:when test="../@frame='top' or (not(../@frame) and $default.table.frame='top')"> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'top'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +            </xsl:attribute> +          </xsl:when> +          <xsl:when test="../@frame='bottom' or (not(../@frame) and $default.table.frame='bottom')"> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'bottom'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +            </xsl:attribute> +          </xsl:when> +          <xsl:when test="../@frame='sides' or (not(../@frame) and $default.table.frame='sides')"> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'left'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'right'"/> +                <xsl:with-param name="style" select="$table.frame.border.style"/> +                <xsl:with-param name="color" select="$table.frame.border.color"/> +                <xsl:with-param name="thickness" select="$table.frame.border.thickness"/> +              </xsl:call-template> +            </xsl:attribute> +          </xsl:when> +	  <xsl:when test="../@frame='none'"> +	    <xsl:attribute name="style"> +	      <xsl:text>border: none;</xsl:text> +	    </xsl:attribute> +	  </xsl:when> +          <xsl:otherwise> +            <xsl:attribute name="style"> +              <xsl:text>border-collapse: collapse;</xsl:text> +            </xsl:attribute> +          </xsl:otherwise> +        </xsl:choose> + +      </xsl:when> +      <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'"> +        <xsl:attribute name="border">0</xsl:attribute> +      </xsl:when> +      <xsl:otherwise> +        <xsl:attribute name="border">1</xsl:attribute> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:variable name="colgroup"> +      <colgroup> +        <xsl:call-template name="generate.colgroup"> +          <xsl:with-param name="cols" select="@cols"/> +        </xsl:call-template> +      </colgroup> +    </xsl:variable> + +    <xsl:variable name="explicit.table.width"> +      <xsl:call-template name="pi.dbhtml_table-width"> +        <xsl:with-param name="node" select=".."/> +      </xsl:call-template> +    </xsl:variable> + +    <xsl:variable name="table.width"> +      <xsl:choose> +        <xsl:when test="$explicit.table.width != ''"> +          <xsl:value-of select="$explicit.table.width"/> +        </xsl:when> +        <xsl:when test="$default.table.width = ''"> +          <xsl:text>100%</xsl:text> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="$default.table.width"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:variable> + +    <xsl:if test="$default.table.width != ''                   or $explicit.table.width != ''"> +      <xsl:attribute name="width"> +        <xsl:choose> +          <xsl:when test="contains($table.width, '%')"> +            <xsl:value-of select="$table.width"/> +          </xsl:when> +          <xsl:when test="$use.extensions != 0                           and $tablecolumns.extension != 0"> +            <xsl:choose> +              <xsl:when test="function-available('stbl:convertLength')"> +                <xsl:value-of select="stbl:convertLength($table.width)"/> +              </xsl:when> +              <xsl:when test="function-available('xtbl:convertLength')"> +                <xsl:value-of select="xtbl:convertLength($table.width)"/> +              </xsl:when> +              <xsl:otherwise> +                <xsl:message terminate="yes"> +                  <xsl:text>No convertLength function available.</xsl:text> +                </xsl:message> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$table.width"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:attribute> +    </xsl:if> + +    <xsl:choose> +      <xsl:when test="$use.extensions != 0                       and $tablecolumns.extension != 0"> +        <xsl:choose> +          <xsl:when test="function-available('stbl:adjustColumnWidths')"> +            <xsl:copy-of select="stbl:adjustColumnWidths($colgroup)"/> +          </xsl:when> +          <xsl:when test="function-available('xtbl:adjustColumnWidths')"> +            <xsl:copy-of select="xtbl:adjustColumnWidths($colgroup)"/> +          </xsl:when> +          <xsl:when test="function-available('ptbl:adjustColumnWidths')"> +            <xsl:copy-of select="ptbl:adjustColumnWidths($colgroup)"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:message terminate="yes"> +              <xsl:text>No adjustColumnWidths function available.</xsl:text> +            </xsl:message> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <xsl:otherwise> +        <xsl:copy-of select="$colgroup"/> +      </xsl:otherwise> +    </xsl:choose> + +    <xsl:apply-templates select="thead"/> +    <xsl:apply-templates select="tfoot"/> +    <xsl:apply-templates select="tbody"/> + +    <xsl:if test=".//footnote"> +      <tbody class="footnotes"> +        <tr> +          <td colspan="{@cols}"> +            <xsl:apply-templates select=".//footnote" mode="table.footnote.mode"/> +          </td> +        </tr> +      </tbody> +    </xsl:if> +  </table> +</xsl:template> + +<xsl:template match="tgroup/processing-instruction('dbhtml')"> +  <xsl:variable name="summary"> +    <xsl:call-template name="pi.dbhtml_table-summary"/> +  </xsl:variable> + +  <!-- Suppress the table-summary PI --> +  <xsl:if test="$summary = ''"> +    <xsl:processing-instruction name="dbhtml"> +      <xsl:value-of select="."/> +    </xsl:processing-instruction> +  </xsl:if> +</xsl:template> + +<xsl:template match="colspec"/> + +<xsl:template match="spanspec"/> + +<xsl:template match="thead|tfoot"> +  <xsl:element name="{local-name(.)}" namespace="http://www.w3.org/1999/xhtml"> +    <xsl:if test="@align"> +      <xsl:attribute name="align"> +        <xsl:value-of select="@align"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@char"> +      <xsl:attribute name="char"> +        <xsl:value-of select="@char"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@charoff"> +      <xsl:attribute name="charoff"> +        <xsl:value-of select="@charoff"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@valign"> +      <xsl:attribute name="valign"> +        <xsl:value-of select="@valign"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:apply-templates select="row[1]"> +      <xsl:with-param name="spans"> +        <xsl:call-template name="blank.spans"> +          <xsl:with-param name="cols" select="../@cols"/> +        </xsl:call-template> +      </xsl:with-param> +    </xsl:apply-templates> + +  </xsl:element> +</xsl:template> + +<xsl:template match="tbody"> +  <tbody> +    <xsl:if test="@align"> +      <xsl:attribute name="align"> +        <xsl:value-of select="@align"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@char"> +      <xsl:attribute name="char"> +        <xsl:value-of select="@char"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@charoff"> +      <xsl:attribute name="charoff"> +        <xsl:value-of select="@charoff"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@valign"> +      <xsl:attribute name="valign"> +        <xsl:value-of select="@valign"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:apply-templates select="row[1]"> +      <xsl:with-param name="spans"> +        <xsl:call-template name="blank.spans"> +          <xsl:with-param name="cols" select="../@cols"/> +        </xsl:call-template> +      </xsl:with-param> +    </xsl:apply-templates> + +  </tbody> +</xsl:template> + +<xsl:template match="row"> +  <xsl:param name="spans"/> + +  <xsl:choose> +    <xsl:when test="contains($spans, '0')"> +      <xsl:call-template name="normal-row"> +	<xsl:with-param name="spans" select="$spans"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <!-- +      <xsl:message> +	<xsl:text>Ignoring row: </xsl:text> +	<xsl:value-of select="$spans"/> +	<xsl:text> = </xsl:text> +	<xsl:call-template name="consume-row"> +	  <xsl:with-param name="spans" select="$spans"/> +	</xsl:call-template> +      </xsl:message> +      --> + +      <xsl:if test="normalize-space(.//text()) != ''"> +	<xsl:message>Warning: overlapped row contains content!</xsl:message> +      </xsl:if> + +      <tr><xsl:comment> This row intentionally left blank </xsl:comment></tr> + +      <xsl:apply-templates select="following-sibling::row[1]"> +	<xsl:with-param name="spans"> +	  <xsl:call-template name="consume-row"> +	    <xsl:with-param name="spans" select="$spans"/> +	  </xsl:call-template> +	</xsl:with-param> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="normal-row"> +  <xsl:param name="spans"/> + +  <xsl:variable name="row-height"> +    <xsl:if test="processing-instruction('dbhtml')"> +      <xsl:call-template name="pi.dbhtml_row-height"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="bgcolor"> +    <xsl:if test="processing-instruction('dbhtml')"> +      <xsl:call-template name="pi.dbhtml_bgcolor"/> +    </xsl:if> +  </xsl:variable> + +  <xsl:variable name="class"> +    <xsl:if test="processing-instruction('dbhtml')"> +      <xsl:call-template name="pi.dbhtml_class"/> +    </xsl:if> +  </xsl:variable> + +  <tr> +    <xsl:call-template name="tr.attributes"> +      <xsl:with-param name="rownum"> +        <xsl:number from="tgroup" count="row"/> +      </xsl:with-param> +    </xsl:call-template> + +    <xsl:if test="$row-height != ''"> +      <xsl:attribute name="height"> +        <xsl:value-of select="$row-height"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$bgcolor != ''"> +      <xsl:attribute name="bgcolor"> +        <xsl:value-of select="$bgcolor"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$class != ''"> +      <xsl:attribute name="class"> +        <xsl:value-of select="$class"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:if test="$table.borders.with.css != 0"> +      <xsl:if test="@rowsep = 1 and following-sibling::row"> +        <xsl:attribute name="style"> +          <xsl:call-template name="border"> +            <xsl:with-param name="side" select="'bottom'"/> +          </xsl:call-template> +        </xsl:attribute> +      </xsl:if> +    </xsl:if> + +    <xsl:if test="@align"> +      <xsl:attribute name="align"> +        <xsl:value-of select="@align"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@char"> +      <xsl:attribute name="char"> +        <xsl:value-of select="@char"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@charoff"> +      <xsl:attribute name="charoff"> +        <xsl:value-of select="@charoff"/> +      </xsl:attribute> +    </xsl:if> +    <xsl:if test="@valign"> +      <xsl:attribute name="valign"> +        <xsl:value-of select="@valign"/> +      </xsl:attribute> +    </xsl:if> + +    <xsl:apply-templates select="(entry|entrytbl)[1]"> +      <xsl:with-param name="spans" select="$spans"/> +    </xsl:apply-templates> +  </tr> + +  <xsl:if test="following-sibling::row"> +    <xsl:variable name="nextspans"> +      <xsl:apply-templates select="(entry|entrytbl)[1]" mode="span"> +        <xsl:with-param name="spans" select="$spans"/> +      </xsl:apply-templates> +    </xsl:variable> + +    <xsl:apply-templates select="following-sibling::row[1]"> +      <xsl:with-param name="spans" select="$nextspans"/> +    </xsl:apply-templates> +  </xsl:if> +</xsl:template> + +<xsl:template match="entry|entrytbl" name="entry"> +  <xsl:param name="col" select="1"/> +  <xsl:param name="spans"/> + +  <xsl:variable name="cellgi"> +    <xsl:choose> +      <xsl:when test="ancestor::thead">th</xsl:when> +      <xsl:when test="ancestor::tfoot">th</xsl:when> +      <xsl:otherwise>td</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="empty.cell" select="count(node()) = 0"/> + +  <xsl:variable name="named.colnum"> +    <xsl:call-template name="entry.colnum"/> +  </xsl:variable> + +  <xsl:variable name="entry.colnum"> +    <xsl:choose> +      <xsl:when test="$named.colnum > 0"> +        <xsl:value-of select="$named.colnum"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$col"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="entry.colspan"> +    <xsl:choose> +      <xsl:when test="@spanname or @namest"> +        <xsl:call-template name="calculate.colspan"/> +      </xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="following.spans"> +    <xsl:call-template name="calculate.following.spans"> +      <xsl:with-param name="colspan" select="$entry.colspan"/> +      <xsl:with-param name="spans" select="$spans"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="rowsep"> +    <xsl:choose> +      <!-- If this is the last row, rowsep never applies. --> +      <xsl:when test="ancestor::entrytbl                       and not (ancestor-or-self::row[1]/following-sibling::row)"> +        <xsl:value-of select="0"/> +      </xsl:when> +      <xsl:when test="not(ancestor-or-self::row[1]/following-sibling::row                           or ancestor-or-self::thead/following-sibling::tbody                           or ancestor-or-self::tbody/preceding-sibling::tfoot)"> +        <xsl:value-of select="0"/> +      </xsl:when> +      <xsl:when test="@morerows and not(@morerows <                   count(ancestor-or-self::row[1]/following-sibling::row))"> +        <xsl:value-of select="0"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inherited.table.attribute"> +          <xsl:with-param name="entry" select="."/> +          <xsl:with-param name="colnum" select="$entry.colnum"/> +          <xsl:with-param name="attribute" select="'rowsep'"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="colsep"> +    <xsl:choose> +      <!-- If this is the last column, colsep never applies. --> +      <xsl:when test="$following.spans = ''">0</xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="inherited.table.attribute"> +          <xsl:with-param name="entry" select="."/> +          <xsl:with-param name="colnum" select="$entry.colnum"/> +          <xsl:with-param name="attribute" select="'colsep'"/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="valign"> +    <xsl:call-template name="inherited.table.attribute"> +      <xsl:with-param name="entry" select="."/> +      <xsl:with-param name="colnum" select="$entry.colnum"/> +      <xsl:with-param name="attribute" select="'valign'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="align"> +    <xsl:call-template name="inherited.table.attribute"> +      <xsl:with-param name="entry" select="."/> +      <xsl:with-param name="colnum" select="$entry.colnum"/> +      <xsl:with-param name="attribute" select="'align'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="char"> +    <xsl:call-template name="inherited.table.attribute"> +      <xsl:with-param name="entry" select="."/> +      <xsl:with-param name="colnum" select="$entry.colnum"/> +      <xsl:with-param name="attribute" select="'char'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="charoff"> +    <xsl:call-template name="inherited.table.attribute"> +      <xsl:with-param name="entry" select="."/> +      <xsl:with-param name="colnum" select="$entry.colnum"/> +      <xsl:with-param name="attribute" select="'charoff'"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))"> +      <xsl:call-template name="entry"> +        <xsl:with-param name="col" select="$col+1"/> +        <xsl:with-param name="spans" select="substring-after($spans,':')"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:when test="number($entry.colnum) > $col"> +      <xsl:call-template name="empty.table.cell"/> +      <xsl:call-template name="entry"> +        <xsl:with-param name="col" select="$col+1"/> +        <xsl:with-param name="spans" select="substring-after($spans,':')"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:variable name="bgcolor"> +        <xsl:if test="processing-instruction('dbhtml')"> +          <xsl:call-template name="pi.dbhtml_bgcolor"/> +        </xsl:if> +      </xsl:variable> + +      <xsl:element name="{$cellgi}" namespace="http://www.w3.org/1999/xhtml"> +        <xsl:if test="$bgcolor != ''"> +          <xsl:attribute name="bgcolor"> +            <xsl:value-of select="$bgcolor"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$entry.propagates.style != 0 and @role"> +          <xsl:apply-templates select="." mode="class.attribute"> +            <xsl:with-param name="class" select="@role"/> +          </xsl:apply-templates> +        </xsl:if> + +        <xsl:if test="$show.revisionflag and @revisionflag"> +          <xsl:attribute name="class"> +            <xsl:value-of select="@revisionflag"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$table.borders.with.css != 0"> +          <xsl:attribute name="style"> +            <xsl:if test="$colsep > 0"> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'right'"/> +              </xsl:call-template> +            </xsl:if> +            <xsl:if test="$rowsep > 0"> +              <xsl:call-template name="border"> +                <xsl:with-param name="side" select="'bottom'"/> +              </xsl:call-template> +            </xsl:if> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="@morerows > 0"> +          <xsl:attribute name="rowspan"> +            <xsl:value-of select="1+@morerows"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$entry.colspan > 1"> +          <xsl:attribute name="colspan"> +            <xsl:value-of select="$entry.colspan"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$align != ''"> +          <xsl:attribute name="align"> +            <xsl:value-of select="$align"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$valign != ''"> +          <xsl:attribute name="valign"> +            <xsl:value-of select="$valign"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$char != ''"> +          <xsl:attribute name="char"> +            <xsl:value-of select="$char"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="$charoff != ''"> +          <xsl:attribute name="charoff"> +            <xsl:value-of select="$charoff"/> +          </xsl:attribute> +        </xsl:if> + +        <xsl:if test="not(preceding-sibling::*) and                      (ancestor::row[1]/@id or ancestor::row[1]/@xml:id)"> +          <xsl:call-template name="anchor"> +            <xsl:with-param name="node" select="ancestor::row[1]"/> +          </xsl:call-template> +        </xsl:if> + +        <xsl:call-template name="anchor"/> + +        <xsl:choose> +          <xsl:when test="$empty.cell"> +            <xsl:text> </xsl:text> +          </xsl:when> +          <xsl:when test="self::entrytbl"> +            <xsl:call-template name="tgroup"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:apply-templates/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:element> + +      <xsl:choose> +        <xsl:when test="following-sibling::entry|following-sibling::entrytbl"> +          <xsl:apply-templates select="(following-sibling::entry                                        |following-sibling::entrytbl)[1]"> +            <xsl:with-param name="col" select="$col+$entry.colspan"/> +            <xsl:with-param name="spans" select="$following.spans"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="finaltd"> +            <xsl:with-param name="spans" select="$following.spans"/> +            <xsl:with-param name="col" select="$col+$entry.colspan"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="entry|entrytbl" name="sentry" mode="span"> +  <xsl:param name="col" select="1"/> +  <xsl:param name="spans"/> + +  <xsl:variable name="entry.colnum"> +    <xsl:call-template name="entry.colnum"/> +  </xsl:variable> + +  <xsl:variable name="entry.colspan"> +    <xsl:choose> +      <xsl:when test="@spanname or @namest"> +        <xsl:call-template name="calculate.colspan"/> +      </xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="following.spans"> +    <xsl:call-template name="calculate.following.spans"> +      <xsl:with-param name="colspan" select="$entry.colspan"/> +      <xsl:with-param name="spans" select="$spans"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$spans != '' and not(starts-with($spans,'0:'))"> +      <xsl:value-of select="substring-before($spans,':')-1"/> +      <xsl:text>:</xsl:text> +      <xsl:call-template name="sentry"> +        <xsl:with-param name="col" select="$col+1"/> +        <xsl:with-param name="spans" select="substring-after($spans,':')"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:when test="number($entry.colnum) > $col"> +      <xsl:text>0:</xsl:text> +      <xsl:call-template name="sentry"> +        <xsl:with-param name="col" select="$col+$entry.colspan"/> +        <xsl:with-param name="spans" select="$following.spans"/> +      </xsl:call-template> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:call-template name="copy-string"> +        <xsl:with-param name="count" select="$entry.colspan"/> +        <xsl:with-param name="string"> +          <xsl:choose> +            <xsl:when test="@morerows"> +              <xsl:value-of select="@morerows"/> +            </xsl:when> +            <xsl:otherwise>0</xsl:otherwise> +          </xsl:choose> +          <xsl:text>:</xsl:text> +        </xsl:with-param> +      </xsl:call-template> + +      <xsl:choose> +        <xsl:when test="following-sibling::entry|following-sibling::entrytbl"> +          <xsl:apply-templates select="(following-sibling::entry                                         |following-sibling::entrytbl)[1]" mode="span"> +            <xsl:with-param name="col" select="$col+$entry.colspan"/> +            <xsl:with-param name="spans" select="$following.spans"/> +          </xsl:apply-templates> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="sfinaltd"> +            <xsl:with-param name="spans" select="$following.spans"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="generate.colgroup"> +  <xsl:param name="cols" select="1"/> +  <xsl:param name="count" select="1"/> +  <xsl:choose> +    <xsl:when test="$count > $cols"/> +    <xsl:otherwise> +      <xsl:call-template name="generate.col"> +        <xsl:with-param name="countcol" select="$count"/> +      </xsl:call-template> +      <xsl:call-template name="generate.colgroup"> +        <xsl:with-param name="cols" select="$cols"/> +        <xsl:with-param name="count" select="$count+1"/> +      </xsl:call-template> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="generate.col"> +  <xsl:param name="countcol">1</xsl:param> +  <xsl:param name="colspecs" select="./colspec"/> +  <xsl:param name="count">1</xsl:param> +  <xsl:param name="colnum">1</xsl:param> + +  <xsl:choose> +    <xsl:when test="$count>count($colspecs)"> +      <col/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/> +      <xsl:variable name="colspec.colnum"> +        <xsl:choose> +          <xsl:when test="$colspec/@colnum"> +            <xsl:value-of select="$colspec/@colnum"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$colnum"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:choose> +        <xsl:when test="$colspec.colnum=$countcol"> +          <col> +            <xsl:if test="$colspec/@colwidth                           and $use.extensions != 0                           and $tablecolumns.extension != 0"> +              <xsl:attribute name="width"> +	        <xsl:choose> +		  <xsl:when test="normalize-space($colspec/@colwidth) = '*'"> +                    <xsl:value-of select="'1*'"/> +		  </xsl:when> +		  <xsl:otherwise> +                    <xsl:value-of select="$colspec/@colwidth"/> +		  </xsl:otherwise> +		</xsl:choose> +              </xsl:attribute> +            </xsl:if> + +            <xsl:choose> +              <xsl:when test="$colspec/@align"> +                <xsl:attribute name="align"> +                  <xsl:value-of select="$colspec/@align"/> +                </xsl:attribute> +              </xsl:when> +              <!-- Suggested by Pavel ZAMPACH <zampach@nemcb.cz> --> +              <xsl:when test="$colspecs/ancestor::tgroup/@align"> +                <xsl:attribute name="align"> +                  <xsl:value-of select="$colspecs/ancestor::tgroup/@align"/> +                </xsl:attribute> +              </xsl:when> +            </xsl:choose> + +            <xsl:if test="$colspec/@char"> +              <xsl:attribute name="char"> +                <xsl:value-of select="$colspec/@char"/> +              </xsl:attribute> +            </xsl:if> +            <xsl:if test="$colspec/@charoff"> +              <xsl:attribute name="charoff"> +                <xsl:value-of select="$colspec/@charoff"/> +              </xsl:attribute> +            </xsl:if> +          </col> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="generate.col"> +            <xsl:with-param name="countcol" select="$countcol"/> +            <xsl:with-param name="colspecs" select="$colspecs"/> +            <xsl:with-param name="count" select="$count+1"/> +            <xsl:with-param name="colnum"> +              <xsl:choose> +                <xsl:when test="$colspec/@colnum"> +                  <xsl:value-of select="$colspec/@colnum + 1"/> +                </xsl:when> +                <xsl:otherwise> +                  <xsl:value-of select="$colnum + 1"/> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:with-param> +           </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="colspec.colwidth"> +  <!-- when this macro is called, the current context must be an entry --> +  <xsl:param name="colname"/> +  <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup --> +  <xsl:param name="colspecs" select="../../../../tgroup/colspec"/> +  <xsl:param name="count">1</xsl:param> +  <xsl:choose> +    <xsl:when test="$count>count($colspecs)"/> +    <xsl:otherwise> +      <xsl:variable name="colspec" select="$colspecs[$count=position()]"/> +      <xsl:choose> +        <xsl:when test="$colspec/@colname=$colname"> +          <xsl:value-of select="$colspec/@colwidth"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="colspec.colwidth"> +            <xsl:with-param name="colname" select="$colname"/> +            <xsl:with-param name="colspecs" select="$colspecs"/> +            <xsl:with-param name="count" select="$count+1"/> +          </xsl:call-template> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ====================================================================== --> + +<xsl:template name="tr.attributes"> +  <xsl:param name="row" select="."/> +  <xsl:param name="rownum" select="0"/> + +  <!-- by default, do nothing. But you might want to say: + +  <xsl:if test="$rownum mod 2 = 0"> +    <xsl:attribute name="class">oddrow</xsl:attribute> +  </xsl:if> + +  --> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/task.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/task.xsl.svn-base new file mode 100644 index 0000000..a510d0d --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/task.xsl.svn-base @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="task"> +  <xsl:variable name="param.placement" select="substring-after(normalize-space($formal.title.placement),                                         concat(local-name(.), ' '))"/> + +  <xsl:variable name="placement"> +    <xsl:choose> +      <xsl:when test="contains($param.placement, ' ')"> +        <xsl:value-of select="substring-before($param.placement, ' ')"/> +      </xsl:when> +      <xsl:when test="$param.placement = ''">before</xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$param.placement"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="preamble" select="*[not(self::title                               or self::titleabbrev)]"/> + +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> + +    <xsl:if test="title and $placement = 'before'"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> + +    <xsl:apply-templates select="$preamble"/> + +    <xsl:if test="title and $placement != 'before'"> +      <xsl:call-template name="formal.object.heading"/> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="task/title"> +  <!-- nop --> +</xsl:template> + +<xsl:template match="tasksummary"> +  <xsl:call-template name="semiformal.object"/> +</xsl:template> + +<xsl:template match="tasksummary/title"/> + +<xsl:template match="taskprerequisites"> +  <xsl:call-template name="semiformal.object"/> +</xsl:template> + +<xsl:template match="taskprerequisites/title"/> + +<xsl:template match="taskrelated"> +  <xsl:call-template name="semiformal.object"/> +</xsl:template> + +<xsl:template match="taskrelated/title"/> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.templates.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.templates.xsl.svn-base new file mode 100644 index 0000000..b1ac57f --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.templates.xsl.svn-base @@ -0,0 +1,3622 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="exsl"> + +<!-- This stylesheet was created by template/titlepage.xsl--> + +<xsl:template name="article.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="articleinfo/title"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/title"/> +    </xsl:when> +    <xsl:when test="artheader/title"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="articleinfo/subtitle"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="artheader/subtitle"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/corpauthor"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/authorgroup"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/author"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/othercredit"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/othercredit"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/releaseinfo"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/copyright"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/legalnotice"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/pubdate"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revision"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/revhistory"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="artheader/abstract"/> +  <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="article.titlepage.verso"> +</xsl:template> + +<xsl:template name="article.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="article.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="article.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="article.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="article.titlepage.before.recto"/> +      <xsl:call-template name="article.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="article.titlepage.before.verso"/> +      <xsl:call-template name="article.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="article.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="article.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="article.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="article.titlepage.recto.style"> +<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="set.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="setinfo/title"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="setinfo/subtitle"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/othercredit"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/> +  <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="set.titlepage.verso"> +</xsl:template> + +<xsl:template name="set.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="set.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="set.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="set.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="set.titlepage.before.recto"/> +      <xsl:call-template name="set.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="set.titlepage.before.verso"/> +      <xsl:call-template name="set.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="set.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="set.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="set.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="set.titlepage.recto.style"> +<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="book.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="bookinfo/title"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="bookinfo/subtitle"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/othercredit"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/> +  <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="book.titlepage.verso"> +</xsl:template> + +<xsl:template name="book.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="book.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="book.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="book.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="book.titlepage.before.recto"/> +      <xsl:call-template name="book.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="book.titlepage.before.verso"/> +      <xsl:call-template name="book.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="book.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="book.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="book.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="book.titlepage.recto.style"> +<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="part.titlepage.recto"> +  <div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:call-template name="division.title"> +<xsl:with-param name="node" select="ancestor-or-self::part[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="partinfo/subtitle"> +      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/othercredit"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="part.titlepage.verso"> +</xsl:template> + +<xsl:template name="part.titlepage.separator"> +</xsl:template> + +<xsl:template name="part.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="part.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="part.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="part.titlepage.before.recto"/> +      <xsl:call-template name="part.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="part.titlepage.before.verso"/> +      <xsl:call-template name="part.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="part.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="part.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="part.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="part.titlepage.recto.style"> +<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="partintro.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="partintroinfo/title"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="partintroinfo/subtitle"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/othercredit"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="partintro.titlepage.verso"> +</xsl:template> + +<xsl:template name="partintro.titlepage.separator"> +</xsl:template> + +<xsl:template name="partintro.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="partintro.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="partintro.titlepage"> +  <div> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="partintro.titlepage.before.recto"/> +      <xsl:call-template name="partintro.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="partintro.titlepage.before.verso"/> +      <xsl:call-template name="partintro.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="partintro.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="partintro.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="partintro.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="partintro.titlepage.recto.style"> +<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="reference.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="referenceinfo/title"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="referenceinfo/subtitle"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/othercredit"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="reference.titlepage.verso"> +</xsl:template> + +<xsl:template name="reference.titlepage.separator"><hr/> +</xsl:template> + +<xsl:template name="reference.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="reference.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="reference.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="reference.titlepage.before.recto"/> +      <xsl:call-template name="reference.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="reference.titlepage.before.verso"/> +      <xsl:call-template name="reference.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="reference.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="reference.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="reference.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="reference.titlepage.recto.style"> +<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="refentry.titlepage.recto"> +</xsl:template> + +<xsl:template name="refentry.titlepage.verso"> +</xsl:template> + +<xsl:template name="refentry.titlepage.separator"> +</xsl:template> + +<xsl:template name="refentry.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="refentry.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="refentry.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="refentry.titlepage.before.recto"/> +      <xsl:call-template name="refentry.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="refentry.titlepage.before.verso"/> +      <xsl:call-template name="refentry.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="refentry.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="refentry.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="refentry.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template name="dedication.titlepage.recto"> +  <div xsl:use-attribute-sets="dedication.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="dedicationinfo/subtitle"> +      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="dedicationinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="dedication.titlepage.verso"> +</xsl:template> + +<xsl:template name="dedication.titlepage.separator"> +</xsl:template> + +<xsl:template name="dedication.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="dedication.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="dedication.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="dedication.titlepage.before.recto"/> +      <xsl:call-template name="dedication.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="dedication.titlepage.before.verso"/> +      <xsl:call-template name="dedication.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="dedication.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="dedication.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="dedication.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="dedication.titlepage.recto.style"> +<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="preface.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="prefaceinfo/title"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="prefaceinfo/subtitle"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/othercredit"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="preface.titlepage.verso"> +</xsl:template> + +<xsl:template name="preface.titlepage.separator"> +</xsl:template> + +<xsl:template name="preface.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="preface.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="preface.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="preface.titlepage.before.recto"/> +      <xsl:call-template name="preface.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="preface.titlepage.before.verso"/> +      <xsl:call-template name="preface.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="preface.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="preface.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="preface.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="preface.titlepage.recto.style"> +<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="chapter.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="chapterinfo/title"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="chapterinfo/subtitle"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/othercredit"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="chapter.titlepage.verso"> +</xsl:template> + +<xsl:template name="chapter.titlepage.separator"> +</xsl:template> + +<xsl:template name="chapter.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="chapter.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="chapter.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="chapter.titlepage.before.recto"/> +      <xsl:call-template name="chapter.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="chapter.titlepage.before.verso"/> +      <xsl:call-template name="chapter.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="chapter.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="chapter.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="chapter.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="chapter.titlepage.recto.style"> +<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="appendix.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="appendixinfo/title"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="appendixinfo/subtitle"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/othercredit"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="appendix.titlepage.verso"> +</xsl:template> + +<xsl:template name="appendix.titlepage.separator"> +</xsl:template> + +<xsl:template name="appendix.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="appendix.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="appendix.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="appendix.titlepage.before.recto"/> +      <xsl:call-template name="appendix.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="appendix.titlepage.before.verso"/> +      <xsl:call-template name="appendix.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="appendix.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="appendix.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="appendix.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="appendix.titlepage.recto.style"> +<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="section.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sectioninfo/title"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sectioninfo/subtitle"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/othercredit"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/> +  <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="section.titlepage.verso"> +</xsl:template> + +<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="section.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="section.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="section.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="section.titlepage.before.recto"/> +      <xsl:call-template name="section.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="section.titlepage.before.verso"/> +      <xsl:call-template name="section.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="section.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="section.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="section.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="section.titlepage.recto.style"> +<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect1.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sect1info/title"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sect1info/subtitle"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/othercredit"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/> +  <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect1.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect1.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect1.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect1.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="sect1.titlepage.before.recto"/> +      <xsl:call-template name="sect1.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="sect1.titlepage.before.verso"/> +      <xsl:call-template name="sect1.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="sect1.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="sect1.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect1.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect1.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect2.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sect2info/title"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sect2info/subtitle"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/othercredit"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/> +  <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect2.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect2.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect2.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect2.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="sect2.titlepage.before.recto"/> +      <xsl:call-template name="sect2.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="sect2.titlepage.before.verso"/> +      <xsl:call-template name="sect2.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="sect2.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="sect2.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect2.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect2.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect3.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sect3info/title"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sect3info/subtitle"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/othercredit"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/> +  <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect3.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect3.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect3.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect3.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="sect3.titlepage.before.recto"/> +      <xsl:call-template name="sect3.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="sect3.titlepage.before.verso"/> +      <xsl:call-template name="sect3.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="sect3.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="sect3.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect3.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect3.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect4.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sect4info/title"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sect4info/subtitle"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/othercredit"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/> +  <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect4.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect4.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect4.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect4.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="sect4.titlepage.before.recto"/> +      <xsl:call-template name="sect4.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="sect4.titlepage.before.verso"/> +      <xsl:call-template name="sect4.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="sect4.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="sect4.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect4.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect4.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="sect5.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="sect5info/title"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="sect5info/subtitle"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/othercredit"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/> +  <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="sect5.titlepage.verso"> +</xsl:template> + +<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="sect5.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="sect5.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="sect5.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="sect5.titlepage.before.recto"/> +      <xsl:call-template name="sect5.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="sect5.titlepage.before.verso"/> +      <xsl:call-template name="sect5.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="sect5.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="sect5.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="sect5.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="sect5.titlepage.recto.style"> +<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="simplesect.titlepage.recto"> +  <xsl:choose> +    <xsl:when test="simplesectinfo/title"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/title"/> +    </xsl:when> +    <xsl:when test="docinfo/title"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/title"/> +    </xsl:when> +    <xsl:when test="info/title"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/title"/> +    </xsl:when> +    <xsl:when test="title"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="title"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:choose> +    <xsl:when test="simplesectinfo/subtitle"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/corpauthor"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/corpauthor"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/authorgroup"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/authorgroup"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/author"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/author"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/othercredit"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/othercredit"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/othercredit"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/releaseinfo"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/releaseinfo"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/copyright"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/copyright"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/legalnotice"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/legalnotice"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/pubdate"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/pubdate"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revision"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revision"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/revhistory"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/revhistory"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="docinfo/abstract"/> +  <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="info/abstract"/> +</xsl:template> + +<xsl:template name="simplesect.titlepage.verso"> +</xsl:template> + +<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if> +</xsl:template> + +<xsl:template name="simplesect.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="simplesect.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="simplesect.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="simplesect.titlepage.before.recto"/> +      <xsl:call-template name="simplesect.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="simplesect.titlepage.before.verso"/> +      <xsl:call-template name="simplesect.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="simplesect.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="simplesect.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="simplesect.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="othercredit" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="simplesect.titlepage.recto.style"> +<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="bibliography.titlepage.recto"> +  <div xsl:use-attribute-sets="bibliography.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::bibliography[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="bibliographyinfo/subtitle"> +      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="bibliographyinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="bibliography.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="bibliography.titlepage.verso"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.separator"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="bibliography.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="bibliography.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="bibliography.titlepage.before.recto"/> +      <xsl:call-template name="bibliography.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="bibliography.titlepage.before.verso"/> +      <xsl:call-template name="bibliography.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="bibliography.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="bibliography.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="bibliography.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="bibliography.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="bibliography.titlepage.recto.style"> +<xsl:apply-templates select="." mode="bibliography.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="glossary.titlepage.recto"> +  <div xsl:use-attribute-sets="glossary.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::glossary[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="glossaryinfo/subtitle"> +      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="glossaryinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="glossary.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="glossary.titlepage.verso"> +</xsl:template> + +<xsl:template name="glossary.titlepage.separator"> +</xsl:template> + +<xsl:template name="glossary.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="glossary.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="glossary.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="glossary.titlepage.before.recto"/> +      <xsl:call-template name="glossary.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="glossary.titlepage.before.verso"/> +      <xsl:call-template name="glossary.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="glossary.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="glossary.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="glossary.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="glossary.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="glossary.titlepage.recto.style"> +<xsl:apply-templates select="." mode="glossary.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="index.titlepage.recto"> +  <div xsl:use-attribute-sets="index.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::index[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="indexinfo/subtitle"> +      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="indexinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="index.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="index.titlepage.verso"> +</xsl:template> + +<xsl:template name="index.titlepage.separator"> +</xsl:template> + +<xsl:template name="index.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="index.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="index.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="index.titlepage.before.recto"/> +      <xsl:call-template name="index.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="index.titlepage.before.verso"/> +      <xsl:call-template name="index.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="index.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="index.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="index.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="index.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="index.titlepage.recto.style"> +<xsl:apply-templates select="." mode="index.titlepage.recto.mode"/> +</div> +</xsl:template> + +<xsl:template name="setindex.titlepage.recto"> +  <div xsl:use-attribute-sets="setindex.titlepage.recto.style"> +<xsl:call-template name="component.title"> +<xsl:with-param name="node" select="ancestor-or-self::setindex[1]"/> +</xsl:call-template></div> +  <xsl:choose> +    <xsl:when test="setindexinfo/subtitle"> +      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="setindexinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="docinfo/subtitle"> +      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="docinfo/subtitle"/> +    </xsl:when> +    <xsl:when test="info/subtitle"> +      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="info/subtitle"/> +    </xsl:when> +    <xsl:when test="subtitle"> +      <xsl:apply-templates mode="setindex.titlepage.recto.auto.mode" select="subtitle"/> +    </xsl:when> +  </xsl:choose> + +</xsl:template> + +<xsl:template name="setindex.titlepage.verso"> +</xsl:template> + +<xsl:template name="setindex.titlepage.separator"> +</xsl:template> + +<xsl:template name="setindex.titlepage.before.recto"> +</xsl:template> + +<xsl:template name="setindex.titlepage.before.verso"> +</xsl:template> + +<xsl:template name="setindex.titlepage"> +  <div class="titlepage"> +    <xsl:variable name="recto.content"> +      <xsl:call-template name="setindex.titlepage.before.recto"/> +      <xsl:call-template name="setindex.titlepage.recto"/> +    </xsl:variable> +    <xsl:variable name="recto.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)"> +      <div><xsl:copy-of select="$recto.content"/></div> +    </xsl:if> +    <xsl:variable name="verso.content"> +      <xsl:call-template name="setindex.titlepage.before.verso"/> +      <xsl:call-template name="setindex.titlepage.verso"/> +    </xsl:variable> +    <xsl:variable name="verso.elements.count"> +      <xsl:choose> +        <xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')"> +          <!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when> +        <xsl:otherwise>1</xsl:otherwise> +      </xsl:choose> +    </xsl:variable> +    <xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)"> +      <div><xsl:copy-of select="$verso.content"/></div> +    </xsl:if> +    <xsl:call-template name="setindex.titlepage.separator"/> +  </div> +</xsl:template> + +<xsl:template match="*" mode="setindex.titlepage.recto.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="*" mode="setindex.titlepage.verso.mode"> +  <!-- if an element isn't found in this mode, --> +  <!-- try the generic titlepage.mode --> +  <xsl:apply-templates select="." mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="subtitle" mode="setindex.titlepage.recto.auto.mode"> +<div xsl:use-attribute-sets="setindex.titlepage.recto.style"> +<xsl:apply-templates select="." mode="setindex.titlepage.recto.mode"/> +</div> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.xsl.svn-base new file mode 100644 index 0000000..eb98649 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/titlepage.xsl.svn-base @@ -0,0 +1,960 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:attribute-set name="book.titlepage.recto.style"/> +<xsl:attribute-set name="book.titlepage.verso.style"/> + +<xsl:attribute-set name="article.titlepage.recto.style"/> +<xsl:attribute-set name="article.titlepage.verso.style"/> + +<xsl:attribute-set name="set.titlepage.recto.style"/> +<xsl:attribute-set name="set.titlepage.verso.style"/> + +<xsl:attribute-set name="part.titlepage.recto.style"/> +<xsl:attribute-set name="part.titlepage.verso.style"/> + +<xsl:attribute-set name="partintro.titlepage.recto.style"/> +<xsl:attribute-set name="partintro.titlepage.verso.style"/> + +<xsl:attribute-set name="reference.titlepage.recto.style"/> +<xsl:attribute-set name="reference.titlepage.verso.style"/> + +<xsl:attribute-set name="refentry.titlepage.recto.style"/> +<xsl:attribute-set name="refentry.titlepage.verso.style"/> + +<xsl:attribute-set name="dedication.titlepage.recto.style"/> +<xsl:attribute-set name="dedication.titlepage.verso.style"/> + +<xsl:attribute-set name="preface.titlepage.recto.style"/> +<xsl:attribute-set name="preface.titlepage.verso.style"/> + +<xsl:attribute-set name="chapter.titlepage.recto.style"/> +<xsl:attribute-set name="chapter.titlepage.verso.style"/> + +<xsl:attribute-set name="appendix.titlepage.recto.style"/> +<xsl:attribute-set name="appendix.titlepage.verso.style"/> + +<xsl:attribute-set name="bibliography.titlepage.recto.style"/> +<xsl:attribute-set name="bibliography.titlepage.verso.style"/> + +<xsl:attribute-set name="glossary.titlepage.recto.style"/> +<xsl:attribute-set name="glossary.titlepage.verso.style"/> + +<xsl:attribute-set name="index.titlepage.recto.style"/> +<xsl:attribute-set name="index.titlepage.verso.style"/> + +<xsl:attribute-set name="setindex.titlepage.recto.style"/> +<xsl:attribute-set name="setindex.titlepage.verso.style"/> + +<xsl:attribute-set name="section.titlepage.recto.style"/> +<xsl:attribute-set name="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect1.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect1.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect2.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect2.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect3.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect3.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect4.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect4.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="sect5.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="sect5.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="simplesect.titlepage.recto.style" use-attribute-sets="section.titlepage.recto.style"/> +<xsl:attribute-set name="simplesect.titlepage.verso.style" use-attribute-sets="section.titlepage.verso.style"/> + +<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/> +<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/> + +<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/> +<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="titlepage.mode"> +  <!-- if an element isn't found in this mode, try the default mode --> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="abbrev" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="abstract" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:if test="$abstract.notitle.enabled = 0"> +      <xsl:call-template name="formal.object.heading"> +        <xsl:with-param name="title"> +          <xsl:apply-templates select="." mode="title.markup"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:if> +    <xsl:apply-templates mode="titlepage.mode"/> +    <xsl:call-template name="process.footnotes"/> +  </div> +</xsl:template> + +<xsl:template match="abstract/title" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="address" mode="titlepage.mode"> +  <xsl:param name="suppress-numbers" select="'0'"/> + +  <xsl:variable name="rtf"> +    <xsl:apply-templates mode="titlepage.mode"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'"> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:call-template name="paragraph"> +          <xsl:with-param name="content"> +            <xsl:call-template name="number.rtf.lines"> +              <xsl:with-param name="rtf" select="$rtf"/> +            </xsl:call-template> +          </xsl:with-param> +        </xsl:call-template> +      </div> +    </xsl:when> + +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:call-template name="paragraph"> +          <xsl:with-param name="content"> +            <xsl:call-template name="make-verbatim"> +              <xsl:with-param name="rtf" select="$rtf"/> +            </xsl:call-template> +          </xsl:with-param> +        </xsl:call-template> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="affiliation" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </div> +</xsl:template> + +<xsl:template match="artpagenums" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="author|editor" mode="titlepage.mode"> +  <xsl:call-template name="credits.div"/> +</xsl:template> + +<xsl:template name="credits.div"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)"> +      <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4> +    </xsl:if> +    <h3> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:choose> +        <xsl:when test="orgname"> +          <xsl:apply-templates/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="person.name"/> +        </xsl:otherwise> +      </xsl:choose> +    </h3> +    <xsl:if test="not($contrib.inline.enabled = 0)"> +      <xsl:apply-templates mode="titlepage.mode" select="contrib"/> +    </xsl:if> +    <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> +    <xsl:apply-templates mode="titlepage.mode" select="email"/> +    <xsl:if test="not($blurb.on.titlepage.enabled = 0)"> +      <xsl:choose> +        <xsl:when test="$contrib.inline.enabled = 0"> +          <xsl:apply-templates mode="titlepage.mode" select="contrib|authorblurb|personblurb"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates mode="titlepage.mode" select="authorblurb|personblurb"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> +  </div> +</xsl:template> + +<xsl:template match="authorblurb|personblurb" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </div> +</xsl:template> + +<xsl:template match="authorgroup" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="anchor"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </div> +</xsl:template> + +<xsl:template match="authorinitials" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="bibliomisc" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="bibliomset" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="collab" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="collabname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </span> +</xsl:template> + +<xsl:template match="confgroup" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </div> +</xsl:template> + +<xsl:template match="confdates" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="confsponsor" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="conftitle" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="confnum" mode="titlepage.mode"> +  <!-- suppress --> +</xsl:template> + +<xsl:template match="contractnum" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="contractsponsor" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="contrib" mode="titlepage.mode"> +  <xsl:choose> +    <xsl:when test="not($contrib.inline.enabled = 0)"> +      <span> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:apply-templates mode="titlepage.mode"/> +      </span><xsl:text> </xsl:text> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <p><xsl:apply-templates mode="titlepage.mode"/></p> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="copyright" mode="titlepage.mode"> +  <p> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key" select="'Copyright'"/> +    </xsl:call-template> +    <xsl:call-template name="gentext.space"/> +    <xsl:call-template name="dingbat"> +      <xsl:with-param name="dingbat">copyright</xsl:with-param> +    </xsl:call-template> +    <xsl:call-template name="gentext.space"/> +    <xsl:call-template name="copyright.years"> +      <xsl:with-param name="years" select="year"/> +      <xsl:with-param name="print.ranges" select="$make.year.ranges"/> +      <xsl:with-param name="single.year.ranges" select="$make.single.year.ranges"/> +    </xsl:call-template> +    <xsl:call-template name="gentext.space"/> +    <xsl:apply-templates select="holder" mode="titlepage.mode"/> +  </p> +</xsl:template> + +<xsl:template match="year" mode="titlepage.mode"> +  <xsl:choose> +    <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +      <span class="{@revisionflag}"> +        <xsl:apply-templates mode="titlepage.mode"/> +      </span> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="titlepage.mode"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="holder" mode="titlepage.mode"> +  <xsl:choose> +    <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +      <span class="{@revisionflag}"> +        <xsl:apply-templates mode="titlepage.mode"/> +      </span> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates mode="titlepage.mode"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:if test="position() < last()"> +    <xsl:text>, </xsl:text> +  </xsl:if> +</xsl:template> + +<xsl:template match="corpauthor" mode="titlepage.mode"> +  <h3> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </h3> +</xsl:template> + +<xsl:template match="corpcredit" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="corpname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="date" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="edition" mode="titlepage.mode"> +  <p> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <xsl:call-template name="gentext.space"/> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key" select="'Edition'"/> +    </xsl:call-template> +  </p> +</xsl:template> + +<xsl:template match="email" mode="titlepage.mode"> +  <!-- use the normal e-mail handling code --> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="firstname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="graphic" mode="titlepage.mode"> +  <!-- use the normal graphic handling code --> +  <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match="honorific" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="isbn" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="issn" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="biblioid" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="itermset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="invpartnumber" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="issuenum" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="jobtitle" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="keywordset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="legalnotice" mode="titlepage.mode"> +  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> +  <xsl:choose> +    <xsl:when test="$generate.legalnotice.link != 0"> +      <xsl:variable name="filename"> +        <xsl:call-template name="make-relative-filename"> +          <xsl:with-param name="base.dir" select="$base.dir"/> +	  <xsl:with-param name="base.name" select="concat($id,$html.ext)"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="title"> +        <xsl:apply-templates select="." mode="title.markup"/> +      </xsl:variable> + +      <xsl:variable name="href"> +        <xsl:apply-templates mode="chunk-filename" select="."/> +      </xsl:variable> + +      <a href="{$href}"> +        <xsl:copy-of select="$title"/> +      </a> + +      <xsl:call-template name="write.chunk"> +        <xsl:with-param name="filename" select="$filename"/> +        <xsl:with-param name="quiet" select="$chunk.quietly"/> +        <xsl:with-param name="content"> +        <xsl:call-template name="user.preroot"/> +          <html> +            <head> +              <xsl:call-template name="system.head.content"/> +              <xsl:call-template name="head.content"/> +              <xsl:call-template name="user.head.content"/> +            </head> +            <body> +              <xsl:call-template name="body.attributes"/> +              <div> +                <xsl:apply-templates select="." mode="class.attribute"/> +                <xsl:apply-templates mode="titlepage.mode"/> +              </div> +            </body> +          </html> +          <xsl:value-of select="$chunk.append"/> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <a id="{$id}"/> +        <xsl:apply-templates mode="titlepage.mode"/> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="legalnotice/title" mode="titlepage.mode"> +  <p class="legalnotice-title"><b><xsl:apply-templates/></b></p> +</xsl:template> + +<xsl:template match="lineage" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="modespec" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="orgdiv" mode="titlepage.mode"> +  <xsl:if test="preceding-sibling::*[1][self::orgname]"> +    <xsl:text> </xsl:text> +  </xsl:if> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="orgname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="othercredit" mode="titlepage.mode"> +<xsl:choose> +  <xsl:when test="not($othercredit.like.author.enabled = 0)"> +  <xsl:variable name="contrib" select="string(contrib)"/> +  <xsl:choose> +    <xsl:when test="contrib"> +      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])"> +        <xsl:call-template name="paragraph"> +          <xsl:with-param name="class" select="local-name(.)"/> +          <xsl:with-param name="content"> +            <xsl:apply-templates mode="titlepage.mode" select="contrib"/> +            <xsl:text>: </xsl:text> +            <xsl:call-template name="person.name"/> +            <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> +            <xsl:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/> +          </xsl:with-param> +        </xsl:call-template> +      </xsl:if> +    </xsl:when> +    <xsl:otherwise> +      <xsl:call-template name="paragraph"> +        <xsl:with-param name="class" select="local-name(.)"/> +        <xsl:with-param name="content"> +          <xsl:call-template name="person.name"/> +        </xsl:with-param> +      </xsl:call-template> +      <xsl:apply-templates mode="titlepage.mode" select="affiliation"/> +    </xsl:otherwise> +  </xsl:choose> +  </xsl:when> +  <xsl:otherwise> +    <xsl:call-template name="credits.div"/> +  </xsl:otherwise> +</xsl:choose> +</xsl:template> + +<xsl:template match="othercredit" mode="titlepage.othercredits"> +  <xsl:text>, </xsl:text> +  <xsl:call-template name="person.name"/> +</xsl:template> + +<xsl:template match="othername" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="pagenums" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="printhistory" mode="titlepage.mode"> +  <div> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </div> +</xsl:template> + +<xsl:template match="productname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="productnumber" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="pubdate" mode="titlepage.mode"> +  <xsl:call-template name="paragraph"> +    <xsl:with-param name="class" select="local-name(.)"/> +    <xsl:with-param name="content"> +      <xsl:apply-templates mode="titlepage.mode"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="publisher" mode="titlepage.mode"> +  <xsl:call-template name="paragraph"> +    <xsl:with-param name="class" select="local-name(.)"/> +    <xsl:with-param name="content"> +      <xsl:apply-templates mode="titlepage.mode"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="publishername" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="pubsnumber" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="releaseinfo" mode="titlepage.mode"> +  <xsl:call-template name="paragraph"> +    <xsl:with-param name="class" select="local-name(.)"/> +    <xsl:with-param name="content"> +      <xsl:apply-templates mode="titlepage.mode"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="revhistory" mode="titlepage.mode"> +  <xsl:variable name="numcols"> +    <xsl:choose> +      <xsl:when test=".//authorinitials|.//author">3</xsl:when> +      <xsl:otherwise>2</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> + +  <xsl:variable name="title"> +    <xsl:call-template name="gentext"> +      <xsl:with-param name="key">RevHistory</xsl:with-param> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="contents"> +    <div> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <table border="1" width="100%" summary="Revision history"> +        <tr> +          <th align="left" valign="top" colspan="{$numcols}"> +            <b> +              <xsl:call-template name="gentext"> +                <xsl:with-param name="key" select="'RevHistory'"/> +              </xsl:call-template> +            </b> +          </th> +        </tr> +        <xsl:apply-templates mode="titlepage.mode"> +          <xsl:with-param name="numcols" select="$numcols"/> +        </xsl:apply-templates> +      </table> +    </div> +  </xsl:variable> +   +  <xsl:choose> +    <xsl:when test="$generate.revhistory.link != 0"> +      <xsl:variable name="filename"> +        <xsl:call-template name="make-relative-filename"> +          <xsl:with-param name="base.dir" select="$base.dir"/> +          <xsl:with-param name="base.name" select="concat($id,$html.ext)"/> +        </xsl:call-template> +      </xsl:variable> + +      <a href="{concat($id,$html.ext)}"> +        <xsl:copy-of select="$title"/> +      </a> + +      <xsl:call-template name="write.chunk"> +        <xsl:with-param name="filename" select="$filename"/> +        <xsl:with-param name="quiet" select="$chunk.quietly"/> +        <xsl:with-param name="content"> +        <xsl:call-template name="user.preroot"/> +          <html> +            <head> +              <xsl:call-template name="system.head.content"/> +              <xsl:call-template name="head.content"> +                <xsl:with-param name="title"> +                    <xsl:value-of select="$title"/> +                    <xsl:if test="../../title"> +                        <xsl:value-of select="concat(' (', ../../title, ')')"/> +                    </xsl:if> +                </xsl:with-param> +              </xsl:call-template> +              <xsl:call-template name="user.head.content"/> +            </head> +            <body> +              <xsl:call-template name="body.attributes"/> +              <xsl:copy-of select="$contents"/> +            </body> +          </html> +          <xsl:text> +</xsl:text> +        </xsl:with-param> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$contents"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="revhistory/revision" mode="titlepage.mode"> +  <xsl:param name="numcols" select="'3'"/> +  <xsl:variable name="revnumber" select="revnumber"/> +  <xsl:variable name="revdate" select="date"/> +  <xsl:variable name="revauthor" select="authorinitials|author"/> +  <xsl:variable name="revremark" select="revremark|revdescription"/> +  <tr> +    <td align="left"> +      <xsl:if test="$revnumber"> +        <xsl:call-template name="gentext"> +          <xsl:with-param name="key" select="'Revision'"/> +        </xsl:call-template> +        <xsl:call-template name="gentext.space"/> +        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/> +      </xsl:if> +    </td> +    <td align="left"> +      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/> +    </td> +    <xsl:choose> +      <xsl:when test="$revauthor"> +        <td align="left"> +          <xsl:for-each select="$revauthor"> +            <xsl:apply-templates select="." mode="titlepage.mode"/> +            <xsl:if test="position() != last()"> +	      <xsl:text>, </xsl:text> +	    </xsl:if> +	  </xsl:for-each> +        </td> +      </xsl:when> +      <xsl:when test="$numcols > 2"> +        <td> </td> +      </xsl:when> +      <xsl:otherwise/> +    </xsl:choose> +  </tr> +  <xsl:if test="$revremark"> +    <tr> +      <td align="left" colspan="{$numcols}"> +        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/> +      </td> +    </tr> +  </xsl:if> +</xsl:template> + +<xsl:template match="revision/revnumber" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/date" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/authorinitials" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/author" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/revremark" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="revision/revdescription" mode="titlepage.mode"> +  <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +<xsl:template match="seriesvolnums" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="shortaffil" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="subjectset" mode="titlepage.mode"> +</xsl:template> + +<xsl:template match="subtitle" mode="titlepage.mode"> +  <h2> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +  </h2> +</xsl:template> + +<xsl:template match="surname" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<xsl:template match="title" mode="titlepage.mode"> +  <xsl:variable name="id"> +    <xsl:choose> +      <!-- if title is in an *info wrapper, get the grandparent --> +      <xsl:when test="contains(local-name(..), 'info')"> +        <xsl:call-template name="object.id"> +          <xsl:with-param name="object" select="../.."/> +        </xsl:call-template> +      </xsl:when> +      <xsl:otherwise> +        <xsl:call-template name="object.id"> +          <xsl:with-param name="object" select=".."/> +        </xsl:call-template> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <h1> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:if test="$generate.id.attributes = 0"> +      <a id="{$id}"/> +    </xsl:if> +    <xsl:choose> +      <xsl:when test="$show.revisionflag != 0 and @revisionflag"> +	<span class="{@revisionflag}"> +	  <xsl:apply-templates mode="titlepage.mode"/> +	</span> +      </xsl:when> +      <xsl:otherwise> +	<xsl:apply-templates mode="titlepage.mode"/> +      </xsl:otherwise> +    </xsl:choose> +  </h1> +</xsl:template> + +<xsl:template match="titleabbrev" mode="titlepage.mode"> +  <!-- nop; title abbreviations don't belong on the title page! --> +</xsl:template> + +<xsl:template match="volumenum" mode="titlepage.mode"> +  <span> +    <xsl:apply-templates select="." mode="class.attribute"/> +    <xsl:apply-templates mode="titlepage.mode"/> +    <br/> +  </span> +</xsl:template> + +<!-- ==================================================================== --> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/toc.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/toc.xsl.svn-base new file mode 100644 index 0000000..6f76d22 --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/toc.xsl.svn-base @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- ==================================================================== --> + +<xsl:template match="toc"> +  <xsl:choose> +    <xsl:when test="*"> +      <xsl:if test="$process.source.toc != 0"> +        <!-- if the toc isn't empty, process it --> +        <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +          <xsl:apply-templates/> +        </xsl:element> +      </xsl:if> +    </xsl:when> +    <xsl:otherwise> +      <xsl:if test="$process.empty.source.toc != 0"> +        <xsl:choose> +          <xsl:when test="parent::section                           or parent::sect1                           or parent::sect2                           or parent::sect3                           or parent::sect4                           or parent::sect5"> +            <xsl:apply-templates select="parent::*" mode="toc.for.section"/> +          </xsl:when> +          <xsl:when test="parent::article"> +            <xsl:apply-templates select="parent::*" mode="toc.for.component"/> +          </xsl:when> +          <xsl:when test="parent::book                           or parent::part"> +            <xsl:apply-templates select="parent::*" mode="toc.for.division"/> +          </xsl:when> +          <xsl:when test="parent::set"> +            <xsl:apply-templates select="parent::*" mode="toc.for.set"/> +          </xsl:when> +          <!-- there aren't any other contexts that allow toc --> +          <xsl:otherwise> +            <xsl:message> +              <xsl:text>I don't know how to make a TOC in this context!</xsl:text> +            </xsl:message> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="tocpart|tocchap                      |toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"> +  <xsl:variable name="sub-toc"> +    <xsl:if test="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"> +      <xsl:choose> +        <xsl:when test="$toc.list.type = 'dl'"> +          <dd> +            <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +              <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/> +            </xsl:element> +          </dd> +        </xsl:when> +        <xsl:otherwise> +          <xsl:element name="{$toc.list.type}" namespace="http://www.w3.org/1999/xhtml"> +            <xsl:apply-templates select="tocchap|toclevel1|toclevel2|toclevel3|toclevel4|toclevel5"/> +          </xsl:element> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:if> +  </xsl:variable> + +  <xsl:apply-templates select="tocentry[position() != last()]"/> + +  <xsl:choose> +    <xsl:when test="$toc.list.type = 'dl'"> +      <dt> +        <xsl:apply-templates select="tocentry[position() = last()]"/> +      </dt> +      <xsl:copy-of select="$sub-toc"/> +    </xsl:when> +    <xsl:otherwise> +      <li> +        <xsl:apply-templates select="tocentry[position() = last()]"/> +        <xsl:copy-of select="$sub-toc"/> +      </li> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="tocentry|tocfront|tocback"> +  <xsl:choose> +    <xsl:when test="$toc.list.type = 'dl'"> +      <dt> +        <xsl:call-template name="tocentry-content"/> +      </dt> +    </xsl:when> +    <xsl:otherwise> +      <li> +        <xsl:call-template name="tocentry-content"/> +      </li> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="tocentry[position() = last()]" priority="2"> +  <xsl:call-template name="tocentry-content"/> +</xsl:template> + +<xsl:template name="tocentry-content"> +  <xsl:variable name="targets" select="key('id',@linkend)"/> +  <xsl:variable name="target" select="$targets[1]"/> + +  <xsl:choose> +    <xsl:when test="@linkend"> +      <xsl:call-template name="check.id.unique"> +        <xsl:with-param name="linkend" select="@linkend"/> +      </xsl:call-template> +      <a> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:apply-templates/> +      </a> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="toc.for.section"> +  <xsl:call-template name="section.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.component"> +  <xsl:call-template name="component.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.section"> +  <xsl:call-template name="section.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.division"> +  <xsl:call-template name="division.toc"/> +</xsl:template> + +<xsl:template match="*" mode="toc.for.set"> +  <xsl:call-template name="set.toc"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="lot|lotentry"> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/verbatim.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/verbatim.xsl.svn-base new file mode 100644 index 0000000..3cb162d --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/verbatim.xsl.svn-base @@ -0,0 +1,354 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sverb="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Verbatim" xmlns:xverb="xalan://com.nwalsh.xalan.Verbatim" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:exsl="http://exslt.org/common" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="sverb xverb lxslt exsl" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<xsl:include href="../highlighting/common.xsl"/> +<xsl:include href="highlight.xsl"/> + +<lxslt:component prefix="xverb" functions="numberLines"/> + +<xsl:template match="programlisting|screen|synopsis"> +  <xsl:param name="suppress-numbers" select="'0'"/> +  <xsl:variable name="id"> +    <xsl:call-template name="object.id"/> +  </xsl:variable> + +  <xsl:call-template name="anchor"/> + +  <xsl:if test="$shade.verbatim != 0"> +    <xsl:message> +      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text> +      <xsl:text>Use CSS instead,</xsl:text> +    </xsl:message> +    <xsl:message> +      <xsl:text>for example: pre.</xsl:text> +      <xsl:value-of select="local-name(.)"/> +      <xsl:text> { background-color: #E0E0E0; }</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:choose> +    <xsl:when test="$suppress-numbers = '0'       and @linenumbering = 'numbered'       and $use.extensions != '0'       and $linenumbering.extension != '0'"> +      <xsl:variable name="rtf"> +	<xsl:call-template name="apply-highlighting"/> +      </xsl:variable> +      <pre> +        <xsl:apply-templates select="." mode="class.attribute"/> +	<xsl:call-template name="number.rtf.lines"> +	  <xsl:with-param name="rtf" select="$rtf"/> +	</xsl:call-template> +      </pre> +    </xsl:when> +    <xsl:otherwise> +      <pre> +        <xsl:apply-templates select="." mode="class.attribute"/> +	<xsl:call-template name="apply-highlighting"/> +      </pre> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="literallayout"> +  <xsl:param name="suppress-numbers" select="'0'"/> + +  <xsl:variable name="rtf"> +    <xsl:apply-templates/> +  </xsl:variable> + +  <xsl:if test="$shade.verbatim != 0 and @class='monospaced'"> +    <xsl:message> +      <xsl:text>The shade.verbatim parameter is deprecated. </xsl:text> +      <xsl:text>Use CSS instead,</xsl:text> +    </xsl:message> +    <xsl:message> +      <xsl:text>for example: pre.</xsl:text> +      <xsl:value-of select="local-name(.)"/> +      <xsl:text> { background-color: #E0E0E0; }</xsl:text> +    </xsl:message> +  </xsl:if> + +  <xsl:choose> +    <xsl:when test="$suppress-numbers = '0'       and @linenumbering = 'numbered'       and $use.extensions != '0'       and $linenumbering.extension != '0'"> +      <xsl:choose> +	<xsl:when test="@class='monospaced'"> +          <pre> +            <xsl:apply-templates select="." mode="class.attribute"/> +	    <xsl:call-template name="number.rtf.lines"> +	      <xsl:with-param name="rtf" select="$rtf"/> +	    </xsl:call-template> +	  </pre> +	</xsl:when> +	<xsl:otherwise> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +	    <p> +	      <xsl:call-template name="number.rtf.lines"> +		<xsl:with-param name="rtf" select="$rtf"/> +	      </xsl:call-template> +	    </p> +	  </div> +	</xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +	<xsl:when test="@class='monospaced'"> +          <pre> +            <xsl:apply-templates select="." mode="class.attribute"/> +	    <xsl:copy-of select="$rtf"/> +	  </pre> +	</xsl:when> +	<xsl:otherwise> +          <div> +            <xsl:apply-templates select="." mode="class.attribute"/> +	    <p> +	      <xsl:call-template name="make-verbatim"> +		<xsl:with-param name="rtf" select="$rtf"/> +	      </xsl:call-template> +	    </p> +	  </div> +	</xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="address"> +  <xsl:param name="suppress-numbers" select="'0'"/> + +  <xsl:variable name="rtf"> +    <xsl:apply-templates/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$suppress-numbers = '0'                     and @linenumbering = 'numbered'                     and $use.extensions != '0'                     and $linenumbering.extension != '0'"> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <p> +          <xsl:call-template name="number.rtf.lines"> +            <xsl:with-param name="rtf" select="$rtf"/> +          </xsl:call-template> +        </p> +      </div> +    </xsl:when> + +    <xsl:otherwise> +      <div> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <p> +          <xsl:call-template name="make-verbatim"> +            <xsl:with-param name="rtf" select="$rtf"/> +          </xsl:call-template> +        </p> +      </div> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="number.rtf.lines"> +  <xsl:param name="rtf" select="''"/> +  <xsl:param name="pi.context" select="."/> + +  <!-- Save the global values --> +  <xsl:variable name="global.linenumbering.everyNth" select="$linenumbering.everyNth"/> + +  <xsl:variable name="global.linenumbering.separator" select="$linenumbering.separator"/> + +  <xsl:variable name="global.linenumbering.width" select="$linenumbering.width"/> + +  <!-- Extract the <?dbhtml linenumbering.*?> PI values --> +  <xsl:variable name="pi.linenumbering.everyNth"> +    <xsl:call-template name="pi.dbhtml_linenumbering.everyNth"> +      <xsl:with-param name="node" select="$pi.context"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="pi.linenumbering.separator"> +    <xsl:call-template name="pi.dbhtml_linenumbering.separator"> +      <xsl:with-param name="node" select="$pi.context"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:variable name="pi.linenumbering.width"> +    <xsl:call-template name="pi.dbhtml_linenumbering.width"> +      <xsl:with-param name="node" select="$pi.context"/> +    </xsl:call-template> +  </xsl:variable> + +  <!-- Construct the 'in-context' values --> +  <xsl:variable name="linenumbering.everyNth"> +    <xsl:choose> +      <xsl:when test="$pi.linenumbering.everyNth != ''"> +        <xsl:value-of select="$pi.linenumbering.everyNth"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$global.linenumbering.everyNth"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="linenumbering.separator"> +    <xsl:choose> +      <xsl:when test="$pi.linenumbering.separator != ''"> +        <xsl:value-of select="$pi.linenumbering.separator"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$global.linenumbering.separator"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="linenumbering.width"> +    <xsl:choose> +      <xsl:when test="$pi.linenumbering.width != ''"> +        <xsl:value-of select="$pi.linenumbering.width"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$global.linenumbering.width"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="linenumbering.startinglinenumber"> +    <xsl:choose> +      <xsl:when test="$pi.context/@startinglinenumber"> +        <xsl:value-of select="$pi.context/@startinglinenumber"/> +      </xsl:when> +      <xsl:when test="$pi.context/@continuation='continues'"> +        <xsl:variable name="lastLine"> +          <xsl:choose> +            <xsl:when test="$pi.context/self::programlisting"> +              <xsl:call-template name="lastLineNumber"> +                <xsl:with-param name="listings" select="preceding::programlisting[@linenumbering='numbered']"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$pi.context/self::screen"> +              <xsl:call-template name="lastLineNumber"> +                <xsl:with-param name="listings" select="preceding::screen[@linenumbering='numbered']"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$pi.context/self::literallayout"> +              <xsl:call-template name="lastLineNumber"> +                <xsl:with-param name="listings" select="preceding::literallayout[@linenumbering='numbered']"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$pi.context/self::address"> +              <xsl:call-template name="lastLineNumber"> +                <xsl:with-param name="listings" select="preceding::address[@linenumbering='numbered']"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:when test="$pi.context/self::synopsis"> +              <xsl:call-template name="lastLineNumber"> +                <xsl:with-param name="listings" select="preceding::synopsis[@linenumbering='numbered']"/> +              </xsl:call-template> +            </xsl:when> +            <xsl:otherwise> +              <xsl:message> +                <xsl:text>Unexpected verbatim environment: </xsl:text> +                <xsl:value-of select="local-name($pi.context)"/> +              </xsl:message> +              <xsl:value-of select="0"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:variable> + +        <xsl:value-of select="$lastLine + 1"/> +      </xsl:when> +      <xsl:otherwise>1</xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="function-available('sverb:numberLines')"> +      <xsl:copy-of select="sverb:numberLines($rtf)"/> +    </xsl:when> +    <xsl:when test="function-available('xverb:numberLines')"> +      <xsl:copy-of select="xverb:numberLines($rtf)"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:message terminate="yes"> +        <xsl:text>No numberLines function available.</xsl:text> +      </xsl:message> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="make-verbatim"> +  <xsl:param name="rtf"/> + +  <!-- I want to make this RTF verbatim. There are two possibilities: either +       I have access to the exsl:node-set extension function and I can "do it right" +       or I have to rely on CSS. --> + +  <xsl:choose> +    <xsl:when test="function-available('exsl:node-set')"> +      <xsl:apply-templates select="exsl:node-set($rtf)" mode="make.verbatim.mode"/> +    </xsl:when> +    <xsl:otherwise> +      <span style="white-space: pre;"> +        <xsl:copy-of select="$rtf"/> +      </span> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ======================================================================== --> + +<xsl:template name="lastLineNumber"> +  <xsl:param name="listings"/> +  <xsl:param name="number" select="0"/> + +  <xsl:variable name="lines"> +    <xsl:call-template name="countLines"> +      <xsl:with-param name="listing" select="string($listings[1])"/> +    </xsl:call-template> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="not($listings)"> +      <xsl:value-of select="$number"/> +    </xsl:when> +    <xsl:when test="$listings[1]/@startinglinenumber"> +      <xsl:value-of select="$number + $listings[1]/@startinglinenumber + $lines - 1"/> +    </xsl:when> +    <xsl:when test="$listings[1]/@continuation='continues'"> +      <xsl:call-template name="lastLineNumber"> +        <xsl:with-param name="listings" select="listings[position() > 1]"/> +        <xsl:with-param name="number" select="$number + $lines"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$lines"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template name="countLines"> +  <xsl:param name="listing"/> +  <xsl:param name="count" select="1"/> + +  <xsl:choose> +    <xsl:when test="contains($listing, '
')"> +      <xsl:call-template name="countLines"> +        <xsl:with-param name="listing" select="substring-after($listing, '
')"/> +        <xsl:with-param name="count" select="$count + 1"/> +      </xsl:call-template> +    </xsl:when> +    <xsl:otherwise> +      <xsl:value-of select="$count"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/xref.xsl.svn-base b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/xref.xsl.svn-base new file mode 100644 index 0000000..f97991c --- /dev/null +++ b/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/.svn/text-base/xref.xsl.svn-base @@ -0,0 +1,1288 @@ +<?xml version="1.0" encoding="ASCII"?> +<!--This file was created automatically by html2xhtml--> +<!--from the HTML stylesheets.--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns:exsl="http://exslt.org/common" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="suwl exsl xlink" version="1.0"> + +<!-- ******************************************************************** +     $Id$ +     ******************************************************************** + +     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. + +     ******************************************************************** --> + +<!-- Use internal variable for olink xlink role for consistency --> +<xsl:variable name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable> + +<!-- ==================================================================== --> + +<xsl:template match="anchor"> +  <xsl:call-template name="anchor"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="xref" name="xref"> +  <xsl:param name="xhref" select="@xlink:href"/> +  <!-- is the @xlink:href a local idref link? --> +  <xsl:param name="xlink.idref"> +    <xsl:if test="starts-with($xhref,'#')                   and (not(contains($xhref,'('))                   or starts-with($xhref, '#xpointer(id('))"> +      <xsl:call-template name="xpointer.idref"> +        <xsl:with-param name="xpointer" select="$xhref"/> +      </xsl:call-template> +   </xsl:if> +  </xsl:param> +  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/> +  <xsl:param name="linkend.targets" select="key('id',@linkend)"/> +  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/> + +  <xsl:variable name="xrefstyle"> +    <xsl:choose> +      <xsl:when test="@role and not(@xrefstyle)                        and $use.role.as.xrefstyle != 0"> +        <xsl:value-of select="@role"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="@xrefstyle"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="anchor"/> + +  <xsl:variable name="content"> +    <xsl:choose> +   +      <xsl:when test="@endterm"> +        <xsl:variable name="etargets" select="key('id',@endterm)"/> +        <xsl:variable name="etarget" select="$etargets[1]"/> +        <xsl:choose> +          <xsl:when test="count($etarget) = 0"> +            <xsl:message> +              <xsl:value-of select="count($etargets)"/> +              <xsl:text>Endterm points to nonexistent ID: </xsl:text> +              <xsl:value-of select="@endterm"/> +            </xsl:message> +            <xsl:text>???</xsl:text> +          </xsl:when> +          <xsl:otherwise> +            <xsl:apply-templates select="$etarget" mode="endterm"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +   +      <xsl:when test="$target/@xreflabel"> +        <xsl:call-template name="xref.xreflabel"> +          <xsl:with-param name="target" select="$target"/> +        </xsl:call-template> +      </xsl:when> +   +      <xsl:when test="$target"> +        <xsl:if test="not(parent::citation)"> +          <xsl:apply-templates select="$target" mode="xref-to-prefix"/> +        </xsl:if> +   +        <xsl:apply-templates select="$target" mode="xref-to"> +          <xsl:with-param name="referrer" select="."/> +          <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +        </xsl:apply-templates> +   +        <xsl:if test="not(parent::citation)"> +          <xsl:apply-templates select="$target" mode="xref-to-suffix"/> +        </xsl:if> +      </xsl:when> + +      <xsl:otherwise> +        <xsl:message> +          <xsl:text>ERROR: xref linking to </xsl:text> +          <xsl:value-of select="@linkend|@xlink:href"/> +          <xsl:text> has no generated link text.</xsl:text> +        </xsl:message> +        <xsl:text>???</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="simple.xlink"> +    <xsl:with-param name="content" select="$content"/> +  </xsl:call-template> + +</xsl:template> + +<!-- ==================================================================== --> + +<!-- biblioref handled largely like an xref --> +<!-- To be done: add support for begin, end, and units attributes --> +<xsl:template match="biblioref"> +  <xsl:variable name="targets" select="key('id',@linkend)"/> +  <xsl:variable name="target" select="$targets[1]"/> +  <xsl:variable name="refelem" select="local-name($target)"/> + +  <xsl:call-template name="check.id.unique"> +    <xsl:with-param name="linkend" select="@linkend"/> +  </xsl:call-template> + +  <xsl:call-template name="anchor"/> + +  <xsl:choose> +    <xsl:when test="count($target) = 0"> +      <xsl:message> +        <xsl:text>XRef to nonexistent id: </xsl:text> +        <xsl:value-of select="@linkend"/> +      </xsl:message> +      <xsl:text>???</xsl:text> +    </xsl:when> + +    <xsl:when test="@endterm"> +      <xsl:variable name="href"> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="object" select="$target"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="etargets" select="key('id',@endterm)"/> +      <xsl:variable name="etarget" select="$etargets[1]"/> +      <xsl:choose> +        <xsl:when test="count($etarget) = 0"> +          <xsl:message> +            <xsl:value-of select="count($etargets)"/> +            <xsl:text>Endterm points to nonexistent ID: </xsl:text> +            <xsl:value-of select="@endterm"/> +          </xsl:message> +          <a href="{$href}"> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:text>???</xsl:text> +          </a> +        </xsl:when> +        <xsl:otherwise> +          <a href="{$href}"> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:apply-templates select="$etarget" mode="endterm"/> +          </a> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> + +    <xsl:when test="$target/@xreflabel"> +      <a> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:attribute name="href"> +          <xsl:call-template name="href.target"> +            <xsl:with-param name="object" select="$target"/> +          </xsl:call-template> +        </xsl:attribute> +        <xsl:call-template name="xref.xreflabel"> +          <xsl:with-param name="target" select="$target"/> +        </xsl:call-template> +      </a> +    </xsl:when> + +    <xsl:otherwise> +      <xsl:variable name="href"> +        <xsl:call-template name="href.target"> +          <xsl:with-param name="object" select="$target"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:if test="not(parent::citation)"> +        <xsl:apply-templates select="$target" mode="xref-to-prefix"/> +      </xsl:if> + +      <a href="{$href}"> +        <xsl:apply-templates select="." mode="class.attribute"/> +        <xsl:if test="$target/title or $target/*/title"> +          <xsl:attribute name="title"> +            <xsl:apply-templates select="$target" mode="xref-title"/> +          </xsl:attribute> +        </xsl:if> +        <xsl:apply-templates select="$target" mode="xref-to"> +          <xsl:with-param name="referrer" select="."/> +          <xsl:with-param name="xrefstyle"> +            <xsl:choose> +              <xsl:when test="@role and not(@xrefstyle) and $use.role.as.xrefstyle != 0"> +                <xsl:value-of select="@role"/> +              </xsl:when> +              <xsl:otherwise> +                <xsl:value-of select="@xrefstyle"/> +              </xsl:otherwise> +            </xsl:choose> +          </xsl:with-param> +        </xsl:apply-templates> +      </a> + +      <xsl:if test="not(parent::citation)"> +        <xsl:apply-templates select="$target" mode="xref-to-suffix"/> +      </xsl:if> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="endterm"> +  <!-- Process the children of the endterm element --> +  <xsl:variable name="endterm"> +    <xsl:apply-templates select="child::node()"/> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="function-available('exsl:node-set')"> +      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$endterm"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="remove-ids"> +  <xsl:choose> +    <!-- handle html or xhtml --> +    <xsl:when test="local-name(.) = 'a'                     and (namespace-uri(.) = ''                          or namespace-uri(.) = 'http://www.w3.org/1999/xhtml')"> +      <xsl:choose> +        <xsl:when test="(@name and count(@*) = 1)                         or (@id and count(@*) = 1)                         or (@xml:id and count(@*) = 1)                         or (@xml:id and @name and count(@*) = 2)                         or (@id and @name and count(@*) = 2)"> +          <xsl:message>suppress anchor</xsl:message> +          <!-- suppress the whole thing --> +        </xsl:when> +        <xsl:otherwise> +          <xsl:copy> +            <xsl:for-each select="@*"> +              <xsl:choose> +                <xsl:when test="local-name(.) != 'name' and local-name(.) != 'id'"> +                  <xsl:copy/> +                </xsl:when> +                <xsl:otherwise> +                  <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message> +                </xsl:otherwise> +              </xsl:choose> +            </xsl:for-each> +          </xsl:copy> +          <xsl:apply-templates mode="remove-ids"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy> +        <xsl:for-each select="@*"> +          <xsl:choose> +            <xsl:when test="local-name(.) != 'id'"> +              <xsl:copy/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:message>removing <xsl:value-of select="local-name(.)"/></xsl:message> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:for-each> +        <xsl:apply-templates mode="remove-ids"/> +      </xsl:copy> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="xref-to-prefix"/> +<xsl:template match="*" mode="xref-to-suffix"/> + +<xsl:template match="*" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:if test="$verbose"> +    <xsl:message> +      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text> +      <xsl:value-of select="name(.)"/> +      <xsl:text>", ("</xsl:text> +      <xsl:value-of select="(@id|@xml:id)[1]"/> +      <xsl:text>")</xsl:text> +    </xsl:message> +  </xsl:if> +  <xsl:text>???</xsl:text> +</xsl:template> + +<xsl:template match="title" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <!-- if you xref to a title, xref to the parent... --> +  <xsl:choose> +    <!-- FIXME: how reliable is this? --> +    <xsl:when test="contains(local-name(parent::*), 'info')"> +      <xsl:apply-templates select="parent::*[2]" mode="xref-to"> +        <xsl:with-param name="referrer" select="$referrer"/> +        <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +        <xsl:with-param name="verbose" select="$verbose"/> +      </xsl:apply-templates> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="parent::*" mode="xref-to"> +        <xsl:with-param name="referrer" select="$referrer"/> +        <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +        <xsl:with-param name="verbose" select="$verbose"/> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="abstract|authorblurb|personblurb|bibliodiv|bibliomset                      |biblioset|blockquote|calloutlist|caution|colophon                      |constraintdef|formalpara|glossdiv|important|indexdiv                      |itemizedlist|legalnotice|lot|msg|msgexplan|msgmain                      |msgrel|msgset|msgsub|note|orderedlist|partintro                      |productionset|qandadiv|refsynopsisdiv|segmentedlist                      |set|setindex|sidebar|tip|toc|variablelist|warning" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <!-- catch-all for things with (possibly optional) titles --> +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="author|editor|othercredit|personname" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:call-template name="person.name"/> +</xsl:template> + +<xsl:template match="authorgroup" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:call-template name="person.name.list"/> +</xsl:template> + +<xsl:template match="figure|example|table|equation" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="procedure" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="task" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="cmdsynopsis" mode="xref-to"> +  <xsl:apply-templates select="(.//command)[1]" mode="xref"/> +</xsl:template> + +<xsl:template match="funcsynopsis" mode="xref-to"> +  <xsl:apply-templates select="(.//function)[1]" mode="xref"/> +</xsl:template> + +<xsl:template match="dedication|preface|chapter|appendix|article" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="bibliography" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to-prefix"> +  <xsl:text>[</xsl:text> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to-suffix"> +  <xsl:text>]</xsl:text> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <!-- handles both biblioentry and bibliomixed --> +  <xsl:choose> +    <xsl:when test="string(.) = ''"> +      <xsl:variable name="bib" select="document($bibliography.collection,.)"/> +      <xsl:variable name="id" select="(@id|@xml:id)[1]"/> +      <xsl:variable name="entry" select="$bib/bibliography/                                     *[@id=$id or @xml:id=$id][1]"/> +      <xsl:choose> +        <xsl:when test="$entry"> +          <xsl:choose> +            <xsl:when test="$bibliography.numbered != 0"> +              <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/> +            </xsl:when> +            <xsl:when test="local-name($entry/*[1]) = 'abbrev'"> +              <xsl:apply-templates select="$entry/*[1]"/> +            </xsl:when> +            <xsl:otherwise> +              <xsl:value-of select="(@id|@xml:id)[1]"/> +            </xsl:otherwise> +          </xsl:choose> +        </xsl:when> +        <xsl:otherwise> +          <xsl:message> +            <xsl:text>No bibliography entry: </xsl:text> +            <xsl:value-of select="$id"/> +            <xsl:text> found in </xsl:text> +            <xsl:value-of select="$bibliography.collection"/> +          </xsl:message> +          <xsl:value-of select="(@id|@xml:id)[1]"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:choose> +        <xsl:when test="$bibliography.numbered != 0"> +          <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/> +        </xsl:when> +        <xsl:when test="local-name(*[1]) = 'abbrev'"> +          <xsl:apply-templates select="*[1]"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:value-of select="(@id|@xml:id)[1]"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="glossary" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="glossentry" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> +  <xsl:choose> +    <xsl:when test="$glossentry.show.acronym = 'primary'"> +      <xsl:choose> +        <xsl:when test="acronym|abbrev"> +          <xsl:apply-templates select="(acronym|abbrev)[1]"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates select="glossterm[1]" mode="xref-to"> +            <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +            <xsl:with-param name="referrer" select="$referrer"/> +            <xsl:with-param name="verbose" select="$verbose"/> +          </xsl:apply-templates> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="glossterm[1]" mode="xref-to"> +        <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +        <xsl:with-param name="referrer" select="$referrer"/> +        <xsl:with-param name="verbose" select="$verbose"/> +      </xsl:apply-templates> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="glossterm" mode="xref-to"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="index" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="listitem" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="section|simplesect                      |sect1|sect2|sect3|sect4|sect5                      |refsect1|refsect2|refsect3|refsection" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +  <!-- FIXME: What about "in Chapter X"? --> +</xsl:template> + +<xsl:template match="bridgehead" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +  <!-- FIXME: What about "in Chapter X"? --> +</xsl:template> + +<xsl:template match="qandaset" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="qandadiv" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="qandaentry" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="question[1]" mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="question|answer" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="part|reference" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="refentry" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:choose> +    <xsl:when test="refmeta/refentrytitle"> +      <xsl:apply-templates select="refmeta/refentrytitle"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:apply-templates select="refnamediv/refname[1]"/> +    </xsl:otherwise> +  </xsl:choose> +  <xsl:apply-templates select="refmeta/manvolnum"/> +</xsl:template> + +<xsl:template match="refnamediv" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="refname[1]" mode="xref-to"> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="refname" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates mode="xref-to"/> +</xsl:template> + +<xsl:template match="step" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key" select="'Step'"/> +  </xsl:call-template> +  <xsl:text> </xsl:text> +  <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="varlistentry" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="term[1]" mode="xref-to"> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="varlistentry/term" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <!-- to avoid the comma that will be generated if there are several terms --> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="co" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:apply-templates select="." mode="callout-bug"/> +</xsl:template> + +<xsl:template match="area|areaset" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> + +  <xsl:call-template name="callout-bug"> +    <xsl:with-param name="conum"> +      <xsl:apply-templates select="." mode="conumber"/> +    </xsl:with-param> +  </xsl:call-template> +</xsl:template> + +<xsl:template match="book" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:apply-templates select="." mode="object.xref.markup"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<xsl:template match="para" mode="xref-to"> +  <xsl:param name="referrer"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="verbose" select="1"/> + +  <xsl:variable name="context" select="(ancestor::simplesect                                        |ancestor::section                                        |ancestor::sect1                                        |ancestor::sect2                                        |ancestor::sect3                                        |ancestor::sect4                                        |ancestor::sect5                                        |ancestor::refsection                                        |ancestor::refsect1                                        |ancestor::refsect2                                        |ancestor::refsect3                                        |ancestor::chapter                                        |ancestor::appendix                                        |ancestor::preface                                        |ancestor::partintro                                        |ancestor::dedication                                        |ancestor::colophon                                        |ancestor::bibliography                                        |ancestor::index                                        |ancestor::glossary                                        |ancestor::glossentry                                        |ancestor::listitem                                        |ancestor::varlistentry)[last()]"/> + +  <xsl:apply-templates select="$context" mode="xref-to"> +    <xsl:with-param name="purpose" select="'xref'"/> +    <xsl:with-param name="xrefstyle" select="$xrefstyle"/> +    <xsl:with-param name="referrer" select="$referrer"/> +    <xsl:with-param name="verbose" select="$verbose"/> +  </xsl:apply-templates> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:apply-templates select="." mode="object.title.markup"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="author" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:call-template name="person.name"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="authorgroup" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:call-template name="person.name.list"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="cmdsynopsis" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:apply-templates select="(.//command)[1]" mode="xref"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="funcsynopsis" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:apply-templates select="(.//function)[1]" mode="xref"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="biblioentry|bibliomixed" mode="xref-title"> +  <!-- handles both biblioentry and bibliomixed --> +  <xsl:variable name="title"> +    <xsl:text>[</xsl:text> +    <xsl:choose> +      <xsl:when test="local-name(*[1]) = 'abbrev'"> +        <xsl:apply-templates select="*[1]"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="(@id|@xml:id)[1]"/> +      </xsl:otherwise> +    </xsl:choose> +    <xsl:text>]</xsl:text> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<xsl:template match="step" mode="xref-title"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key" select="'Step'"/> +  </xsl:call-template> +  <xsl:text> </xsl:text> +  <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="step[not(./title)]" mode="title.markup"> +  <xsl:call-template name="gentext"> +    <xsl:with-param name="key" select="'Step'"/> +  </xsl:call-template> +  <xsl:text> </xsl:text> +  <xsl:apply-templates select="." mode="number"/> +</xsl:template> + +<xsl:template match="co" mode="xref-title"> +  <xsl:variable name="title"> +    <xsl:apply-templates select="." mode="callout-bug"/> +  </xsl:variable> + +  <xsl:value-of select="$title"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="link" name="link"> +  <xsl:param name="linkend" select="@linkend"/> +  <xsl:param name="a.target"/> +  <xsl:param name="xhref" select="@xlink:href"/> + +  <xsl:variable name="content"> +    <xsl:call-template name="anchor"/> +    <xsl:choose> +      <xsl:when test="count(child::node()) > 0"> +        <!-- If it has content, use it --> +        <xsl:apply-templates/> +      </xsl:when> +      <!-- else look for an endterm --> +      <xsl:when test="@endterm"> +        <xsl:variable name="etargets" select="key('id',@endterm)"/> +        <xsl:variable name="etarget" select="$etargets[1]"/> +        <xsl:choose> +          <xsl:when test="count($etarget) = 0"> +            <xsl:message> +              <xsl:value-of select="count($etargets)"/> +              <xsl:text>Endterm points to nonexistent ID: </xsl:text> +              <xsl:value-of select="@endterm"/> +            </xsl:message> +            <xsl:text>???</xsl:text> +          </xsl:when> +          <xsl:otherwise> +              <xsl:apply-templates select="$etarget" mode="endterm"/> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:when> +      <!-- Use the xlink:href if no other text --> +      <xsl:when test="@xlink:href"> +        <xsl:value-of select="@xlink:href"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:message> +          <xsl:text>Link element has no content and no Endterm. </xsl:text> +          <xsl:text>Nothing to show in the link to </xsl:text> +          <xsl:value-of select="(@xlink:href|@linkend)[1]"/> +        </xsl:message> +        <xsl:text>???</xsl:text> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:call-template name="simple.xlink"> +    <xsl:with-param name="node" select="."/> +    <xsl:with-param name="linkend" select="$linkend"/> +    <xsl:with-param name="content" select="$content"/> +    <xsl:with-param name="a.target" select="$a.target"/> +    <xsl:with-param name="xhref" select="$xhref"/> +  </xsl:call-template> + +</xsl:template> + +<xsl:template match="ulink" name="ulink"> +  <xsl:param name="url" select="@url"/> +  <xsl:variable name="link"> +    <a> +      <xsl:apply-templates select="." mode="class.attribute"/> +      <xsl:if test="@id or @xml:id"> +        <xsl:attribute name="id"> +          <xsl:value-of select="(@id|@xml:id)[1]"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute> +      <xsl:if test="$ulink.target != ''"> +        <xsl:attribute name="target"> +          <xsl:value-of select="$ulink.target"/> +        </xsl:attribute> +      </xsl:if> +      <xsl:choose> +        <xsl:when test="count(child::node())=0"> +          <xsl:value-of select="$url"/> +        </xsl:when> +        <xsl:otherwise> +          <xsl:apply-templates/> +        </xsl:otherwise> +      </xsl:choose> +    </a> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="function-available('suwl:unwrapLinks')"> +      <xsl:copy-of select="suwl:unwrapLinks($link)"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$link"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="olink" name="olink"> +  <!-- olink content may be passed in from xlink olink --> +  <xsl:param name="content" select="NOTANELEMENT"/> + +  <xsl:call-template name="anchor"/> + +  <xsl:variable name="localinfo" select="@localinfo"/> + +  <xsl:choose> +    <!-- olinks resolved by stylesheet and target database --> +    <xsl:when test="@targetdoc or @targetptr or                     (@xlink:role=$xolink.role and                      contains(@xlink:href, '#') )"> + +      <xsl:variable name="targetdoc.att"> +        <xsl:choose> +          <xsl:when test="@targetdoc != ''"> +            <xsl:value-of select="@targetdoc"/> +          </xsl:when> +          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')"> +            <xsl:value-of select="substring-before(@xlink:href, '#')"/> +          </xsl:when> +        </xsl:choose> +      </xsl:variable> + +      <xsl:variable name="targetptr.att"> +        <xsl:choose> +          <xsl:when test="@targetptr != ''"> +            <xsl:value-of select="@targetptr"/> +          </xsl:when> +          <xsl:when test="@xlink:role=$xolink.role and                        contains(@xlink:href, '#')"> +            <xsl:value-of select="substring-after(@xlink:href, '#')"/> +          </xsl:when> +        </xsl:choose> +      </xsl:variable> + +      <xsl:variable name="olink.lang"> +        <xsl:call-template name="l10n.language"> +          <xsl:with-param name="xref-context" select="true()"/> +        </xsl:call-template> +      </xsl:variable> +     +      <xsl:variable name="target.database.filename"> +        <xsl:call-template name="select.target.database"> +          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/> +          <xsl:with-param name="targetptr.att" select="$targetptr.att"/> +          <xsl:with-param name="olink.lang" select="$olink.lang"/> +        </xsl:call-template> +      </xsl:variable> +     +      <xsl:variable name="target.database" select="document($target.database.filename,/)"/> +     +      <xsl:if test="$olink.debug != 0"> +        <xsl:message> +          <xsl:text>Olink debug: root element of target.database '</xsl:text> +          <xsl:value-of select="$target.database.filename"/> +          <xsl:text>' is '</xsl:text> +          <xsl:value-of select="local-name($target.database/*[1])"/> +          <xsl:text>'.</xsl:text> +        </xsl:message> +      </xsl:if> +     +      <xsl:variable name="olink.key"> +        <xsl:call-template name="select.olink.key"> +          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/> +          <xsl:with-param name="targetptr.att" select="$targetptr.att"/> +          <xsl:with-param name="olink.lang" select="$olink.lang"/> +          <xsl:with-param name="target.database" select="$target.database"/> +        </xsl:call-template> +      </xsl:variable> +     +      <xsl:if test="string-length($olink.key) = 0"> +        <xsl:message> +          <xsl:text>Error: unresolved olink: </xsl:text> +          <xsl:text>targetdoc/targetptr = '</xsl:text> +          <xsl:value-of select="$targetdoc.att"/> +          <xsl:text>/</xsl:text> +          <xsl:value-of select="$targetptr.att"/> +          <xsl:text>'.</xsl:text> +        </xsl:message> +      </xsl:if> + +      <xsl:variable name="href"> +        <xsl:call-template name="make.olink.href"> +          <xsl:with-param name="olink.key" select="$olink.key"/> +          <xsl:with-param name="target.database" select="$target.database"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="hottext"> +        <xsl:choose> +          <xsl:when test="$content"> +            <xsl:copy-of select="$content"/> +          </xsl:when> +          <xsl:otherwise> +            <xsl:call-template name="olink.hottext"> +              <xsl:with-param name="olink.key" select="$olink.key"/> +              <xsl:with-param name="olink.lang" select="$olink.lang"/> +              <xsl:with-param name="target.database" select="$target.database"/> +            </xsl:call-template> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> + +      <xsl:variable name="olink.docname.citation"> +        <xsl:call-template name="olink.document.citation"> +          <xsl:with-param name="olink.key" select="$olink.key"/> +          <xsl:with-param name="target.database" select="$target.database"/> +          <xsl:with-param name="olink.lang" select="$olink.lang"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:variable name="olink.page.citation"> +        <xsl:call-template name="olink.page.citation"> +          <xsl:with-param name="olink.key" select="$olink.key"/> +          <xsl:with-param name="target.database" select="$target.database"/> +          <xsl:with-param name="olink.lang" select="$olink.lang"/> +        </xsl:call-template> +      </xsl:variable> + +      <xsl:choose> +        <xsl:when test="$href != ''"> +          <a href="{$href}"> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:copy-of select="$hottext"/> +          </a> +          <xsl:copy-of select="$olink.page.citation"/> +          <xsl:copy-of select="$olink.docname.citation"/> +        </xsl:when> +        <xsl:otherwise> +          <span class="olink"><xsl:copy-of select="$hottext"/></span> +          <xsl:copy-of select="$olink.page.citation"/> +          <xsl:copy-of select="$olink.docname.citation"/> +        </xsl:otherwise> +      </xsl:choose> + +    </xsl:when> + +    <!-- Or use old olink mechanism --> +    <xsl:otherwise> +      <xsl:variable name="href"> +        <xsl:choose> +          <xsl:when test="@linkmode"> +            <!-- use the linkmode to get the base URI, use localinfo as fragid --> +            <xsl:variable name="modespec" select="key('id',@linkmode)"/> +            <xsl:if test="count($modespec) != 1                           or local-name($modespec) != 'modespec'"> +              <xsl:message>Warning: olink linkmode pointer is wrong.</xsl:message> +            </xsl:if> +            <xsl:value-of select="$modespec"/> +            <xsl:if test="@localinfo"> +              <xsl:text>#</xsl:text> +              <xsl:value-of select="@localinfo"/> +            </xsl:if> +          </xsl:when> +          <xsl:when test="@type = 'href'"> +            <xsl:call-template name="olink.outline"> +              <xsl:with-param name="outline.base.uri" select="unparsed-entity-uri(@targetdocent)"/> +              <xsl:with-param name="localinfo" select="@localinfo"/> +              <xsl:with-param name="return" select="'href'"/> +            </xsl:call-template> +          </xsl:when> +          <xsl:otherwise> +            <xsl:value-of select="$olink.resolver"/> +            <xsl:text>?</xsl:text> +            <xsl:value-of select="$olink.sysid"/> +            <xsl:value-of select="unparsed-entity-uri(@targetdocent)"/> +            <!-- XSL gives no access to the public identifier (grumble...) --> +            <xsl:if test="@localinfo"> +              <xsl:text>&</xsl:text> +              <xsl:value-of select="$olink.fragid"/> +              <xsl:value-of select="@localinfo"/> +            </xsl:if> +          </xsl:otherwise> +        </xsl:choose> +      </xsl:variable> +     +      <xsl:choose> +        <xsl:when test="$href != ''"> +          <a href="{$href}"> +            <xsl:apply-templates select="." mode="class.attribute"/> +            <xsl:call-template name="olink.hottext"/> +          </a> +        </xsl:when> +        <xsl:otherwise> +          <xsl:call-template name="olink.hottext"/> +        </xsl:otherwise> +      </xsl:choose> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="pagenumber.markup"> +  <!-- no-op in HTML --> +</xsl:template> + + +<xsl:template name="olink.outline"> +  <xsl:param name="outline.base.uri"/> +  <xsl:param name="localinfo"/> +  <xsl:param name="return" select="href"/> + +  <xsl:variable name="outline-file" select="concat($outline.base.uri,                                $olink.outline.ext)"/> + +  <xsl:variable name="outline" select="document($outline-file,.)/div"/> + +  <xsl:variable name="node-href"> +    <xsl:choose> +      <xsl:when test="$localinfo != ''"> +        <xsl:variable name="node" select="$outline//                                    *[@id=$localinfo or @xml:id=$localinfo]"/> +        <xsl:value-of select="$node/@href"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$outline/@href"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:variable name="node-xref"> +    <xsl:choose> +      <xsl:when test="$localinfo != ''"> +        <xsl:variable name="node" select="$outline//                                *[@id=$localinfo or @xml:id=$localinfo]"/> +        <xsl:copy-of select="$node/xref"/> +      </xsl:when> +      <xsl:otherwise> +        <xsl:value-of select="$outline/xref"/> +      </xsl:otherwise> +    </xsl:choose> +  </xsl:variable> + +  <xsl:choose> +    <xsl:when test="$return = 'href'"> +      <xsl:value-of select="$node-href"/> +    </xsl:when> +    <xsl:when test="$return = 'xref'"> +      <xsl:value-of select="$node-xref"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$node-xref"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template name="xref.xreflabel"> +  <!-- called to process an xreflabel...you might use this to make  --> +  <!-- xreflabels come out in the right font for different targets, --> +  <!-- for example. --> +  <xsl:param name="target" select="."/> +  <xsl:value-of select="$target/@xreflabel"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="title" mode="xref"> +  <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="command" mode="xref"> +  <xsl:call-template name="inline.boldseq"/> +</xsl:template> + +<xsl:template match="function" mode="xref"> +  <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="*" mode="insert.title.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="title"/> + +  <xsl:choose> +    <!-- FIXME: what about the case where titleabbrev is inside the info? --> +    <xsl:when test="$purpose = 'xref' and titleabbrev"> +      <xsl:apply-templates select="." mode="titleabbrev.markup"/> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$title"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="chapter|appendix" mode="insert.title.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="title"/> + +  <xsl:choose> +    <xsl:when test="$purpose = 'xref'"> +      <i> +        <xsl:copy-of select="$title"/> +      </i> +    </xsl:when> +    <xsl:otherwise> +      <xsl:copy-of select="$title"/> +    </xsl:otherwise> +  </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="insert.subtitle.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="subtitle"/> + +  <xsl:copy-of select="$subtitle"/> +</xsl:template> + +<xsl:template match="*" mode="insert.label.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="label"/> + +  <xsl:copy-of select="$label"/> +</xsl:template> + +<xsl:template match="*" mode="insert.pagenumber.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="pagenumber"/> + +  <xsl:copy-of select="$pagenumber"/> +</xsl:template> + +<xsl:template match="*" mode="insert.direction.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="direction"/> + +  <xsl:copy-of select="$direction"/> +</xsl:template> + +<xsl:template match="*" mode="insert.olink.docname.markup"> +  <xsl:param name="purpose"/> +  <xsl:param name="xrefstyle"/> +  <xsl:param name="docname"/> + +  <span class="olinkdocname"> +    <xsl:copy-of select="$docname"/> +  </span> + +</xsl:template> + +</xsl:stylesheet>  | 
