common.xsl revision 3c185a8e451791a511a1ad5e36ee0fd863f47e6c
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<?xml version="1.0"?>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<!--
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd Copyright 2002-2004 The Apache Software Foundation
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele Licensed under the Apache License, Version 2.0 (the "License");
3726777f47ac4bba3e21b075905959bbea47e72eerikabele you may not use this file except in compliance with the License.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele You may obtain a copy of the License at
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele http://www.apache.org/licenses/LICENSE-2.0
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele Unless required by applicable law or agreed to in writing, software
3726777f47ac4bba3e21b075905959bbea47e72eerikabele distributed under the License is distributed on an "AS IS" BASIS,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele See the License for the specific language governing permissions and
3726777f47ac4bba3e21b075905959bbea47e72eerikabele limitations under the License.
3726777f47ac4bba3e21b075905959bbea47e72eerikabele-->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!DOCTYPE xsl:stylesheet [
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!ENTITY nbsp SYSTEM "util/nbsp.xml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!ENTITY lf SYSTEM "util/lf.xml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele]>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:stylesheet version="1.0"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele xmlns="http://www.w3.org/1999/xhtml">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
51c8ad20636dd49b1583f29cff6c9b5305935e2bnd<!-- -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Please, don't hard-code output strings! Use the language -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- files and the translation "stuff"... -->
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd<!-- -->
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd<!-- Injected variables: -->
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd<!-- $is-chm - (boolean) target is for CHM generation or not -->
cbbae5f6f6dab2f4431c8609ef9aee6c00705645nd<!-- $is-zip - (boolean) target is for ZIP generation or not -->
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd<!-- $message - (node-set) localized common text snippets -->
1fb92290c22cf761b7219074d75cde2016050ed1slive<!-- $doclang - (string) document language -->
d177004a74b061338daf7f2603197d673ed76d36kess<!-- $output-encoding - (string) MIME charset name of the output -->
43a46e566e58e888c7889448cabd3dcf1f4b9fbend<!-- encoding -->
43a46e566e58e888c7889448cabd3dcf1f4b9fbend
43a46e566e58e888c7889448cabd3dcf1f4b9fbend<!-- Constants used for case translation -->
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'" />
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd
9a1b062f73a4a085af8fe41fae402aaee41d33ccnd<!-- space separated list of blockelements defined in common.dtd -->
43a46e566e58e888c7889448cabd3dcf1f4b9fbend<!-- used for inline content catching in <example>s -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="blockelements">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele p example note table ul ol dl pre img blockquote
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:variable>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- relative path to /manual/ -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="metafile" select="document(/*/@metafile)/metafile" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="path" select="$metafile/relpath" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- load outsourced page types -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="moduleindex.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="directiveindex.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="manualpage.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="synopsis.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="sitemap.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="indexpage.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="quickreference.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:include href="faq.xsl" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- load utility snippets -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:include href="util/modtrans.xsl" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- make sure, we set relative anchors only, if we're actually -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- transforming a modulefile (see <directive> template) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="in-modulesynopsis" select="boolean(/modulesynopsis)" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- when referencing to a directory, we may need to complete the path -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- with the index file (for offline applications like *.chm files) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="index-file">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$is-chm or $is-zip">index.html</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:variable>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- it may be desired to open external targets in a new window -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="ext-target" select="boolean($is-chm)" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- #################################################################### -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- Utility templates for constructing pages -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- #################################################################### -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
eed750bc8c60b3057bf2f39a60866796260ee594slive<!-- ==================================================================== -->
eed750bc8c60b3057bf2f39a60866796260ee594slive<!-- HTML head -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- ==================================================================== -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:template name="head">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<head>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- the meta element is necessary for offline handling like CHM -->
a6d007137e5f9daa1b188752a35b2146065e69bfslive <xsl:choose>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:when test="$is-chm or $is-zip">
a6d007137e5f9daa1b188752a35b2146065e69bfslive <meta http-equiv="Content-Type"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd content="text/html; charset={$output-encoding}" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:when>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:comment>
7884a25869c5f99d815f7e2e9e42562ec532275dnd &lf;
7884a25869c5f99d815f7e2e9e42562ec532275dnd <xsl:text> </xsl:text>
7884a25869c5f99d815f7e2e9e42562ec532275dnd <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd &lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:text> </xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:text>This file is generated from xml source: </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>DO NOT EDIT</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:comment>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <title>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:choose>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:when test="name">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="name"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="title"/>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="normalize-space($message[@id='apachetitle'])"/>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </title>&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- chm files get a slightly different stylesheet -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="$is-chm">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link type="text/css" rel="stylesheet" media="all"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd href="{$path}/style/css/manual-chm.css" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:when>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- zip packages do also -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="$is-zip">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <link title="Main stylesheet" type="text/css" media="all"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd rel="stylesheet"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd href="{$path}/style/css/manual-zip.css" />&lf;
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <link title="No Sidebar - Default font size" type="text/css" media="all"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd rel="alternate stylesheet"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd href="{$path}/style/css/manual-zip-100pc.css"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <link title="Main stylesheet" type="text/css" media="all"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd rel="stylesheet"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd href="{$path}/style/css/manual.css" />&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <link title="No Sidebar - Default font size" type="text/css" media="all"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele rel="alternate stylesheet"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd href="{$path}/style/css/manual-loose-100pc.css"/>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:choose>&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <link type="text/css" media="print"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd rel="stylesheet"
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd href="{$path}/style/css/manual-print.css"/>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- chm files do not need a favicon -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:if test="not($is-chm or $is-zip)">&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <link rel="shortcut icon" href="{$path}/images/favicon.ico" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:if>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</head>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</xsl:template>
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd<!-- /head -->
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd<!-- ==================================================================== -->
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd<!-- page top -->
29fb68cf24dbdb4985cbb4734cb6074ea4bbab26nd<!-- ==================================================================== -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:template name="top">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<div id="page-header">&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:call-template name="super-menu" />&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <p class="apache">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="normalize-space($message
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd [@id='apachehttpserver'])"/>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </p>&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <img src="{$path}/images/feather.gif" alt="" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</div>&lf; <!-- /page-header -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="up">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="./{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="parentdocument">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="href">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="parentdocument/@href"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="helper.uri.fix">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:with-param name="uri" select="parentdocument/@href" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:call-template>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:if>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <img src="{$path}/images/left.gif" alt="&lt;-" title="&lt;-" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div>&lf;
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div id="path">&lf;
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <a href="http://www.apache.org/">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="$ext-target">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="target">_blank</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="$message[@id='apache']" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </a>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> &gt; </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="http://httpd.apache.org/">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$ext-target">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="target">_blank</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='http-server']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> &gt; </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="http://httpd.apache.org/docs-project/">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$ext-target">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="target">_blank</xsl:attribute>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:if>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="$message[@id='documentation']" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="not(/indexpage)">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:text> &gt; </xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <a href="{$path}/{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='version']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="/modulesynopsis or /directiveindex or /quickreference">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> &gt; </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="./{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='modules']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="parentdocument/text()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> &gt; </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{parentdocument/@href}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="helper.uri.fix">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:with-param name="uri" select="parentdocument/@href"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:call-template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="parentdocument"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /path -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /top -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- out of date -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="outofdate">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:if test="$metafile/variants/variant[.=$doclang]/@outdated = 'yes'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <div class="outofdate">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='outofdate']"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </div>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- page bottom -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="bottom">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:call-template name="langavail">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:with-param name="position" select="'bottom'" />
65241490e40aa0c831988073eed0633dad10c6f2nd</xsl:call-template>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd<div id="footer">&lf;
65241490e40aa0c831988073eed0633dad10c6f2nd <p class="apache">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text>Copyright 1999-2004 The Apache Software </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text>Foundation.</xsl:text><br />
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$message[@id='licensed']"/>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text> </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <a href="http://www.apache.org/licenses/LICENSE-2.0">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:if test="$ext-target">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:attribute name="target">_blank</xsl:attribute>
65241490e40aa0c831988073eed0633dad10c6f2nd </xsl:if>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text>Apache License, Version 2.0</xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd </a>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text>.</xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd </p>&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:call-template name="super-menu"/>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd</div> <!-- /footer -->
65241490e40aa0c831988073eed0633dad10c6f2nd</xsl:template>
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- /bottom -->
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- ==================================================================== -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- build an "available languages" section -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- ==================================================================== -->
65241490e40aa0c831988073eed0633dad10c6f2nd<xsl:template name="langavail">
65241490e40aa0c831988073eed0633dad10c6f2nd<xsl:param name="position" select="'top'" />
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd<xsl:if test="not($is-chm or $is-zip)">
65241490e40aa0c831988073eed0633dad10c6f2nd<div class="{$position}lang">&lf;
65241490e40aa0c831988073eed0633dad10c6f2nd <p>
65241490e40aa0c831988073eed0633dad10c6f2nd <span>
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:value-of select="$message[@id='langavail']" />
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:text>: </xsl:text>
65241490e40aa0c831988073eed0633dad10c6f2nd </span>
65241490e40aa0c831988073eed0633dad10c6f2nd
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:for-each select="$metafile/variants/variant">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:sort select="." />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/{.}{$metafile/path}{$metafile/basename}.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$metafile/basename = 'index'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="href">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="concat($path, '/', ., $metafile/path)" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$doclang != .">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="hreflang">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="." />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="rel">alternate</xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="title">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="document(concat('/lang/', .,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele '.xml'))
3726777f47ac4bba3e21b075905959bbea47e72eerikabele /language/messages/message
3726777f47ac4bba3e21b075905959bbea47e72eerikabele [@id='nativename']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:attribute>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &nbsp;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="." />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &nbsp;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:if test="position() != last()">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:text> |&#xA;</xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:if>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </p>&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /.{$position}lang -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:if test="$position = 'top'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="outofdate" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /langavail -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Process a documentation section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:call-template name="toplink" />&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="section">&lf;
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- Section heading -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <h2>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a id="{@id}" name="{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </h2>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <!-- Section body -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:apply-templates />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</div> <!-- /.section -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</xsl:template>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- /section -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- ==================================================================== -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- handle subsections (lower level headings) -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- ==================================================================== -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:template match="section/section">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<!-- Section heading -->
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<h3>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:choose>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:when test="@id">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <a id="{@id}" name="{@id}">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:apply-templates select="title" mode="print" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section body -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- handle subsubsections (h4) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/section/section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section heading -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h4>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a id="{@id}" name="{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h4>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Section body -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section/section -->
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- section nesting > h4 is not supported for now -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/section/section/section">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:message terminate="yes">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>FATAL: exceeding maximum section nesting level.</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;&lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>Perhaps you should consider to split your document into</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>several ones...</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &lf;
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:message>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /section/section/section/section -->
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- (sub)section titles -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="section/title" mode="print">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<xsl:template match="section/title" />
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<!-- /section/title -->
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<!-- ==================================================================== -->
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<!-- generate section index -->
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<!-- ==================================================================== -->
d177004a74b061338daf7f2603197d673ed76d36kess<xsl:template match="section" mode="index">
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd<li>
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <img src="{$path}/images/down.gif" alt="" />
094d4f190fd9e52804bcd5f620a6f0f817b127cdnd <xsl:text> </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="@id">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="#{@id}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:otherwise>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:apply-templates select="title" mode="print" />
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:otherwise>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</li>&lf;
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</xsl:template>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- /section index -->
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- docs super menu -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template name="super-menu">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<p class="menu">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='modules']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/directives.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='directives']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/faq/{$index-file}">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='faq']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/glossary.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='glossary']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
43a46e566e58e888c7889448cabd3dcf1f4b9fbend
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text> | </xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/sitemap.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='sitemap']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</p>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /super-menu -->
3c56725151a46fef84ce376d709b5339da28e10fnd
3c56725151a46fef84ce376d709b5339da28e10fnd
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- ==================================================================== -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- <example> -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- iterate over *all* nodes; bare text and other inline stuff is -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- wrapped into <p><code>, block level elements (defined in -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- $blockelements) are applied "as is" -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:variable name="blocks"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="concat(' ', normalize-space($blockelements), ' ')" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<div class="example">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="title" mode="print" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:for-each select="/node()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="is-block-node"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="boolean(contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(), ' ')))"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- bb = (number of) blocks nodes before (the current) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="bb"
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="count(preceding-sibling::*[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(), ' '))])" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="$is-block-node or position()=last()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:variable name="content">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- phew. short explanation, what happens here: -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- We want to get the inline stuff between the last -->
3c56725151a46fef84ce376d709b5339da28e10fnd <!-- block node and the current node. -->
3c56725151a46fef84ce376d709b5339da28e10fnd <!-- So filter all previous nodes for the condition -->
3c56725151a46fef84ce376d709b5339da28e10fnd <!-- that the number of block nodes of all of *their* -->
3c56725151a46fef84ce376d709b5339da28e10fnd <!-- previous nodes is >= $bb. Hope that helps ;-) -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates
3c56725151a46fef84ce376d709b5339da28e10fnd select="preceding-sibling::node()[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele count(preceding-sibling::*[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(), ' '))])
d177004a74b061338daf7f2603197d673ed76d36kess &gt;= $bb]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="self::node()[not($is-block-node)]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:variable>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- apply bare text only, if it's not only \s or empty -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="not(normalize-space($content) = '')">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <p><code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- same as $content above. xsl:copy-of seems to make -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- thread problems with xalan-j ... -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="preceding-sibling::node()[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele count(preceding-sibling::*[
3726777f47ac4bba3e21b075905959bbea47e72eerikabele contains($blocks,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele concat(' ', local-name(),
3726777f47ac4bba3e21b075905959bbea47e72eerikabele ' '))])
3726777f47ac4bba3e21b075905959bbea47e72eerikabele &gt;= $bb]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates
3726777f47ac4bba3e21b075905959bbea47e72eerikabele select="self::node()[not($is-block-node)]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </code></p>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="self::node()[$is-block-node]" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <!-- /node() -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</div> <!-- /.example -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /example -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- example/title -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example/title" mode="print">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</h3>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="example/title" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /example/title -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- indentations -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="indent">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<span class="indent">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</span>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /indent -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <note> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="note">
65241490e40aa0c831988073eed0633dad10c6f2nd<div class="note">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='warning'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:attribute name="class">warning</xsl:attribute>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:apply-templates/>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</div>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</xsl:template>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- /note -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- <note><title> -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<xsl:template match="note/title">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<h3>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:apply-templates/>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</h3>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd</xsl:template>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- /note/title -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<!-- ==================================================================== -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- <directive> -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- Inserts link to another directive, which might be in another module. -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- References are converted into lower case. -->
65241490e40aa0c831988073eed0633dad10c6f2nd<!-- ==================================================================== -->
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<xsl:template match="directive" name="directive">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd<code class="directive">
65241490e40aa0c831988073eed0633dad10c6f2nd <xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:when test="@module">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:variable name="lowerdirective"
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd select="translate(., $uppercase, $lowercase)" />
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:choose>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:when test="$in-modulesynopsis and @module = /modulesynopsis/name">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="#{$lowerdirective}">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&lt;</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="."/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='section'">&gt;</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/{@module}.html#{$lowerdirective}">
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&lt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:value-of select="."/>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd <xsl:if test="@type='section'">&gt;</xsl:if>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:choose>
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='section'">&lt;</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="."/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="@type='section'">&gt;</xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /directive -->
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- <module> -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- Inserts a link to refereed module -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="module" name="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<code class="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <a href="{$path}/mod/{.}.html">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="."/>
d177004a74b061338daf7f2603197d673ed76d36kess </a>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</code>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /module -->
3c56725151a46fef84ce376d709b5339da28e10fnd
3c56725151a46fef84ce376d709b5339da28e10fnd
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- ==================================================================== -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- <related> -->
3c56725151a46fef84ce376d709b5339da28e10fnd<!-- ==================================================================== -->
3c56725151a46fef84ce376d709b5339da28e10fnd<xsl:template match="related">
d177004a74b061338daf7f2603197d673ed76d36kess<table class="related">
3c56725151a46fef84ce376d709b5339da28e10fnd<tr>
3c56725151a46fef84ce376d709b5339da28e10fnd <th>
3c56725151a46fef84ce376d709b5339da28e10fnd <xsl:value-of select="$message[@id='relatedmodules']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="$message[@id='relateddirectives']" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </th>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<tr>
d177004a74b061338daf7f2603197d673ed76d36kess <td>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="count(modulelist/*) &gt; 0">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <ul>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="modulelist" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </ul>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </td>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <td>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="count(directivelist/*) &gt; 0">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <ul>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:apply-templates select="directivelist"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </ul>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
d177004a74b061338daf7f2603197d673ed76d36kess </td>
d177004a74b061338daf7f2603197d673ed76d36kess</tr>
d177004a74b061338daf7f2603197d673ed76d36kess</table>
d177004a74b061338daf7f2603197d673ed76d36kess</xsl:template>
d177004a74b061338daf7f2603197d673ed76d36kess<!-- /related -->
d177004a74b061338daf7f2603197d673ed76d36kess
d177004a74b061338daf7f2603197d673ed76d36kess<!-- ==================================================================== -->
d177004a74b061338daf7f2603197d673ed76d36kess<!-- related/modulelist -->
d177004a74b061338daf7f2603197d673ed76d36kess<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:template match="related/modulelist">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:for-each select="module">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:call-template name="module"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </li>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:for-each>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- /related/modulelist -->
d177004a74b061338daf7f2603197d673ed76d36kess
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- ==================================================================== -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!-- related/directivelist -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<!-- ==================================================================== -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<xsl:template match="related/directivelist">
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<xsl:for-each select="directive">
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess <li>
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess <xsl:call-template name="directive"/>
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess </li>
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess</xsl:for-each>
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess</xsl:template>
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<!-- /related/directivelist -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<!-- ==================================================================== -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<!-- <table> -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<!-- ==================================================================== -->
6b1f84ffcc813d56b86dedd9cff64998f5f04a01kess<xsl:template match="table">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<table>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <!-- existing border attribute will result in <table class="bordered"> -->
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:if test="@border">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:attribute name="class">bordered</xsl:attribute>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd </xsl:if>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:choose>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:when test="@style = 'zebra'">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:apply-templates select="tr" mode="zebra-table" />
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd </xsl:when>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:when test="@style = 'data'">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:apply-templates select="tr" mode="data-table" />
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd </xsl:when>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:otherwise>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:apply-templates />
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd </xsl:otherwise>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd </xsl:choose>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd</table>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd</xsl:template>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<!-- /table -->
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<!-- data-table -->
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<xsl:template match="tr" mode="data-table">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<!-- style="data": fixed font, padding-left and right alignment for <td>s -->
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<xsl:variable name="cross-table" select="boolean(
3726777f47ac4bba3e21b075905959bbea47e72eerikabele preceding-sibling::tr/th[1]|following-sibling::tr/th[1])" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<tr>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:for-each select="node()">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="local-name() = 'td'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <td class="data">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="*|@*|text()" />
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </td>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="local-name() = 'th' and
4e5d76cd516a36223b6e73a8000c879a5675e436nd (not($cross-table) or
4e5d76cd516a36223b6e73a8000c879a5675e436nd count(preceding-sibling::*) &gt; 0)">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <th class="data">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates select="*|@*|text()" />
4e5d76cd516a36223b6e73a8000c879a5675e436nd </th>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:otherwise>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates select="self::node()" />
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:otherwise>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:for-each>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</tr>&lf;
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- zebra-table -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<xsl:template match="tr" mode="zebra-table">
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- style="zebra": alternating colors per row, i.e. every second row -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- gets a class="odd". Header lines (no <td>) get a -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- class="header". These lines will be excluded from -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- the "odd" line count. That way header lines act -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- interjectional, which creates a better visual and -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- psychological effect. -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<tr>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="count(td) = 0">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">header</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="position() mod 2 = (count(preceding-sibling::tr[count(td) = 0]) mod 2)">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">odd</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
8a72c24379e10c3f3d0dfe352bf15e45ee65c179nd </xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates />
4e5d76cd516a36223b6e73a8000c879a5675e436nd</tr>&lf;
4e5d76cd516a36223b6e73a8000c879a5675e436nd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- /zebra-table -->
8a72c24379e10c3f3d0dfe352bf15e45ee65c179nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- <ol> -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<xsl:template match="ol">
4e5d76cd516a36223b6e73a8000c879a5675e436nd<ol>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <!-- A. B. C. D. (list-style-type="upper-alpha") -->
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="@type = 'A'">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">up-A</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:when test="@type = 'a'">
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:attribute name="class">lo-A</xsl:attribute>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:when>
4e5d76cd516a36223b6e73a8000c879a5675e436nd </xsl:choose>
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd <xsl:apply-templates/>
d177004a74b061338daf7f2603197d673ed76d36kess</ol>
4e5d76cd516a36223b6e73a8000c879a5675e436nd</xsl:template>
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- /ol -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- diverse elements -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- Passes through content -->
4e5d76cd516a36223b6e73a8000c879a5675e436nd<!-- ==================================================================== -->
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:template match="summary|description|usage|syntax|default">
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:apply-templates/>
4489f0b54d190e8ac29906e1071bbad6c49de17end</xsl:template>
d177004a74b061338daf7f2603197d673ed76d36kess<!-- /diverse -->
4489f0b54d190e8ac29906e1071bbad6c49de17end
4489f0b54d190e8ac29906e1071bbad6c49de17end
4489f0b54d190e8ac29906e1071bbad6c49de17end<!-- ==================================================================== -->
4489f0b54d190e8ac29906e1071bbad6c49de17end<!-- <a> -->
4489f0b54d190e8ac29906e1071bbad6c49de17end<!-- ==================================================================== -->
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:template match="a">
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:choose>
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:when test="not(@href)">
4489f0b54d190e8ac29906e1071bbad6c49de17end <xsl:copy>
4489f0b54d190e8ac29906e1071bbad6c49de17end <xsl:apply-templates select="@*|*|text()"/>
4489f0b54d190e8ac29906e1071bbad6c49de17end </xsl:copy>
4489f0b54d190e8ac29906e1071bbad6c49de17end</xsl:when>
4489f0b54d190e8ac29906e1071bbad6c49de17end<xsl:otherwise>
4489f0b54d190e8ac29906e1071bbad6c49de17end <a href="@href">
4489f0b54d190e8ac29906e1071bbad6c49de17end <xsl:apply-templates select="@*"/>
4489f0b54d190e8ac29906e1071bbad6c49de17end <xsl:call-template name="helper.uri.fix">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd <xsl:with-param name="uri" select="@href"/>
</xsl:call-template>
<xsl:apply-templates select="*|text()"/>
</a>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /a -->
<!-- ==================================================================== -->
<!-- toplink -->
<!-- ==================================================================== -->
<xsl:template name="toplink">
<div class="top">
<a href="#page-header"><img src="{$path}/images/up.gif" alt="top" /></a>
</div>
</xsl:template>
<!-- /toplink -->
<!-- ==================================================================== -->
<!-- <transnote> -->
<!-- translator's notes are displayed in a different color -->
<!-- ==================================================================== -->
<xsl:template match="transnote">
<span class="transnote">
<xsl:text>(</xsl:text>
<em>
<xsl:value-of select="$message[@id='transnote']" />
</em>
<xsl:text> </xsl:text>
<xsl:apply-templates />
<xsl:text>)</xsl:text>
</span>
</xsl:template>
<!-- /transnote -->
<!-- ==================================================================== -->
<!-- <phonetic> -->
<!-- phonetics are enclosed in square brackets and displayed in a -->
<!-- different color -->
<!-- ==================================================================== -->
<xsl:template match="phonetic">
<span class="phonetic">
<xsl:text>[</xsl:text>
<xsl:apply-templates />
<xsl:text>]</xsl:text>
</span>
</xsl:template>
<!-- /phonetic -->
<!-- ==================================================================== -->
<!-- <glossary> -->
<!-- link to a glossary anchor -->
<!-- ==================================================================== -->
<xsl:template match="glossary">
<span>
<xsl:attribute name="title">
<xsl:value-of select="$message[@id='glossarylink']" />
</xsl:attribute>
<xsl:text>&#x2192;</xsl:text>
</span>&nbsp;
<a href="{$path}/glossary.html#{@ref}">
<xsl:apply-templates />
</a>
</xsl:template>
<!-- /glossary -->
<!-- ==================================================================== -->
<!-- Filter &#160; in text() nodes. -->
<!-- In some environments this character won't be transformed correctly, -->
<!-- so we just write it explicitely as "&nbsp;" into the output. -->
<!-- ==================================================================== -->
<xsl:template match="text()" name="filter.nbsp">
<xsl:param name="text" select="." />
<xsl:choose>
<xsl:when test="contains($text, '&#160;')">
<xsl:value-of select="substring-before($text, '&#160;')" />
&nbsp;
<xsl:call-template name="filter.nbsp">
<xsl:with-param name="text" select="substring-after($text, '&#160;')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /filter.nbsp -->
<!-- ==================================================================== -->
<!-- Process everything else by just passing it through -->
<!-- ==================================================================== -->
<xsl:template match="*">
<xsl:message terminate="yes">
<xsl:text>Unknown element: </xsl:text>
<xsl:value-of select="local-name()" />&lf;
<xsl:text>Is the document valid (try `build validate-xml`)?</xsl:text>
</xsl:message>
</xsl:template>
<xsl:template match="@*">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()" />
</xsl:copy>
</xsl:template>
<xsl:template match="br"><br /></xsl:template>
<xsl:template match="tr"><tr><xsl:apply-templates select="*|@*|text()" /></tr></xsl:template>
<xsl:template match="th"><th><xsl:apply-templates select="*|@*|text()" /></th></xsl:template>
<xsl:template match="td"><td><xsl:apply-templates select="*|@*|text()" /></td></xsl:template>
<xsl:template match="p"><p><xsl:apply-templates select="*|@*|text()" /></p></xsl:template>
<xsl:template match="ul"><ul><xsl:apply-templates select="*|@*|text()" /></ul></xsl:template>
<xsl:template match="li"><li><xsl:apply-templates select="*|@*|text()" /></li></xsl:template>
<xsl:template match="dl"><dl><xsl:apply-templates select="*|@*|text()" /></dl></xsl:template>
<xsl:template match="dt"><dt><xsl:apply-templates select="*|@*|text()" /></dt></xsl:template>
<xsl:template match="dd"><dd><xsl:apply-templates select="*|@*|text()" /></dd></xsl:template>
<xsl:template match="em"><em><xsl:apply-templates select="*|@*|text()" /></em></xsl:template>
<xsl:template match="strong"><strong><xsl:apply-templates select="*|@*|text()" /></strong></xsl:template>
<xsl:template match="pre"><pre><xsl:apply-templates select="*|@*|text()" /></pre></xsl:template>
<xsl:template match="code"><code><xsl:apply-templates select="*|@*|text()" /></code></xsl:template>
<xsl:template match="var"><var><xsl:apply-templates select="*|@*|text()" /></var></xsl:template>
<xsl:template match="dfn"><dfn><xsl:apply-templates select="*|@*|text()" /></dfn></xsl:template>
<xsl:template match="blockquote"><blockquote><xsl:apply-templates select="*|@*|text()" /></blockquote></xsl:template>
<xsl:template match="q"><q><xsl:apply-templates select="*|@*|text()" /></q></xsl:template>
<xsl:template match="cite"><cite><xsl:apply-templates select="*|@*|text()" /></cite></xsl:template>
<xsl:template match="img"><img><xsl:apply-templates select="*|@*|text()" /></img></xsl:template>
<!-- /pass through -->
<!-- ==================================================================== -->
<!-- create a letter bar -->
<!-- ==================================================================== -->
<xsl:template name="letter-bar">
<xsl:param name="letters" />
<xsl:param name="first" />
<xsl:if test="not($first)">
<xsl:text> | </xsl:text>
</xsl:if>
<a href="#{substring($letters,1,1)}">
&nbsp;
<xsl:value-of select="substring($letters, 1, 1)" />
&nbsp;
</a>
<xsl:if test="string-length($letters) &gt; 1">
<xsl:call-template name="letter-bar">
<xsl:with-param name="letters" select="substring($letters, 2)" />
<xsl:with-param name="first" select="false()" />
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- /letter-bar -->
<!-- ==================================================================== -->
<!-- template(s) for collecting all start letters of directives -->
<!-- ==================================================================== -->
<xsl:template name="directive-startletters">
<xsl:param name="directives" />
<xsl:call-template name="_squeeze-letters">
<xsl:with-param name="lastletter" select="''" />
<xsl:with-param name="letters">
<xsl:for-each select="$directives">
<xsl:sort select="name"/>
<xsl:value-of
select="translate(substring(normalize-space(name), 1, 1),
$lowercase, $uppercase)" />
</xsl:for-each>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- /directive-startletters -->
<!-- ==================================================================== -->
<!-- squeeze subsequent letters in a string -->
<!-- ==================================================================== -->
<xsl:template name="_squeeze-letters">
<xsl:param name="letters"/>
<xsl:param name="lastletter"/>
<xsl:variable name="current" select="substring($letters, 1, 1)" />
<xsl:if test="not($lastletter = $current)">
<xsl:value-of select="$current" />
</xsl:if>
<xsl:if test="string-length($letters) &gt; 1">
<xsl:call-template name="_squeeze-letters">
<xsl:with-param name="letters" select="substring($letters, 2)" />
<xsl:with-param name="lastletter" select="$current"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- /_squeeze-letters -->
<!-- ==================================================================== -->
<!-- fix href and target attribute of an element. -->
<!-- ==================================================================== -->
<xsl:template name="helper.uri.fix">
<xsl:param name="uri"/>
<xsl:choose>
<!-- lame is_absolute_uri test -->
<xsl:when test=" contains($uri, ':')
and string-length(substring-before($uri, ':')) &lt; 7">
<xsl:if test="$ext-target">
<xsl:attribute name="target">_blank</xsl:attribute>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="fragment">
<xsl:if test="contains($uri, '#')">
<xsl:value-of select="concat('#', substring-after($uri, '#'))"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="absuri">
<xsl:choose>
<xsl:when test="contains($uri, '#')">
<xsl:value-of select="concat('#', substring-before($uri, '#'))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$uri"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="substring($absuri, string-length($uri), 1) = '/'">
<xsl:attribute name="href">
<xsl:value-of select="concat($absuri, $index-file, $fragment)"/>
</xsl:attribute>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- /helper.uri.fix -->
<!-- ==================================================================== -->
<!-- Ignore table hints used for latex -->
<!-- ==================================================================== -->
<xsl:template match="columnspec">
</xsl:template>
<xsl:template match="column">
</xsl:template>
</xsl:stylesheet>