forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nicola...@apache.org
Subject cvs commit: xml-forrest/src/resources/skins/xml-apache-site/css xml-apache.css
Date Wed, 29 May 2002 16:44:57 GMT
nicolaken    02/05/29 09:44:57

  Modified:    src/targets project.xtarget
  Added:       src/resources/skins/avalon-site/images add.jpg
                        ant_logo_medium.gif built-with-cocoon.gif
                        centipede-logo-small.gif favicon.ico
                        krysalis-logo-small.gif note.gif remove.jpg
                        update.jpg void.gif
               src/resources/skins/basic/images add.jpg ant_logo_medium.gif
                        built-with-cocoon.gif favicon.ico
                        krysalis-compatible.jpg note.gif remove.jpg
                        update.jpg void.gif
               src/resources/skins/xml-apache-site/images add.jpg
                        ant_logo_medium.gif bar-border-bottom.gif
                        bar-border-left.gif bar-border-right.gif
                        bar-border-top.gif bar-bottom-left.gif
                        bar-bottom-right.gif bar-top-left.gif
                        bar-top-right.gif bottom.gif built-with-cocoon.gif
                        button-asf-hi.gif button-asf-lo.gif
                        button-w3c-hi.gif button-w3c-lo.gif
                        button-xml-hi.gif button-xml-lo.gif close.gif
                        dot.gif favicon.ico fix.jpg join.gif
                        krysalis-compatible.jpg label-background_a.gif
                        label-background_b.gif line.gif logo.gif note.gif
                        remove.jpg right.gif separator.gif update.jpg
                        void.gif
               src/resources/skins/jakarta-site/images add.jpg
                        ant_logo_medium.gif built-with-cocoon.gif
                        favicon.ico krysalis-compatible.jpg note.gif
                        remove.jpg update.jpg void.gif
               src/resources/skins/forrest-site/xslt/fo blankfile
               src/resources/skins/avalon-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/resources/skins/basic/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/resources/skins/xml-apache-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/resources/skins/jakarta-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/resources/skins/forrest-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/resources/skins/forrest-site/images
                        built-with-cocoon.gif centipede-logo-small.gif
                        chapter.gif chapter_open.gif current.gif
                        favicon.ico page.gif printer.gif singlepage.gif
               src/resources/library/xslt changes2document.xsl copyover.xsl
                        directory2revisions.xsl doclist.xsl
                        doclist2document.xsl faq2document.xsl
                        filterlinks.xsl howto2document.xsl
                        todo2document.xsl
               src/resources/conf cocoon.xconf logkit.xconf sitemap.xmap
                        web.xml
               src/resources/skins/avalon-site/css common.css
               src/resources/skins/forrest-site/css page.css
               src/resources/skins/basic/css style.css
               src/resources/skins/xml-apache-site/css xml-apache.css
  Removed:     src/documentation/skins/jakarta-site/images add.jpg
                        ant_logo_medium.gif built-with-cocoon.gif
                        favicon.ico krysalis-compatible.jpg note.gif
                        remove.jpg update.jpg void.gif
               src/documentation/skins/xml-apache-site/images add.jpg
                        ant_logo_medium.gif bar-border-bottom.gif
                        bar-border-left.gif bar-border-right.gif
                        bar-border-top.gif bar-bottom-left.gif
                        bar-bottom-right.gif bar-top-left.gif
                        bar-top-right.gif bottom.gif built-with-cocoon.gif
                        button-asf-hi.gif button-asf-lo.gif
                        button-w3c-hi.gif button-w3c-lo.gif
                        button-xml-hi.gif button-xml-lo.gif close.gif
                        dot.gif favicon.ico fix.jpg join.gif
                        krysalis-compatible.jpg label-background_a.gif
                        label-background_b.gif line.gif logo.gif note.gif
                        remove.jpg right.gif separator.gif update.jpg
                        void.gif
               src/documentation/skins/basic/images add.jpg
                        ant_logo_medium.gif built-with-cocoon.gif
                        favicon.ico krysalis-compatible.jpg note.gif
                        remove.jpg update.jpg void.gif
               src/documentation/skins/avalon-site/images add.jpg
                        ant_logo_medium.gif built-with-cocoon.gif
                        centipede-logo-small.gif favicon.ico
                        krysalis-logo-small.gif note.gif remove.jpg
                        update.jpg void.gif
               src/documentation/skins/forrest-site/xslt/fo blankfile
               src/documentation/skins/cocoon-printer/xslt/html
                        book2menu.xsl document2html.xsl site2xhtml.xsl
               src/documentation/skins/forrest-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/documentation/skins/jakarta-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/documentation/skins/scarab-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/documentation/skins/xml-apache-site/xslt/html
                        book2menu.xsl document2html.xsl site2xhtml.xsl
               src/documentation/skins/basic/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/documentation/skins/avalon-site/xslt/html book2menu.xsl
                        document2html.xsl site2xhtml.xsl
               src/documentation/skins/forrest-site/images
                        built-with-cocoon.gif centipede-logo-small.gif
                        chapter.gif chapter_open.gif current.gif
                        favicon.ico page.gif printer.gif singlepage.gif
               src/documentation/library/xslt changes2document.xsl
                        copyover.xsl directory2revisions.xsl doclist.xsl
                        doclist2document.xsl faq2document.xsl
                        filterlinks.xsl howto2document.xsl
                        todo2document.xsl
               src/documentation/conf cocoon.xconf logkit.xconf
                        sitemap.xmap web.xml
               src/documentation/skins/avalon-site/css common.css
               src/documentation/skins/scarab-site/css compact.css main.css
                        ns4_toxins.css print.css
               src/documentation/skins/scarab-site/images grn_alert.gif
                        icon_alert.gif icon_alertsml.gif
                        icon_confirmsml.gif icon_downarrow.gif
                        icon_downarrow_off.gif icon_downarrow_on.gif
                        icon_help.gif icon_infosml.gif icon_uparrow.gif
                        icon_uparrow_off.gif icon_uparrow_on.gif nw_min.gif
                        se_min.gif seperator.gif seperator2.gif
                        seperator3.gif strich.gif sw_min.gif up_pointer.gif
               src/documentation/skins/forrest-site/css page.css
               src/documentation/skins/cocoon-printer/css simple.css
               src/documentation/skins/basic/css style.css
               src/documentation/skins/xml-apache-site/css xml-apache.css
  Log:
  Moved documentation generation resources to ./src/resources, so that
  src/documentation contains the project documentation and not the
  documentation system. which is Forrest itself.
  This makes it easier to provide the service for other projects, which basically
  need to have a src/documentation dir akin to Forrest's.
  
  Removed also the scarab-site skin that was implemented badly (it takes
  less to make it from scratch using the style at tigris.org) and the
  cocoon-printer skin that was crap (supplanted anyway by the "basic" skin).
  
  Revision  Changes    Path
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/add.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/ant_logo_medium.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/built-with-cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/centipede-logo-small.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/favicon.ico
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/krysalis-logo-small.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/remove.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/update.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/add.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/ant_logo_medium.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/built-with-cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/favicon.ico
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/krysalis-compatible.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/remove.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/update.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/basic/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/add.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/ant_logo_medium.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-border-bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-border-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-border-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-border-top.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-bottom-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-bottom-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-top-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bar-top-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/built-with-cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-asf-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-asf-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-w3c-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-w3c-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-xml-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/button-xml-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/close.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/dot.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/favicon.ico
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/fix.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/join.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/krysalis-compatible.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/label-background_a.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/label-background_b.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/line.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/logo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/remove.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/separator.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/update.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/add.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/ant_logo_medium.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/built-with-cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/favicon.ico
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/krysalis-compatible.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/remove.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/update.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/xslt/fo/blankfile
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/xslt/html/book2menu.xsl
  
  Index: book2menu.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="1.0">
  
    <xsl:param name="resource"/>
  
    <xsl:template match="book">
      <menu>
        <xsl:apply-templates/>
      </menu>
    </xsl:template>
  
    <xsl:template match="project">
    </xsl:template>
  <!--
    <xsl:template match="menu[position()=1]">
      <xsl:apply-templates/>
    </xsl:template>
  -->
    <xsl:template match="menu">
      <div id="submenu">
        <h4><xsl:value-of select="@label"/></h4>
         <ul>      
          <xsl:apply-templates/>
        </ul>     
      </div>     
    </xsl:template>
  
    <xsl:template match="menu-item">
     <li> 
      <xsl:if test="not(@type) or @type!='hidden'">
         <xsl:choose>
           <xsl:when test="@href=$resource">
            <xsl:value-of select="@label"/>
           </xsl:when>
           <xsl:otherwise>
            <a href="{@href}"><xsl:value-of select="@label"/></a>
          </xsl:otherwise>
         </xsl:choose>
       </xsl:if>
      </li>      
    </xsl:template>
  
    <xsl:template match="external">
      <xsl:if test="not(@type) or @type!='hidden'">
       <li>
        <a href="{@href}"><xsl:value-of select="@label"/></a>
       </li> 
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1"/>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/xslt/html/document2html.xsl
  
  Index: document2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
  <!-- ====================================================================== -->
  <!-- document section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="/">
    <!-- checks if this is the included document to avoid neverending loop -->
    <xsl:if test="not(book)">
        <document>
        <xsl:choose>
  		<xsl:when test="document/header/title">
  		      <title><xsl:value-of select="document/header/title"/></title>
  		</xsl:when>
  		<xsl:otherwise>
  			<title>NO TITLE</title>
  		</xsl:otherwise>
  	</xsl:choose>
        <body>
          <xsl:apply-templates/>
           <xsl:if test="/document/header/authors">
              <div id="authors">       
                 <xsl:for-each select="/document/header/authors/person">
                       <xsl:choose>
                          <xsl:when test="position()=1">by&#160;</xsl:when>
  
                          <xsl:otherwise>,&#160;</xsl:otherwise>
                       </xsl:choose>
  
                       <xsl:value-of select="@name" />
                    </xsl:for-each>
                </div>
           </xsl:if>           
        </body>
        </document>
     </xsl:if>
     
     <xsl:if test="book">
      <xsl:apply-templates/>
     </xsl:if>
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- header section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="header">
    <!-- ignore on general document -->
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- body section -->
  <!-- ====================================================================== -->
  
     <xsl:template match="section">
  
  	 <xsl:variable name = "level" select = "count(ancestor::section)+1" />
  	 
  	 <xsl:choose>
  	 	<xsl:when test="$level=1">
  	 	  <h2><xsl:value-of select="@title"/></h2>
  	 	</xsl:when>
  	 	<xsl:when test="$level=2">
  	 	  <h3><xsl:value-of select="@title"/></h3>
  	 	</xsl:when>
  	 	<xsl:when test="$level=3">
  	 	  <h4><xsl:value-of select="@title"/></h4>
  	 	</xsl:when>
  	 	<xsl:otherwise>
  	 	  <h5><xsl:value-of select="@title"/></h5>
  	 	</xsl:otherwise>
  	 </xsl:choose>
  
  	 <div class="section"><xsl:apply-templates/></div>	 
  	      
  	</xsl:template>  
      
  <!-- ====================================================================== -->
  <!-- footer section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="footer">
    <!-- ignore on general documents -->
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- paragraph section -->
  <!-- ====================================================================== -->
  
    <xsl:template match="p">
      <p><xsl:apply-templates/></p>
    </xsl:template>
  
    <xsl:template match="note">
     <p><i><xsl:apply-templates/></i></p>
    </xsl:template>
  
    <xsl:template match="source">
      <div class="code"><pre><xsl:apply-templates/></pre></div>
    </xsl:template>
    
    <xsl:template match="fixme">
     <!-- ignore on documentation -->
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- list section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="ul|ol|dl">
    <blockquote>
     <xsl:copy>
      <xsl:apply-templates/>
     </xsl:copy>
    </blockquote>
   </xsl:template>
   
   <xsl:template match="li">
    <xsl:copy>
     <xsl:apply-templates/>
    </xsl:copy>
   </xsl:template>
  
   <xsl:template match="sl">
    <ul>
     <xsl:apply-templates/>
    </ul>
   </xsl:template>
  
   <xsl:template match="dt">
    <li>
     <strong><xsl:value-of select="."/></strong>
     <xsl:text> - </xsl:text>
     <xsl:apply-templates select="dd"/>   
    </li>
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- table section -->
  <!-- ====================================================================== -->
  
    <xsl:template match="table">
      <table>
        <caption><xsl:value-of select="caption"/></caption>
        <xsl:apply-templates/>
      </table>
    </xsl:template>
  
    <xsl:template match="tr">
      <tr><xsl:apply-templates/></tr>
    </xsl:template>
  
    <xsl:template match="th">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
          <b><xsl:apply-templates/></b>&#160;
      </td>
    </xsl:template>
  
    <xsl:template match="td">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
          <xsl:apply-templates/>&#160;
      </td>
    </xsl:template>
  
    <xsl:template match="tn">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
        &#160;
      </td>
    </xsl:template>
    
    <xsl:template match="caption">
      <!-- ignore since already used -->
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- markup section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="strong">
     <b><xsl:apply-templates/></b>
   </xsl:template>
  
   <xsl:template match="em">
      <i><xsl:apply-templates/></i>
   </xsl:template>
  
   <xsl:template match="code">
    <span class="fixed"><xsl:apply-templates/></span>
   </xsl:template>
  
   <xsl:template match="sup">
    <sup><xsl:apply-templates/></sup>
   </xsl:template>
  
   <xsl:template match="sub">
    <sub><xsl:apply-templates/></sub>
   </xsl:template>
   
  <!-- ====================================================================== -->
  <!-- images section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="figure">
    <p>
    <xsl:choose>
     <xsl:when test="string(@width) and string(@height)">
     <img src="{@src}" alt="{@alt}" width="{@width}" height="{@height}"/>
     </xsl:when>
     <xsl:otherwise>
     <img src="{@src}" alt="{@alt}"/>
     </xsl:otherwise>
    </xsl:choose>
    </p>
   </xsl:template>
   
   <xsl:template match="img">
     <img src="{@src}" alt="{@alt}"/>
   </xsl:template>
  
   <xsl:template match="icon">
     <img src="{@src}" alt="{@alt}"/>
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- links section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="link">
     <a href="{@href}"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="connect">
    <xsl:apply-templates/>
   </xsl:template>
  
   <xsl:template match="jump">
     <a href="{@href}#{@anchor}"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="fork">
     <a href="{@href}" target="_blank"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="anchor">
     <a name="{@id}"><xsl:comment>anchor</xsl:comment></a>
   </xsl:template>  
  
  <!-- ====================================================================== -->
  <!-- specials section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="br">
    <br/>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/xslt/html/site2xhtml.xsl
  
  Index: site2xhtml.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  <xsl:template match="/">
  <html>
  <head>
  			<title><xsl:value-of select="/site/document/title"/></title>
  			<meta name="author" value="Leo Simons" />
  			<meta name="email" value="leosimons@apache.org" />
  			
  			<link rel="stylesheet" type="text/css" href="skin/common.css" />
  </head>
  <body>
  			<!-- header -->
  			<div id="header"><table width="100%" border="0" cellpadding="0" cellspacing="0">
  						<tr>
  									<td id="jakartaLogoTD" valign="middle" align="left"><a href="@group-logo.href@"><img id="jakartaLogo" src="@group-logo.src@" border="0"/></a></td>
  									<td id="projectLogoTD" valign="middle" align="right"><a href="@project-logo.href@"><img id="projectLogo" src="@project-logo.src@" border="0"/></a></td>
  						</tr>
  			</table></div>
  			<!-- end header -->
  			<!-- breadcrumb trail (javascript-generated) -->
  			<div id="breadcrumbs">
                <a href="@link1.href@" class="menu">@link1@ &gt;</a>
                <a href="@link2.href@" class="menu">@link2@ &gt;</a>
                <a href="@link3.href@" class="menu">@link3@</a>    			
  				<script language="JavaScript1.2" type="text/javascript">
  				<!--
  					function sentenceCase(str) {
  						var lower = str.toLowerCase();
  						return lower.substr(0,1).toUpperCase() + lower.substr(1);
  					}
  					function getDirsAsArray() {
  						var trail = document.location.pathname.split("/");
  						var lastdir = (trail[trail.length-1].indexOf(".html") != -1)? trail.length-2 : trail.length-1;
  						var urlprefix = "/avalon/";
  						var postfix = " &gt"; 
  						for(var i = 1; i <= lastdir; i++) {
  							document.writeln('<a href=' + urlprefix + trail[i] + ' class="menu">' + sentenceCase(trail[i]) + '</a>'+postfix);
  							urlprefix += trail[i] + "/";
  							if(i == lastdir-1) postfix = ":";
  						}
  					}
  					getDirsAsArray();
  				// -->
  				</script>
  			</div>
  			<!-- end breadcrumb trail -->
  			<!-- main section of page -->
  			<div id="main"><table width="100%" border="0" cellpadding="0" cellspacing="0">
  						<tr>
  									<td valign="top">
  									
  	<!-- menu -->		
  	<div id="menu">						
  	  <xsl:copy-of select="/site/menu/node()|@*"/>
      </div>
  									<!-- end menu column -->
  									</td>
  									<!-- spacer -->
  									<td width="10">&#160;</td>
   									<td valign="top" width="100%">
  									<!-- contents column -->
  										
  	<!-- contents -->								
      <div id="title"><h1><xsl:value-of select="/site/document/title"/></h1></div>
        <div id="contents">    
         <xsl:copy-of select="/site/document/body/node()|@*"/>
        </div>
  									<!-- end contents column -->
  
  <script language="JavaScript">
  <![CDATA[<!-- 
  document.write("last modified: " + document.lastModified); 
  //  -->]]>
  </script>									</td>
  						</tr>
  			</table></div>
  			<!-- end main section of page -->
  			<!-- footer -->
  			<div id="footer">
  						 Copyright &#x00A9;@year@ @vendor@. All Rights Reserved.
  
  			</div>
    <a href="http://jakarta.apache.org/ant/"><img align="right" src="skin/images/ant_logo_medium.gif" alt="Ant Logo" border="0"/></a> 
    <a href="http://xml.apache.org/cocoon/"><img align="right" src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo" border="0"/></a> 
    <a href="http://www.krysalis.org/"><img align="right" src="skin/images/krysalis-logo-small.gif" alt="Krysalis Logo" border="0"/></a> 
    <a href="http://www.krysalis.org/centipede/"><img align="right" src="skin/images/centipede-logo-small.gif" alt="Krysalis Centipede Logo" border="0"/></a> 
  
  			<!-- end footer -->
  			
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/basic/xslt/html/book2menu.xsl
  
  Index: book2menu.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="1.0">
  
    <xsl:param name="resource"/>
  
    <xsl:template match="book">
      <menu>
        <xsl:apply-templates/>
      </menu>
    </xsl:template>
  
    <xsl:template match="project">
    </xsl:template>
  
    <xsl:template match="menu[position()=1]">
      <xsl:apply-templates/>
    </xsl:template>
  
    <xsl:template match="menu">
       <br/><b><xsl:value-of select="@label"/></b>&#160;;
       <xsl:apply-templates/>
    </xsl:template>
  
    <xsl:template match="menu-item">-&#160;
      <xsl:if test="not(@type) or @type!='hidden'">
         <xsl:choose>
           <xsl:when test="@href=$resource">
            <xsl:value-of select="@label"/>
           </xsl:when>
           <xsl:otherwise>
            <a href="{@href}"><xsl:value-of select="@label"/></a>
          </xsl:otherwise>
         </xsl:choose>
       </xsl:if>&#160;
    </xsl:template>
  
    <xsl:template match="external">
      <xsl:if test="not(@type) or @type!='hidden'">&#160;-
        <a href="{@href}"><xsl:value-of select="@label"/></a>&#160;;
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1"/>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/basic/xslt/html/document2html.xsl
  
  Index: document2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
  <!-- ====================================================================== -->
  <!-- document section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="/">
    <!-- checks if this is the included document to avoid neverending loop -->
    <xsl:if test="not(book)">
        <document>
        <xsl:choose>
  		<xsl:when test="document/header/title">
  		      <title><xsl:value-of select="document/header/title"/></title>
  		</xsl:when>
  		<xsl:otherwise>
  			<title>NO TITLE</title>
  		</xsl:otherwise>
  	</xsl:choose>
        <body>
          <xsl:apply-templates/>
        </body>
        </document>
     </xsl:if>
     
     <xsl:if test="book">
      <xsl:apply-templates/>
     </xsl:if>
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- header section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="header">
    <!-- ignore on general document -->
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- body section -->
  <!-- ====================================================================== -->
  
     <xsl:template match="section">
  	
  	 <xsl:variable name = "level" select = "count(ancestor::section)+1" />
  	 
  	 <xsl:choose>
  	 	<xsl:when test="$level=1">
  	 	  <h2><xsl:value-of select="@title"/></h2>
  	      <xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:when test="$level=2">
  	 	  <h3><xsl:value-of select="@title"/></h3>
  	      <xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:when test="$level=3">
  	 	  <h4><xsl:value-of select="@title"/></h4>
  	      <xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:otherwise>
  	 	  <h5><xsl:value-of select="@title"/></h5>
  	      <xsl:apply-templates/>	 	 
  	 	</xsl:otherwise>
  	 </xsl:choose>
  
  	</xsl:template>  
      
  <!-- ====================================================================== -->
  <!-- footer section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="footer">
    <!-- ignore on general documents -->
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- paragraph section -->
  <!-- ====================================================================== -->
  
    <xsl:template match="p">
      <p><xsl:apply-templates/></p>
    </xsl:template>
  
    <xsl:template match="note">
     <p><i><xsl:apply-templates/></i></p>
    </xsl:template>
  
    <xsl:template match="source">
      <pre><xsl:apply-templates/></pre>
    </xsl:template>
    
    <xsl:template match="fixme">
     <!-- ignore on documentation -->
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- list section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="ul|ol|dl">
    <blockquote>
     <xsl:copy>
      <xsl:apply-templates/>
     </xsl:copy>
    </blockquote>
   </xsl:template>
   
   <xsl:template match="li">
    <xsl:copy>
     <xsl:apply-templates/>
    </xsl:copy>
   </xsl:template>
  
   <xsl:template match="sl">
    <ul>
     <xsl:apply-templates/>
    </ul>
   </xsl:template>
  
   <xsl:template match="dt">
    <li>
     <strong><xsl:value-of select="."/></strong>
     <xsl:text> - </xsl:text>
     <xsl:apply-templates select="dd"/>   
    </li>
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- table section -->
  <!-- ====================================================================== -->
  
    <xsl:template match="table">
      <table>
        <caption><xsl:value-of select="caption"/></caption>
        <xsl:apply-templates/>
      </table>
    </xsl:template>
  
    <xsl:template match="tr">
      <tr><xsl:apply-templates/></tr>
    </xsl:template>
  
    <xsl:template match="th">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
          <b><xsl:apply-templates/></b>&#160;
      </td>
    </xsl:template>
  
    <xsl:template match="td">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
          <xsl:apply-templates/>&#160;
      </td>
    </xsl:template>
  
    <xsl:template match="tn">
      <td colspan="{@colspan}" rowspan="{@rowspan}">
        &#160;
      </td>
    </xsl:template>
    
    <xsl:template match="caption">
      <!-- ignore since already used -->
    </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- markup section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="strong">
     <b><xsl:apply-templates/></b>
   </xsl:template>
  
   <xsl:template match="em">
      <i><xsl:apply-templates/></i>
   </xsl:template>
  
   <xsl:template match="code">
      <code><xsl:apply-templates/></code>
   </xsl:template>
   
  <!-- ====================================================================== -->
  <!-- images section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="figure">
    <p>
    <xsl:choose>
     <xsl:when test="string(@width) and string(@height)">
     <img src="{@src}" alt="{@alt}" width="{@width}" height="{@height}"/>
     </xsl:when>
     <xsl:otherwise>
     <img src="{@src}" alt="{@alt}"/>
     </xsl:otherwise>
    </xsl:choose>
    </p>
   </xsl:template>
   
   <xsl:template match="img">
     <img src="{@src}" alt="{@alt}"/>
   </xsl:template>
  
   <xsl:template match="icon">
     <img src="{@src}" alt="{@alt}"/>
   </xsl:template>
  
  <!-- ====================================================================== -->
  <!-- links section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="link">
     <a href="{@href}"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="connect">
    <xsl:apply-templates/>
   </xsl:template>
  
   <xsl:template match="jump">
     <a href="{@href}#{@anchor}"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="fork">
     <a href="{@href}" target="_blank"><xsl:apply-templates/></a>
   </xsl:template>
  
   <xsl:template match="anchor">
     <a name="{@id}"><xsl:comment>anchor</xsl:comment></a>
   </xsl:template>  
  
  <!-- ====================================================================== -->
  <!-- specials section -->
  <!-- ====================================================================== -->
  
   <xsl:template match="br">
    <br/>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/basic/xslt/html/site2xhtml.xsl
  
  Index: site2xhtml.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  <xsl:template match="/">
  <html>
   <head>
    <title><xsl:value-of select="/site/document/title"/></title>
    <link rel="stylesheet" type="text/css" href="skin/style.css" />
   </head>
   <body>
     <a href="@group-logo.href@"><img src="@group-logo.src@"/></a>
     <a href="@project-logo.href@"><img src="@project-logo.src@"/></a>
     
    <h1>
     <xsl:value-of select="/site/document/title"/>
    </h1>
  
      <hr/><xsl:copy-of select="/site/menu/node()|@*"/>
      <hr/><xsl:copy-of select="/site/document/body/node()|@*"/>
  
    <hr/><p><i>Copyright &#x00A9; @year@ @vendor@. All Rights Reserved.</i></p>
    <hr/>
    <a href="http://krysalis.org/"><img src="skin/images/krysalis-compatible.jpg" alt="Krysalis Logo"/></a> 
    <a href="http://xml.apache.org/cocoon/"><img src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo"/></a> 
    <a href="http://jakarta.apache.org/ant/"><img src="skin/images/ant_logo_medium.gif" alt="Ant Logo"/></a> 
   
   </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/xslt/html/book2menu.xsl
  
  Index: book2menu.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:NetUtils="org.apache.cocoon.util.NetUtils"
                  version="1.0">
  
    <xsl:param name="resource"/>
  
    <xsl:template match="book">
      <menu>
        <xsl:apply-templates/>
      </menu>
    </xsl:template>
  
    <xsl:template match="project">
    </xsl:template>
  
    <xsl:template match="menu[position()=1]">
      <xsl:apply-templates/>
    </xsl:template>
  
    <xsl:template match="menu">
       <!-- Encode label to escape any reserved characters such as space -->
       <xsl:variable name="encLabel" select="NetUtils:encodePath(@label)"/>
       <tr>
        <td valign="top" bgcolor="#959595" background="skin/images/label-background_b.gif">
         <img src="skin/images/separator.gif"/><br/>
         <span class="menutitle"><xsl:value-of select="@label"/></span></td>
       </tr>
       <xsl:apply-templates/>
    </xsl:template>
  
  
    <xsl:template match="menu-item">
      <xsl:if test="not(@type) or @type!='hidden'">
       <xsl:variable name="encLabel" select="NetUtils:encodePath(@label)"/>
       <tr>
        <td bgcolor="#959595" valign="top">
         <xsl:attribute name="background">skin/images/label-background_a.gif</xsl:attribute>
         <xsl:choose>
           <xsl:when test="@href=$resource">
             <span class="menuselected"><xsl:value-of select="@label"/></span>
           </xsl:when>
           <xsl:otherwise>
             <a href="{@href}" class="menu"><xsl:value-of select="@label"/></a>
           </xsl:otherwise>
         </xsl:choose>
        </td>
       </tr>
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="external">
      <xsl:if test="not(@type) or @type!='hidden'">
       <xsl:variable name="encLabel" select="NetUtils:encodePath(@label)"/>
       <tr><td bgcolor="#959595" background="skin/images/label-background_a.gif" valign="top">
          <a href="{@href}" target="new" class="menu"><xsl:value-of select="@label"/></a>
  	</td>
       </tr>
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1"/>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/xslt/html/document2html.xsl
  
  Index: document2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  	<!-- ====================================================================== -->
  	<!-- document section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="/">
  		<!-- checks if this is the included document to avoid neverending loop -->
  		<xsl:if test="not(book)">
  			<document>
  				<xsl:choose>
  					<xsl:when test="document/header/title">
  						<title>
  							<xsl:value-of select="document/header/title"/>
  						</title>
  					</xsl:when>
  					<xsl:otherwise>
  						<title>NO TITLE</title>
  					</xsl:otherwise>
  				</xsl:choose>
  				<body text="#000000" link="#039acc" vlink="#0086b2" alink="#cc0000" topmargin="4" leftmargin="4" marginwidth="4" marginheight="4" bgcolor="#ffffff">
  					<xsl:apply-templates/>
  				</body>
  			</document>
  		</xsl:if>
  		<xsl:if test="book">
  			<xsl:apply-templates/>
  		</xsl:if>
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- header section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="header">
  		<!-- ignore on general document -->
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- body section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="section">
  	
  	 <xsl:variable name = "level" select = "count(ancestor::section)+1" />
  	 
  	 <xsl:choose>
  	 	<xsl:when test="$level=1">
  	 	  <font color="#0086b2" size="+2" face="verdana, helvetica, sans serif">
     			<xsl:value-of select="@title"/>
  	  	  </font>
  		  <hr size="1" style="color: #0086b2"/>
  	      <xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:when test="$level=2">
  		<font color="#0086b2" size="+1" face="verdana, helvetica, sans serif">
     			<b><xsl:value-of select="@title"/></b>
  		</font>
  		<xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:when test="$level=3">
  		<font color="#0086b2" size="+1" face="verdana, helvetica, sans serif">
     			<xsl:value-of select="@title"/>
  		</font>
  		<xsl:apply-templates/>
  	 	</xsl:when>
  	 	<xsl:otherwise>
  		<font color="#0086b2" face="verdana, helvetica, sans serif">
     			<b><xsl:value-of select="@title"/></b>
  		</font>
  		<xsl:apply-templates/>	 	 
  	 	</xsl:otherwise>
  	 </xsl:choose>
  
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- footer section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="footer">
  		<!-- ignore on general documents -->
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- paragraph section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="p">
  		<p><font face="verdana,helvetica,sanserif" color="black">
  			<xsl:apply-templates/>
  		</font></p>
  	</xsl:template>
  	<xsl:template match="note">
  		<p>
  			<table width="100%" cellspacing="3" cellpadding="0" border="0">
  				<tr>
  					<td width="28" valign="top">
  						<img src="skin/images/note.gif" width="28" height="29" vspace="0" hspace="0" border="0" alt="Note"/>
  					</td>
  					<td valign="top">
  						<font size="-1" face="verdana,helvetica,sanserif" color="black">
  							<i>
  								<xsl:apply-templates/>
  							</i>
  						</font>
  					</td>
  				</tr>
  			</table>
  		</p>
  	</xsl:template>
  	<xsl:template match="source">
  		<div align="center">
  			<table cellspacing="4" cellpadding="0" border="0">
  				<tr>
  					<td bgcolor="#0086b2" width="1" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  					<td bgcolor="#0086b2" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  					<td bgcolor="#0086b2" width="1" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  				</tr>
  				<tr>
  					<td bgcolor="#0086b2" width="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  					<td bgcolor="#ffffff">
  						<pre>
  							<xsl:apply-templates/>
  						</pre>
  					</td>
  					<td bgcolor="#0086b2" width="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  				</tr>
  				<tr>
  					<td bgcolor="#0086b2" width="1" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  					<td bgcolor="#0086b2" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  					<td bgcolor="#0086b2" width="1" height="1">
  						<img src="skin/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/>
  					</td>
  				</tr>
  			</table>
  		</div>
  	</xsl:template>
  	<xsl:template match="fixme">
  		<!-- ignore on documentation -->
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- list section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="ul|ol|dl">
  		<blockquote>
  			<xsl:copy>
  				<xsl:apply-templates/>
  			</xsl:copy>
  		</blockquote>
  	</xsl:template>
  	<xsl:template match="li">
  		<xsl:copy><font face="verdana, helvetica, sans serif">
  			<xsl:apply-templates/>
  		</font>
  </xsl:copy>	</xsl:template>
  	<xsl:template match="sl">
  		<ul>
  			<xsl:apply-templates/>
  		</ul>
  	</xsl:template>
  	<xsl:template match="dt">
  		<li><font face="verdana, helvetica, sans serif">
  			<strong>
  				<xsl:value-of select="."/>
  			</strong>
  			<xsl:text> - </xsl:text>
  			<xsl:apply-templates select="dd"/></font>
  		</li>
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- table section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="table">
  		<table width="100%" border="0" cellspacing="2" cellpadding="2">
  			<caption><font face="verdana,helvetica,sanserif">
  				<xsl:value-of select="caption"/>
  			</font></caption>
  			<xsl:apply-templates/>
  		</table>
  	</xsl:template>
  	<xsl:template match="tr">
  		<tr>
  			<xsl:apply-templates/>
  		</tr>
  	</xsl:template>
  	<xsl:template match="th">
  		<td bgcolor="#039acc" colspan="{@colspan}" rowspan="{@rowspan}" valign="center" align="center">
  			<font color="white" size="-1" face="verdana,helvetica,sanserif">
  				<b>
  					<xsl:apply-templates/>
  				</b>
  			</font>
  		</td>
  	</xsl:template>
  	<xsl:template match="td">
  		<td bgcolor="#a0ddf0" colspan="{@colspan}" rowspan="{@rowspan}" valign="top" align="left">
  			<font color="black" size="-1" face="verdana,helvetica,sanserif">
  				<xsl:apply-templates/>
  			</font>
  		</td>
  	</xsl:template>
  	<xsl:template match="tn">
  		<td bgcolor="#ffffff" colspan="{@colspan}" rowspan="{@rowspan}">&#160;</td>
  	</xsl:template>
  	<xsl:template match="caption">
  		<!-- ignore since already used -->
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- markup section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="strong">
  		<b>
  			<xsl:apply-templates/>
  		</b>
  	</xsl:template>
  	<xsl:template match="em">
  		<i>
  			<xsl:apply-templates/>
  		</i>
  	</xsl:template>
  	<xsl:template match="code">
  		<code>
  			<font face="courier, monospaced">
  				<xsl:apply-templates/>
  			</font>
  		</code>
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- images section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="figure">
  		<p align="center">
  			<xsl:choose>
  				<xsl:when test="string(@width) and string(@height)">
  					<img src="{@src}" alt="{@alt}" width="{@width}" height="{@height}" border="0" vspace="4" hspace="4"/>
  				</xsl:when>
  				<xsl:otherwise>
  					<img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4"/>
  				</xsl:otherwise>
  			</xsl:choose>
  		</p>
  	</xsl:template>
  	<xsl:template match="img">
  		<img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4" align="right"/>
  	</xsl:template>
  	<xsl:template match="icon">
  		<img src="{@src}" alt="{@alt}" border="0" align="absmiddle"/>
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- links section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="link">
  		<a href="{@href}">
  			<xsl:apply-templates/>
  		</a>
  	</xsl:template>
  	<xsl:template match="connect">
  		<xsl:apply-templates/>
  	</xsl:template>
  	<xsl:template match="jump">
  		<a href="{@href}#{@anchor}">
  			<xsl:apply-templates/>
  		</a>
  	</xsl:template>
  	<xsl:template match="fork">
  		<a href="{@href}" target="_blank">
  			<xsl:apply-templates/>
  		</a>
  	</xsl:template>
  	<xsl:template match="anchor">
  		<a name="{@id}">
  			<xsl:comment>anchor</xsl:comment>
  		</a>
  	</xsl:template>
  	<!-- ====================================================================== -->
  	<!-- specials section -->
  	<!-- ====================================================================== -->
  	<xsl:template match="br">
  		<br/>
  	</xsl:template>
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/xslt/html/site2xhtml.xsl
  
  Index: site2xhtml.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:NetUtils="org.apache.cocoon.util.NetUtils"
      version="1.0">
  
  	<xsl:param name="header"/>
  
  <xsl:template match="/">
  <html>
        <head>
          <title><xsl:value-of select="/site/document/title"/></title>
  <style type="text/css">
  a.menu {
  	color: #FFFFFF;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:plain;
      text-decoration:none;
      padding-left: 14px
  }
  .menutitle {
  	color: #000000;
      text-align:left;               
      font-size:10px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 8px
  }
  .menuselected {
  	color: white;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 14px
  }
  </style>     
   <!--<link rel ="stylesheet" type="text/css" href="skin/xml-apache.css" title="Style"/>-->
        </head>
  
        <body text="#000000" link="#039acc" vlink="#0086b2" alink="#cc0000"
              topmargin="4" leftmargin="4" marginwidth="4" marginheight="4"
              bgcolor="#ffffff">
          <!-- THE TOP BAR (HEADER) -->
          <table width="100%" cellspacing="0" cellpadding="0" border="0">
            <tr>
              <td height="60" rowspan="3" valign="top" align="left" background="@group-logo.href@">
                <img height="60" src="@group-logo.src@" hspace="0" vspace="0" border="0"/>
              </td>
              <td width="100%" height="5" valign="top" align="left" colspan="2" background="skin/images/line.gif">
                <img width="1" height="5" src="skin/images/line.gif" hspace="0" vspace="0" border="0" align="left"/>
              </td>
              <td width="29" height="60"  rowspan="3" valign="top" align="left">
                <img width="29" height="60" src="skin/images/right.gif" hspace="0" vspace="0" border="0"/>
              </td>
            </tr>
            <tr>
              <td width="100%" height="35" valign="top" align="left" bgcolor="#0086b2">
                <font size="5" face="Verdana, Arial, Helvetica, sans-serif" color="#ffffff">&#160;&#160;<xsl:value-of select="/site/document/title"/></font>
              </td>
              <td width="100%" height="35" valign="top" align="right" bgcolor="#0086b2">
              <a href="@project-logo.href@"><img  height="35" src="@project-logo.src@" hspace="0" vspace="0" border="0"/></a>
              </td>
            </tr>
            <tr>
              <td align="right" bgcolor="#0086b2" height="20" valign="top" width="100%" colspan="2" background="skin/images/bottom.gif">
                 <table border="0" cellpadding="0" cellspacing="0" width="288">
                  <tr>
                     <td height="20" valign="top" align="left"></td>
                    <td height="20" valign="top" align="left"></td>
                    <td height="20" valign="top" align="left"></td>
                     </tr>
                     
                </table>              
              </td>
            </tr>
          </table>
  
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  	<tr width="100%">
  	
  
              
  	        <!-- THE SIDE BAR -->
  	  		<td width="120" valign="top" align="left"> 
  			<table bgcolor="#a0a0a0" border="0" cellpadding="0" cellspacing="0" width="120">
  			      <tr>
  					<td align="left" valign="top">
  						<img border="0" height="14" hspace="0" src="skin/images/join.gif" vspace="0" width="120"/>
  						<br/>
  					</td>
  				</tr>
  				<xsl:copy-of select="/site/menu/node()|@*"/>
  				<tr>
  					<td valign="top" align="left">
  						<img border="0" height="14" hspace="0" src="skin/images/close.gif" vspace="0" width="120"/>
  						<br/>
  					</td>
  				</tr>
  			</table>
  		</td>
  
  		
  	    <!-- THE CONTENTS -->
  		<td>
  			<table border="0" cellpadding="0" cellspacing="15">
  				<tr><td><xsl:copy-of select="/site/document/body/node()|@*"/></td></tr>
  			</table>
  		</td>
  		
  		
  	</tr>
  </table>
   
   
              
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
      <td bgcolor="#0086b2">
        <img height="1" src="skin/images/dot.gif" width="1"/>
      </td>
    </tr>
    <tr>
      <td align="center">
        <font color="#0086b2" face="arial,helvetica,sanserif" size="-1">
          <i>Copyright &#169; @year@ @vendor@. All Rights Reserved.</i>
        </font>
      </td>
    </tr>
          <tr>
            <td width="100%" align="right">
  			<br/>
            </td>
          </tr>        
          <tr>
            <td width="100%" align="right">
              <a href="http://krysalis.org/"><img src="skin/images/krysalis-compatible.jpg" alt="Krysalis Logo" border="0"/></a> 
              <a href="http://xml.apache.org/cocoon/"><img src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo" border="0"/></a> 
              <a href="http://jakarta.apache.org/ant/"><img src="skin/images/ant_logo_medium.gif" alt="Ant Logo" border="0"/></a> 
            </td>
          </tr>  
  </table>
  </body>
  
  
  </html>
  </xsl:template>
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/xslt/html/book2menu.xsl
  
  Index: book2menu.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="1.0">
  
    <xsl:template match="book">
      <menu>
        <xsl:apply-templates/>
      </menu>
    </xsl:template>
  
    <xsl:template match="project">
      <br/><a href="{@href}"><font color="#F3510C" size="+1"><xsl:value-of select="@label"/></font></a><br/>
    </xsl:template>
  
    <xsl:template match="menu">
      <br/>
      <span class="s1"><xsl:value-of select="@label"/></span><br/>
          <xsl:apply-templates/>
    </xsl:template>
  
    <xsl:template match="menu-item">
      <xsl:if test="not(@type) or @type!='hidden'">
        <a href="{@href}" class="s1"><xsl:value-of select="@label"/></a><br/>
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1"/>
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/xslt/html/document2html.xsl
  
  Index: document2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="1.0">
  
    <xsl:template match="document">
     <body>
      <xsl:if test="normalize-space(header/title)!=''">
        <title><xsl:value-of select="header/title"/></title>
              <table class="centered" align="center" width="100%">
                <tbody>
                  <tr>
                    <td align="center">
                      <table class="title" cellspacing="0" cellpadding="1" border="0">
                        <tbody>
                          <tr>
                            <td bgcolor="#525d76">
                              <table class="centered" cellspacing="0" cellpadding="2" border="0" width="100%">
                                <tbody>
                                  <tr>
                                    <td bgcolor="#f3dd61">
                                      <span class="title"><xsl:value-of select="header/title"/>
                                       <xsl:if test="header/subtitle">
                                        &#160;-&#160;<i><xsl:value-of select="header/subtitle"/></i>
                                       </xsl:if>
                                      </span>
                                    </td>
                                  </tr>
                                </tbody>
                              </table>
                            </td>
                          </tr>
                        </tbody>
                      </table>
                    </td>
                  </tr>
                </tbody>
              </table>
        </xsl:if>
  
        <font color="#000000" size="-2">
          <p>
            <xsl:for-each select="header/person">
              <xsl:choose>
                <xsl:when test="position()=1">by</xsl:when>
                <xsl:otherwise>, </xsl:otherwise>
              </xsl:choose>
            </xsl:for-each>
            <a href="mailto:{@email}">
              <xsl:value-of select="@name"/>
            </a>
          </p>
        </font>
  
        <xsl:apply-templates select="body"/>
  
      </body>
    </xsl:template>
  
    <xsl:template match="changes"/>
  
    <xsl:template match="action"/>
  
    <xsl:template match="body">
      <xsl:apply-templates/>
    </xsl:template>
  
  
    <xsl:template match="section">
      <xsl:call-template name="dosection">
         <xsl:with-param name="level"><xsl:value-of select="count(ancestor::section)+1"/></xsl:with-param>
      </xsl:call-template>
    </xsl:template>
  
    <xsl:template name="dosection">
      <xsl:param name="level"/>
  
      <div align="right">
        <table border="0" cellpadding="2" cellspacing="0">
          <xsl:attribute name="width"><xsl:value-of select="number(100)-(1*(number($level)-1))"/>%</xsl:attribute>
          <tr>
            <td bgcolor="#525D76">
              <font color="#ffffff">
                <xsl:attribute name="size">
                  <xsl:choose>
                    <xsl:when test="number($level)=1">+1</xsl:when>
                    <xsl:when test="number($level)=2">+0</xsl:when>
                    <xsl:otherwise>-<xsl:value-of select="number($level)-2"/></xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
                <font face="Arial,sans-serif"><b><xsl:value-of select="@title"/></b></font>
              </font>
            </td>
          </tr>
          <tr>
            <td>
                <br/>
                <xsl:apply-templates>
                  <xsl:with-param name="level" select="number($level)+1"/>
                </xsl:apply-templates>
            </td>
          </tr>
        </table>
      </div><br/>
  
    </xsl:template>
  
    <xsl:template match="s1">
      <xsl:call-template name="dosection">
         <xsl:with-param name="level">1</xsl:with-param>
      </xsl:call-template>
    </xsl:template>
  
    <xsl:template match="s2">
      <xsl:call-template name="dosection">
         <xsl:with-param name="level">2</xsl:with-param>
      </xsl:call-template>
    </xsl:template>
  
    <xsl:template match="s3">
      <xsl:call-template name="dosection">
         <xsl:with-param name="level">3</xsl:with-param>
      </xsl:call-template>
    </xsl:template>
  
    <xsl:template match="s4">
      <xsl:call-template name="dosection">
         <xsl:with-param name="level">4</xsl:with-param>
      </xsl:call-template>
    </xsl:template>
  
    <xsl:template match="br">
      <br/>
    </xsl:template>
  
    <xsl:template match="strong|em">
      <em><xsl:apply-templates/></em>
    </xsl:template>
  
    <xsl:template match="ul">
      <ul><xsl:apply-templates/></ul>
    </xsl:template>
  
    <xsl:template match="li">
      <li><xsl:apply-templates/></li>
    </xsl:template>
  
    <xsl:template match="ol">
      <ol><xsl:apply-templates/></ol>
    </xsl:template>
  
    <xsl:template match="link">
      <a href="{@href}"><xsl:apply-templates/></a>
    </xsl:template>
  
    <xsl:template match="figure">
      <xsl:choose>
        <xsl:when test="@src">
      <div align="center">
        <table border="0" cellpadding="2" cellspacing="2">
          <tr>
            <td bgcolor="#525D76"><font color="#ffffff" size="0"><xsl:value-of select="@alt"/></font></td>
          </tr>
      <tr>
        <td><img border="0" alt="{@alt}" src="{@src}"/></td>
      </tr>
      <xsl:if test="@alt">
        <tr>
          <td><font size="-1"><ul><li><xsl:value-of select="@alt"/></li></ul></font></td>
        </tr>
      </xsl:if>
  
        </table>
      </div>
  
        </xsl:when>
      </xsl:choose>
    </xsl:template>
  
    <xsl:template match="fixme">
     <div align="center">
        <table border="1" cellpadding="2" cellspacing="2">
          <xsl:if test="title">
            <tr>
              <td bgcolor="#800000">
                <font color="#ffffff"><xsl:value-of select="title"/></font>
              </td>
            </tr>
          </xsl:if>
          <tr>
            <td bgcolor="#c0c0c0">
              <font color="#023264" size="-1"><xsl:apply-templates/></font>
            </td>
          </tr>
        </table>
      </div>
    </xsl:template>
  
    <xsl:template match="note">
      <note><xsl:apply-templates/></note>
    </xsl:template>
  
    <xsl:template match="warn">
      <div align="center">
        <table border="1" cellpadding="2" cellspacing="2">
          <xsl:if test="title">
            <tr>
              <td bgcolor="#800000">
                <font color="#ffffff"><xsl:value-of select="title"/></font>
              </td>
            </tr>
          </xsl:if>
          <tr>
            <td bgcolor="#c0c0c0">
              <font color="#023264" size="-1"><xsl:apply-templates/></font>
            </td>
          </tr>
        </table>
      </div>
    </xsl:template>
  
    <xsl:template match="code">
      <code><xsl:apply-templates/><xsl:if test="name(.)='function'"><xsl:text>()</xsl:text></xsl:if></code>
    </xsl:template>
  
    <xsl:template match="source">
      <div align="center">
        <table border="1" cellpadding="2" cellspacing="2">
          <tr>
            <td>
              <pre>
                <xsl:apply-templates/>
              </pre>
            </td>
          </tr>
        </table>
      </div>
    </xsl:template>
  
    <xsl:template match="table">
      <table border="0" cellpadding="2" cellspacing="2" width="100%">
        <xsl:apply-templates/>
      </table>
    </xsl:template>
  
    <xsl:template match="th">
      <th><xsl:apply-templates/></th>
    </xsl:template>
  
    <xsl:template match="tr">
      <tr><xsl:apply-templates/></tr>
    </xsl:template>
  
    <xsl:template match="td">
      <td><xsl:apply-templates/></td>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1">
      <xsl:copy>
        <xsl:apply-templates select="node()|@*"/>
      </xsl:copy>
    </xsl:template>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/jakarta-site/xslt/html/site2xhtml.xsl
  
  Index: site2xhtml.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <html xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xsl:version="1.0">
    <head>
      <meta content="text/html; charset=ISO-8859-1"/>
      <title><xsl:value-of select="/site/body/title"/></title>
  <style type="text/css">
  <![CDATA[ body { background-color: white; font-size: normal; color: black ; }
   a { color: #525d76; }
   a.black { color: #000000;} 
   table {border-width: 0; width: 100%}
   table.centered {text-align: center}
   table.title {text-align: center; width: 80%} 
   img{border-width: 0;} 
   span.s1 {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
   span.s1_white { font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #ffffff; } 
   span.title {font-family: Helvetica, Arial, sans-serif; font-weight: bold; color: #000000; }
   span.c1 {color: #000000; font-family: Helvetica, Arial, sans-serif}
   tr.left {text-align: left}
   hr { width: 100%; size: 2} ]]>
  </style>    
    </head>
    <body>
    
      <!-- header --> 
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top"><a href="@group-logo.href@"><img src="@group-logo.src@" border="0" vspace="0" hspace="0"/></a></td><td bgcolor="#ffffff" align="left" valign="top" width="100%"><a href="@project-logo.href@"><img src="@project-logo.src@" align="right" border="0" vspace="0" hspace="0"/></a></td>
  </tr>
  <tr>
  <td bgcolor="#525d76" colspan="2">
  <span class="c1">
        <a href="@link1.href@" class="black">@link1@ &#160;&gt;&#160;</a>
        <a href="@link2.href@" class="black">@link2@ &#160;&gt;&#160;</a>
        <a href="@link3.href@" class="black">@link3@</a>    
  </span></td>
  </tr>
  <tr>
  <td height="8"></td>
  </tr>
  </table>
      
      <!-- main --> 
      <table width="100%" cellspacing="0" cellpadding="0" border="0">
        <tr>
          <!-- left menu --> 
          <td width="1%"><br/></td>
          <td width="14%" valign="top" nowrap="1">
            <xsl:copy-of select="/site/menu/node()|@*"/>
          </td>
          <td width="1%"><br/></td>  
              
          <!-- contents --> 
          <td width="*" valign="top" align="left">
            <xsl:copy-of select="/site/body/node()|@*"/>
          </td>
        </tr>
      </table>
      <br/>
      
      <!-- footer --> 
     <table cellpadding="0" cellspacing="0" border="0" width="100%">
        <tbody>
          <tr>
            <td>
              <hr size="1" noshade=""/>
            </td>
          </tr>
          <tr>
            <td align="center">
              <i>Copyright &#x00A9; @year@ @vendor@. All Rights Reserved.</i>
            </td>
          </tr>
          <tr>
            <td width="100%" align="right">
  			<br/>
            </td>
          </tr>        
          <tr>
            <td width="100%" align="right">
              <a href="http://krysalis.org/"><img src="skin/images/krysalis-compatible.jpg" alt="Krysalis Logo"/></a> 
              <a href="http://xml.apache.org/cocoon/"><img src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo"/></a> 
              <a href="http://jakarta.apache.org/ant/"><img src="skin/images/ant_logo_medium.gif" alt="Ant Logo"/></a> 
            </td>
          </tr>
        </tbody>
      </table>
      
    </body>
  </html>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/xslt/html/book2menu.xsl
  
  Index: book2menu.xsl
  ===================================================================
  <?xml version='1.0'?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="book">
        <div class="menu">
           <ul>
              <xsl:apply-templates select="menu" />
           </ul>
        </div>
     </xsl:template>
  
     <xsl:template match="menu">
        <li>
           <xsl:value-of select="@label" />
  
           <xsl:if test="menu-item | external">
              <ul>
                 <xsl:apply-templates select="menu-item | external" />
              </ul>
           </xsl:if>
        </li>
     </xsl:template>
  
     <xsl:template match="menu-item[@type='hidden']" />
  
     <xsl:template match="external[@type='hidden']" />
  
     <xsl:template match="menu-item | external">
        <li>
           <a href="{@href}">
              <xsl:value-of select="@label" />
           </a>
        </li>
     </xsl:template>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/xslt/html/document2html.xsl
  
  Index: document2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:param name="isfaq" />
  
     <xsl:template match="document">
        <td colspan="2" valign="top" class="content">
  <!-- got rid of printable page link for the time being
  
  
        <table>
  
  
          <tr>
  
  
            <td valign="middle">
  
  
              <xsl:choose>
  
  
                <xsl:when test="normalize-space(header/title)!=''">
  
  
                  <h2>
  
  
                    <xsl:value-of select="header/title"/>
  
  
                  </h2>
  
  
                </xsl:when>
  
  
                <xsl:otherwise>&#160;</xsl:otherwise>
  
  
              </xsl:choose>
  
  
            </td>
  
  
            <td align="center" width="80" nowrap="nowrap">
  
  
              <a href="#" class="dida">
  
  
                <img src="images/printer.gif"/>
  
  
                <br/>printer-friendly<br/>version</a>
  
  
            </td>
  
  
          </tr>
  
  
        </table>
  
  
        -->
           <xsl:if test="normalize-space(header/title)!=''">
              <h2>
                 <xsl:value-of select="header/title" />
              </h2>
           </xsl:if>
  
           <xsl:if test="normalize-space(header/subtitle)!=''">
              <h3>
                 <xsl:value-of select="header/subtitle" />
              </h3>
           </xsl:if>
  
           <xsl:if test="header/authors">
              <p>
                 <font size="-2">
                    <xsl:for-each select="header/authors/person">
                       <xsl:choose>
                          <xsl:when test="position()=1">by</xsl:when>
  
                          <xsl:otherwise>,</xsl:otherwise>
                       </xsl:choose>
  
                       <xsl:value-of select="@name" />
                    </xsl:for-each>
                 </font>
              </p>
           </xsl:if>
  
           <xsl:apply-templates select="body" />
        </td>
     </xsl:template>
  
     <xsl:template match="body">
        <xsl:if test="section and not($isfaq='true')">
           <ul class="minitoc">
              <xsl:for-each select="section">
                 <li>
                    <a href="#{generate-id()}">
                       <xsl:value-of select="@title" />
                    </a>
  
                    <xsl:if test="section">
                       <ul class="minitoc">
                          <xsl:for-each select="section">
                             <li>
                                <a href="#{generate-id()}">
                                   <xsl:value-of select="@title" />
                                </a>
                             </li>
                          </xsl:for-each>
                       </ul>
                    </xsl:if>
                 </li>
              </xsl:for-each>
           </ul>
        </xsl:if>
  
        <xsl:apply-templates />
     </xsl:template>
  
  <!--  section handling
  
  
          - <a name/> anchors are added if the id attribute is specified
  
  
          - generated anchors are still included for the TOC - what should we do about this?
  
  
          - FIXME: provide a generic facility to process section irrelevant to their 
  
  
            nesting depth
  
  
    -->
     <xsl:template match="section">
        <a name="{generate-id()}" />
  
        <xsl:if test="normalize-space(@id)!=''">
           <a name="{@id}" />
        </xsl:if>
  
        <h3>
           <xsl:value-of select="@title" />
        </h3>
  
        <xsl:apply-templates />
     </xsl:template>
  
     <xsl:template match="section/section">
        <a name="{generate-id()}" />
  
        <xsl:if test="normalize-space(@id)!=''">
           <a name="{@id}" />
        </xsl:if>
  
        <h4>
           <xsl:value-of select="@title" />
        </h4>
  
        <xsl:apply-templates />
     </xsl:template>
  
     <xsl:template match="note | warning | fixme">
        <div class="frame {local-name()}">
           <div class="label">
              <xsl:choose>
                 <xsl:when test="local-name() = 'note'">Note</xsl:when>
  
                 <xsl:when test="local-name() = 'warning'">Warning</xsl:when>
  
                 <xsl:otherwise>Fixme (
                 <xsl:value-of select="@author" />
  
                 )</xsl:otherwise>
              </xsl:choose>
           </div>
  
           <div class="content">
              <xsl:apply-templates />
           </div>
        </div>
     </xsl:template>
  
  <!--
  
  
    <xsl:template match="link | jump | fork">
  
  
  -->
     <xsl:template match="link | fork">
        <a href="{@href}">
           <xsl:apply-templates />
        </a>
     </xsl:template>
  
     <xsl:template match="jump">
        <a href="#{@href}">
           <xsl:apply-templates />
        </a>
     </xsl:template>
  
     <xsl:template match="source">
  <pre class="code">
  <xsl:apply-templates />
  </pre>
     </xsl:template>
  
     <xsl:template match="anchor">
        <a name="{@id}" />
     </xsl:template>
  
     <xsl:template match="icon">
        <img src="{@src}" alt="{@alt}">
           <xsl:if test="@height">
              <xsl:attribute name="height">
                 <xsl:value-of select="@height" />
              </xsl:attribute>
           </xsl:if>
  
           <xsl:if test="@width">
              <xsl:attribute name="width">
                 <xsl:value-of select="@width" />
              </xsl:attribute>
           </xsl:if>
        </img>
     </xsl:template>
  
     <xsl:template match="figure">
        <div align="center">
           <img src="{@src}" alt="{@alt}" class="figure">
              <xsl:if test="@height">
                 <xsl:attribute name="height">
                    <xsl:value-of select="@height" />
                 </xsl:attribute>
              </xsl:if>
  
              <xsl:if test="@width">
                 <xsl:attribute name="width">
                    <xsl:value-of select="@width" />
                 </xsl:attribute>
              </xsl:if>
           </img>
        </div>
     </xsl:template>
  
     <xsl:template match="table">
        <table class="table" cellpadding="4" cellspacing="1">
           <xsl:apply-templates />
        </table>
     </xsl:template>
  
     <xsl:template match="node()|@*" priority="-1">
        <xsl:copy>
           <xsl:apply-templates select="@*" />
  
           <xsl:apply-templates />
        </xsl:copy>
     </xsl:template>
  </xsl:stylesheet>
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/xslt/html/site2xhtml.xsl
  
  Index: site2xhtml.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
    <xsl:template match="site">
      <html>
        <head>
          <title>
            <xsl:value-of select="td[@class='content']/h2"/>
          </title>
          <link rel="stylesheet" href="skin/page.css" type="text/css"/>
        </head>
  
        <body>
  
          <div class="path">
            <a href="@link1.href@">@link1@</a> : <a href="@link2.href@">@link2@</a> : <a href="@link3.href@">@link3@</a>
          </div>
  
          <table class="top" cellspacing="0" cellpadding="0" summary="top bar">
            <tr>
              <td>
                <a href="@group-logo.href@"><img src="@group-logo.src@" border="0"/></a>
              </td>
              <td valign="middle" align="center" width="100%">
                <a href="@project-logo.href@"><img src="@project-logo.src@" border="0"/></a>
              </td>
              <td valign="top" height="69" nowrap="nowrap">
                <div class="search">
  
                 <form method="get" action="http://www.google.com/search" onsubmit="q.value = query.value + ' site:xml.apache.org'">
                    <input type="hidden" name="q"/>
                    <input type="text" id="query" size="15"/>&#160;<input type="button" value="Search" name="Search"/><br/>
                    <!-- <input type="radio" name="web" value="web">web site&#160;</input>&#160;<input type="radio" name="mail" value="mail">mail lists</input> -->
                  </form>
                </div>
              </td>
            </tr>
          </table>
  
          <div class="tabs">
            <span class="tab">
              <a href="http://xml.apache.org/forrest/">Home</a>
            </span>
            <!--
            <span class="tab">
              <a href="#">not</a>
            </span>
            <span class="tab">
              <a href="#">implemented</a>
            </span>
            <span class="tab">
              <a href="#">yet</a>
            </span>
            -->
          </div>
  
  
         <div class="topline">&#160;</div>
  
          <table cellspacing="0" cellpadding="0" summary="content pane">
            <tr>
              <td width="10px" class="navbar">&#160;</td>
              <td rowspan="2" valign="top" nowrap="nowrap" width="160px">
                <xsl:apply-templates select="div[@class='menu']"/>
              </td>
              <!-- <td valign="top" class="navbar" align="left">no chunking yet</td> -->
              <td valign="top" class="navbar" align="left">&#160;</td>
              <td width="*" valign="top" class="navbar" align="right">
                <!-- <a href="#">&lt;&lt; prev</a> <strong>[x]</strong> <a href="#">next &gt;&gt;</a> -->
                &#160;
              </td>
            </tr>
            <tr>
              <td>&#160;</td>
              <xsl:apply-templates select="td[@class='content']"/>
           </tr>
            <tr>
              <td>&#160;</td>
  
             <td>&#160;</td>
            </tr>
          </table>
          <table>
            <tr>
              <td align="right"> 
                <a href="http://xml.apache.org/cocoon/"><img align="right" src="skin/images/built-with-cocoon.gif" alt="Cocoon Logo" border="0"/></a> 
                <a href="http://www.krysalis.org/centipede/"><img align="right" src="skin/images/centipede-logo-small.gif" alt="Krysalis Centipede Logo" border="0"/></a>         
              </td>
            </tr>
          </table>      
          <div class="copyright">
             <script language="JavaScript">
              <![CDATA[<!-- 
                document.write("Copyright @year@ @vendor@. All Rights Reserved. - "+"Last Published: " + document.lastModified); 
              //  -->]]>
            </script>
          </div>
        </body>
      </html>
    </xsl:template>
  
    <xsl:template match="node()|@*" priority="-1">
      <xsl:copy>
        <xsl:apply-templates select="@*"/>
        <xsl:apply-templates/>
      </xsl:copy>
    </xsl:template>
  </xsl:stylesheet>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/built-with-cocoon.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/centipede-logo-small.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/chapter.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/chapter_open.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/current.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/favicon.ico
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/page.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/printer.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/images/singlepage.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-forrest/src/resources/library/xslt/changes2document.xsl
  
  Index: changes2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:import href="copyover.xsl"/>
  
   <xsl:param name="name"/>
  
   <xsl:variable name="bugzilla">http://nagoya.apache.org/bugzilla/show_bug.cgi?id=</xsl:variable>
  
   <xsl:template match="changes">
    <document>
     <header>
      <title><xsl:value-of select="@title"/></title>
     </header>
     <body>
      <xsl:apply-templates/>
     </body>
    </document>
   </xsl:template>
  
   <xsl:template match="release">
    <s2 title="{$name} {@version} ({@date})">
     <sl>
      <xsl:apply-templates/>
     </sl>
    </s2>
   </xsl:template>
  
   <xsl:template match="action">
    <li>
     <icon src="images/{@type}.jpg" alt="{@type}"/>
     <xsl:apply-templates/>
     <xsl:text>(</xsl:text><xsl:value-of select="@dev"/><xsl:text>)</xsl:text>
  
     <xsl:if test="@due-to">
      <xsl:text> Thanks to </xsl:text>
      <link href="mailto:{@due-to-email}"><xsl:value-of select="@due-to"/></link>
      <xsl:text>.</xsl:text>
     </xsl:if>
  
     <xsl:if test="@fixes-bug">
      <xsl:text> Fixes </xsl:text>
      <link href="{$bugzilla}{@fixes-bug}">
       <xsl:text>bug </xsl:text><xsl:value-of select="@fixes-bug"/>
      </link>
      <xsl:text>.</xsl:text>
     </xsl:if>
    </li>
   </xsl:template>
  
   <xsl:template match="devs">
    <!-- remove -->
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/copyover.xsl
  
  Index: copyover.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
    <xsl:template match="@*|*|text()|processing-instruction()">
      <xsl:copy>
        <xsl:apply-templates select="@*|*|text()|processing-instruction()"/>
      </xsl:copy>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/directory2revisions.xsl
  
  Index: directory2revisions.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:dir="http://apache.org/cocoon/directory/2.0">
   
   
   <xsl:param name="page" />
   <xsl:variable name="revisionPage"><xsl:value-of select="concat('revision-',$page)" /></xsl:variable>
  
    <xsl:template match="dir:directory">
    <revisions>
        <xsl:apply-templates select="dir:file" />
    </revisions>
    </xsl:template>
  
    <xsl:template match="dir:file">
    
   <xsl:if test="starts-with(@name,$revisionPage)" >
    	<revision>
    	  <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
    	  <xsl:attribute name="date"><xsl:value-of select="@date"/></xsl:attribute>
  	</revision>
   </xsl:if>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/doclist.xsl
  
  Index: doclist.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:param name="uri"/>
  
   <xsl:template match="book">
    <book title="{@title}" uri="{$uri}">
      <xsl:copy-of select="node()"/>
    </book>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/doclist2document.xsl
  
  Index: doclist2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:template match="doclist">
    <document>
     <header>
      <title>List of all documentation</title>
     </header>
     <body>
      <section title="Documentation List">
       <p>
        This complete list shows, at a glance, how all of the documentation
        fits together within the hierarchy of sections.
  <!--      For an overview of the documentation see the new
        &quot;Table of Contents&quot;. -->
       </p>
       <p>
        The side-panel of each actual document is used to reach other documents
        that are relevant to that section. The side-panel will change, according
        to that section's location in the documentation hierarchy.
       </p>
      </section>
      <xsl:apply-templates/>
     </body>
    </document>
   </xsl:template>
  
   <xsl:template match="book">
    <section title="{@title}">
     <xsl:if test="position()=1">
      <p>This first section is a list of the top-level documentation
       (and is a replica of this page's side-panel).</p>
     </xsl:if>
     <xsl:apply-templates/>
    </section>
   </xsl:template>
  
   <xsl:template match="menu">
    <xsl:if test="@label!='Navigation'">
    <p><strong><xsl:value-of select="@label"/></strong></p>
     <ul>
      <xsl:apply-templates>
       <xsl:with-param name="uri" select="../@uri"/>
      </xsl:apply-templates>
     </ul>
    </xsl:if>
   </xsl:template>
  
   <xsl:template match="menu-item">
    <xsl:param name="uri"/>
    <xsl:if test="not(@type) or @type!='hidden'">
     <xsl:if test="@label!='Main' and @label!='User Documentation'">
  <!-- FIXME: ensure href is not full URL scheme:// -->
  <!--
    (uri=<xsl:value-of select="$uri"/> href=<xsl:value-of select="@href"/>)
  -->
      <li><link href="{$uri}{@href}"><xsl:value-of select="@label"/></link>
      </li>
     </xsl:if>
    </xsl:if>
   </xsl:template>
  
   <xsl:template match="external">
    <xsl:param name="uri"/>
    <xsl:if test="not(@type) or @type!='hidden'">
     <xsl:choose>
      <!-- FIXME: specially handle menu item "API (Javadoc)", it causes a bug. -->
      <xsl:when test="starts-with(@label,'API')">
       <li><link href="http://xml.apache.org/cocoon/apidocs/"><xsl:value-of select="@label"/></link></li>
  <!-- FIXME: here is the bug:
       <li><link href="{@href}"><xsl:value-of select="@label"/></link></li>
       <li><xsl:value-of select="@label"/>href=<xsl:value-of select="@href"/></li>
  -->
      </xsl:when>
      <xsl:otherwise>
       <li><link href="{@href}"><xsl:value-of select="@label"/></link></li>
      </xsl:otherwise>
     </xsl:choose>
    </xsl:if>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/faq2document.xsl
  
  Index: faq2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:import href="copyover.xsl"/>
  
    <xsl:template match="faqs">
     <document>
      <header>
       <title><xsl:value-of select="@title"/></title>
      </header>
      <body>
        <section title="Questions">
         <ul>
          <xsl:apply-templates select="faq" mode="index"/>
         </ul>
        </section>
        <section title="Answers">
          <xsl:apply-templates select="faq"/>
        </section>
      </body>
     </document>  
    </xsl:template>
  
    <xsl:template match="faq" mode="index">
      <li>
        <jump href="faq-{position()}">
          <xsl:value-of select="question"/>
        </jump>
      </li>
    </xsl:template>
  
    <xsl:template match="faq">
      <anchor id="faq-{position()}"/>
      <section title="{question}">
        <xsl:apply-templates/>
      </section>
    </xsl:template>
  
    <xsl:template match="question">
      <!-- ignored since already used -->
    </xsl:template>
  
    <xsl:template match="answer">
      <xsl:apply-templates/>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/filterlinks.xsl
  
  Index: filterlinks.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  This stylesheet filters all references to the javadocs
  and the samples.
  -->
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
    <xsl:template match="@src|@href|@background">
      <xsl:if test="not(contains(.,'apidocs')) and not(starts-with(., 'samples/'))">
        <xsl:copy>
          <xsl:apply-templates select="."/>
        </xsl:copy>
      </xsl:if>
    </xsl:template>
  
    <!-- This is a hack which makes the javascript images work -->
    <xsl:template match="img[@onLoad and starts-with(@src, 'graphics')]">
        <img src="{@src}"/>
        <img>
          <xsl:attribute name="src">
            <xsl:value-of select="substring-before(@src, '.')"/>_over.<xsl:value-of select="substring-after(@src, '.')"/>
          </xsl:attribute>
        </img>
    </xsl:template>
  
    <xsl:template match="img[@onLoad and starts-with(@src, 'images') and contains(@src, '-lo.gif')]">
        <img src="{@src}"/>
        <img>
          <xsl:attribute name="src"><xsl:value-of select="substring-before(@src, '-lo.gif')"/>-hi.gif</xsl:attribute>
        </img>
    </xsl:template>
  
    <xsl:template match="@*|node()">
     <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
     </xsl:copy>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  xml-forrest/src/resources/library/xslt/howto2document.xsl
  
  Index: howto2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:import href="copyover.xsl"/>
  
    <xsl:template match="all">
     <document>
      <xsl:copy-of select="howto/header"/>
       <body>
          <xsl:apply-templates select="howto"/>
       	<xsl:apply-templates select="revisions"/>
  	</body>
    
     </document>
    </xsl:template>
    
    <xsl:template match="howto">
      <xsl:if test="normalize-space(header/abstract)!=''">
        <xsl:apply-templates select="header/abstract"/>
      </xsl:if>
       <xsl:apply-templates select="*[not(name()='header')]"/>
    </xsl:template>
    
    <xsl:template match="howto/header/abstract">
      <section title="Overview" >
        <xsl:apply-templates/>
      </section>
    </xsl:template>
    
    <xsl:template match="purpose | prerequisites | audience | steps | extension  | faqs | tips | references | feedback ">
      <section>
        <xsl:choose>
          <xsl:when test="normalize-space(@title)!=''">
            <xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute>
          </xsl:when>
          <xsl:otherwise>
            <xsl:attribute name="title"><xsl:value-of select="name()"/></xsl:attribute>
          </xsl:otherwise>
        </xsl:choose>
       <xsl:apply-templates/>
      </section>
    </xsl:template>
    
    <xsl:template match="faq">
      <section title="{question}" >
        <xsl:apply-templates select="answer" />
      </section>
    </xsl:template>
    
     <xsl:template match="answer">
        <xsl:copy-of select="."/>
      </xsl:template>
      
     <xsl:template match="question">
      </xsl:template>
    
    <xsl:template match="revisions">
      <section title="Revisions" >
      <p>Find a problem with this document? Consider contacting the author or submitting your own revision. For instructions, read the How To Submit a Revision.</p>
        <ul>
         <xsl:apply-templates select="revision"/>
        </ul>
      </section>
    </xsl:template>
    
    <xsl:template match="revision">
    <xsl:variable name="href"><xsl:value-of select="concat(substring-before(@name,'.xml'),'.html')" /></xsl:variable>
     <li>Revision, <a href="{ $href}"><xsl:value-of select="@date"/></a></li>
    </xsl:template>
    
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/library/xslt/todo2document.xsl
  
  Index: todo2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:import href="copyover.xsl"/>
   
   <xsl:template match="todo">
    <document>
     <header>
      <title><xsl:value-of select="@title"/></title>
     </header>
     <body>
      <xsl:apply-templates/>
     </body>
    </document>
   </xsl:template>
  
   <xsl:template match="actions">
    <s2 title="{@priority}">
     <sl>
      <xsl:for-each select="action">
       <li>
        <strong><xsl:text>[</xsl:text><xsl:value-of select="@context"/><xsl:text>]</xsl:text></strong><xsl:text> </xsl:text>
        <xsl:apply-templates/>
       </li>
      </xsl:for-each>
     </sl>
    </s2>
   </xsl:template>
   
  </xsl:stylesheet>
  
  
  
  1.1                  xml-forrest/src/resources/conf/cocoon.xconf
  
  Index: cocoon.xconf
  ===================================================================
  <?xml version="1.0"?>
  <cocoon version="2.0">
  
  <tree-processor>
    <!-- The sitemap language -->
    <language name="sitemap" class="org.apache.cocoon.treeprocessor.sitemap.SitemapLanguage">
    
      <!-- Namespace for this language -->
      <namespace uri="http://apache.org/cocoon/sitemap/1.0"/>
    
      <!-- File name for files in this language, relative to the environment prefix -->
      <file name="sitemap.xmap"/>
      
      <!-- Description of the element for nodes parameters -->
      <parameter element="parameter"/>
      
      <!-- roles for the sitemap language -->
      <roles>
        <role name="org.apache.cocoon.acting.ActionSelector"
              shorthand="actions"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
        
        <role name="org.apache.cocoon.selection.SelectorSelector"
              shorthand="selectors"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
        
        <role name="org.apache.cocoon.matching.MatcherSelector"
              shorthand="matchers"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
  
          <hint shorthand="regexp-uri-matcher"
                class="org.apache.cocoon.matching.RegexpURIMatcher"/>
  
          <hint shorthand="wildcard-uri-matcher"
                class="org.apache.cocoon.matching.WildcardURIMatcher"/>
  
        </role>
        
        <role name="org.apache.cocoon.generation.GeneratorSelector"
              shorthand="generators"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
  
          <hint shorthand="file-generator"
                class="org.apache.cocoon.generation.FileGenerator"/>
  
          <hint shorthand="XSP-generator"
                class="org.apache.cocoon.generation.ServerPagesGenerator"/>
        </role>
        
        <role name="org.apache.cocoon.transformation.TransformerSelector"
              shorthand="transformers"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector">
  
          <hint shorthand="XSLT-transformer"
                class="org.apache.cocoon.transformation.TraxTransformer"/>
  
          <hint shorthand="cinclude-transformer"
                class="org.apache.cocoon.transformation.CIncludeTransformer"/>
  
        </role>
        
        <role name="org.apache.cocoon.serialization.SerializerSelector"
              shorthand="serializers"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
        
        <role name="org.apache.cocoon.reading.ReaderSelector"
              shorthand="readers"
              default-class="org.apache.cocoon.treeprocessor.sitemap.ComponentsSelector"/>
            
        <role name="org.apache.cocoon.components.notification.NotifyingBuilder"
              shorthand="notifying-builder"
              default-class="org.apache.cocoon.components.notification.DefaultNotifyingBuilder"/>  
  
      </roles>
      
      <!-- node definitions for the sitemap language -->
      <nodes>
        <!-- All node names are given as local names in the above namespace (no prefix) -->
        
        <!-- Sitemap root node -->
        <node name="sitemap" builder="org.apache.cocoon.treeprocessor.sitemap.SitemapNodeBuilder">
          <allowed-children>components, views, action-sets, resources, pipelines</allowed-children>
        </node>
      
        <!-- Components definition : parse view info associated to components
             (actual components creation is done by SitemapLanguage) -->
        <node name="components" 
  builder="org.apache.cocoon.treeprocessor.sitemap.ComponentsNodeBuilder"/>
        
        <node name="pipelines" 
  builder="org.apache.cocoon.treeprocessor.sitemap.PipelinesNodeBuilder">
          <allowed-children>pipeline</allowed-children>
        </node>
        
        <node name="views" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
        <node name="view" builder="org.apache.cocoon.treeprocessor.sitemap.ViewNodeBuilder"/>
        <node name="resources" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
        <node name="resource" builder="org.apache.cocoon.treeprocessor.NamedContainerNodeBuilder"/>
        <node name="action-sets" builder="org.apache.cocoon.treeprocessor.CategoryNodeBuilder"/>
        <node name="action-set" 
  builder="org.apache.cocoon.treeprocessor.sitemap.ActionSetNodeBuilder"/>
        <node name="pipeline" builder="org.apache.cocoon.treeprocessor.sitemap.PipelineNodeBuilder">
          <forbidden-children>sitemap, components, pipelines</forbidden-children>
        </node>
        <node name="match" builder="org.apache.cocoon.treeprocessor.sitemap.MatchNodeBuilder">
          <forbidden-children>sitemap, components, pipeline, handle-errors</forbidden-children>
        </node>
        <node name="select" builder="org.apache.cocoon.treeprocessor.sitemap.SelectNodeBuilder"/>
  
        <node name="act" builder="org.apache.cocoon.treeprocessor.sitemap.ActNodeBuilder">
          <forbidden-children>sitemap, components, pipeline, handle-errors</forbidden-children>
        </node>
        <node name="redirect-to" 
  builder="org.apache.cocoon.treeprocessor.sitemap.RedirectToNodeBuilder"/>
        <node name="call" builder="org.apache.cocoon.treeprocessor.sitemap.CallNodeBuilder"/>
        <node name="mount" builder="org.apache.cocoon.treeprocessor.sitemap.MountNodeBuilder"/>
        <node name="read" builder="org.apache.cocoon.treeprocessor.sitemap.ReadNodeBuilder"/>
        <node name="aggregate" 
  builder="org.apache.cocoon.treeprocessor.sitemap.AggregateNodeBuilder"/>
        <node name="generate" builder="org.apache.cocoon.treeprocessor.sitemap.GenerateNodeBuilder"/>
        <node name="transform" 
  builder="org.apache.cocoon.treeprocessor.sitemap.TransformNodeBuilder"/>
        <node name="serialize" 
  builder="org.apache.cocoon.treeprocessor.sitemap.SerializeNodeBuilder"/>
        <node name="handle-errors" 
  builder="org.apache.cocoon.treeprocessor.sitemap.HandleErrorsNodeBuilder"/>
  
      </nodes>
      
    </language>
  
  </tree-processor>
  
    <!-- Source Handler:
      The source handler adds special url protocols to the system, they are
      then available inside Cocoon, e.g. as a source argument for one of the
      sitemap components.
    -->
    <source-handler logger="core.source-handler">
      <!-- file protocol : this is a WriteableSource -->
      <protocol name="file" class="org.apache.cocoon.components.source.FileSourceFactory"/>
    </source-handler>
  
    <!-- Entity resolution catalogs: *********************************************
      catalog:
      The default catalog is distributed at /resources/schema/catalog
      This is the contextual pathname for Cocoon resources.
      You can override this path, if necessary, using the "catalog" parameter.
     <parameter name="catalog" value="/resources/schema/catalog"/>
      However, it is probably desirable to leave this default catalog config
      and declare your own local catalogs, which are loaded in addition to
      the system catalog.
  
      There are various ways to do local configuration (see "Entity Catalogs"
      documentation). One way is via the CatalogManager.properties file.
      As an additional method, you can specify the "local-catalog" parameter here.
  
      local-catalog:
      The full filesystem pathname to a single local catalog file.
     <parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
  
      verbosity:
      The level of messages for status/debug (messages go to standard output)
      The following messages are provided ...
       0 = none
       1 = ? (... not sure yet)
       2 = 1+, Loading catalog, Resolved public, Resolved system
       3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
       10 = 3+, List all catalog entries when loading a catalog
      (Cocoon also logs the "Resolved public" messages.) 
      TODO: determine all messages at each level
     <parameter name="verbosity" value="2"/>
  
    ************************************************************************** -->
    <entity-resolver class="org.apache.cocoon.components.resolver.ResolverImpl"
              logger="core.resolver">
     <parameter name="catalog" value="/resources/schema/catalog"/>
     <parameter name="verbosity" value="1"/>
    </entity-resolver>
  
  <!-- ================ Apache Cocoon configuration file ================== -->
  <!-- For full description of the components and their parameters ...
       - Apache Cocoon User Documentation at /userdocs/
       - webapp/cocoon.xconf (this file) - describes each core component
       - each optional component/.../*.xconf - these describe the parameters
       for each component and are automatically included at build-time.
  
       The notes that accompany the settings below are intended to be concise.
  -->
  
  <!-- ===================== General Components =========================== -->
  
    <!-- Parser:
      The default parser used in Apache Cocoon is
      org.apache.avalon.excalibur.xml.JaxpParser. Apache Cocoon requires a 
      JAXP 1.1 parser.
      If you have problems because your servlet environment uses its own
      parser not conforming to JAXP 1.1 try using the alternative
      XercesParser instead of the JaxpParser. To activate the XercesParser,
      change the class attribute to
        class="org.apache.avalon.excalibur.xml.XercesParser"
      You will also need to add a system property to your JVM,
      probably on the startup of your servlet engine like this:
      -Dorg.apache.avalon.excalibur.xml.Parser=org.apache.avalon.excalibur.xml.XercesParser
  
      Configuration for the JaxpParser (not the XercesParser!):
      - validate (boolean, default = false): This parameter causes the parser 
          to be a validating parser.
          XML validation is only being used for the documentation build.
          (If you are going to use it elsewhere, then do so with caution.)
          You really should have validated all of your XML documents already,
          according to their proper DTD or schema. Do not expect Cocoon to do it.
      - namespace-prefixes (boolean, default = false) : do we want
          namespaces declarations also as 'xmlns:' attributes ?
          Note : setting this to true confuses some XSL processors (e.g. Saxon).
      - stop-on-warning (boolean, default = true) : should the parser
          stop parsing if a warning occurs ?
      - stop-on-recoverable-error (boolean, default = true) : should the parser
          stop parsing if a recoverable error occurs ?
      - reuse-parsers (boolean, default = true) : do we want to reuse
          parsers or create a new parser for each parse ?
          Note : even if this parameter is true, parsers are not
          recycled in case of parsing errors : some parsers (e.g. Xerces) don't like
          to be reused after failure.
      - sax-parser-factory (string) : the name of the SAXParserFactory
          implementation class to be used instead of using the standard JAXP mechanism
          (SAXParserFactory.newInstance()). This allows to choose
          unambiguously the JAXP implementation to be used when several of them are
          available in the classpath.
      - document-builder-factory (string) : the name of the
          DocumentBuilderFactory implementation to be used (similar to
          sax-parser-factory for DOM).
    -->
    <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
                logger="core.xml-parser">
      <parameter name="validate" value="false"/>
      <parameter name="namespace-prefixes" value="false"/>
      <parameter name="stop-on-warning" value="true"/>
      <parameter name="stop-on-recoverable-error" value="true"/>
      <!--
      <parameter name="reuse-parsers" value="true"/>
      <parameter name="sax-parser-factory" value="???"/>
      <parameter name="document-builder-factory" value="???"/>
      -->
    </xml-parser>
    
    <!-- ============================ STORE ============================ -->
    <!-- Persistent store for the cache. Two store implementations to choose
         from:
           * FilesystemStore: Simple. Dependable. Thorougly tested.
           * JispFilesystemStore: Scalable. New kid on the block. Not thorougly tested.
         If you opt in to use JispFilesystemStore, comment out FilesystemStore
         entry.
  
         JispFilesystemStore configuration parameters
         (in addition to common parameters):
           datafile: name of the store file to use.
           indexfile: name of the index file to use.
           order: FIXME: put description here.
  
    <cache-persistent class="org.apache.cocoon.components.store.JispFilesystemStore"
                      logger="core.store.persistent">
      <parameter name="use-cache-directory" value="true"/>
      <parameter name="datafile" value="cocoon-cache.dat"/>
      <parameter name="indexfile" value="cocoon-cache.idx"/>
      <parameter name="order" value="1701"/>
    </cache-persistent>
  
    <cache-persistent class="org.apache.cocoon.components.store.FilesystemStore"
                      logger="core.store.persistent">
      <parameter name="use-cache-directory" value="true"/>
    </cache-persistent>
    -->
    
    <cache-persistent class="org.apache.cocoon.components.store.JispFilesystemStore"
                      logger="core.store.persistent">
      <parameter name="use-cache-directory" value="true"/>
      <parameter name="datafile" value="cocoon-cache.dat"/>
      <parameter name="indexfile" value="cocoon-cache.idx"/>
      <parameter name="order" value="1701"/>
    </cache-persistent>
    
    <!-- Memory Storing: -->
    <cache-transient class="org.apache.cocoon.components.store.MRUMemoryStore"
           logger="core.store.transient">
       <!-- Indicates how many objects will be hold in the cache.
       When the number of maxobjects has been reached. The last object in the 
       cache will be thrown out. -->
       <parameter name="maxobjects" value="100"/>
  
       <!-- Turns the swapping of the objects into persistent cache on
            and off. -->
       <parameter name="use-persistent-cache" value="true"/>
    </cache-transient>
  
    <!-- Store Janitor:
      Be careful with the heapsize and freememory parameters. Wrong values can
      cause high cpu usage. Example configuration:
      Jvm settings: 
        -Xms100000000 -Xmx200000000
      store-janitor settings:
         <parameter name="freememory" value="5000000"/>
         <parameter name="heapsize" value="150000000"/>
    
      Heapsize *must* be higher then the -Xms parameter and *must* be lower or
      equal than -Xmx. It is recommended to have heapsize equal to -Xmx, especially
      on Sun's JVM which are unable to shrink its heap once it grows above minimum. 
      Freememory parameter *must* be lower than -Xms, and should be greater than
      amount of memory necessary for normal application operation.
    -->
    <store-janitor class="org.apache.cocoon.components.store.StoreJanitorImpl"
                   logger="core.store.janitor">
       <!-- How much free memory shall be available in the jvm -->                 
       <parameter name="freememory" value="1000000"/>
       <!-- Indicates the limit of the jvm memory consumption. The default max 
       heapsize for Sun's JVM is 64Mb -->
       <parameter name="heapsize" value="67108864"/>
       <!-- How often shall the cleanup thread check memory -->
       <parameter name="cleanupthreadinterval" value="10"/>
       <!-- Indicates the thread priority of the cleanup thread -->
       <parameter name="threadpriority" value="5"/>
       <!-- How much percent of the elements of each registered Store shall
       be removed when low on memory. Default 10% -->
       <parameter name="percent_to_free" value="10"/>
    </store-janitor>
    <!-- ============================ STORE END ========================= -->
  
    <!-- XSLT Processor:
      For Xalan: Turn 'incremental-processing' to true if you want a continous output (if set to 
  false the transformer 
      delivers SAX events after all transformations has been done). -->
    <xslt-processor class="org.apache.cocoon.components.xslt.XSLTProcessorImpl"
                    logger="core.xslt-processor">
       <parameter name="use-store" value="true"/>
       <parameter name="incremental-processing" value="false"/>
    </xslt-processor>
  
    <!-- Xpath Processor:
    -->
    <xpath-processor class="org.apache.cocoon.components.xpath.XPathProcessorImpl"
                     logger="core.xpath-processor"/>
  
    <!-- URL Factory:
      The url factory adds special url protocols to the system, they are then
      available inside Cocoon, e.g. as a source argument for one of the sitemap
      components.
    -->
    <url-factory logger="core.url-factory">
      <!-- Allows access to resources available from the ClassLoader,
           using getResource() method. -->
      <protocol name="resource" class="org.apache.cocoon.components.url.ResourceURLFactory"/>
      <!-- Allows access to resources available from the servlet context,
           using getResource() method. -->
      <protocol name="context"  class="org.apache.cocoon.components.url.ContextURLFactory"/>
      <!-- Add here protocol factories for your own protocols -->
    </url-factory>
  
    <!-- Program Generator:
      The ProgamGenerator builds programs from a XML document written in a
      MarkupLanguage.
         auto-reload:
         root-package: persistent code repository.
         preload:
    -->
    <program-generator logger="core.program-generator">
      <parameter name="auto-reload" value="true"/>
      <parameter name="root-package" value="org.apache.cocoon.www"/>
      <parameter name="preload" value="true"/>
    </program-generator>
  
    <!-- Xscript:
    -->
    <xscript logger="core.xscript">
      <parameter name="xscript:copy-of" 
  value="resource://org/apache/cocoon/components/xscript/xslt/copy-of.xsl"/>
      <parameter name="xscript:value-of" 
  value="resource://org/apache/cocoon/components/xscript/xslt/value-of.xsl"/>
    </xscript>
  
    <!-- Programming Languages: -->
    <programming-languages>
      <java-language name="java" logger="core.language.java">
        <!-- Compiler parameter specifies which class to use to compile Java.
             Possible variants are:
               Javac. Requires javac.jar (included with Cocoon distribution).
               Pizza. Requires pizza.jar (included with Cocoon distribution).
               Jikes. Requires IBM jikes compiler to be present in the PATH  -->
        <parameter name="compiler" 
  value="org.apache.cocoon.components.language.programming.java.Javac"/>
        <!-- Specifies which formatter to use to format source code.
             This parameter is optional. 
             It is commented out because of bug #5689: Java "code-formatter" incorrectly formats 
  double values
        <parameter name="code-formatter" 
  value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/>
        -->
        <!-- A singleton-like implementation of a ClassLoader -->
        <parameter name="class-loader" 
  value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
      </java-language>
  
    </programming-languages>
  
    <!-- Class loader:
      A singleton-like implementation of a ClassLoader.
    -->
    <classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"
                 logger="core.classloader"/>
    
    <!-- Markup Languages:
      This section defines several builtin logicsheets. A logicsheet is an XML
      filter used to translate user-defined, dynamic markup into equivalent
      code embedding directives for a given markup language.
    -->
    <markup-languages>
      <xsp-language name="xsp" logger="core.markup.xsp">
        <parameter name="prefix" value="xsp"/>
        <parameter name="uri" value="http://apache.org/xsp"/>
  
        <!-- Defines the XSP Core logicsheet for the Java language -->
        <target-language name="java">
          <parameter name="core-logicsheet" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
          
          <!-- The Request logicsheet (taglib) is an XSP logicsheet that wraps XML tags 
               around standard request operations -->
          <builtin-logicsheet>
            <parameter name="prefix" value="xsp-request"/>
            <parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
          </builtin-logicsheet>
         
          <!-- The Response logicsheet (taglib) is an XSP logicsheet that wraps XML tags 
               around standard response operations -->
          <builtin-logicsheet>
            <parameter name="prefix" value="xsp-response"/>
            <parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
          </builtin-logicsheet>
  
          <!-- The Session logicsheet (taglib) is an XSP logicsheet that wraps XML tags around 
               standard session operations. Specifically, the Session logicsheet provides an 
               XML interface to most methods of the HttpSession object (see the Java Servlet API 
               Specification, version 2.2 ) for more information. -->
          <builtin-logicsheet>
            <parameter name="prefix" value="session"/>
            <parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/session.xsl"/>
          </builtin-logicsheet>
  
          <!-- The Cookie logicsheet (taglib) is an XSP logicsheet that wraps XML tags 
               around standard cookie operations -->
          <builtin-logicsheet>
            <parameter name="prefix" value="xsp-cookie"/>
            <parameter name="uri" value="http://apache.org/xsp/cookie/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/cookie.xsl"/>
          </builtin-logicsheet>
  
          <!-- The ESQL logicsheet is an XSP logicsheet that performs sql queries and 
               serializes their results as XML. This allows you to work with data from a 
               wide variety of different sources when using Apache Cocoon. -->
          <builtin-logicsheet>
            <parameter name="prefix" value="esql"/>
            <parameter name="uri" value="http://apache.org/cocoon/SQL/v2"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/esql.xsl"/>
          </builtin-logicsheet>
  
          <builtin-logicsheet>
            <parameter name="prefix" value="log"/>
            <parameter name="uri" value="http://apache.org/xsp/log/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/log.xsl"/>
          </builtin-logicsheet>
  
          <builtin-logicsheet>
            <parameter name="prefix" value="util"/>
            <parameter name="uri" value="http://apache.org/xsp/util/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/util.xsl"/>
          </builtin-logicsheet>
          
          <!-- The xsp-formval taglib serves as interface to retrieve validation results 
               from a request attribute -->
          <builtin-logicsheet>
            <parameter name="prefix" value="xsp-formval"/>
            <parameter name="uri" value="http://apache.org/xsp/form-validator/2.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/form-validator.xsl"/>
          </builtin-logicsheet>
  
          <!-- The sel taglib allows to put multiple pages / view into
               one xsp. While in general it is good style to put
               different views into different xsp because they're more
               easily maintained, this is a useful feature with
               e.g. with long forms that are broken into parts -->
          <builtin-logicsheet>
            <parameter name="prefix" value="sel"/>
            <parameter name="uri" value="http://apache.org/xsp/sel/1.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/sel.xsl"/>
          </builtin-logicsheet>
  
          <builtin-logicsheet>
            <parameter name="prefix" value="action"/>
            <parameter name="uri" value="http://apache.org/cocoon/action/1.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/action.xsl"/>
          </builtin-logicsheet>
  
          <!-- The capture taglib is for capturing parts of the XSP-generated XML as
               XML fragments or DOM nodes -->
          <builtin-logicsheet>
            <parameter name="prefix" value="capture"/>
            <parameter name="uri" value="http://apache.org/cocoon/capture/1.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/capture.xsl"/>
          </builtin-logicsheet>
  
          <builtin-logicsheet>
            <parameter name="prefix" value="xscript"/>
            <parameter name="uri" value="http://apache.org/xsp/xscript/1.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/xscript.xsl"/>
          </builtin-logicsheet>
  
          <builtin-logicsheet>
            <parameter name="prefix" value="soap"/>
            <parameter name="uri" value="http://apache.org/xsp/soap/3.0"/>
            <parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/soap.xsl"/>
          </builtin-logicsheet>
  
        </target-language>
          
      </xsp-language>
  
      <!-- Defines Sitemap Core logicsheet for the Java language -->
      <sitemap-language name="sitemap" logger="core.markup.sitemap">
        <parameter name="prefix" value="map"/>
        <parameter name="uri" value="http://apache.org/cocoon/sitemap/1.0"/>
  
        <target-language name="java">
          <parameter name="core-logicsheet" 
  value="resource://org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl"/>
        </target-language>
      </sitemap-language>
    </markup-languages>
  
    <!-- Datasources example:
     <datasources>
      <jdbc name="personnel" logger="core.datasources.personnel">
        <pool-controller min="5" max="10" oradb="true"/>
        <pool-controller min="5" max="10"/>
        <auto-commit>false</auto-commit>
        <dburl>jdbc:hsqldb:hsql://localhost:9002</dburl>
        <user>sa</user>
        <password></password>
      </jdbc>
    </datasources>
   -->
   
    <!-- Stream Pipeline:
      Either collects a Reader and lets it produce a character stream
      or connects an EventPipeline with a Serializer and lets them produce
      the character stream. Alternatives to CachingStreamPipeline are:
      <stream-pipeline class="org.apache.cocoon.components.pipeline.NonCachingStreamPipeline"/>
    -->
    <stream-pipeline class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
                     logger="core.stream-pipeline"
                     pool-max="32" pool-min="2" pool-grow="4"/>
  
    <!-- Event Pipeline:
      Connects the generator and the various transformers and produces a
      character stream. Alternatives to CachingEventPipeline are:
      <event-pipeline class="org.apache.cocoon.components.pipeline.NonCachingEventPipeline"/>
      <event-pipeline class="org.apache.cocoon.components.profiler.ProfilingCachingEventPipeline"/>
      <event-pipeline 
  class="org.apache.cocoon.components.profiler.ProfilingNonCachingEventPipeline"/>
    -->
    <event-pipeline class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
                    logger="core.event-pipeline"
                    pool-max="32" pool-min="2" pool-grow="4"/>
  
    <!-- Compiling xml to byte streams.
      The xml-serializer "compiles" xml sax events into a byte stream
      and the xml-deserializer does the same vice versa.
      Make sure, that if you change one of these components, that you
      may have to change the other one as well, as they might have
      a dependency.
    -->
    <xml-serializer class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"
                    logger="core.xml-serializer"/>
  
    <xml-deserializer class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"
                      logger="core.xml-deserializer"/>
  
    <!-- SAXConnector:
      Connects the various pipeline components.
      LoggingSAXConnector logs SAX events between pipeline components
      into cocoon's log file.
      ProfilingSAXConnector gathers timing information.
      Uncomment one of the following lines for using the SAXConnector.
    <sax-connector class="org.apache.cocoon.components.saxconnector.LoggingSAXConnector"/>
    <sax-connector class="org.apache.cocoon.components.profiler.ProfilingSAXConnector"/>
    -->
  
    <!-- Profiler:
      The profiler facilitates the gathering of statistics about timings of
      different steps of pipelines. Profiler consists of several components:
       profiling pipeline, profiling SAX connector, and profiler generator
      which are used to generate the profile report. You need to enable all of
      these components to use profiler.
  
      Uncomment the following line to use profiler.
    <profiler/>
    -->
  
    <!-- Resource Monitor:
      The Monitor keeps track on changes to a Resource.
    <monitor logger="core.monitor">
      <thread priority="5" frequency="10000"/>
    </monitor>
    -->
    
  <!-- ======================== The sitemap  ============================== -->
  
    <!-- Reloading of the sitemap:
      The check-reload attribute determines if the sitemap is reloaded on change.
      Set to "no", the sitemap is generated once at startup.
      Set to "yes", the sitemap is regenerated if it changes.
  
      The reload-method specifies the method for the regeneration:
      asynchron: If the sitemap changes, the sitemap is regenerated at the
                 next request in the background and the incoming request is
                 served with the old sitemap. All subsequent requests are
                 served with the old sitemap until the regeneration in the
                 background has finished.
      synchron: If the sitemap changes, the sitemap is regenerated at the
                next request. When the regeneration is finished, the request
                (and all subsequent ones) is served with the new sitemap.
  
      For development environment, set the reload-method to synchron and the
      check-reload to yes.
      For production environment, it is advisable to set the reload-method to
      asynchron and for more safety the check-reload to no.
  
    <sitemap file="sitemap.xmap" reload-method="asynchron" check-reload="yes" logger="sitemap"/>
    -->  
  
    <sitemap class="org.apache.cocoon.treeprocessor.TreeProcessor" logger="sitemap"/>
  
  </cocoon>
  
  
  
  1.1                  xml-forrest/src/resources/conf/logkit.xconf
  
  Index: logkit.xconf
  ===================================================================
  <?xml version="1.0"?>
  
  <logkit>
    <factories>
      <factory type="priority-filter" class="org.apache.avalon.excalibur.logger.factory.PriorityFilterTargetFactory"/>
      <factory type="servlet" class="org.apache.avalon.excalibur.logger.factory.ServletTargetFactory"/>
      <factory type="cocoon" class="org.apache.cocoon.util.log.CocoonTargetFactory"/>
    </factories>
  
    <targets>
      <cocoon id="core">
        <filename>${context-root}/WEB-INF/logs/core.log</filename>
        <format type="cocoon">
          %7.7{priority} %{time}   [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
        </format>
        <!--
          append=false: Will override existing log files on Cocoon startup
          append=true: Will append to the existing log files
        -->
        <append>false</append>
        <!--
          rotation: allows you to rotate log files one they meet certain
                    criteria. In example below, files are rotated once they
                    are one hour old or bigger than 100 Mb.
  
        <rotation type="revolving" init="1" max="4">
          <or>
            <size>100m</size>
            <time>01:00:00</time>
          </or>
        </rotation>
        -->
      </cocoon>
  
      <cocoon id="sitemap">
        <filename>${context-root}/WEB-INF/logs/sitemap.log</filename>
       
        <format type="cocoon">
          %7.7{priority} %{time}   [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
        </format>
        <append>false</append>
      </cocoon>
  
      <cocoon id="access">
        <filename>${context-root}/WEB-INF/logs/access.log</filename>
        <format type="cocoon">
          %7.7{priority} %{time}   [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
        </format>
        <append>false</append>
      </cocoon>
     
      <!--
        This log file gets only messages with log level ERROR and below.
      -->
      <priority-filter id="error" log-level="ERROR">
        <cocoon>
          <filename>${context-root}/WEB-INF/logs/error.log</filename>
          <format type="cocoon">
            %7.7{priority} %{time}   [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
          </format>
          <append>false</append>
        </cocoon>
      </priority-filter>
    </targets>
  
    <categories>
      <!--
        log-level: One of DEBUG, INFO, WARN, ERROR, FATAL_ERROR.
        Log level could be different for every category and subcategory.
  
        Not all subcategories are defined in this file. Not defined
        subcategories will be created automatically inheriting settings
        of the parent subcategory.
        When defining subcategory manually, it is required to specify log
        targets, because they are not inherited in this case.
      -->
      <category name="core" log-level="DEBUG">
        <!-- Startup component manager logger -->
        <category name="startup" log-level="DEBUG">
          <log-target id-ref="core"/>
          <log-target id-ref="error"/>
        </category>
  
        <category name="roles" log-level="DEBUG">
          <log-target id-ref="core"/>
          <log-target id-ref="error"/>
        </category>
  
        <!-- Cocoon component manager logger -->
        <category name="manager" log-level="DEBUG">
          <log-target id-ref="core"/>
          <log-target id-ref="error"/>
        </category>
  
        <!-- Cocoon cache and stores logger -->
        <category name="store" log-level="DEBUG">
          <log-target id-ref="core"/>
          <log-target id-ref="error"/>
        </category>
  
        <log-target id-ref="core"/>
        <log-target id-ref="error"/>
      </category>
  
      <category name="sitemap" log-level="DEBUG">
        <log-target id-ref="sitemap"/>
        <log-target id-ref="error"/>
      </category>
  
      <category name="access" log-level="DEBUG">
        <log-target id-ref="access"/>
        <log-target id-ref="error"/>
      </category> 
    </categories>
  </logkit>
  
  
  
  1.1                  xml-forrest/src/resources/conf/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  <?xml version="1.0"?>
  
  <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  
  <!-- =========================== Components ================================ -->
  
   <map:components>
  
    <map:generators default="file">
     <map:generator  name="file"        src="org.apache.cocoon.generation.FileGenerator" label="content"/>
     <map:generator  name="directory"   src="org.apache.cocoon.generation.DirectoryGenerator" label="content"/>
     <map:generator  name="html"        src="org.apache.cocoon.generation.HTMLGenerator" label="content"/>
     <!-- FIXME: Change this once better view handling is implemented -->
     <map:generator  name="file-nolabel" src="org.apache.cocoon.generation.FileGenerator"/>
    </map:generators>
  
    <map:transformers default="xslt">
     <map:transformer     name="xslt"      src="org.apache.cocoon.transformation.TraxTransformer">
      <use-request-parameters>false</use-request-parameters>
      <use-browser-capabilities-db>false</use-browser-capabilities-db>
     </map:transformer>
    </map:transformers>
  
    <map:readers default="resource">
     <map:reader name="resource"       src="org.apache.cocoon.reading.ResourceReader"/>
    </map:readers>
  
    <map:serializers default="html">
     <map:serializer name="html"   mime-type="text/html"        src="org.apache.cocoon.serialization.HTMLSerializer">
       <encoding>ISO-8859-1</encoding>
     </map:serializer>
  
     <map:serializer name="html-loose"   mime-type="text/html"        src="org.apache.cocoon.serialization.HTMLSerializer">
      <doctype-public>-//CollabNet//DTD XHTML 1.0 Transitional//EN</doctype-public>
      <doctype-system>http://collabnet.com/dtds/collabnet_transitional_10.dtd</doctype-system>
      <encoding>ISO-8859-1</encoding>
      <omit-xml-declaration>yes</omit-xml-declaration>     
     </map:serializer> 
    
     <map:serializer name="xml"    mime-type="text/xml"         src="org.apache.cocoon.serialization.XMLSerializer">
       <encoding>ISO-8859-1</encoding>
     </map:serializer>   
     <map:serializer name="links"                               src="org.apache.cocoon.serialization.LinkSerializer">
       <encoding>ISO-8859-1</encoding>
     </map:serializer>   
     <map:serializer name="svg2jpeg" mime-type="image/jpeg"     src="org.apache.cocoon.serialization.SVGSerializer">
         <parameter name="quality" type="float" value="1.0"/>
     </map:serializer>
     <map:serializer name="svg2png" mime-type="image/png"       src="org.apache.cocoon.serialization.SVGSerializer"/>
    </map:serializers>
  
    <map:matchers default="wildcard">
     <map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"/>
    </map:matchers>
  <!--  
    <map:selectors default="skin-parameter">
      <map:selector name="request-parameter" logger="sitemap.selector.request-parameter"
                   src="org.apache.cocoon.selection.RequestParameterSelector">
        <parameter-name>skin</parameter-name> 
      </map:selector>
      <map:selector name="style-parameter" logger="sitemap.selector.request-parameter"
                   src="org.apache.cocoon.selection.RequestParameterSelector">
        <parameter-name>style</parameter-name> 
      </map:selector>
     
    </map:selectors>
  -->  
   </map:components>
  
  <!-- =========================== Views =================================== -->
  
   <map:views>
    <map:view name="content" from-label="content">
     <map:serialize type="xml"/>
    </map:view>
  
    <map:view name="links" from-position="last">
     <map:transform src="library/xslt/filterlinks.xsl"/>
     <map:serialize type="links"/>
    </map:view>
   </map:views>
  
   <map:resources>
    <map:resource name="skinit">
     <map:transform src="skins/@skin@/xslt/html/{type}.xsl">
       <map:parameter name="isfaq" value="{isfaq}"/>
     </map:transform>
     <map:serialize/>
    </map:resource>
    
    <map:resource name="skin-read">
      <map:read src="skins/@skin@/{path}" mime-type="{mime-type}"/>
    </map:resource>
  
   </map:resources>
   
  <!-- =========================== Pipelines ================================= -->
  
   <map:pipelines>
    
    <map:pipeline>
    
     <map:match pattern="">
      <map:redirect-to uri="index.html"/>
     </map:match>
     
   <!--
  
    <map:pipeline>
     <map:match pattern="">
       <map:redirect-to uri="page3333.html"/>
     </map:match>
  
     <map:match pattern="*[*].html">
       <map:aggregate element="site" label="content">
         <map:part src="site.xml" />
         <map:part src="index.xml"/>
         <map:part src="{1}.xml" element="book"/>
       </map:aggregate>
       <map:transform src="site2html.xsl">
         <map:parameter name="page-index" value="{2}"/>
         <map:parameter name="page-count" value="5"/>
         <map:parameter name="page-name" value="{1}"/>
       </map:transform>
       <map:serialize/>
     </map:match>
  -->
     <map:match pattern="apachestats">
       <map:generate type="html"
                     src="http://www.apache.org/~rubys/stats/xml.apache.org/">
         <map:parameter name="xpath"
                        value="/html/body//a[contains(@href,'.xml')]"/>
       </map:generate>
       <map:serialize type="xml"/>
     </map:match>
  
     <map:match pattern="**book-**.xml">
       <map:generate src="content/xdocs/{1}book.xml"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="book2menu"/>
       </map:call>         
     </map:match>
  
     <map:match pattern="body-todo.xml">
       <map:generate type="file-nolabel" src="content/xdocs/todo.xml"/>
       <map:transform src="library/xslt/todo2document.xsl" label="content"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>         
     </map:match>
  
     <map:match pattern="body-changes.xml">
       <map:generate type="file-nolabel" src="content/xdocs/changes.xml"/>
       <map:transform src="library/xslt/changes2document.xsl" label="content"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>    
     </map:match>
  
     <map:match pattern="body-faq.xml">
       <map:generate type="file-nolabel" src="content/xdocs/faq.xml"/>
       <map:transform src="library/xslt/faq2document.xsl" label="content"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
        <map:parameter name="isfaq" value="true"/>
       </map:call>    
     </map:match>
  
     <!-- index pages for contribution categories -->
     <map:match pattern="body-community/*/index.xml">
       <map:generate src="content/xdocs/community/{1}/index.xml"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>    
     </map:match>
  
     <!-- no special transformation, yet, for revision pages -->
     <map:match pattern="body-community**revision-*.xml">
       <map:generate src="content/xdocs/community{1}revision-{2}.xml"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>    
     </map:match>
  
     <!-- all contribution docs -->
     <map:match pattern="body-community/*/*/**.xml">
    	 <map:aggregate element="all" >
         <map:part src="content/xdocs/community/{1}/{2}/{3}.xml"/>
         <map:part src="cocoon:/revisions-community/{1}/{2}/{3}" />
       </map:aggregate>
       <map:transform src="library/xslt/{1}2document.xsl" label="content"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>
     </map:match>
  
     <!-- revisions only implemented for community pages -->
    <map:match pattern="revisions-community/*/*/**">
     	 <map:generate type="directory" src="content/xdocs/community/{1}/{2}">
  		<map:parameter name="dateFormat" value="yyyy-MM-dd hh:mm" />
  	 </map:generate>
       <map:transform src="library/xslt/directory2revisions.xsl" label="content" >
     		 <map:parameter name="use-request-parameters" value="true"/>
     		 <map:parameter name="page" value="{3}"/>
       </map:transform> 
  	 <map:serialize type="xml" />
     </map:match>
  
     <!-- Generate the "doclist" - list of all documentation
       The first match generates each book.xml and adds a new attribute "uri".
       The second match aggregates each book.xml into a doclist and
       then converts it to a document.
     -->
     <map:match pattern="doclist/content/xdocs/**book.xml">
       <map:generate src="content/xdocs/{1}book.xml"/>
       <map:transform src="library/xslt/doclist.xsl">
         <map:parameter name="uri" value="{1}"/>
       </map:transform>
       <map:serialize type="xml"/>
     </map:match>
     <map:match pattern="body-doclist.xml">
       <map:aggregate element="doclist">
         <map:part src="cocoon:/doclist/content/xdocs/book.xml"/>
         <map:part src="cocoon:/doclist/content/xdocs/community/howto/book.xml"/>
       </map:aggregate>
       <map:transform src="library/xslt/doclist2document.xsl"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>    
     </map:match>
  
     <map:match pattern="body-**.xml">
       <map:generate src="content/xdocs/{1}.xml"/>
       <map:call resource="skinit">
        <map:parameter name="type" value="document2html"/>
       </map:call>    
     </map:match>
  
     <map:match pattern="*.html">
      <map:aggregate element="site">
       <map:part src="cocoon:/book-{1}.xml"/>
       <map:part src="cocoon:/body-{1}.xml" label="content"/>
      </map:aggregate>
      <map:call resource="skinit">
        <map:parameter name="type" value="site2xhtml"/>
      </map:call>
     </map:match>
  
     <map:match pattern="**/*.html">
      <map:aggregate element="site">
       <map:part src="cocoon:/{1}/book-{1}/{2}.xml"/>
       <map:part src="cocoon:/body-{1}/{2}.xml" label="content"/>
      </map:aggregate>
       <map:call resource="skinit">
        <map:parameter name="type" value="site2xhtml"/>
       </map:call>
     </map:match>
  
     <!-- ================  Static  =========================== -->
  
     <map:match pattern="skin/**.js">
      <map:call resource="skin-read">
        <map:parameter name="path" value="scripts/{1}.js"/>
        <map:parameter name="mime-type" value="application/javascript"/>
      </map:call>     
     </map:match>
  
     <map:match pattern="**/skin/**.js">
      <map:call resource="skin-read">
        <map:parameter name="path" value="scripts/{2}.js"/>
        <map:parameter name="mime-type" value="application/javascript"/>
      </map:call>     
     </map:match>
     
     <map:match pattern="**.js">
       <map:read src="resources/scripts/{1}.js" mime-type="application/javascript"/>
     </map:match>
  
     <map:match pattern="skin/**.css">
      <map:call resource="skin-read">
        <map:parameter name="path" value="css/{1}.css"/>
        <map:parameter name="mime-type" value="text/css"/>
      </map:call>  
     </map:match>
        
     <map:match pattern="**/skin/**.css">
      <map:call resource="skin-read">
        <map:parameter name="path" value="css/{2}.css"/>
        <map:parameter name="mime-type" value="text/css"/>
      </map:call>
     </map:match>
     
     <map:match pattern="**.css">
      <map:read src="resources/css/{1}.css" mime-type="text/css"/>
     </map:match>
  
     <map:match pattern="skin/images/**.*">
      <map:call resource="skin-read">
        <map:parameter name="path" value="images/{1}.{2}"/>
        <map:parameter name="mime-type" value="image/{2}"/>
      </map:call>                                 
     </map:match>
     
     <map:match pattern="**/skin/images/**.*">
      <map:call resource="skin-read">
        <map:parameter name="path" value="images/{2}.{3}"/>
        <map:parameter name="mime-type" value="image/{3}"/>
      </map:call>                                 
     </map:match>
  
     <!-- DS: handles images local to a contributor directory -->
     <map:match pattern="**my-images/**.*">
      <map:read src="content/xdocs/{1}my-images/{2}.{3}" mime-type="image/{3}"/>
     </map:match>
        
     <map:match pattern="images/**.*">
      <map:read src="resources/images/{1}.{2}" mime-type="image/{2}"/>
     </map:match>
  
     <map:match pattern="**/images/**.*">
      <map:read src="resources/images/{2}.{3}" mime-type="image/{3}"/>
     </map:match>
  
     
     <map:match pattern="**favicon.ico">
      <map:call resource="skin-read">
        <map:parameter name="path" value="images/favicon.ico"/>
        <map:parameter name="mime-type" value="application/ico"/>
      </map:call>    
     </map:match>
           
    </map:pipeline>
   </map:pipelines>
  
  </map:sitemap>
  
  
  
  
  1.1                  xml-forrest/src/resources/conf/web.xml
  
  Index: web.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  
  <!--
    This is the web-app configurations that allow Cocoon to work under
    Apache Tomcat. Please, follow the installation section of the
    documentation for more information about installing Cocoon on Tomcat
  -->
  
  <!DOCTYPE web-app
      PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
      "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
  
  <web-app>
    <display-name>Forrest</display-name>
    <description>Webapp generated by Forrest</description>
    <servlet>
      <servlet-name>Cocoon2</servlet-name>
      <display-name>Cocoon2</display-name>
      <description>The main Cocoon2 servlet</description>
  
      <!--
        In cases you're facing class loader problems you can alternatively
        use the following servlet-class instead of the normal one
  
        <servlet-class>org.apache.cocoon.servlet.ParanoidCocoonServlet</servlet-class>
  
      -->
      <servlet-class>org.apache.cocoon.servlet.CocoonServlet</servlet-class>
  
      <!--
        This parameter points to the main configuration file for Cocoon.
        Note that the path is specified in absolute notation but it will be
        resolved relative to the servlets webapp context path
      -->
      <init-param>
        <param-name>configurations</param-name>
        <param-value>/WEB-INF/cocoon.xconf</param-value>
      </init-param>
  
      <!--
        This parameter tells cocoon to load all the required libraries into
        it's own classloader instead of trusting the Servlet Vendor's
        classloader.  If you experience strange classloader issues,
        try setting this parameter to "true".
      -->
      <init-param>
        <param-name>init-classloader</param-name>
        <param-value>false</param-value>
      </init-param>
  
      <!--
        This parameter indicates the configuration file of the LogKit management
      -->
      <init-param>
        <param-name>logkit-config</param-name>
        <param-value>/WEB-INF/logkit.xconf</param-value>
      </init-param>
  
      <!--
        This parameter indicates the category id of the logger from the LogKit
        configuration used by the CocoonServlet.
      -->
      <init-param>
        <param-name>servlet-logger</param-name>
        <param-value>access</param-value>
      </init-param>
  
      <!--
        This parameter indicates the category id of the logger from the LogKit
        management configuration for the Cocoon engine.
        This logger is used for all components described in the cocoon.xconf
        and sitemap.xmap file not having specified a logger with the
        logger="..." attribute in the component configuration file.
      -->
      <init-param>
        <param-name>cocoon-logger</param-name>
        <param-value>core</param-value>
      </init-param>
  
      <!--
        This parameter indicates the log level to use throughout startup of the system.
        As soon as the logkit.xconf the setting of the logkit.xconf configuration is
        used instead! Only for startup and if the logkit.xconf is not readable/available
        this log level is of importance.
  
        Available levels are:
          DEBUG:        prints all level of log messages.
          INFO:         prints all level of log messages except DEBUG ones.
          WARN:         prints all level of log messages except DEBUG and INFO ones.
          ERROR:        prints all level of log messages except DEBUG, INFO and WARN ones.
          FATAL_ERROR: prints only log messages of this level
      -->
      <init-param>
        <param-name>log-level</param-name>
        <param-value>DEBUG</param-value>
      </init-param>
  
      <!--
        Allow reinstantiating (reloading) of the cocoon instance. If this is
        set to "yes" or "true", a new cocoon instance can be created using
        the request parameter "cocoon-reload".
      -->
      <init-param>
        <param-name>allow-reload</param-name>
        <param-value>yes</param-value>
      </init-param>
  
      <!--
        This parameter is used to list classes that should be loaded
        at initialization time of the servlet.
        Usually this classes are JDBC Drivers used
      -->
      <init-param>
        <param-name>load-class</param-name>
        <param-value>
          <!-- For IBM WebSphere:
          com.ibm.servlet.classloader.Handler -->
  
          <!-- For Database Driver: 
          org.hsqldb.jdbcDriver-->
  
          <!-- For parent ComponentManager sample:
          org.apache.cocoon.samples.parentcm.Configurator
          -->
        </param-value>
      </init-param>
  
      <!--
        This parameter allows to specify where Cocoon should put files
        which are uploaded by the upload.xsp sample. The path specified
        is always relative to the context path of the servlet.
        The default directory is "upload-dir" in the work-directory
  
      <init-param>
        <param-name>upload-directory</param-name>
        <param-value>/WEB-INF/work/upload-dir</param-value>
      </init-param>
      -->
  
      <!--
        This parameter allows to specify where Cocoon should put files
        which are cached by the storing class. The path specified
        is always relative to the context path of the servlet.
        The default directory is "cache-dir" in the work-directory
  
      <init-param>
        <param-name>cache-directory</param-name>
        <param-value>/WEB-INF/work/cache-dir</param-value>
      </init-param>
      -->
  
      <!--
        This parameter allows to specify where Cocoon should put it's
        working files. The path specified is always relative to the
        context path of the Cocoon servlet.
        Usually it is obtained from the servlet engine.
  
      <init-param>
        <param-name>work-directory</param-name>
        <param-value>/WEB-INF/work</param-value>
      </init-param>
      -->
  
      <!--
        This parameter allows to specify additional directories or jars
        which Cocoon should put into it's own classpath.
        Note that you must separate them using the platforms path.separator
        (":" for *nix and ";" for Windows systems). Also note that absolute
        pathes are take as such but relative pathes are rooted at the context
        root of the Cocoon servlet.
  
      <init-param>
        <param-name>extra-classpath</param-name>
        <param-value>WEB-INF/extra-classes1:/[YOU-ABSOLUTE-PATH-TO]/own.jar</param-value>
      </init-param>
      -->
  
      <!--
        This parameter allows you to select the parent component manager.
        The class will be instantiated via the constructor that takes a single
        String as a parameter. That String will be equal to the text after the
        '/'.
  
        Cocoon honors the Loggable and Initializable interfaces for this class,
        if it implements them.
  
        If you uncomment the following lines the parent CM is set to the Parent CM sample, which will look up
        a configuration via JNDI at org/apache/cocoon/samples/parentcm/ParentCMConfiguration
        and use it.
      <init-param>
        <param-name>parent-component-manager</param-name>
        <param-value>org.apache.cocoon.samples.parentcm.ParentComponentManager/org/apache/cocoon/samples/parentcm/ParentCMConfiguration</param-value>
      </init-param>
      -->
  
      <!--
        This parameter allows you to select the request factory. Possible choices are as follows:
            - org.apache.cocoon.components.request.MultipartRequestFactoryImpl
            - org.apache.cocoon.components.request.MaybeUploadRequestFactoryImpl
      -->
      <init-param>
        <param-name>request-factory</param-name>
        <param-value>org.apache.cocoon.components.request.MultipartRequestFactoryImpl</param-value>
      </init-param>
  
      <!--
        If you set this parameter to 'true' or 'yes', Cocoon will add processing
        time to the end of each response. Value 'hide' adds processing time as an HTML
        comment. By default, processing time is not added (corresponds to value 'no').
      -->
      <init-param>
        <param-name>show-time</param-name>
        <param-value>hide</param-value>
      </init-param>
  
  
      <!--
        This parameter allows you to startup Cocoon2 immediately after startup
        of your servlet engine.
      -->
      <load-on-startup>1</load-on-startup>
    </servlet>
  
    <!--
      Cocoon handles all the URL space assigned to the webapp using its sitemap.
      It is recommended to leave it unchanged. Under some circumstances though
      (like integration with proprietary webapps or servlets) you might have
      to change this parameter.
    -->
    <servlet-mapping>
      <servlet-name>Cocoon2</servlet-name>
      <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!--
      Some servlet engines (Tomcat) have defaults which are not overriden
      by '/' mapping, but must be overriden explicitly.
    -->
    <servlet-mapping>
      <servlet-name>Cocoon2</servlet-name>
      <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    <!--
      Some servlet engines (WebLogic) have defaults which are not overriden
      by '/' mapping, but must be overriden explicitly.
    -->
    <servlet-mapping>
      <servlet-name>Cocoon2</servlet-name>
      <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    
    <mime-mapping>
      <extension>css</extension>
      <mime-type>text/css</mime-type>
    </mime-mapping>
  
  </web-app>
  
  
  
  1.1                  xml-forrest/src/resources/skins/avalon-site/css/common.css
  
  Index: common.css
  ===================================================================
  html body, body div, body p, body th, body td, body li, body dl, body dd, input, select, textarea {
   font-family: Arial, Helvetica, sans-serif;
   }
  p, ul, ol, dl {
   margin-top: .67em;
   margin-bottom: .67em;
   }
  table, th, td {
   border: none
   }
  form {
   margin-top: 0;
   margin-bottom: 0;
   }
  
  body {
  	margin: 0px;
  	padding: 10px;
  }
  body, td {
  	background-color: white;
  	color: black;
  	font-family: Arial, Helvetica, sans-serif;
  	font-size: 11pt;
  }
  p {
  	text-align: justify;
  }
  div {
  	margin: 0px;
  	padding: 0px;
  }
  h1, h2, h3, h4, h5, h6 {
  	page-break-after: avoid;
  	color: black;
  	font-family: Verdana, Arial, sans-serif;
  	font-weight: bold;
  	padding: 0px;
  	margin: 0px;
  	margin-left: 40px;
  }
  h1 {
  	border: 1px solid #003366;
  	font-size: 18pt;
  	padding: 2px;
  	margin-bottom: 10px;
  	text-align: center;
  	background-color: #EEEEFF;
  	margin-left: 0px;
  }
  
  h2 {
  	font-size: 16pt;
  }
  h3 {
  	font-size: 14pt;
  	color: #000033;
  }
  h4 {
  	font-size: 12pt;
  	color: #000066;
  }
  h5 {
  	font-size: 11pt;
  	font-style: italic;
  	text-align: center;
  	color: #333399;
  	margin-left: 0px;
  }
  h6 {
  	font-size: 10pt;
  	text-align: center;
  	font-weight: normal;
  	color: #3333CC;
  	margin-left: 0px;
  }
  a, a:visited {
  	color: #336699;
  }
  a:hover, a:active {
  	color: #003366;;
  }
  #breadcrumbs {
  	border-top: 1px solid #003366;
  	border-bottom: 1px solid #003366;
  	margin-top: 10px;
  	margin-bottom: 20px;
  	padding-top: 0px;
  	padding-bottom: 2px;
  	padding-left: 10px;
  	font-size: 10pt;
  	font-weight: bold;
  }
  #menu {
  	border: 1px solid #003366;
  	width: 175px;
  }
  #menu h4 {
  	margin: 0px;
  	padding-left: 5px;
  	padding-top: 2px;
  	padding-bottom: 2px;
  	color: black;
  	text-align: left;
  	font-style: normal;
  	font-size: 10pt;
  	background-color: #EEEEFF;
  }
  #submenu h4 {
  	margin: 0px;
  	padding-left: 5px;
  	padding-top: 2px;
  	padding-bottom: 2px;
  	color: black;
  	text-align: left;
  	font-style: normal;
  	font-size: 10pt;
  	background-color: #EEEEFF;
  }
  #submenu ul {
  	margin-top: 5px;
  	margin-bottom: 5px;
  }
  #authors {
  	font-size: 10px;
  	text-align: right;
  }
  #footer {
  	border-top: 1px solid #003366;
  	margin-top: 20px;
  	padding: 3px;
  	text-align: center;
  	font-size: 9pt;
  	font-style: italic;
  }
  a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
  	font-size: 10pt;
  	font-weight: bold;
  	text-decoration: none;
  }
  a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
  	text-decoration: underline;
  }
  .section {
  	margin-left: 40px;
  }
  .code {
  	font-family: Courier, Courier New, monospace;
  	padding: 4px;
  	border: 1px solid #003366;
  }
  .code, pre {
  	font-size: 11px;
  }
  .section .code {
  	margin-left: -40px;
  }
  .section .section .code {
  	margin-left: -80px;
  }
  .fixed {
        	font-family: Courier, Courier New, monospace;
         }
  @media print {
  	body td {
  		font-family: Times New Roman, Zurich Bt, serif;
  		font-size: 10pt;
  	}
  	#menu h4 {
  		margin-left: 0px;
  	}
  	.code {
  		page-break-inside: avoid;
  	}
  	p ul {
  		page-break-inside: avoid;
  	}
  	.section .code {
  		margin-left: 0px;
  	}
  	#menu {
  		display: none;
  		width: 0px;
  	}
  	#contents div {
  		margin: 0px;
  	}
  }
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/forrest-site/css/page.css
  
  Index: page.css
  ===================================================================
  body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif}
  form { margin: 0px; padding: 0px; border: 0px; }
  ul,ol { margin: 10px 5px 10px 40px; padding: 0px; }
  li { margin: 2px 0px 2px 0px; }
  dl { margin: 10px 5px 10px 20px; padding: 0px; }
  dt { font-weight: bold; margin: 5px 0px 0px 0px; }
  table { border: 0px; width: 100%; }
  td { font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif }
  img { border: 0px; }
  pre { padding: 10px 10px 10px 10px; margin-bottom: 0px }
  
  a:link { color: #0F3660 }
  a:visited { color: #880000 }
  a:active { font-weight: bold }
  a:hover { color: #880000; }
  
  .path { font-size: 10px; background-color: #CFDCED; border-bottom-color: #4A6D8C; border-bottom-style: solid; border-bottom-width: 2px; padding: 2px; }
  .path .current { font-weight: bold; }
  
  .top { background-color: #294563; }
  .top img { margin: 5px; }
  .topline { background-color: #4C6C8F; }
  .navbar { background-color: #CFDCED; color: #4C6C8F; font-weight: bold; border-bottom-color: #4A6D8C; border-bottom-style: solid; border-bottom-width: 1px; padding: 2px;}
  
  .search { font-size: 13px; color: #ffffff; margin-right: 10px; padding: 10px 5px 3px 5px; background-color: #4A6D8C; }
  
  .tabs { font-size: 12px; background-color: #294563; padding: 2px 7px 5px 7px; }
  .tabs .tab { background-color: #CFDCED; padding: 4px 6px 4px 6px;}
  .tabs .current { background-color: #4C6C8F; font-weight: bold; padding: 5px 6px 6px 6px; ; color: #FFFFFF}
  
  .copyright { text-align: center; font-size: 10px; background-color: #CFDCED; border-top-color: #4A6D8C; border-top-style: solid; border-top-width: 1px; padding: 2px; }
  
  .menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;}
  .menu a:link { color: #FFFFFF }
  .menu a:visited { color: #FFFFFF }
  .menu a:active { font-weight: bold }
  .menu a:hover { color: #880000; }
  .menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  .menu li .chapter  { list-style-image: url('images/chapter.gif'); font-weight: bold }
  .menu li .open  { list-style-image: url('images/chapter_open.gif'); font-weight: bold }
  .menu li .page  { list-style-image: url('images/page.gif') }
  .menu li .current  { list-style-image: url('images/current.gif'); color: #FFD700; font-weight: bold; }
  
  .content { padding: 5px 5px 5px 10px; }
  
  .frame { width: 100%; margin: 5px 20px 5px 20px; font-size: 11px; }
  .frame .content { margin: 0px; }
  
  .note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  .note .label { background-color: #7099C5; color: #ffffff; }
  
  .warning { border: solid 1px #D00000; background-color: #fff0f0; }
  .warning .label { background-color: #D00000; color: #ffffff; }
  
  .fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  .fixme .label { background-color: #C6C600; color: #ffffff; }
  
  .code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  
  table.table { width: 100%; font-size: 11px; background-color: #7099C5; color: #ffffff; }
  .table caption { text-align: left; text-weight: bold; color: black; }
  .table th { text-align: center; text-weight: bold; }
  .table td { background-color: #f0f0ff; color: black; }
  
  .dida { font-size: 9px; }
  
  .figure {}
  
  .icon {}
  
  .highlight { background-color: yellow; }
  
  .minitoc {font-size: 8pt; margin: 5px 5px 5px 40px;}
  
  
  1.28      +34 -26    xml-forrest/src/targets/project.xtarget
  
  Index: project.xtarget
  ===================================================================
  RCS file: /home/cvs/xml-forrest/src/targets/project.xtarget,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- project.xtarget	28 May 2002 10:17:42 -0000	1.27
  +++ project.xtarget	29 May 2002 16:44:57 -0000	1.28
  @@ -2,6 +2,23 @@
     <!-- Targets for this project                                            -->
     <!-- =================================================================== -->
   
  +  <target name="run" depends="init">
  +   
  +    <antcall target="runforrestrun">
  +      <param name="getcvsmodule.package"      value="jakarta-poi"/>
  +      <param name="getcvsmodule.work.dir"     value="${build.dir}/work/forrest/cvsmodule" />      
  +      <param name="documentation.source.dir"  value="${build.dir}/work/forrest/cvsmodule/jakarta-poi/src/documentation"/>       
  +      <param name="deploy.username"           value="forrestbot"/>
  +      <param name="deploy.package-name"       value="jakarta-poi"/>
  +      <param name="deploy.data.dir"           value="${build.dir}/docs"/>
  +      <param name="deploy.hostname"           value="krysalis.sourceforge.net"/>
  +      <param name="deploy.remotedir"          value="/home/groups/k/kr/krysalis/htdocs/poi"/>
  +    </antcall>
  +                             
  +  </target>
  +  
  +  <target name="runforrestrun" depends="getcvsmodule, prepare-docs, owdocs, deploy"/>    
  +    
     <!-- ================== -->
     <!-- Prepares the docs  -->
     <!-- ================== -->
  @@ -10,8 +27,9 @@
       <property name="centipede.tools.cents.forrest.loglevel" value="ERROR"/> 
       <property name="use.skin" value="forrest-site"/> 
       
  -    <property name="documentation.source.dir" value="${context.dir}"/>     
  -    
  +    <property name="documentation.context.dir"  value="${resource.dir}"/>     
  +    <property name="documentation.source.dir"   value="${context.dir}"/>    
  +        
       <echo>Running docs generation from: ${documentation.source.dir}.</echo>
       
       <!-- define filters -->     
  @@ -39,7 +57,6 @@
       <copy todir="${build.context}" filtering="on" overwrite="true">
         <fileset dir="${documentation.source.dir}" casesensitive="no">
           <include name="**/*.x*"/>
  -        <exclude name="**/conf/" />
         </fileset>
       </copy>
   
  @@ -47,24 +64,9 @@
       <copy todir="${build.context}" filtering="off">
         <fileset dir="${documentation.source.dir}" casesensitive="no">
           <exclude name="**/*.x*"/>
  -        <exclude name="**/conf/" />
  -      </fileset>
  -    </copy>
  -        
  -<!--        
  -    <copy todir="${build.context}/content/xdocs/" filtering="on" overwrite="true">
  -      <fileset dir="${documentation.source.dir}/xdocs/" casesensitive="no">
  -        <include name="**/*.x*"/>
         </fileset>
  -    </copy>
  +    </copy>      
   
  -    <copy todir="${build.context}/resources/images/" filtering="off">
  -      <fileset dir="${documentation.source.dir}/images/" casesensitive="no">
  -        <exclude name="**/*.x*"/>
  -      </fileset>
  -    </copy>
  -             
  --->
       <!-- Copy entity catalog and entities -->
       <copy todir="${build.context}/resources/schema" filtering="on">
         <fileset dir="${resource.dir}/schema"/>
  @@ -78,32 +80,38 @@
   
       <!-- Copy Cocoon configuration and sitemap -->
       <copy todir="${build.context}" filtering="on">
  -      <fileset dir="${context.dir}/conf">
  +      <fileset dir="${documentation.context.dir}/conf">
           <include name="sitemap.xmap"/>
           <include name="cocoon.xconf"/>        
         </fileset> 
       </copy>
  -
  -     <!-- Copy Cocoon configuration and sitemap -->
       <copy todir="${build.context}/WEB-INF/" filtering="on">
  -      <fileset dir="${context.dir}/conf">
  +      <fileset dir="${documentation.context.dir}/conf">
           <exclude name="sitemap.xmap"/>
         </fileset> 
       </copy>
   
        <!-- Copy Cocoon configuration and sitemap -->
       <copy todir="${build.context}/library/" filtering="on">
  -      <fileset dir="${context.dir}/library">
  +      <fileset dir="${documentation.context.dir}/library">
   
         </fileset> 
       </copy>
       
        <!-- Copy Cocoon configuration and sitemap -->
       <copy todir="${build.context}/skins/" filtering="on">
  -      <fileset dir="${context.dir}/skins">
  +      <fileset dir="${documentation.context.dir}/skins">
  +        <exclude name="**/images/**"/>         
         </fileset> 
       </copy>
  -        
  +
  +     <!-- Copy Cocoon configuration and sitemap -->
  +    <copy todir="${build.context}/skins/" filtering="off">
  +      <fileset dir="${documentation.context.dir}/skins">
  +        <include name="**/images/**"/>      
  +      </fileset> 
  +    </copy>
  +            
     </target>
     
     <!-- =================================================================== -->
  
  
  
  1.1                  xml-forrest/src/resources/skins/basic/css/style.css
  
  Index: style.css
  ===================================================================
  html body, body div, body p, body th, body td, body li, body dl, body dd, input, select, textarea {
   font-family: Arial, Helvetica, sans-serif;
   }
  p, ul, ol, dl {
   margin-top: .67em;
   margin-bottom: .67em;
   }
  table, th, td {
   border: none
   }
  form {
   margin-top: 0;
   margin-bottom: 0;
   }
  
  body {
  	margin: 0px;
  	padding: 10px;
  }
  body, td {
  	background-color: white;
  	color: black;
  	font-family: Arial, Helvetica, sans-serif;
  	font-size: 11pt;
  }
  p {
  	text-align: justify;
  }
  div {
  	margin: 0px;
  	padding: 0px;
  }
  h1, h2, h3, h4, h5, h6 {
  	page-break-after: avoid;
  	color: black;
  	font-family: Verdana, Arial, sans-serif;
  	font-weight: bold;
  	padding: 0px;
  	margin: 0px;
  	margin-left: 16px;
  }
  h1 {
  	border: 1px solid #003366;
  	font-size: 18pt;
  	padding: 2px;
  	margin-bottom: 10px;
  	text-align: center;
  	background-color: #EEEEFF;
  	margin-left: 0px;
  }
  
  h2 {
  	font-size: 16pt;
  }
  h3 {
  	font-size: 14pt;
  	color: #000033;
  }
  h4 {
  	font-size: 12pt;
  	color: #000066;
  }
  h5 {
  	font-size: 11pt;
  	font-style: italic;
  	text-align: center;
  	color: #333399;
  	margin-left: 0px;
  }
  h6 {
  	font-size: 10pt;
  	text-align: center;
  	font-weight: normal;
  	color: #3333CC;
  	margin-left: 0px;
  }
  a, a:visited {
  	color: #336699;
  }
  a:hover, a:active {
  	color: #003366;;
  }
  #breadcrumbs {
  	border-top: 1px solid #003366;
  	border-bottom: 1px solid #003366;
  	margin-top: 10px;
  	margin-bottom: 20px;
  	padding-top: 0px;
  	padding-bottom: 2px;
  	padding-left: 10px;
  	font-size: 10pt;
  	font-weight: bold;
  }
  #menu {
  	border: 1px solid #003366;
  	width: 175px;
  }
  #menu h4 {
  	margin: 0px;
  	padding-left: 5px;
  	padding-top: 2px;
  	padding-bottom: 2px;
  	color: black;
  	text-align: left;
  	font-style: normal;
  	font-size: 10pt;
  	background-color: #EEEEFF;
  }
  #submenu h4 {
  	margin: 0px;
  	padding-left: 5px;
  	padding-top: 2px;
  	padding-bottom: 2px;
  	color: black;
  	text-align: left;
  	font-style: normal;
  	font-size: 10pt;
  	background-color: #EEEEFF;
  }
  #submenu ul {
  	margin-top: 5px;
  	margin-bottom: 5px;
  }
  #authors {
  	font-size: 10px;
  	text-align: right;
  }
  #footer {
  	border-top: 1px solid #003366;
  	margin-top: 20px;
  	padding: 3px;
  	text-align: center;
  	font-size: 9pt;
  	font-style: italic;
  }
  a.breadcrumbs, a.breadcrumbs:visited, a.menu, a.menu:visited {
  	font-size: 10pt;
  	font-weight: bold;
  	text-decoration: none;
  }
  a.breadcrumbs:hover, a.breadcrumbs:active, a.menu:hover, a.menu:active {
  	text-decoration: underline;
  }
  .section {
  	margin-left: 40px;
  }
  .code {
  	font-family: Courier, Courier New, monospace;
  	padding: 4px;
  	border: 1px solid #003366;
  }
  .code, pre {
  	font-size: 11px;
  }
  .section .code {
  	margin-left: -40px;
  }
  .section .section .code {
  	margin-left: -80px;
  }
  @media print {
  	body td {
  		font-family: Times New Roman, Zurich Bt, serif;
  		font-size: 10pt;
  	}
  	#menu h4 {
  		margin-left: 0px;
  	}
  	.code {
  		page-break-inside: avoid;
  	}
  	p ul {
  		page-break-inside: avoid;
  	}
  	.section .code {
  		margin-left: 0px;
  	}
  	#menu {
  		display: none;
  		width: 0px;
  	}
  	#contents div {
  		margin: 0px;
  	}
  }
  
  
  
  
  1.1                  xml-forrest/src/resources/skins/xml-apache-site/css/xml-apache.css
  
  Index: xml-apache.css
  ===================================================================
  <style type=text/css>
  a.menu {
  	color: #FFFFFF;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:plain;
      text-decoration:none;
      padding-left: 14px
  }
  .menutitle {
  	color: #000000;
      text-align:left;               
      font-size:10px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 8px
  }
  .menuselected {
  	color: white;
      text-align:left;               
      font-size:12px;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight:bold;
      padding-left: 14px
  }
  </style>
  
  
  

Mime
View raw message