You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by st...@apache.org on 2002/09/03 12:07:32 UTC

cvs commit: xml-cocoon2/src/webapp/samples/profiler page2html.xsl profile2page.xsl test.xml test2page.xsl xml2html.css xml2html.js xml2html.xsl profile2html.xsl samples.xml sitemap.xmap

stephan     2002/09/03 03:07:31

  Modified:    src/webapp/samples/profiler profile2html.xsl samples.xml
                        sitemap.xmap
  Added:       src/webapp/samples/profiler page2html.xsl profile2page.xsl
                        test.xml test2page.xsl xml2html.css xml2html.js
                        xml2html.xsl
  Log:
  Examples for the profiler components rewritten to show
  the SAX fragments, which were stored.
  
  Revision  Changes    Path
  1.2       +82 -22    xml-cocoon2/src/webapp/samples/profiler/profile2html.xsl
  
  Index: profile2html.xsl
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/profiler/profile2html.xsl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- profile2html.xsl	21 Aug 2002 07:30:40 -0000	1.1
  +++ profile2html.xsl	3 Sep 2002 10:07:31 -0000	1.2
  @@ -18,17 +18,17 @@
           <table noshade="noshade" border="0" cellspacing="1" cellpadding="0" width="100%">
             <xsl:choose>
               <xsl:when test="$sort = 'uri'">
  -              <xsl:apply-templates>
  +              <xsl:apply-templates select="profile:pipeline">
                    <xsl:sort select="@profile:uri"/>
                 </xsl:apply-templates>
               </xsl:when>
               <xsl:when test="$sort = 'time'">
  -              <xsl:apply-templates>
  +              <xsl:apply-templates select="profile:pipeline">
                    <xsl:sort select="@profile:time" data-type="number"/>
                 </xsl:apply-templates>
               </xsl:when>
               <xsl:when test="$sort = 'count'">
  -              <xsl:apply-templates>
  +              <xsl:apply-templates select="profile:pipeline">
                    <xsl:sort select="@profile:count" data-type="number"/>
                 </xsl:apply-templates>
               </xsl:when>
  @@ -37,6 +37,8 @@
               </xsl:otherwise>
             </xsl:choose>
           </table>
  +
  +        <xsl:apply-templates select="profile:pipeline/profile:result/profile:environmentinfo"/>
         </body>
       </html>
     </xsl:template>
  @@ -51,23 +53,24 @@
         </tr>
       </xsl:if>
       <tr bgcolor="#C0C0FF">
  -     <td colspan="14">
  -      <font face="verdana"><strong><xsl:value-of select="@profile:uri"/></strong></font>
  -      (<xsl:value-of select="@profile:count"/> results,
  -      total time: <xsl:value-of select="@profile:time"/>,
  -      average time: <xsl:value-of select="@profile:time div @profile:count"/>)
  +     <td colspan="3">
  +      <a href="?key={@profile:key}">
  +       <font face="verdana"><strong><xsl:value-of select="@profile:uri"/></strong></font>
  +       (<xsl:value-of select="@profile:count"/> results,
  +       total time: <xsl:value-of select="@profile:time"/>,
  +       average time: <xsl:value-of select="@profile:time div @profile:count"/>)
  +      </a>
        </td>
  -    </tr>
  -<!--
  -    <xsl:for-each select="*">
  -     <tr>
  +     <xsl:for-each select="profile:result">
         <td>
  -       <xsl:apply-templates select="."/>
  +       <a href="?key={../@profile:key}&amp;index={@profile:index}">
  +        <xsl:value-of select="@profile:index"/>
  +       </a>
         </td>
  -     </tr>
  -    </xsl:for-each>
  --->
  -    <xsl:for-each select="profile:average/profile:element">
  +     </xsl:for-each>
  +    </tr>
  +
  +    <xsl:for-each select="profile:average/profile:component">
         <xsl:variable name="bgcolor">
          <xsl:if test="position() mod 2 = 0">#D0D0D0</xsl:if>
          <xsl:if test="position() mod 2 = 1">#E0E0E0</xsl:if>
  @@ -85,22 +88,24 @@
           </xsl:if>
          </td>
   
  -       <xsl:for-each select="../../profile:average/profile:element[position()=$pos]">
  +       <xsl:for-each select="../../profile:average/profile:component[position()=$pos]">
           <th>
            <xsl:value-of select="@profile:time"/>
           </th>
          </xsl:for-each>
   
  -       <xsl:for-each select="../../profile:result/profile:element[position()=$pos]">
  +       <xsl:for-each select="../../profile:result/profile:component[position()=$pos]">
           <td>
  -         <xsl:value-of select="@profile:time"/>
  +         <a href="?key={../../@profile:key}&amp;index={../@profile:index}&amp;offset={@profile:offset}">
  +          <xsl:value-of select="@profile:time"/>
  +         </a>
           </td>
          </xsl:for-each>
   
         </tr>
       </xsl:for-each>
   
  -       <xsl:variable name="pos" select="count(profile:average/profile:element)"/>
  +       <xsl:variable name="pos" select="count(profile:average/profile:component)"/>
         <tr>
          <td width="1%">
           <xsl:value-of select="$pos+1"/>
  @@ -126,7 +131,7 @@
      <xsl:apply-templates/>
     </xsl:template>
   
  -  <xsl:template match="profile:element">
  +  <xsl:template match="profile:component">
      <table cellspacing="0" cellpadding="0">
       <tr>
        <td>
  @@ -134,6 +139,61 @@
        </td>
       </tr>
      </table>
  +  </xsl:template>
  +
  +  <xsl:template match="profile:environmentinfo">
  +   <xsl:apply-templates select="profile:request-parameters"/>
  +   <xsl:apply-templates select="profile:session-attributes"/>
  +  </xsl:template>
  +
  +  <xsl:template match="profile:request-parameters">
  +    <table>
  +      <tr bgcolor="#C0C0FF">
  +       <th colspan="14">
  +        Request parameters
  +       </th>
  +      </tr>
  +      <tr bgcolor="#FFC0C0">
  +        <th>Name</th>
  +        <th>Value</th>
  +      </tr>
  +      <xsl:for-each select="profile:parameter">
  +        <xsl:variable name="bgcolor">
  +          <xsl:if test="position() mod 2 = 0">#D0D0D0</xsl:if>
  +          <xsl:if test="position() mod 2 = 1">#E0E0E0</xsl:if>
  +        </xsl:variable>
  +
  +        <tr bgcolor="{$bgcolor}">
  +          <td><xsl:value-of select="@profile:name"/></td>
  +          <td><xsl:value-of select="@profile:value"/></td>
  +        </tr>
  +      </xsl:for-each>
  +    </table>
  +  </xsl:template>
  +
  +  <xsl:template match="profile:session-attributes">
  +    <table>
  +      <tr bgcolor="#C0C0FF">
  +       <th colspan="14">
  +        Session attributes
  +       </th>
  +      </tr>
  +      <tr bgcolor="#FFC0C0">
  +        <th>Name</th>
  +        <th>Value</th>
  +      </tr>
  +      <xsl:for-each select="profile:attribute">
  +        <xsl:variable name="bgcolor">
  +          <xsl:if test="position() mod 2 = 0">#D0D0D0</xsl:if>
  +          <xsl:if test="position() mod 2 = 1">#E0E0E0</xsl:if>
  +        </xsl:variable>
  +
  +        <tr bgcolor="{$bgcolor}">
  +          <td><xsl:value-of select="@profile:name"/></td>
  +          <td><xsl:value-of select="@profile:value"/></td>
  +        </tr>
  +      </xsl:for-each>
  +    </table>
     </xsl:template>
   
   </xsl:stylesheet>
  
  
  
  1.2       +4 -2      xml-cocoon2/src/webapp/samples/profiler/samples.xml
  
  Index: samples.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/profiler/samples.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- samples.xml	21 Aug 2002 07:30:40 -0000	1.1
  +++ samples.xml	3 Sep 2002 10:07:31 -0000	1.2
  @@ -13,9 +13,11 @@
    </group>
   
    <group name="Profiler">
  -  <sample name="Profiler Result" href="profiler.html">Shows the result of the profiler.</sample>
  +  <sample name="Profiler Result" href="profile.html">Shows the result of the profiler.</sample>
   
  -  <sample name="XML Output" href="profiler.xml">Show source xml code of the profiler generator.</sample>
  +  <sample name="Profiler Result 2" href="profile2.html">Another view of the results.</sample>
  +
  +  <sample name="XML Output" href="profile.xml">Show source xml code of the profiler generator.</sample>
    </group>
   
   </samples>
  
  
  
  1.2       +48 -22    xml-cocoon2/src/webapp/samples/profiler/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/profiler/sitemap.xmap,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sitemap.xmap	21 Aug 2002 07:30:40 -0000	1.1
  +++ sitemap.xmap	3 Sep 2002 10:07:31 -0000	1.2
  @@ -39,24 +39,13 @@
   
     <map:pipeline type="profile-caching">
   
  -   <map:match pattern="">
  -    <map:redirect-to uri="welcome"/>
  -   </map:match>
  -
  -   <map:match pattern="welcome">
  -    <map:generate src="samples.xml"/>
  -    <map:transform src="context://samples/stylesheets/simple-samples2html.xsl"/>
  -    <map:serialize/>
  -   </map:match>
  -
      <map:match pattern="caching-testsite.html">
  -    <map:generate src="sitemap.xmap"/>
  -    <map:transform src="context://samples/common/style/xsl/html/simple-xml2html.xsl"/>
  +    <map:generate src="test.xml"/>
  +    <map:transform src="test2page.xsl"/>
  +    <map:transform src="page2html.xsl"/>
       <map:serialize type="html"/>
      </map:match>
   
  -<!-- =========================== Errors ================================ -->
  -
      <map:handle-errors>
       <map:transform src="context://samples/common/style/xsl/html/error2html.xsl"/>
       <map:serialize type="html" status-code="500"/>
  @@ -69,32 +58,69 @@
     <map:pipeline type="profile-noncaching">
   
      <map:match pattern="noncaching-testsite.html">
  -    <map:generate src="sitemap.xmap"/>
  -    <map:transform src="context://samples/common/style/xsl/html/simple-xml2html.xsl"/>
  +    <map:generate src="test.xml"/>
  +    <map:transform src="test2page.xsl"/>
  +    <map:transform src="page2html.xsl"/>
       <map:serialize type="html"/>
      </map:match>
   
  -<!-- =========================== Profiler ================================ -->
  +   <map:handle-errors>
  +    <map:transform src="context://samples/common/style/xsl/html/error2html.xsl"/>
  +    <map:serialize type="html" status-code="500"/>
  +   </map:handle-errors>
  +
  +  </map:pipeline>
   
  -   <map:match pattern="profiler.html">
  +<!-- =========================== Profiler ================================= -->
  +
  +  <map:pipeline type="caching">
  +
  +   <map:match pattern="">
  +    <map:redirect-to uri="welcome"/>
  +   </map:match>
  +
  +   <map:match pattern="welcome">
  +    <map:generate src="samples.xml"/>
  +    <map:transform src="context://samples/stylesheets/simple-samples2html.xsl"/>
  +    <map:serialize/>
  +   </map:match>
  +  
  +   <map:match pattern="profile.html">
       <map:generate type="profiler"/>
  -    <map:transform src="profile2html.xsl"/>
  +    <map:transform src="profile2page.xsl">
  +     <map:parameter name="use-request-parameters" value="true"/>
  +    </map:transform>
  +    <map:transform src="page2html.xsl"/>
       <map:serialize type="html"/>
      </map:match>
   
  -   <map:match pattern="profiler.xml">
  +   <map:match pattern="profile2.html">
  +    <map:generate type="profiler"/>
  +    <map:transform src="profile2html.xsl">
  +     <map:parameter name="use-request-parameters" value="true"/>
  +    </map:transform>
  +    <map:serialize type="html"/>
  +   </map:match>
  +
  +   <map:match pattern="profile.xml">
       <map:generate type="profiler"/>
       <map:transform src="context://samples/common/style/xsl/html/simple-xml2html.xsl"/>
       <map:serialize type="html"/>
      </map:match>
   
  -<!-- =========================== Errors ================================ -->
  +   <map:match pattern="*.css">
  +    <map:read src="{1}.css" mime-type="text/css"/>
  +   </map:match>
   
  +   <map:match pattern="*.js">
  +    <map:read src="{1}.js" mime-type="text/javascript"/>
  +   </map:match>
  +   
      <map:handle-errors>
       <map:transform src="context://samples/common/style/xsl/html/error2html.xsl"/>
       <map:serialize type="html" status-code="500"/>
      </map:handle-errors>
  -
  +   
     </map:pipeline>
    </map:pipelines>
   
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/page2html.xsl
  
  Index: page2html.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
   <xsl:output indent="yes"/>
    
   <xsl:template match="/">
    <html>
     <head>
      <title>Apache Cocoon @version@</title>
      <link rel="SHORTCUT ICON" href="favicon.ico"/>
  
      <xsl:apply-templates select="page/style"/>
      <xsl:apply-templates select="page/script"/>
     </head>
     <body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
      <table border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
       <tr>
        <td width="*"><font face="arial,helvetica,sanserif" color="#000000">The Apache Software Foundation is proud to
  present...</font></td>
        <td width="40%" align="center"><img border="0" src="/cocoon/samples/images/cocoon.gif"/></td>
        <td width="30%" align="center"><font face="arial,helvetica,sanserif" color="#000000"><b>version
  @version@</b></font></td>
       </tr>
       <tr>
        <table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
         <tr>
          <td width="90%" align="left" bgcolor="#0086b2"><font size="+1" face="arial,helvetica,sanserif"
              color="#ffffff"><xsl:value-of select="page/@title"/></font></td>
  
          <xsl:apply-templates select="page/tab"/>
         </tr>
        </table>
       </tr>
      </table>
  
      <table width="100%">   
       <xsl:apply-templates select="page/row"/>
      </table>
     
      <p align="center">
       <font size="-1">
        Copyright &#169; @year@ <a href="http://www.apache.org/">The Apache Software Foundation</a>.<br/>
        All rights reserved.
       </font>
      </p>
     </body>
    </html>
   </xsl:template>
  
   <xsl:template match="style">
    <link type="text/css" rel="stylesheet" href="{@href}"/>
   </xsl:template>
  
   <xsl:template match="script">
    <script type="text/javascript" src="{@href}"/>
   </xsl:template>
  
   <xsl:template match="tab">
    <td nowrap="nowrap" bgcolor="#ffffff"><a href="{@href}"><i><xsl:value-of select="@title"/></i></a></td>
   </xsl:template>
  
   <xsl:template match="row">
    <tr>
     <xsl:apply-templates select="column"/>
    </tr>
   </xsl:template>
  
   <xsl:template match="column">
    <td valign="top">
     <table border="0" bgcolor="#000000" cellpadding="0" cellspacing="0" width="97%">
      <tbody>
       <tr>
        <td>
  
         <table bgcolor="#000000" border="0" cellspacing="2" cellpadding="2" align="center" width="100%">
          <tr>
           <td bgcolor="#0086b2" width="100%" align="left">
            <font size="+1" face="arial,helvetica,sanserif" color="#ffffff"><xsl:value-of select="@title"/></font>
           </td>
          </tr>
          <tr>
           <td width="100%" bgcolor="#ffffff" align="left">
  
            <xsl:apply-templates/>
  
           </td>
          </tr>
         </table>
        
        </td>
       </tr> 
      </tbody>
     </table>
    </td> 
   </xsl:template>
  
   <xsl:template match="para">
    <p align="left">
     <i><xsl:apply-templates/></i>
    </p>
   </xsl:template>
  
   <xsl:template match="@*|node()" priority="-2"><xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy></xsl:template>
   <xsl:template match="text()" priority="-1"><xsl:value-of select="."/></xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/profile2page.xsl
  
  Index: profile2page.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet version="1.0"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                  xmlns:profile="http://apache.org/cocoon/profiler/1.0">
  
   <xsl:import href="xml2html.xsl"/>
  
   <xsl:output indent="yes"/>
  
   <xsl:param name="key"/>
   <xsl:param name="result"/>
   <xsl:param name="component"/>
  
   <xsl:template match="/">
    <page>
     <tab title="Back" href="profile.html"/>
     <tab title="Overview" href="welcome"/>
     <style href="xml2html.css"/>
     <script href="xml2html.js"/>
  
     <xsl:choose>
      <xsl:when test="$component!=''">
       <xsl:apply-templates
           select="profile:profilerinfo/profile:pipeline/profile:result/profile:component[@profile:index=$component]"
           mode="fragment"/>
      </xsl:when>
      <xsl:when test="$result!=''">
       <xsl:apply-templates select="profile:profilerinfo/profile:pipeline/profile:result" mode="result"/>
      </xsl:when>
      <xsl:when test="$key!=''">
       <xsl:apply-templates select="profile:profilerinfo/profile:pipeline" mode="results"/>
      </xsl:when>
      <xsl:otherwise>
       <xsl:apply-templates select="profile:profilerinfo" mode="pipelines"/>
      </xsl:otherwise>
     </xsl:choose>
   
    </page>
   </xsl:template>
  
   <xsl:template match="profile:profilerinfo" mode="pipelines">
  
    <row>
     <column title="Overview">
  
      <table width="100%" cellspacing="0" cellpadding="5" align="left">
       <font size="+0" face="arial,helvetica,sanserif" color="#000000">
  
        <tr>
         <td align="left"><b>URI</b></td>
         <td align="left"><b>Average(Total time)</b></td>
         <td align="left" colspan="10"><b>Last Results(Total time)</b></td>
        </tr>
  
        <xsl:for-each select="profile:pipeline">
  
         <tr bgcolor="#FFFFFF">
          <td>
           <a href="?key={@profile:key}">
            <font face="verdana"><strong><xsl:value-of select="@profile:uri"/></strong></font>
           </a>
          </td>
          <td>
           <a href="?key={@profile:key}">
            <xsl:value-of select="profile:average/@profile:time"/> ms
           </a>
          </td>
          <xsl:for-each select="profile:result">
           <td>
            <a href="?key={../@profile:key}&amp;result={@profile:index}">
             <xsl:value-of select="@profile:time"/> ms
            </a>
           </td>
          </xsl:for-each>
         </tr>
  
        </xsl:for-each>
  
       </font>
      </table>
  
     </column>
    </row>
  
   </xsl:template>
  
   <xsl:template match="profile:pipeline" mode="results">
  
    <row>
     <column title="{@profile:uri}">
  
      <table width="100%" cellspacing="0" cellpadding="5" align="left">
       <font size="+0" face="arial,helvetica,sanserif" color="#000000">
   
        <tr>
         <td align="left"><b>NN</b></td>
         <td align="left"><b>Components(Role)</b></td>
         <td align="left"><b>Average time</b></td>
         <td align="left"><b>Lastest times</b></td>
        </tr>
  
        <xsl:for-each select="profile:average/profile:component">
         <tr>
  
          <xsl:variable name="pos" select="position()"/>
          <td width="1%">
           <xsl:value-of select="$pos"/>
          </td>
          <td width="10%">
           <xsl:value-of select="@profile:role"/>
           <xsl:if test="@profile:source">
            (<xsl:value-of select="@profile:source"/>)
           </xsl:if>
          </td>
  
          <xsl:for-each select="../../profile:average/profile:component[position()=$pos]">
           <td>
            <xsl:value-of select="@profile:time"/> ms
           </td>
          </xsl:for-each>
   
          <xsl:for-each select="../../profile:result/profile:component[position()=$pos]">
           <td>
            <a href="?key={../../@profile:key}&amp;result={../@profile:index}&amp;component={@profile:index}">
             <xsl:value-of select="@profile:time"/> ms
            </a>
           </td>
          </xsl:for-each>
  
         </tr>
        </xsl:for-each>
  
        <tr>
         <td></td>
         <td><b>Total time</b></td>
         <td><b><xsl:value-of select="profile:result/@profile:time"/></b></td>
         <xsl:for-each select="profile:result">
          <td>
           <b>
            <xsl:value-of select="@profile:time"/> ms
           </b>
          </td>
         </xsl:for-each>
        </tr>
  
       </font>
      </table>
  
     </column>
    </row>
  
   </xsl:template>
  
   <xsl:template match="profile:result" mode="result">
  
    <row>
     <column title="{../@profile:uri}">
  
      <table bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="2"  width="100%" align="center">
  
       <tr>
        <td align="left"><b>Components</b></td>
        <td align="left"><b>Time</b></td>
       </tr>
  
  
       <xsl:for-each select="profile:component">
        <tr>
         <td>
          <a href="?key={../../@profile:key}&amp;result={../@profile:index}&amp;component={@profile:index}">
           <xsl:value-of select="@profile:role"/>
           <xsl:if test="@profile:source">
            (<xsl:value-of select="@profile:source"/>)
           </xsl:if>
          </a>
         </td>
         <td>
          <xsl:value-of select="@profile:time"/> ms
         </td>
        </tr>
       </xsl:for-each>
  
      </table>
  
     </column>
  
    </row>
  
    <row>
  
     <column title="Request parameters">
  
      <table width="100%" cellspacing="0" cellpadding="5" align="center">
       <font size="+0" face="arial,helvetica,sanserif" color="#000000">
  
        <tr>
         <td align="left"><b>Name</b></td>
         <td align="left"><b>Value</b></td>
        </tr>
  
        <xsl:for-each select="profile:environmentinfo/profile:request-parameters/profile:parameter">
         <tr>
          <td><xsl:value-of select="@profile:name"/></td>
          <td><xsl:value-of select="@profile:value"/></td>
         </tr>
        </xsl:for-each>
  
        <tr>
         <td>&#160;</td>
         <td>&#160;</td>
        </tr>
  
       </font>
      </table>
      
     </column>
  
    </row>
  
    <row>
  
     <column title="Session attributes">
  
      <table width="100%" cellspacing="0" cellpadding="5" align="center">
       <font size="+0" face="arial,helvetica,sanserif" color="#000000">
  
        <tr>
         <td align="left"><b>Name</b></td>
         <td align="left"><b>Value</b></td>
        </tr>
    
        <xsl:for-each select="profile:environmentinfo/profile:session-attributes/profile:attribute">
         <tr>
          <td><xsl:value-of select="@profile:name"/></td>
          <td><xsl:value-of select="@profile:value"/></td>
         </tr>
        </xsl:for-each>
  
        <tr>
         <td>&#160;</td>
         <td>&#160;</td>
        </tr>
  
       </font>
      </table>
  
     </column>
    </row>
  
   </xsl:template>
  
   <xsl:template match="profile:component" mode="fragment">
  
    <row>
     <column>
      <xsl:attribute name="title">
       <xsl:value-of select="@profile:role"/>
       <xsl:if test="@profile:source">
        (<xsl:value-of select="@profile:source"/>)
       </xsl:if>
      </xsl:attribute>
  
      <xsl:choose>
       <xsl:when test="profile:fragment">
        <xsl:for-each select="profile:fragment">
         <xsl:apply-templates mode="xml2html"/>
        </xsl:for-each>
       </xsl:when>
       <xsl:otherwise>
        <b>Fragment not available!</b>
       </xsl:otherwise>
      </xsl:choose>
  
     </column>
    </row>
  
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/test.xml
  
  Index: test.xml
  ===================================================================
  <hello-world>
   <title>Title of the example</title>
   <some-text>This is a litte test file!</some-text>
   <some-text>And will transformed into a HTML page.</some-text>
  </hello-world>
  
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/test2page.xsl
  
  Index: test2page.xsl
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet version="1.0"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
   <xsl:template match="hello-world">
    <page>
     <tab title="Overview" href="welcome"/>
  
     <row>
      <column title="{title}">
       <xsl:apply-templates select="some-text"/>
      </column>
     </row>
   
    </page>
   </xsl:template>
  
   <xsl:template match="some-text">
    <p>
     <xsl:apply-templates/>
    </p>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/xml2html.css
  
  Index: xml2html.css
  ===================================================================
                BODY {font:x-small 'Verdana'; margin-right:1.5em}
                  .c  {cursor:hand}
                  .b  {color:red; font-family:'Courier New'; font-weight:bold;
                       text-decoration:none}
                  .e  {margin-left:1em; text-indent:-1em; margin-right:1em}
                  .k  {margin-left:1em; text-indent:-1em; margin-right:1em}
                  .t  {color:#990000}
                  .xt {color:#990099}
                  .ns {color:red}
                  .dt {color:green}
                  .m  {color:blue}
                  .tx {font-weight:bold}
                  .db {text-indent:0px; margin-left:1em; margin-top:0px;
                       margin-bottom:0px;padding-left:.3em;
                       border-left:1px solid #CCCCCC; font:small Courier}
                  .di {font:small Courier}
                  .d  {color:blue}
                  .pi {color:blue}
                  .cb {text-indent:0px; margin-left:1em; margin-top:0px;
                       margin-bottom:0px;padding-left:.3em; font:small Courier;
                       color:#888888}
                  .ci {font:small Courier; color:#888888}
                  PRE {margin:0px; display:inline}
  
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/xml2html.js
  
  Index: xml2html.js
  ===================================================================
  //MSIE
  function f(e){
  	if (e.className=="ci") {
  		if (e.children(0).innerText.indexOf("\n")>0)
  			fix(e,"cb");
  	}
  	if (e.className=="di") {
  		if (e.children(0).innerText.indexOf("\n")>0)
  			fix(e,"db");
  	} e.id="";
  }
  function fix(e,cl){
  	e.className=cl;
  	e.style.display="block";
  	j=e.parentElement.children(0);
  	j.className="c";
  	k=j.children(0);
  	k.style.visibility="visible";
  	k.href="#";
  }
  function ch(e) {
  	mark=e.children(0).children(0);
  	if (mark.innerText=="+") {
  		mark.innerText="-";
  		for (var i=1;i<e.children.length;i++) {
  			e.children(i).style.display="block";
  		}
  	}
  	else if (mark.innerText=="-") {
  		mark.innerText="+";
  		for (var i=1;i<e.children.length;i++) {
  			e.children(i).style.display="none";
  		}
  	}
  }
  function ch2(e) {
  	mark=e.children(0).children(0);
  	contents=e.children(1);
  	if (mark.innerText=="+") {
  		mark.innerText="-";
  		if (contents.className=="db"||contents.className=="cb") {
  			contents.style.display="block";
  		}
  		else {
  			contents.style.display="inline";
  		}
  	}
  	else if (mark.innerText=="-") {
  		mark.innerText="+";
  		contents.style.display="none";
  	}
  }
  function cl() {
  	e=window.event.srcElement;
  	if (e.className!="c") {
  		e=e.parentElement;
  		if (e.className!="c") {
  			return;
  		}
  	}
  	e=e.parentElement;
  	if (e.className=="e") {
  		ch(e);
  	}
  	if (e.className=="k") {
  		ch2(e);
  	}
  }
  
  //mozilla
  function moz_f(){
  	clean=document.getElementsByName('clean');
  	for(i=0; i<clean.length;i++)
  	{
  		e = clean[i];
  		if (e.className=="ci") {
  			if (e.childNodes[1].childNodes[0].nodeValue.indexOf("\n")>0)
  				moz_fix(e,"cb");
  		}
  		if (e.className=="di") {
  			if (e.childNodes[1].nodeValue.indexOf("\n")>0)
  				moz_fix(e,"db");
  		}
  	}
  }
  function moz_fix(e,cl){
  	e.className=cl;
  	e.style.display="block";
  	j=e.parentNode.childNodes[1];
  	j.className="c";
  	k=j.childNodes[0];
  	k.style.visibility="visible";
  	k.href="#";
  }
  function moz_ch(e) {
  	mark = e.childNodes[1].childNodes[1];
  
  	if (mark.childNodes[0].nodeValue=="+") {
  		mark.childNodes[0].nodeValue="-";
  		for (var i=2;i<e.childNodes.length;i++) {
  			if(e.childNodes[i].nodeName != "#text")
  				e.childNodes[i].style.display="block";
  		}
  	}
  	else if (mark.childNodes[0].nodeValue=="-") {
  		mark.childNodes[0].nodeValue="+";
  		for (var i=2;i<e.childNodes.length;i++) {
  			if(e.childNodes[i].nodeName != "#text")
  				e.childNodes[i].style.display="none";
  		}
  	}
  }
  function moz_ch2(e) {
  	mark = e.childNodes[1].childNodes[0];
  	contents=e.childNodes[2];
  	if (mark.childNodes[0].nodeValue=="+") {
  		mark.childNodes[0].nodeValue="-";
  		if (contents.className=="db"||contents.className=="cb") {
  			contents.style.display="block";
  		}
  		else {
  			contents.style.display="inline";
  		}
  	}
  	else if (mark.childNodes[0].nodeValue=="-") {
  		mark.childNodes[0].nodeValue="+";
  		contents.style.display="none";
  	}
  }
  
  function moz_cl(evnt) {
  	e=evnt.target.parentNode;
  
  	if (e.className != "c") {
  		e=e.parentNode
  		if (e.className!="c") {
  			return;
  		}
  	}
  	e=e.parentNode
  	if (e.className=="e") {
  		moz_ch(e);
  	}
  	if (e.className=="k") {
  		moz_ch2(e);
  	}
  }
  
  function ex(){}
  function h(){window.status=" ";}
  if(document.all)
  	document.onclick=cl;
  else if(document.getElementById)
  	document.onclick=moz_cl;
  
  
  
  1.1                  xml-cocoon2/src/webapp/samples/profiler/xml2html.xsl
  
  Index: xml2html.xsl
  ===================================================================
  <!--
   |
   | XSLT REC Compliant Version of IE5 Default Stylesheet
   |
   | Original version by Jonathan Marsh (jmarsh@microsoft.com)
   | http://msdn.microsoft.com/xml/samples/defaultss/defaultss.xsl
   |
   | Conversion to XSLT 1.0 REC Syntax by Steve Muench (smuench@oracle.com)
   | Added script support by Andrew Timberlake (andrew@timberlake.co.za)
   |
   +-->
  <xsl:stylesheet version="1.0" 
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
     <xsl:template match="processing-instruction()" mode="xml2html">
        <DIV class="e">
           <SPAN class="b">
           		<xsl:call-template name="nbsp-ref"/>
           </SPAN>
           <SPAN class="m">
              <xsl:text>&lt;?</xsl:text>
           </SPAN>
           <SPAN class="pi">
              <xsl:value-of select="name(.)"/>
              <xsl:value-of select="."/>
           </SPAN>
           <SPAN class="m">
              <xsl:text>?></xsl:text>
           </SPAN>
        </DIV>
     </xsl:template>
  
     <xsl:template match="processing-instruction('xml')" mode="xml2html">
        <DIV class="e">
           <SPAN class="b">
              <xsl:call-template name="nbsp-ref"/>
           </SPAN>
           <SPAN class="m">
              <xsl:text>&lt;?</xsl:text>
           </SPAN>
           <SPAN class="pi">
              <xsl:text>xml </xsl:text>
              <xsl:for-each select="@*">
                 <xsl:value-of select="name(.)"/>
                 <xsl:text>="</xsl:text>
                 <xsl:value-of select="."/>
                 <xsl:text>" </xsl:text>
              </xsl:for-each>
           </SPAN>
           <SPAN class="m">
              <xsl:text>?></xsl:text>
           </SPAN>
        </DIV>
     </xsl:template>
  
     <xsl:template match="@*" mode="xml2html">
        <SPAN>
           <xsl:attribute name="class">
              <xsl:if test="xsl:*/@*">
                <xsl:text>x</xsl:text>
              </xsl:if>
              <xsl:text>t</xsl:text>
           </xsl:attribute>
           <xsl:value-of select="name(.)"/>
        </SPAN>
        <SPAN class="m">="</SPAN>
        <B>
           <xsl:value-of select="."/>
        </B>
        <SPAN class="m">"</SPAN>
        <xsl:if test="position()!=last()">
           <xsl:text> </xsl:text>
        </xsl:if>
     </xsl:template>
  
     <xsl:template match="text()" mode="xml2html">
        <DIV class="e">
           <SPAN class="b"> </SPAN>
           <SPAN class="tx">
              <xsl:value-of select="."/>
           </SPAN>
        </DIV>
     </xsl:template>
  
     <xsl:template match="comment()" mode="xml2html">
        <DIV class="k">
           <SPAN>
              <A STYLE="visibility:hidden" class="b" onclick="return false" onfocus="h()">-</A>
              <SPAN class="m">
                 <xsl:text>&lt;!--</xsl:text>
              </SPAN>
           </SPAN>
           <SPAN class="ci" id="clean">
              <PRE>
                 <xsl:value-of select="."/>
              </PRE>
           </SPAN>
           <SPAN class="b">
              <xsl:call-template name="nbsp-ref"/>
           </SPAN>
           <SPAN class="m">
              <xsl:text>--></xsl:text>
           </SPAN>
           <SCRIPT>if(document.all)f(clean);</SCRIPT>
        </DIV>
     </xsl:template>
  
     <xsl:template match="*" mode="xml2html">
        <DIV class="e">
           <DIV STYLE="margin-left:1em;text-indent:-2em">
              <SPAN class="b">
              		<xsl:call-template name="nbsp-ref"/>
              </SPAN>
              <SPAN class="m">&lt;</SPAN>
              <SPAN>
                 <xsl:attribute name="class">
                    <xsl:if test="xsl:*">
                       <xsl:text>x</xsl:text>
                    </xsl:if>
                    <xsl:text>t</xsl:text>
                 </xsl:attribute>
                 <xsl:value-of select="name(.)"/>
                 <xsl:if test="@*">
                    <xsl:text> </xsl:text>
                 </xsl:if>
              </SPAN>
              <xsl:apply-templates select="@*" mode="xml2html"/>
              <SPAN class="m">
                 <xsl:text>/></xsl:text>
              </SPAN>
           </DIV>
        </DIV>
     </xsl:template>
  
     <xsl:template match="*[node()]" mode="xml2html">
        <DIV class="e">
           <DIV class="c">
              <A class="b" href="#" onclick="return false" onfocus="h()">-</A>
              <SPAN class="m">&lt;</SPAN>
              <SPAN>
                 <xsl:attribute name="class">
                    <xsl:if test="xsl:*">
                       <xsl:text>x</xsl:text>
                    </xsl:if>
                    <xsl:text>t</xsl:text>
                 </xsl:attribute>
                 <xsl:value-of select="name(.)"/>
                 <xsl:if test="@*">
                    <xsl:text> </xsl:text>
                 </xsl:if>
              </SPAN>
              <xsl:apply-templates select="@*" mode="xml2html"/>
              <SPAN class="m">
                 <xsl:text>></xsl:text>
              </SPAN>
           </DIV>
           <DIV>
              <xsl:apply-templates mode="xml2html"/>
              <DIV>
                 <SPAN class="b">
              			<xsl:call-template name="nbsp-ref"/>
                 </SPAN>
                 <SPAN class="m">
                    <xsl:text>&lt;/</xsl:text>
                 </SPAN>
                 <SPAN>
                    <xsl:attribute name="class">
                       <xsl:if test="xsl:*">
                          <xsl:text>x</xsl:text>
                       </xsl:if>
                       <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                 </SPAN>
                 <SPAN class="m">
                    <xsl:text>></xsl:text>
                 </SPAN>
              </DIV>
           </DIV>
        </DIV>
     </xsl:template>
  
     <xsl:template match="*[text() and not (comment() or processing-instruction())]" mode="xml2html">
        <DIV class="e">
           <DIV STYLE="margin-left:1em;text-indent:-2em">
              <SPAN class="b">
              		<xsl:call-template name="nbsp-ref"/>
              </SPAN>
              <SPAN class="m">
                 <xsl:text>&lt;</xsl:text>
              </SPAN>
              <SPAN>
                 <xsl:attribute name="class">
                    <xsl:if test="xsl:*">
                       <xsl:text>x</xsl:text>
                    </xsl:if>
                    <xsl:text>t</xsl:text>
                 </xsl:attribute>
                 <xsl:value-of select="name(.)"/>
                 <xsl:if test="@*">
                    <xsl:text> </xsl:text>
                 </xsl:if>
              </SPAN>
              <xsl:apply-templates select="@*" mode="xml2html"/>
              <SPAN class="m">
                 <xsl:text>></xsl:text>
              </SPAN>
              <SPAN class="tx">
                 <xsl:value-of select="."/>
              </SPAN>
              <SPAN class="m">&lt;/</SPAN>
              <SPAN>
                 <xsl:attribute name="class">
                    <xsl:if test="xsl:*">
                       <xsl:text>x</xsl:text>
                    </xsl:if>
                    <xsl:text>t</xsl:text>
                 </xsl:attribute>
                 <xsl:value-of select="name(.)"/>
              </SPAN>
              <SPAN class="m">
                 <xsl:text>></xsl:text>
              </SPAN>
           </DIV>
        </DIV>
     </xsl:template>
  
     <xsl:template match="*[*]" priority="20" mode="xml2html">
        <DIV class="e">
           <DIV STYLE="margin-left:1em;text-indent:-2em" class="c">
              <A class="b" href="#" onclick="return false" onfocus="h()">-</A>
              <SPAN class="m">&lt;</SPAN>
              <SPAN>
                 <xsl:attribute name="class">
                    <xsl:if test="xsl:*">
                       <xsl:text>x</xsl:text>
                    </xsl:if>
                    <xsl:text>t</xsl:text>
                 </xsl:attribute>
                 <xsl:value-of select="name(.)"/>
                 <xsl:if test="@*">
                    <xsl:text> </xsl:text>
                 </xsl:if>
              </SPAN>
              <xsl:apply-templates select="@*" mode="xml2html"/>
              <SPAN class="m">
                 <xsl:text>></xsl:text>
              </SPAN>
           </DIV>
           <DIV>
              <xsl:apply-templates mode="xml2html"/>
              <DIV>
                 <SPAN class="b">
              			<xsl:call-template name="nbsp-ref"/>
                 </SPAN>
                 <SPAN class="m">
                    <xsl:text>&lt;/</xsl:text>
                 </SPAN>
                 <SPAN>
                    <xsl:attribute name="class">
                       <xsl:if test="xsl:*">
                          <xsl:text>x</xsl:text>
                       </xsl:if>
                       <xsl:text>t</xsl:text>
                    </xsl:attribute>
                    <xsl:value-of select="name(.)"/>
                 </SPAN>
                 <SPAN class="m">
                    <xsl:text>></xsl:text>
                 </SPAN>
              </DIV>
           </DIV>
        </DIV>
     </xsl:template>
  
     <xsl:template name="nbsp-ref">
        <xsl:text>&#160;</xsl:text>
     </xsl:template>
  
  </xsl:stylesheet>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org