home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 November / PCWorld_2003-11_cd.bin / Komunik / apache / apache_2.0.47-win32-x86-no_ssl.msi / Data.Cab / F251384_moduleindex.xsl (.txt) < prev    next >
LaTeX Document  |  2003-06-30  |  10KB  |  204 lines

  1. <?xml version="1.0"?><!--
  2. /* ====================================================================
  3.  * The Apache Software License, Version 1.1
  4.  * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
  5.  * reserved.
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions
  8.  * are met:
  9.  * 1. Redistributions of source code must retain the above copyright
  10.  *    notice, this list of conditions and the following disclaimer.
  11.  * 2. Redistributions in binary form must reproduce the above copyright
  12.  *    notice, this list of conditions and the following disclaimer in
  13.  *    the documentation and/or other materials provided with the
  14.  *    distribution.
  15.  * 3. The end-user documentation included with the redistribution,
  16.  *    if any, must include the following acknowledgment:
  17.  *       "This product includes software developed by the
  18.  *        Apache Software Foundation (http://www.apache.org/)."
  19.  *    Alternately, this acknowledgment may appear in the software itself,
  20.  *    if and wherever such third-party acknowledgments normally appear.
  21.  * 4. The names "Apache" and "Apache Software Foundation" must
  22.  *    not be used to endorse or promote products derived from this
  23.  *    software without prior written permission. For written
  24.  *    permission, please contact apache@apache.org.
  25.  * 5. Products derived from this software may not be called "Apache",
  26.  *    nor may "Apache" appear in their name, without prior written
  27.  *    permission of the Apache Software Foundation.
  28.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  29.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  30.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  31.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  32.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  33.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  34.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  35.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  36.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  37.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  38.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  39.  * SUCH DAMAGE.
  40.  * ====================================================================
  41.  * This software consists of voluntary contributions made by many
  42.  * individuals on behalf of the Apache Software Foundation.  For more
  43.  * information on the Apache Software Foundation, please see
  44.  * <http://www.apache.org/>.
  45.  */ -->
  46. <xsl:stylesheet version="1.0"
  47.               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  48.                   xmlns="http://www.w3.org/1999/xhtml">
  49. <!-- ==================================================================== -->
  50. <!-- <moduleindex>                                                        -->
  51. <!-- Builds the moduleindex page                                          -->
  52. <!-- ==================================================================== -->
  53. <xsl:template match="moduleindex">
  54.   <xsl:variable name="metafile" select="document(/*/@metafile)/metafile" /> 
  55.   <xsl:call-template name="section-title"/>
  56.   <xsl:apply-templates select="summary"/>
  57.   <xsl:call-template name="seealso"/>
  58.    <xsl:text>\subsection*{</xsl:text>
  59.    <xsl:value-of select="$messages/message[@name='corefeatures']" />
  60.    <xsl:text>}
  61. \begin{description}
  62. \item[</xsl:text>
  63.     <xsl:apply-templates select="document(modulefilelist/modulefile
  64.                               [starts-with(., 'core.xml')])
  65.                               /modulesynopsis/name"/>
  66.     <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
  67.     <xsl:value-of select="document(modulefilelist/modulefile
  68.                               [starts-with(., 'core.xml')])
  69.                               /modulesynopsis/name"/>
  70.     <xsl:text>}) </xsl:text>
  71.     <xsl:apply-templates select="document(modulefilelist/modulefile
  72.                                  [starts-with(., 'core.xml')])
  73.                                  /modulesynopsis/description" />
  74.     <xsl:text>
  75. \item[</xsl:text>
  76.     <xsl:apply-templates  select="document(modulefilelist/modulefile
  77.                                   [starts-with(., 'mpm_common.xml')])
  78.                                   /modulesynopsis/name" />
  79.     <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
  80.     <xsl:value-of select="document(modulefilelist/modulefile
  81.                                    [starts-with(., 'mpm_common.xml')])
  82.                                    /modulesynopsis/name"/>
  83.     <xsl:text>}) </xsl:text>
  84.     <xsl:apply-templates select="document(modulefilelist/modulefile
  85.                                          [starts-with(., 'mpm_common.xml')])
  86.                                          /modulesynopsis/description" />
  87.     <!-- and now the remaining MPMs -->
  88.     <xsl:variable name="mpmmodules"
  89.          select="document(modulefilelist/modulefile)
  90.                  /modulesynopsis[status='MPM' and name != 'mpm_common']" />
  91.     <xsl:variable name="translist">
  92.       <xsl:call-template name="module-translist">
  93.          <xsl:with-param name="modules" select="$mpmmodules" />
  94.       </xsl:call-template>
  95.     </xsl:variable>
  96.     <xsl:for-each select="$mpmmodules">
  97.       <xsl:sort select="substring-before(substring-after($translist,
  98.                   concat('- ', translate(normalize-space(name), $lowercase,
  99.                   $uppercase), ' ')), ' -')" />
  100.       <xsl:text>
  101. \item[</xsl:text>
  102.       <xsl:apply-templates select="name"/>
  103.       <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
  104.       <xsl:value-of select="name"/>
  105.       <xsl:text>}) </xsl:text>
  106.       <xsl:apply-templates select="description" />
  107.     </xsl:for-each>
  108.     <xsl:text>\end{description}
  109. </xsl:text>
  110.     <!-- /core section -->
  111.     <xsl:text>\section*{</xsl:text>
  112.     <xsl:value-of select="$messages/message[@name='othermodules']" />
  113.     <xsl:text>}
  114. \begin{description}
  115. </xsl:text>
  116.             
  117.     <xsl:variable name="modules"
  118.          select="document(modulefilelist/modulefile)
  119.                  /modulesynopsis[status!='MPM' and status!='Core']" />
  120.     <xsl:call-template name="mindex-of-letter">
  121.        <xsl:with-param name="modules" select="$modules" />
  122.     </xsl:call-template>
  123.     <xsl:text>\end{description}
  124. </xsl:text>
  125. </xsl:template> 
  126. <!-- /moduleindex -->
  127. <!-- ==================================================================== -->
  128. <!-- the working horse. builds list items of all modules starting with    -->
  129. <!-- one letter when done, it calls itself to catch the next letter       -->
  130. <!-- ==================================================================== -->
  131. <xsl:template name="mindex-of-letter">
  132. <xsl:param name="modules"/>
  133. <xsl:variable name="translist">
  134.     <xsl:call-template name="module-translist">
  135.         <xsl:with-param name="modules" select="$modules" />
  136.     </xsl:call-template>
  137. </xsl:variable>
  138. <xsl:for-each select="$modules">
  139. <xsl:sort
  140.     select="substring-before(substring-after($translist, concat('- ',
  141.         translate(normalize-space(name),$lowercase,$uppercase), ' ')), ' -')" />
  142. <xsl:text>
  143. \item[</xsl:text>
  144. <xsl:apply-templates select="name"/>
  145. <xsl:text>] (p.\ \pageref{/mod/</xsl:text>
  146. <xsl:value-of select="name"/>
  147. <xsl:text>}) </xsl:text>
  148.         <xsl:apply-templates select="description" />
  149. </xsl:for-each> <!-- /directives -->
  150. </xsl:template>
  151. <!-- /mindex-of-letter -->
  152. <!-- ==================================================================== -->
  153. <!-- define module name translations for sorting                          -->
  154. <!--                                                                      -->
  155. <!-- it's a kind of a hack...                                             -->
  156. <!-- we build a string that contains the following data:                  -->
  157. <!-- "- modulename sortname - modulename sortname - ..."                  -->
  158. <!-- (with all data in uppercase)                                         -->
  159. <!--                                                                      -->
  160. <!-- So, the translation from modulename to sortname can be done with the -->
  161. <!-- expression below:                                                    -->
  162.        substring-before(
  163.            substring-after($translist, 
  164.                            concat('- ', translate(modulename,
  165.                                                   $lowercase, $uppercase),
  166.                                   ' ')
  167.                            ),
  168.            ' -')
  169.                                                                           -->
  170. <!-- ==================================================================== -->
  171. <xsl:template name="module-translist">
  172. <xsl:param name="modules" />
  173. <xsl:text>-</xsl:text>
  174. <xsl:for-each select="$modules">
  175.     <xsl:variable name="sname" select="translate(normalize-space(name),
  176.                                        $lowercase, $uppercase)" />
  177.     <xsl:text> </xsl:text>
  178.     <xsl:value-of select="$sname" />
  179.     <xsl:text> </xsl:text>
  180.     <xsl:call-template name="module-translatename">
  181.         <xsl:with-param name="name" select="$sname" />
  182.     </xsl:call-template>
  183.     <xsl:text> -</xsl:text>
  184. </xsl:for-each>
  185. </xsl:template>
  186. <!-- /module-translist -->
  187. <xsl:template name="module-translatename">
  188. <xsl:param name="name" />
  189. <xsl:variable name="sname" select="translate($name, $lowercase, $uppercase)" />
  190. <xsl:choose>
  191. <xsl:when test="starts-with($sname, 'MOD_') or starts-with($sname, 'MPM_')">
  192.     <xsl:value-of select="substring($name, 5)" />
  193. </xsl:when>
  194. <xsl:when test="starts-with($sname, 'MPMT_')">
  195.     <xsl:value-of select="substring($name, 6)" />
  196. </xsl:when>
  197. <xsl:otherwise>
  198.     <xsl:value-of select="$name" />
  199. </xsl:otherwise>
  200. </xsl:choose>
  201. </xsl:template>
  202. <!-- /module-translatename -->
  203. </xsl:stylesheet>
  204.