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