You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general-cvs@xml.apache.org by cz...@apache.org on 2001/11/07 16:44:19 UTC

cvs commit: xml-site/targets/cocoon2/developing/resources script.js

cziegeler    01/11/07 07:44:19

  Added:       targets/cocoon2/ctwig ctwig-basic01.html ctwig-basic02.html
                        ctwig-basic03.html ctwig-contributing.html
                        ctwig-gettingstarted.html ctwig-installing.html
                        ctwig-resources.html ctwig-transformations.html
                        ctwig-why.html index.html
               targets/cocoon2/ctwig/ctwig/graphics
                        ctwig-basic02-header.jpg_label=cTwIG - Cocoon Two
                        Idiots Guide - Basic XSP Processing.jpg
                        ctwig-contributing-header.jpg_label=cTwIG - Cocoon
                        Two Idiots Guide - Contributing.jpg
                        ctwig-gettingstarted-header.jpg_label=cTwIG -
                        Cocoon Two Idiots Guide - Getting Started.jpg
                        ctwig-installing-header.jpg_label=cTwIG - Cocoon
                        Two Idiots Guide - Installing.jpg
                        ctwig-resources-header.jpg_label=cTwIG - Cocoon Two
                        Idiots Guide - Resources.jpg
                        ctwig-transformations-header.jpg_label=cTwIG -
                        Cocoon Two Idiots Guide - Transformations.jpg
                        ctwig-why-header.jpg_label=cTwIG - Cocoon Two
                        Idiots Guide - Why.jpg index-header.jpg_label=cTwIG
                        - Cocoon Two Idiots Guide.jpg
               targets/cocoon2/ctwig/graphics Contributing-label.jpg
                        Contributing-label_over.jpg Getting
                        Started-label.jpg Getting Started-label_over.jpg
                        Home-label.jpg Home-label_over.jpg
                        Installing-label.jpg Installing-label_over.jpg
                        Main-label.jpg Main-label_over.jpg
                        Resources-label.jpg Resources-label_over.jpg
                        Transformations-label.jpg
                        Transformations-label_over.jpg Why-label.jpg
                        Why-label_over.jpg cTwIG-separator.jpg
               targets/cocoon2/ctwig/images 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 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 join.gif
                        line.gif logo.gif note.gif right.gif void.gif
               targets/cocoon2/ctwig/resources script.js
               targets/cocoon2/ctwig/sample/transformations/basic01
                        basic01-01.xml.txt basic01-01.xsl.txt
               targets/cocoon2/ctwig/sample/transformations/basic02
                        basic02-01.xml.txt
               targets/cocoon2/ctwig/sample/transformations/basic03
                        basic03-01.xml.txt
               targets/cocoon2/ctwig/sample/transformations/logicsheet
                        ctwig.xsl.txt
               targets/cocoon2/developing avalon.html datasources.html
                        extending.html httprequest.html index.html
                        parent-component-manager.html
               targets/cocoon2/developing/developing/graphics
                        avalon-header.jpg_label=Avalon for Apache
                        Cocoon.jpg datasources-header.jpg_label=Using
                        Databases in Apache Cocoon.jpg
                        extending-header.jpg_label=Extending Apache
                        Cocoon.jpg httprequest-header.jpg_label=Request
                        Processing.jpg index-header.jpg_label=Developer
                        Documentation.jpg
                        parent-component-manager-header.jpg_label=Parent
                        Component Manager.jpg
               targets/cocoon2/developing/graphics API (Javadoc)-label.jpg
                        API (Javadoc)-label_over.jpg Avalon-label.jpg
                        Avalon-label_over.jpg Concepts-separator.jpg
                        Extending C2-label.jpg Extending C2-label_over.jpg
                        Flow-label.jpg Flow-label_over.jpg
                        Java-separator.jpg Main-label.jpg
                        Main-label_over.jpg Parent CM-label.jpg Parent
                        CM-label_over.jpg Using Databases-label.jpg Using
                        Databases-label_over.jpg
               targets/cocoon2/developing/images 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 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
                        get_hello_html.png initialize_Cocoon.png join.gif
                        line.gif logo.gif note.gif right.gif void.gif
               targets/cocoon2/developing/resources script.js
  Log:
  Added new books
  
  Revision  Changes    Path
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-basic01.html
  
  Index: ctwig-basic01.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Basic XML/XSL Transformation</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic XML/XSL Transformation" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-basic01-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XML/XSL%20Transformation.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Transformations</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Basic XML/XSL Transformation</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">IMHO the most basic thing you will want to do is perform an XSL transformation on an XML file.  A typical example of this is to render some XML as an HTML page using an XSL stylesheet.</p>
  				
  <p align="justify">Take the following XML file (<a target="_blank" href="sample/transformations/basic01/basic01-01.xml.txt">basic01-01.xml</a>):</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;?xml version="1.0"&gt;
    &lt;page&gt;
      &lt;title&gt;Basic XML/XSL Transformation Example - BASIC01-01.XML&lt;/title&gt;
      &lt;greeting&gt;Hello World&lt;/greeting&gt;
    &lt;/page&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">And use the following XSL to transform it to some HTML (<a target="_blank" href="sample/transformations/basic01/basic01-01.xsl.txt">basic01-01.xsl</a>):</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;?xml version="1.0"?&gt;
    &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
  
    &lt;xsl:template match="page"&gt;
      &lt;html&gt;
        &lt;head&gt;
          &lt;title&gt;&lt;xsl:value-of select="title"/&gt;&lt;/title&gt;
        &lt;/head&gt;
        &lt;body&gt;
          &lt;h1&gt;&lt;xsl:value-of select="title"/&gt;&lt;/h1&gt;
          &lt;p&gt;&lt;xsl:value-of select="greeting"/&gt;&lt;/p&gt;
        &lt;/body&gt;
      &lt;/html&gt;
    &lt;/xsl:template&gt;
  
  &lt;/xsl:stylesheet&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  
  				
  <p align="justify">Hopefully the basic XSL makes sense however the key to getting this served is to change setting in the sitemap.xmap file.  It is this file that determines what and how gets served.  The sitemap is very powerful and can be configured to do some very efficient things, however we will start with slightly longwinded but simple examples so the concepts are there to be built on.</p>
  				
  <p align="justify">You can add sections into sitemap.xmap file that comes with C2.  This has things called "pipelines" already set up.  To be able to see the result of transforming the above files together you just need to add the following code into the last "pipeline" section:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;map:match pattern="ctwig/basic01-01.xml"&gt; 
      &lt;map:generate type="file" src="ctwig/basic01-01.xml"/&gt; 
      &lt;map:transform type="xslt" src="ctwig/basic01-01.xsl"/&gt; 
      &lt;map:serialize/&gt; 
    &lt;/map:match&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">What this construct does is to tell C2 to do something when it recieves a request for <b><code><font face="courier, monospaced">ctwig/basic01-01.xml</font></code></b>.  The "something" that C2 will do is pass the <b><code><font face="courier, monospaced">ctwig/basic01-01.xml</font></code></b> file through a "file" generator.  This basically parses the XML.  The result parsed stream then gets transformed using <b><code><font face="courier, monospaced">ctwig/basic01-01.xsl</font></code></b> and rendered.</p>
  				
  <p align="justify">Calling <a target="_blank" href="http://localhost:8080/cocoon/ctwig/basic01-01.xml">http://localhost:8080/cocoon/ctwig/basic01-01.xml</a> will result in a simple HTML page being rendered.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Simple Wildcards in the Sitemap File</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">The above sitemap map construct works but you can imagine the overhead if we had to add this code for every single XML/XSL transformation we wanted to do.  C2 makes things easier by allowing wildcards in the pattern matching argument.  If the above section is replaced with the following:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;map:match pattern="ctwig/*.xml"&gt; 
      &lt;map:generate type="file" src="ctwig/{1}.xml"/&gt; 
      &lt;map:transform type="xslt" src="ctwig/{1}.xsl"/&gt; 
      &lt;map:serialize/&gt; 
    &lt;/map:match&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">then C2 will substitutue the <b><code><font face="courier, monospaced">{1}</font></code></b> meta-tag with the whatever is in the wildcard section of the request.  This means that is every XML file has a corresponding XSL file with the same filename (before the extension) then requesting the XML file will result in it being served.</p>
  				
  <p align="justify">This also allows us to do a kind of request re-writing function.  Take the following sitemap construct:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;map:match pattern="ctwig/*.html"&gt; 
      &lt;map:generate type="file" src="ctwig/{1}.xml"/&gt; 
      &lt;map:transform type="xslt" src="ctwig/{1}.xsl"/&gt; 
      &lt;map:serialize/&gt; 
    &lt;/map:match&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">This allows us to request an HTML file from the ctwig folder.  What will actually happen though is that C2 willtake the wildcard portion and use that to look for XML and XSL files with the same filename and use them to generate the response stream contents.  For example; <a target="_blank" href="http://localhost:8080/cocoon/ctwig/basic01-01.html">http://localhost:8080/cocoon/ctwig/basic01-01.html</a> will cause C2 to look for <b><code><font face="courier, monospaced">ctwig/basic01-01.xml</font></code></b> and transform it with <b><code><font face="courier, monospaced">ctwig/basic01-01.xsl</font></code></b> to produce the final page.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Using a Single XSL File</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Consider a scenario where you have multiple XML files which are you wish to transform in a common fashion (for example into HTML).  If your XML has been designed well and follows a common DTD there is no reason why one XSL file can transform all the XML files.  Many of the C2 examples do this, using one, single, common XSL file for rendering all the examples to HTML and another for transforming them into a source code view.  This again is achieved using the sitemap file with a construct similar to the following:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;map:match pattern="ctwig/*.html"&gt; 
      &lt;map:generate type="file" src="ctwig/{1}.xml"/&gt; 
      &lt;map:transform type="xslt" src="ctwig/file2html.xsl"/&gt; 
      &lt;map:serialize/&gt; 
    &lt;/map:match&gt;
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">Here, a request for an HTML page will look for a corresponding XML file and transform it using <b><code><font face="courier, monospaced">ctwig/file2html.xsl</font></code></b>.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
    
  <p>
  <table border="0" cellpadding="0" cellspacing="3" width="100%">
  <tr>
  <td valign="top" width="28"><img alt="Note" border="0" hspace="0" vspace="0" height="29" width="28" src="images/note.gif"></td><td valign="top"><font color="#000000" face="arial,helvetica,sanserif" size="-1"><i>TODO: PROVIDE AN EXAMPLE.</i></font></td>
  </tr>
  </table>
  </p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-basic02.html
  
  Index: ctwig-basic02.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Basic XSP Processing</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic XSP Processing" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-basic02-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XSP%20Processing.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Transformations</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Basic XSP Processing</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">XSP allows you to incorporate logic into the XML file thus providing capabilities analogous to ASP, JSP, CFM, PHP etc.  The advantage is that the logic is not tied to the rendering since a stylesheet is separately applied.  The results of the code are wrapped up in a tag which is what can be referenced in the stylesheet.</p>
  				
  <p align="justify">Take the following XML file (<a target="_blank" href="sample/transformations/basic02/basic02-01.xml.txt">basic02-01.xml</a>):</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;?xml version="1.0"?&gt;
    &lt;xsp:page 
  	  xmlns:xsp="http://apache.org/xsp"
    &gt;
  
      &lt;page&gt;
        &lt;xsp:logic&gt;
          String msg = "Hello world!";
        &lt;/xsp:logic&gt;
  
        &lt;title&gt;
          Basic XSP Processing Example - BASIC02-01.XML
      	&lt;/title&gt;
  
        &lt;greeting&gt;
          &lt;xsp:expr&gt;msg&lt;/xsp:expr&gt;
        &lt;/greeting&gt;
      &lt;/page&gt;
    &lt;/xsp:page&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">We have now wrapped the previous file up with an xsp:page tag and added some logic that assigns "Hello World" to a string and uses the xsp:expr tag to insert that in place of the previous text in the greeting tag.   <i>Please note that this example uses "http://apache.org/xsp" as the namespace.  This is different to older C1 based examples and should be used instead.  If you do not then this examples may not work and any logicsheet example definitely will not work.</i>
  </p>
  				
  <p align="justify">To render this we need to tell Cocoon that this file is an XSP file.  This is easier if we either name the file as .xsp and/or put it in an XSP folder.  For now just put it in {TOMCAT_HOME}\webapps\cocoon\ctwig\xsp, keeping the .xml extension.  You can now add the following to the sitemap.xmap file:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;map:match pattern="ctwig/xsp/*"&gt; 
      &lt;map:generate type="serverpages" src="ctwig/xsp/{1}"/&gt; 
      &lt;map:transform type="xslt" src="ctwig/basic01-01.xsl"/&gt; 
      &lt;map:serialize/&gt; 
    &lt;/map:match&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">What this does is to force any file in the ctwig/xsp folder to be processed using the "serverpages" (XSP) generator, then rendered with the same XSL stylesheet as in the Basic01 example.  Note that we are telling C2 that the stylesheet is in the ctwig folder.</p>
  				
  <p align="justify">You can test this code by calling <a target="_blank" href="http://localhost:8080/cocoon/ctwig/xsp/basic02-01.xml">http://localhost:8080/cocoon/ctwig/xsp/basic02-01.xml</a>
  </p>
  				
  <p align="justify">The one downside with this approach is that you can end up with XML files that contain lots of logic along with the rest of the data.  This becomes as confusing to read as when the logic is mixed with the presentation so does not really solve all the issues that are inherent to the ASP/JSP type approach.  The solution is to use <a href="ctwig-basic03.html">logicsheets</a>.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-basic03.html
  
  Index: ctwig-basic03.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Basic XSP/Logicsheet Processing</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Basic XSP/Logicsheet Processing" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-basic03-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Basic%20XSP/Logicsheet%20Processing.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Transformations</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Basic XSP/Logicsheet Processing</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">By allowing you to wrap logic up in the XML page, C2 has given us a route to remove the logic from the presentation yet get the advantages of having a dynamic pages serving technology.  The only issue is that it effectively just shifts the maintenance headache into yet another part of the architecture.  The C2 developers have been dead bright however and incorporated the idea of a logicsheet to solve this problem.</p>
  				
  <p align="justify">A logicsheet allows you to take the logic out of the XSP page and put it into a seperate stylesheet.  You then identify the logic and reference the identifier from your XML file.  C2, using basic XML/XSL transforming logic, then takes care of replacing the reference to the logic in the XML with the actual logic from the logicsheet when the XSP file is processed.  The resultant XML stream can then be rendered using an XSL stylesheet as normal.  The main benefits are that:</p>
  				
  <blockquote>
  <ul>
  					
  <li>XML data files are not made confused with the addition of complex logic</li>
  					
  <li>Libraries of logic can be built up and reused</li>
  					
  <li>Maintenance of logic is made easier</li>
  					
  <li>It is really cool to do!</li>
  				
  </ul>
  </blockquote>
  				
  <p align="justify">Take the following example XSP page (<a target="_blank" href="sample/transformations/basic03/basic03-01.xml.txt">basic03-01.xml</a>) that refers to a logicsheet:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;?xml version="1.0"?&gt;
  &lt;xsp:page 
  	xmlns:xsp="http://apache.org/xsp"
    xmlns:ctwig="http://www.pigbite.com/xsl"
  &gt;
  
  &lt;page&gt;
    &lt;title&gt;
      Basic XSP/Logicsheet Processing Example - BASIC03-01.XML
    &lt;/title&gt;
    &lt;greeting&gt;
      &lt;ctwig:greeting/&gt;
    &lt;/greeting&gt;
  &lt;/page&gt;
  &lt;/xsp:page&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">The only difference between this and the previous example is that we have added a new namespace reference to the logicsheet (xmlns:ctwig="http://www.pigbite.com/xsl") and replace the logic with a reference to the an id, effectively analogous to a command or function call, in the the logicsheet (&lt;ctwig:greeting/&gt;).  Whatever ctwig:greeting does will replace the reference, which is sitting inside the &lt;greeting&gt; tag.</p>
  				
  <p align="justify">The logicsheet looks like this (<a target="_blank" href="sample/transformations/logicsheet/ctwig.xsl.txt">ctwig.xsl</a>):</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;?xml version="1.0"?&gt;
  &lt;xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:ctwig="http://www.pigbite.com/xsl"
    version="1.0"&gt;
  
  &lt;xsl:template match="ctwig:greeting"&gt;
   
    &lt;xsp:logic&gt;
      String msg = "Hello World";
    &lt;/xsp:logic&gt;
  
    &lt;xsp:expr&gt;msg&lt;/xsp:expr&gt;
  &lt;/xsl:template&gt;
  
  &lt;xsl:template match="@*|node()" priority="-1"&gt;
   &lt;xsl:copy&gt;
    &lt;xsl:apply-templates select="@*|node()"/&gt;
   &lt;/xsl:copy&gt;
  &lt;/xsl:template&gt;
  
  &lt;/xsl:stylesheet&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">You will note that the logicsheet has a reference to the ctwig namespace.  This <b>must</b> match the namespace used in the XSP page.  The logicsheet uses a standard XSL template match to find the reference to "ctwig:greeting" and replace it with the logic.</p>
  				
  <p align="justify">
  <i>Again, please note that this example uses "http://apache.org/xsp" as the XSP namespace.  This is different to older C1 based examples and should be used instead.  If you do not then any logicsheet example definitely will not work.</i>
  </p>
  				
  <p align="justify">To make this work firstly make sure that basic3-01.xml in the {TOMCAT_HOME}\webapps\cocoon\ctwig\xsp folder.  This will allow it to be captured by the same sitemap command that is used in the previous examples.  Secondly, make sure that the ctwig logicsheet (ctwig.xsl) is in {TOMCAT_HOME}/webapps/cocoon/WEB-INF/classes/com/pigbite/logicsheets folder.  The final thing to do is to add a reference to the logicsheet source in to C2 so it knows where to go and find it.  This is done by adding the following construct to {TOMCAT_HOME}\webapps\cocoon\cocoon.xconf:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    &lt;builtin-logicsheet&gt;
      &lt;parameter name="prefix" value="ctwig"/&gt;
      &lt;parameter name="uri" value="http://www.pigbite.com/xsl"/&gt;
      &lt;parameter name="href" value="resource://com/pigbite/logicsheets/ctwig.xsl"/&gt;
    &lt;/builtin-logicsheet&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">Here we are using the "resource:" protocol to access the logicsheet.  This logicsheet could sit inside a JAR file that is referenced on the classpath, however it can also sit under the classes folder in the WEB-INF folder, as is the case in this example.</p>
  				
  <p align="justify">You can also use a "file:" protocol in the form:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;parameter
     name="href"
     value="file:///{TOMCAT_HOME}/webapps/cocoon/ctwig/logicsheet/ctwig.xsl"&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">Obviously replace {TOMCAT_HOME} with whatever the actual path is on your machine (e.g. d:\java\tomcat).  Note the use of three forward slashes after the "file:".  This is so that it properly refers to the root, you still have to include the drive letter however.</p>
  				
  <p align="justify">Again, the URI parameter <b>must</b> be the same as the namespace declarations for everything to get properly resolved.</p>
  				
  <p align="justify">To test this code call <a target="_blank" href="http://localhost:8080/cocoon/ctwig/xsp/basic03-01.xml">http://localhost:8080/cocoon/ctwig/xsp/basic03-01.xml</a>
  </p>
  
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-contributing.html
  
  Index: ctwig-contributing.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Contributing</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Contributing" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-contributing-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Contributing.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Contributing</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">I am more than happy to recieve amendments, improvements and so on to these pages.  I want the information to be as up to date and as accurate as possible so please do not hesitate to let me know if you find anything wrong.  I would also be really pleased to receive submissions of more tutorial documentation for C2.  I hope that sections will develop for areas such as the sitemap, configuration tutorials, development techniques and so on which will require reasonable effort to develop however I think it would also be good to take up the suggestion of a FAQ based on some of the common questions that come up on the list.  I will start this off soon and try and add to it as quickly as possible.</p>
  			
  <p align="justify">I have written these pages in the xdocs format, thus it would be really useful if any contributions are in that format (see <a href="http://xml.apache.org/cocoon2/contrib.html">Contributing</a> for explanation of the diff format and CVS).  If you want to see examples of the markup required please check the files in the C2 xdocs folder that comes as part of the distribution.  The DTD is in xdocs/dtd/document-v10.dtd.  I am more than happy to take contributions in email, MS Word, PDF, TXT etc however any conversion may delay the publishing process.</p>
  			
  <p align="justify">Please email <a href="mailto:ctwig@pigbite.com">ctwig@pigbite.com</a> with your comments, ideas and submissions.</p>
  			
  <p align="justify">Many thanks - Jez</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-gettingstarted.html
  
  Index: ctwig-gettingstarted.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Getting Started</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Getting Started" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-gettingstarted-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Getting%20Started.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Getting Started</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>What is Cocoon?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Cocoon is a framework for delivering web sites and applications that are based around XML technologies.  In addition to being able to do XML and XSL transformations, it provides it's own page logic templating system called XSP which is basically analogous to ASP, JSP, PHP, CFM etc.  Of course this is XML based as well.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Why use Cocoon?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">For me it's because it really can help you develop applications that have content, layout and logic truly separated.  ASP, JSP etc are all OK but for any one (like me) who has had to develop and support multi-lingual, branded, customisable and highly dynamic sites, they just do not cut the mustard.  On top of that it is free, supported by proven open source development principles and augments other frameworks and platforms such as EJB.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>What do I need to make it work?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Primarily you need a servlet engine.  This would be something like (but not exclusively) <a target="_blank" href="http://jakarta.apache.org/tomcat/index.html">Tomcat</a>, <a target="_blank" href="http://www.jrun.com">JRun</a> or <a target="_blank" href="http://www.weblogic.com">Weblogic</a>.  This is because Cocoon is a servlet and needs the servlet engine.  Most servlet engines provide a web (HTTP) server which is fine for development purposes but in most production environments you would want to sit the servlet engine on a web server such as <a href="http://www.apache.org#">Apache</a> or IIS.  The only other usual requirement is the <a href="http://java.sun.com#">Java SDK</a>.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Where do I get it from?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Go to <a target="_blank" href="http://xml.apache.org/cocoon2/">http://www.apache.org/cocoon2/</a> and download it from there.  The latest distribution for any operating system
  				<a target="_blank" href="http://xml.apache.org/cocoon2/dist/Cocoon-2.0rc2.zip">Cocoon 2 Release Candidate 2</a>.  This file contains the Cocoon code, samples, documentation and the Java libraries that enable the Cocoon to work such as Xerces and Xalan.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>What assumptions have you made?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">I assume no knowledege of Cocoon but:</p>
  				
  <blockquote>
  <ul>
  					
  <li>
  						I do assume that the reader has a basic understanding of XML and what XSL is.  For more information and tutorials about XML/XSL please go to somewhere like <a target="_blank" href="http://www.xml.org">www.xml.org</a> or <a target="_blank" href="http://www.xml.com">www.xml.com</a>
  					
  </li>
  					
  <li>
  						I assume that Cocoon is to be configured on a Windows NT or 2000 machine, the machine has Apache 1.3.19, Tomcat 3.2.3 and Java 1.3 running
  					</li>
  					
  <li>
  						I assume a basic familiarity with the above environment
  					</li>
  					
  <li>
  						I hope that if you are working on a different environment you will find the time to <a href="ctwig-contributing.html">advise</a> me of any differences in process so I can augment the documentation.  I also hope that if you find a mistake in the documentation here or you know of a better way of doing something then again you will <a href="ctwig-contributing.html">relay</a> your thoughts so I can make this resource as useful as possible.
  					</li>
  				
  </ul>
  </blockquote>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-installing.html
  
  Index: ctwig-installing.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Installing</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Installing" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-installing-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Installing.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Installing Cocoon 2</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Installing C2 is not a complete nightmare.  I found that following the instructions in the documentation worked just fine.  The only issue here is that by following the instructions you end up with a WAR file and this is no good for development because you cannot add your own code or make changes to existing files without repackaging it all up.</p>
  				
  <p align="justify">To get around these problems you need to install it as an unpacked application and get your servlet engine to recognise it as such.</p>
  				
  <p align="justify">Please note the assumptions about platform, user knowledge and existing applications in the <a href="ctwig-why.html">Why?</a> section and also note thatw herever {TOMCAT_HOME}, {COCOON_HOME} or {APACHE_HOME} appears it should be replaced with the path it is installed into on your machine (e.g. d:\java\cocoon\2.02rc2 for {COCOON_HOME}).</p>
  				
  <p align="justify">
  <b>I'm really sorry, but at the moment these examples relate to C2rc2, Tomcat 3.2.3 and Apache 1.3.19 on Windows 2000.</b> It is probably all the same for any operating system (remember, that is the promise of Java and XML). I would like to do TC4/Unix notes but do not have the time at the momement.  If you can help then please <a href="ctwig-contributing.html">contribute</a>.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Download Cocoon 2</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">The latest distribution for any operating system is <a target="_blank" href="http://xml.apache.org/cocoon2/dist/Cocoon-2.0rc2.zip">Cocoon 2 release candidate 2</a>.  This file contains the Cocoon code, samples, documentation and the Java libraries that enable the Cocoon to work such as Xerces and Xalan.  The file is in ZIP format.  When you have downloaded it then extract it to somewhere.  This path becomes your {COCOON_HOME}.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Basic Configuration</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Follow the instructions on building C2 as per the installation guide that comes with C2.  It can also be found <a target="_blank" href="http://xml.apache.org/cocoon2/install.html">here</a> as well.  Obviously since you have got the ZIP distribution you do not have to do the CVS bit thus you can start at the Building Apache Cocoon 2 section.  Do each of the following steps:</p>
  				
  <blockquote>
  <ul>
  					
  <li>Set JAVA_HOME</li>
  					
  <li>Create the WAR using
  						<code><font face="courier, monospaced">.\build.bat -Dinclude.webapp.libs=yes webapp</font></code>
  						What this does is to create the web application and packaged cocoon.war under the {COCOON_HOME}/build/cocoon folder.
  					</li>
  					
  <li>Optionally make the SQL examples work out of the box.  If you perform this step using
  						<code><font face="courier, monospaced">.\build.bat -Dinclude.webapp.libs=yes -Dinstall.war={{TOMCAT_HOME}\webapps} install</font></code>
  						then it will basically copy the cocoon.war file across to the Tomcat webapps folder ready for immediate use.
  					</li>
  					
  <li>Add any additional components (I like FOP for example)</li>
  				
  </ul>
  </blockquote>
  				
  <p align="justify">Next, copy the xerces_xxx.jar to {TOMCAT_HOME}\lib, delete the tomcat jaxp jar and rename the parser.jar as instructuted.</p>
  				
  <p align="justify">An important point is that if you are running Tomcat as an NT service then you will need to change {TOMCAT_HOME}\conf\wrapper.properties to reflect the classpath changes.  Make sure xerces is first in line, remove (or comment out) the jaxp and rename the parser.jar reference.  This is all done with the wrapper.class_path bit.</p>
  				
  <p align="justify">If you did run the second build.bat command above or if you copy cocoon.war into {TOMCAT_HOME}\webapps then you can check that C2 is working.  Restart Tomcat and http://localhost:8080/cocoon should work.  Note at this point Apache is doing nowt - Tomcat is doing the http serving.  If there are any problems then check that the tomcat classpath in wrapper.properties is correct and you have done the work in {TOMCAT_HOME}\lib as descibed above.</p>
  				
  <p align="justify">One other situation that came to light in C2 RC1 (as opposed to RC1a and RC2) was that the build file was including a reference to the LDAP transformer classes and since the JAR is not included then you would see an error when starting C2 along the lines of:</p>
  				
  <p align="justify">org.apache.cocoon.ProcessingException: Exception in Handler: org.apache.avalon.framework.component.ComponentException: Could not set up Component for hint: org\apache\cocoon\www\sitemap_xmap</p>
  				
  <p align="justify">This has been resolved in C2 RC1a and RC2 by making changing the offending include line in build.xml.  Have a look and see.  You will need to change this line if you want to use the LDAP transformer as per the instructions in the RC1a build.xml file.</p>
  				
  <p align="justify">One other good point about testing, especially if you are upgrading, is to delete the Cocoon working files in {TOMCAT_HOME}\work.  If left in between upgrades, you can easily get precompiled code sent instead of the new pages being compiled and served.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Configure C2 to run in Unpackaged Mode</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">To enable you to easily develop your own C2 applications and configure C2 it must sit as an unpackaged application rather than as a packaged WAR file.  To make this happen...</p>
  				
  <p align="justify">Stop Tomcat</p>
  				
  <p align="justify">Delete {TOMCAT_HOME}\webapps\cocoon.war.</p>
  				
  <p align="justify">Create {TOMCAT_HOME}\webapps\cocoon folder.  If you performed the test above using the war then this folder will already exist and you can skip the next instruction.</p>
  				
  <p align="justify">Copy {COCOON_HOME}\build\cocoon\webapp\* to {TOMCAT_HOME}\webapps\cocoon</p>
  				
  <p align="justify">Restart tomcat and try http://localhost:8080/cocoon.  The welcome page should come up!</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Telling Apache about Cocoon</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Note this assumes that mod_jk has been installed and configured.</p>
  				
  <p align="justify">Stop Apache and Tomcat</p>
  				
  <p align="justify">Make sure that {APACHE_HOME}\conf\httpd.conf has the following lines (assuming you are using the ajp12 adaptor) at the end:</p>
  				
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
    include "{TOMCAT_HOME}\conf\mod_jk.conf-auto"
    JkMount /cocoon/* ajp12
  				</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  				
  <p align="justify">The first line includes the an Apache config file that Tomcat automatically generates.  This has all the alias directives for each of the contexts in {TOMCAT_HOME}\conf\server.xml.  The second line tells anything requested to /cocoon to be sent to Tomcat (and then onwards to Cocoon).</p>
  				
  <p align="justify">Restart tomcat THEN apache.  The reason for this way round is apache relies on the {TOMCAT_HOME}\conf\mod_jk.conf-auto which is built by Tomcat everytime it starts.</p>
  				
  <p align="justify">You can then try http://localhost/cocoon.  It should work!</p>
  				
  <p align="justify">You are now ready to look at the examples and start doing some <a href="ctwig-transformations.html">basic transformations</a>
  </p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Other Configurations</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">I am hoping to include more details on other configurations over time.  If you can help then please <a href="ctwig-contributing.html">contribute</a>.  You can also check out other information in the <a href="ctwig-resources.html">resources</a> section.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-resources.html
  
  Index: ctwig-resources.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Resources</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Resources" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-resources-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Resources.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Resources</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Apache Cocoon 2 Web Site</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">The main place is <a href="http://xml.apache.org/cocoon2/"><code><font face="courier, monospaced">http://xml.apache.org/cocoon2/</font></code></a>
  </p>
  				
  <p align="justify">The C2 documentation is still (and always will be) under development. There is a lot of useful information there and it goes into a lot more detail than here.  Read it and digest it.  I am certainly doing that as I go along and quite quickly understanding more of the architecture and concepts.  I will seek to distill the main points into this site, but the main place is still the supplied documentation.</p>
  				
  <p align="justify">You will also find the documentation in your C2 installation under {COCCON_HOME}/docs/</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Apache Cocoon Users Mail List</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">
  <a href="mailto:cocoon-users-subscribe@xml.apache.org">Subscribe</a> to the Cocoon users mail list!  This is a great resource for asking and answwering questions.  For more details, and pointers to other related lists, see the <a target="_blank" href="http://xml.apache.org/cocoon2/mail-lists.html">documentation</a>.</p>
  				
  <p align="justify">You can also access an excellent, searchable, archive of the users mail list at <a target="_blank" href="http://marc.theaimsgroup.com/?l=xml-cocoon-users">The Aims Group</a>.  Use this 'cos lots of things are there!  Other list archive information is available in the <a target="_blank" href="http://xml.apache.org/cocoon2/mail-archives.html">documentation</a>.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Other Pages</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <blockquote>
  <ul>
  					
  <li>David Parry has put together a really good <a target="_blank" href="http://www.suranyami.com/XSPtutorial/">XSP Tutorial</a> which is C1.8 based but has all the basic principles you need for C2.</li>
  					
  <li>Michael Bierenfeld directed me to a cocoon-users <a target="_blank" href="http://mailman.real-time.com/pipermail/cocoon-users/2001-June/016150.html">posting</a> that has an example taglib (logicsheet) download.  Thanks to Gary Clark for the posting and example.</li>
  					
  <li>
  <a href="mailto:ccambien@ivision.fr">Cyril Cambien</a> has developed more examples at his <a target="_blank" href="http://chello.sourceforge.net/">CHello!</a> (Cocoon Hello!) site.</li>
  					
  <li>
  <a href="mailto:lmocz@galatea.com">Lajos Moczar</a> has developed some more advanced hints and tips at his <a target="_blank" href="http://www.galatea.com/flashguides/cocoon-tips-2.xml">flashguides</a> site.</li>
  				
  </ul>
  </blockquote>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Credits</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Although I have constructed these pages, the basic information I have presented is thanks to users of the above mailing list, particuarly Giacomo Pati, Thomas Hofer and Michael Bierenfeld.  If you have anything to add then please do <a href="ctwig-contributing.html">contribute</a>!</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-transformations.html
  
  Index: ctwig-transformations.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Transformations</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Transformations" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-transformations-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Transformations.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Transformations</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Serving it up</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">Once C2 is installed you want to be able to serve pages.  It's all too easy to jump into doing complex XML/XSL/Logicsheet stuff without understanding the basics of how it works.  When I failed in this I changed my approach to trying to do the simplest things then build up.  This way has enforced some concepts and most importantly started me on the way to becoming familiar with the sitemap.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The Sitemap</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">The bighgest change I have seen in C2 over C1.8 is the Sitemap.  This file ({TOMCAT_HOME}\webapps\cocoon\sitemap.xmap) contains a load of XML that tells Cocoon what code handles what type of requests and what actions should take place when a file is requested.  It looks to be really powerful and as I understand it more I will seek to open it up to more understanding.  For the time being it is sufficent to know that you have to do stuff with this file before anything will work!</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  			
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The Building Blocks</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  				
  <p align="justify">The links below will take you to examples of using C2 to serve XML that increase in complexity and demonstrate some of the techniques that I am using.  If you know better ways of doing these things or can add something new please <a href="ctwig-contributing.html">contribute</a> and I will make the examples better.  One final point - these pages are being served from simple free web space.  C2 is not running behind this so I cannot provide working results of my examples on this site.  You will have to create the files and get them to work yourself for the time being.</p>
  				
  <p align="justify">
  <i>Please note that, unless otherwise indicated, all my examples assume that the files are in a folder called</i> <b><code><font face="courier, monospaced">ctwig</font></code></b> <i>underneath</i> <code><font face="courier, monospaced">{TOMCAT_HOME}/webapps/cocoon/</font></code>
  </p>
  				
  <blockquote>
  <ul>
  					
  <li>
  <a href="ctwig-basic01.html">Basic XML/XSL Transformation (Ref: BASIC01)</a>
  </li>
  					
  <li>
  <a href="ctwig-basic02.html">Basic XSP Processing (Ref: BASIC02)</a>
  </li>
  					
  <li>
  <a href="ctwig-basic03.html">Basic XSP/Logicsheet Processing (Ref: BASIC03)</a>
  </li>
  				
  </ul>
  </blockquote>
  				
  <p align="justify">You can find links to more information in the <a href="ctwig-resources.html">resources</a> section.</p>
  			
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/ctwig-why.html
  
  Index: ctwig-why.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide - Why?</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide - Why?" border="0" vspace="0" hspace="0" src="ctwig/graphics/ctwig-why-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide%20-%20Why.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Why?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">If nothing else these pages form my own personal documentation of how to use C2 from the ground up.  I run a team of developers and as much as I encourage them to jump into technology and problem solve themselves, I also want them to know when to ask for help and to do it before they have wasted hours of time banging their heads against brick walls.  With a technology that is new to them, which C2 is, these pages can help them get more productive more quickly.  I am learning C2 too so I don't want to fall into the same trap.</p>
  			
  <p align="justify">I installed C2 for the first time on Thursday 20th September 2001 and I wanted to write down what I did so my team could benefit.  In the course of asking questions on the xml-cocoon-users mail list I realised that others were having the same problems and, more importantly, the answers were all there via the generous nature of more experienced list users.  To support my team, the wider development community and pay back in kind the support of others I wanted to make my notes available.</p>
  			
  <p align="justify">Given that I am still getting some basic stuff running these pages are going to be like a diary of my work for the first few weeks but I hope that something good comes out of it.  If you find ways of doing things better, have your own notes, want to put me right on something or just want to stop it being a one man ego trip then please <a href="ctwig-contributing.html">contribute</a>.</p>
  			
  <p align="justify">As a bit of technical background...  I have been working for almost the past five years developing web based e-learning solutions, firstly a learning mangement system (Solstra - <a target="_blank" href="http://www.solstra.com">www.solstra.com</a>), then an e-learning portal (easycando.com - <a target="_blank" href="http://www.easycando.com">easycando.com</a>) and more recently content for <a target="_blank" href="http://www.knowledgepool.com">KnowledgePool</a>.  Right from day one, after trying and discarding ASP and Cold Fusion, we saw the need to use templates that could seperate logic from layout.  We built our own Java based architecture then moved it from templates to servlets as that technology progressed.  By using a property file based system along with classes that abstracted the HTML coding side, we built configurable, multi-lingual solutions.  The basic method still contains weaknesses and I was keen to see how XML/XSL could help.</p>
  			
  <p align="justify">About a year ago we developed some prototype code that used JSP, beans, XML and XSL.  It worked quite well but then things changed, I moved jobs and did not do anything more other than mull things over in my head.  More recently I have had to start architecting tools to help my company develop learning content and I revisited my earlier thoughts.  I was reading a "Java and XML" by Brett McLaughlin (published by O'Reilly) and it talked about Cocoon.  When I saw the taglib (logicsheet) idea I realised here was a platform I could work with.  I tried 1.8 as it was production code and then moved to 2 because I saw the internationalisation capabilities and thought it is probably close to becoming a fully released product.</p>
  			
  <p align="justify">I am now trying to build some prototype code and realising that sharing my experiences might help others.  At worst it'll be how not to do it!</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/index.html
  
  Index: index.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>cTwIG - Cocoon Two Idiots Guide</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="cTwIG - Cocoon Two Idiots Guide" border="0" vspace="0" hspace="0" src="ctwig/graphics/index-header.jpg_label=cTwIG%20-%20Cocoon%20Two%20Idiots%20Guide.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="cTwIG" width="120" vspace="0" src="graphics/cTwIG-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Home')" onMouseOut="rolloverOff('Home')" href="index.html"><img onLoad="rolloverLoad('Home', 'graphics/Home-label_over.jpg', 'graphics/Home-label.jpg');" vspace="0" hspace="0" name="Home" width="120" height="12" border="0" src="graphics/Home-label.jpg" alt="Home"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Why')" onMouseOut="rolloverOff('Why')" href="ctwig-why.html"><img onLoad="rolloverLoad('Why', 'graphics/Why-label_over.jpg', 'graphics/Why-label.jpg');" vspace="0" hspace="0" name="Why" width="120" height="12" border="0" src="graphics/Why-label.jpg" alt="Why"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Getting Started')" onMouseOut="rolloverOff('Getting Started')" href="ctwig-gettingstarted.html"><img onLoad="rolloverLoad('Getting Started', 'graphics/Getting Started-label_over.jpg', 'graphics/Getting Started-label.jpg');" vspace="0" hspace="0" name="Getting Started" width="120" height="12" border="0" src="graphics/Getting%20Started-label.jpg" alt="Getting Started"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Installing')" onMouseOut="rolloverOff('Installing')" href="ctwig-installing.html"><img onLoad="rolloverLoad('Installing', 'graphics/Installing-label_over.jpg', 'graphics/Installing-label.jpg');" vspace="0" hspace="0" name="Installing" width="120" height="12" border="0" src="graphics/Installing-label.jpg" alt="Installing"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Transformations')" onMouseOut="rolloverOff('Transformations')" href="ctwig-transformations.html"><img onLoad="rolloverLoad('Transformations', 'graphics/Transformations-label_over.jpg', 'graphics/Transformations-label.jpg');" vspace="0" hspace="0" name="Transformations" width="120" height="12" border="0" src="graphics/Transformations-label.jpg" alt="Transformations"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Resources')" onMouseOut="rolloverOff('Resources')" href="ctwig-resources.html"><img onLoad="rolloverLoad('Resources', 'graphics/Resources-label_over.jpg', 'graphics/Resources-label.jpg');" vspace="0" hspace="0" name="Resources" width="120" height="12" border="0" src="graphics/Resources-label.jpg" alt="Resources"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Contributing')" onMouseOut="rolloverOff('Contributing')" href="ctwig-contributing.html"><img onLoad="rolloverLoad('Contributing', 'graphics/Contributing-label_over.jpg', 'graphics/Contributing-label.jpg');" vspace="0" hspace="0" name="Contributing" width="120" height="12" border="0" src="graphics/Contributing-label.jpg" alt="Contributing"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Welcome!</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">Welcome to cTwIG - the Cocoon Two Idiots Guide.  These pages are the result of organically pulling together my experiences of installing, using and developing for Apache Cocoon 2 (C2).  It is intended to provide a quick guide for other new users of C2 so that they can get up and running without needing to trouble the more experienced users out there.  More than that, I want to support and repay in a practical way the spirit of the user community that indulges my sometimes very dim questions.  For any further background please see the <a href="ctwig-why.html">why?</a> page</p>
  			
  <p align="justify">Hopefully you will note that these pages are highly dynamic in the sense that I am still learning much of the basics myself, thus new and better ways of doing the things I have done are bound to appear in addition to explanations of the new features that I make use of.</p>
  			
  <p align="justify">Please look around and feel free to <a href="ctwig-contributing.html">contribute</a> in any way you like. I am not precious about this resource - I just want to make our collective C2 lives more easy, so all comments are welcome!</p>
  			
  <p align="justify">One final point...  All the work I am doing is on Windows 2000 boxes thus I cannot vouch for validity of my rantings on any Unix or other Windows (95, 98, NT4, ME etc) box.  Hopefully this will change over time but for the time being this will have to do.</p>
  			
  <p align="justify">I hope these pages can be of use!</p>
  			
  <p align="justify">
  <a href="mailto:jez@pigbite.com">Jeremy Aston</a>
  </p>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Disclaimer</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">Disclaimer type thang...  I will always sincerely aim that all the information here is as accurate.  If I make an errors I promise to put them right as soon as I know about them, please help by <a href="ctwig-contributing.html">contributing</a> if and when you see anything that is wrong or misleading.  Please always check the official documentation and take that as the most accurate.  Please always ensure you have backups of critical files.  I cannot guarantee that none of the instructions on my pages could harm your system but all the information is there in good faith and will be changed if it is found to be wrong.  Please take your share of the responsibility and act professionally and with care.  Ta ever so!  Jez.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Contributing-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Contributing-label_over.jpg
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Home-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Home-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Installing-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Installing-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Main-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Main-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Resources-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Resources-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Transformations-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Transformations-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Why-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/Why-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/graphics/cTwIG-separator.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-border-bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-border-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-border-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-border-top.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-bottom-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-bottom-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-top-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bar-top-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-asf-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-asf-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-w3c-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-w3c-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-xml-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/button-xml-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/close.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/dot.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/join.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/line.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/logo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/resources/script.js
  
  Index: script.js
  ===================================================================
  rolloverImagesOn=new Array();
  rolloverImagesOff=new Array();
  
  function rolloverOn(name) {
    if(document.images[name] && rolloverImagesOn[name]) document.images[name].src=rolloverImagesOn[name].src;
  }
  
  function rolloverOff(name) {
   if(document.images[name] && rolloverImagesOff[name]) document.images[name].src=rolloverImagesOff[name].src;
  }
  
  
  function rolloverLoad(name,on,off) {
    rolloverImagesOn[name]=new Image();
    rolloverImagesOn[name].src=mangle(on);
    rolloverImagesOff[name]=new Image();
    rolloverImagesOff[name].src=mangle(off);
  }
  
  function mangle(name) {
  
    name = name.replace(/:/g, "_");
    name = name.replace(/\?/g, "_");
    name = name.replace(/\"/g, "\'");
  
    return name;
  }
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/sample/transformations/basic01/basic01-01.xml.txt
  
  Index: basic01-01.xml.txt
  ===================================================================
  <?xml version="1.0"?>
  <page>
  	<title>Basic XML/XSL Transformation Example - BASIC01-01.XML</title>
  	<greeting>Hello World</greeting>
  </page>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/sample/transformations/basic01/basic01-01.xsl.txt
  
  Index: basic01-01.xsl.txt
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  
  <xsl:template match="page">
    <html>
  		<head>
  			<title><xsl:value-of select="title"/></title>
  		</head>
      <body>
        <h1><xsl:value-of select="title"/></h1>
  			<p><xsl:value-of select="greeting"/></p>
      </body>
    </html>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/sample/transformations/basic02/basic02-01.xml.txt
  
  Index: basic02-01.xml.txt
  ===================================================================
  <?xml version="1.0"?>
  <xsp:page 
  	xmlns:xsp="http://apache.org/xsp"
  >
  
  <page>
    <xsp:logic>
      String msg = "Hello World";
    </xsp:logic>
  
  	<title>
      Basic XSP Processing Example - BASIC02-01.XML
  	</title>
  
    <greeting>
      <xsp:expr>msg</xsp:expr>
    </greeting>
  </page>
  </xsp:page>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/sample/transformations/basic03/basic03-01.xml.txt
  
  Index: basic03-01.xml.txt
  ===================================================================
  <?xml version="1.0"?>
  <xsp:page 
  	xmlns:xsp="http://apache.org/xsp"
    xmlns:ctwig="http://www.pigbite.com/xsl"
  >
  
  <page>
  	<title>
      Basic XSP/Logicsheet Processing Example - BASIC03-01.XML
  	</title>
    <greeting>
      <ctwig:greeting/>
    </greeting>
  </page>
  </xsp:page>
  
  
  
  1.1                  xml-site/targets/cocoon2/ctwig/sample/transformations/logicsheet/ctwig.xsl.txt
  
  Index: ctwig.xsl.txt
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xsp="http://apache.org/xsp"
    xmlns:ctwig="http://www.pigbite.com/xsl"
    version="1.0">
  
  <xsl:template match="ctwig:greeting">
   
    <xsp:logic>
      String msg = "Hello World";
    </xsp:logic>
  
    <xsp:expr>msg</xsp:expr>
  </xsl:template>
  
  <xsl:template match="@*|node()" priority="-1">
   <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
   </xsl:copy>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/avalon.html
  
  Index: avalon.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Avalon for Apache Cocoon</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Avalon for Apache Cocoon" border="0" vspace="0" hspace="0" src="developing/graphics/avalon-header.jpg_label=Avalon%20for%20Apache%20Cocoon.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
    
    
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Goal</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		
  <p align="justify">This document tries to give the basic knowledge of Avalon that is
  		  necessary to understand Cocoon.</p>
  		
  <p align="justify">People that are trying to understand Avalon in depth, will probably
  		  not be much helped by this document. But if you want to understand Cocoon,
  		  you have to have a basic grasp of Avalon. </p>
  		
  <p align="justify">The document also contains the basic configuration steps for
                 configuring Avalon components within Cocoon.</p>
  		
  <p align="justify">Much of this document is copied and pasted from original Avalon
  		  documentation. However, I hope that the fact that all things relevant for
  		  Cocoon are put together in one place, will help you to understand Cocoon
  		  faster.</p>
  		
  <p align="justify">For people wishing to learn Avalon in-depth,
  		  <a href="http://jakarta.apache.org/avalon/developing/index.html">this is your starting
  		point</a>.</p>
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		
  <p align="justify">For a mission statement of Apache Avalon, please read
  		  <a href="http://jakarta.apache.org/avalon/index.html">the Avalon
  		homepage</a>.</p>
  		
  <p align="justify">In short, Avalon tries to take design efforts away from server-side
  		  programmers by providing a framework that </p>
  		
  <blockquote>
  <ul>
  		  
  <li>provides basic working classes;</li>
  		  
  <li>provides interfaces to allow different efforts to be integrated
  			 more easily.</li>
  		
  </ul>
  </blockquote>
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The classes and interfaces</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		
  <p align="justify">These classes and interfaces are extensively used by Cocoon:</p>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>ComponentManager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.framework.component.ComponentManager</font></code>
  </p>
  		  
  <p align="justify">A <code><font face="courier, monospaced">ComponentManager</font></code> selects <code><font face="courier, monospaced">Component</font></code>s
  			 based on a role. The contract is that all the <code><font face="courier, monospaced">Component</font></code>s implement
  			 the differing roles and there is one <code><font face="courier, monospaced">Component</font></code> per role. If you
  			 need to select on of many <code><font face="courier, monospaced">Component</font></code>s that implement the same role,
  			 then you need to use a <code><font face="courier, monospaced">ComponentSelector</font></code>. Roles are the full
  			 interface name.</p>
  		  
  <p align="justify">A role is better understood by the analogy of a play. There are many
  			 different roles in a script. Any actor or actress can play any given part and
  			 you get the same results (phrases said, movements made, etc.), but the exact
  			 nuances of the performance is different.</p>
  		  
  <p align="justify">The <code><font face="courier, monospaced">Cocoon</font></code> class implements e.g. the
  			 <code><font face="courier, monospaced">ComponentManager</font></code> interface.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Composable</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.framework.component.Composable</font></code>
  </p>
  		  
  <p align="justify">A <code><font face="courier, monospaced">Composer</font></code> is a class that need to connect to software
  			 components using a "role" abstraction, thus not depending on particular
  			 implementations but on behavioral interfaces. </p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Component</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.framework.component.Component</font></code>
  </p>
  		  
  <p align="justify">This interface identifies classes that can be used as
  			 <code><font face="courier, monospaced">Components</font></code> by a <code><font face="courier, monospaced">Composer</font></code>. </p>
  		  
  <p align="justify">A <code><font face="courier, monospaced">Component</font></code> is the basic building block of Avalon. When
  			 a class implements this interface, it allows itself to be managed by a
  			 <code><font face="courier, monospaced">ComponentManager</font></code> and used by an outside element called a
  			 <code><font face="courier, monospaced">Composer</font></code>. The <code><font face="courier, monospaced">Composer</font></code> must know what type of
  			 <code><font face="courier, monospaced">Component</font></code> it is accessing, so it will re-cast the
  			 <code><font face="courier, monospaced">Component</font></code> into the type it needs. </p>
  		  
  <p align="justify">
  <code><font face="courier, monospaced">Component</font></code>s in Cocoon are e.g. those defined in
  			 <code><font face="courier, monospaced">cocoon.xconf</font></code>.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.framework.configuration.Configuration</font></code>
  </p>
  		  
  <p align="justify">
  <code><font face="courier, monospaced">Configuration</font></code> is a interface encapsulating a
  			 configuration node used to retrieve configuration values. This is a "read only"
  			 interface preventing applications from modifying their own configurations. The
  			 contract surrounding the <code><font face="courier, monospaced">Configuration</font></code> is that once it is created,
  			 information never changes. The <code><font face="courier, monospaced">Configuration</font></code> is built by the
  			 <code><font face="courier, monospaced">ConfigurationBuilder</font></code>.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Configurable</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.framework.configuration.Configurable</font></code>
  </p>
  		  
  <p align="justify">
  <code><font face="courier, monospaced">Configurable</font></code> is a interface describing a component which
                    can be configured. This component gets a <code><font face="courier, monospaced">Configuration</font></code>
                    object as input.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>ConfigurationBuilder</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.ConfigurationBuilder</font></code>
  </p>
  		  
  <p align="justify">A <code><font face="courier, monospaced">ConfigurationBuilder</font></code> builds
  			 <code><font face="courier, monospaced">Configuration</font></code>s.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		
  <p align="justify">Most available Avalon components are configured in the cocoon.xconf.</p>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Pooling configuration</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">Avalon now incorporates a couple of modifiers for a Component
  			definition that allows you to control the number of Components
  			in a pool, and how quickly it grows.  This is especially helpful
  			in Cocoon where the defaults don't always work well.</p>
  			
  <p align="justify">The magic attributes are "pool-min", "pool-max", and "pool-grow".
  			The defaults are:</p>
  			
  <blockquote>
  <ol>
  				
  <li>pool-max: 8</li>
  				
  <li>pool-min: 2</li>
  				
  <li>pool-grow: pool-min  (2)</li>
  			
  </ol>
  </blockquote>
  			
  <p align="justify">What this means is that the pool for the default component initially
  			contains 2 instances, and if demand exceeds that the pool will increase
  			by two components at a time up to 8 instances.  Beyond that the pool
  			turns into a factory in that new Component instances are created, but
  			destroyed when they are returned.  This is a performance issue--but
  			it does manage the number of instances available at one time.</p>
  			
  <p align="justify">Please note that if
  			not specified, "pool-grow" always matches "pool-min".  If not specified
  			"pool-min" always equals "2".  If you specify the minimum being higher
  			than the maximum, then the maximum will match the minimum, and the pool
  			will be fully filled on initialization.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  </font></td>
  </tr>
  </table>
  </div>
  <br>
    
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/datasources.html
  
  Index: datasources.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Using Databases in Apache Cocoon</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Using Databases in Apache Cocoon" border="0" vspace="0" hspace="0" src="developing/graphics/datasources-header.jpg_label=Using%20Databases%20in%20Apache%20Cocoon.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td> 
     
     
     
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>How do I choose my database?</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
      
  <p align="justify">
       Apache Cocoon is flexible in the way it allows you to make connections to
       a database.  There are basically two ways: by redefining all the connection
       parameters in each page you use a database, or using a pooled connection.
       The first method is slow and doesn't scale well.  The second method is more
       scalable, and depending on your database will realize true improvements.
      </p>
      
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Installing the Driver</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
       
  <p align="justify">
         Independent of how you choose to get and maintain your JDBC connections,
         you have to load the driver so Cocoon can use it (unless you are using
         a J2EE container--more on that later).  This is an init parameter in
         your web.xml file.  The following snippet will show you how:
       </p>
       
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
        
  &lt;init-param&gt;
    &lt;param-name&gt;load-class&lt;/param-name&gt;
    &lt;param-value&gt;
      &lt;!-- For PostgeSQL Database: --&gt;
      postgresql.Driver
  
      &lt;!-- For Oracle Database: --&gt;
      oracle.jdbc.driver.OracleDriver
    &lt;/param-value&gt;
  &lt;/init-param&gt;
        
       </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
       
  <p align="justify">
        You can place as many Driver classes in this parameter you want.  They
        are separated by white space or commas.
       </p>
      
  </font></td>
  </tr>
  </table>
  </div>
  <br>
      
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Defining a Data Source</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
       
  <p align="justify">
        Cocoon allows you to specify a pooled data source that you can use
        for throughout the Cocoon system.  There are two different types of
        data sources: JDBC and J2EE.  The difference is in who controls the
        connection.  The JDBC data source lets Cocoon handle all the pooling
        logic.  The J2EE data source tells Cocoon how to pull the DataSource
        object from a J2EE container (thats Java 2 Enterprise Edition)--the
        major caveat is that Cocoon must be installed as part of a Enterprise
        Application.
       </p>
       
  <p align="justify">
        The following snippet of cocoon.xconf shows the section where the
        DataSourceComponent is specified.  You can have more than one in
        this location.  The code will have one connection for the JDBC data
        source, and one connection for the J2EE data source.
       </p>
       
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
        
    &lt;datasources&gt;
      &lt;jdbc name="MyConnectionName"&gt;
  
        &lt;pool-controller min="5" max="10"/&gt;
        &lt;dburl&gt;jdbc:oracle:thin:@localhost:1521:mydatabase&lt;/dburl&gt;
        &lt;user&gt;mylogin&lt;/user&gt;
        &lt;password&gt;myPassword&lt;/password&gt;
      &lt;/jdbc&gt;
      &lt;j2ee name="MyJ2eeConnection"&gt;
        &lt;dbname&gt;cocoonDB&lt;/dbname&gt;
      &lt;/j2ee&gt;
    &lt;/datasources&gt;
        
       </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  
       
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The JDBC Connection Properties</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
        
  <p align="justify">
         The JDBC connection has up to five different properties--but only one
         is absolutely required.
        </p>
        
  <blockquote>
  <ul>
         
  <li>
           dburl: This is absolutely required.  Without it JDBC can't connect
  	 to the database.
         </li>
         
  <li>
           user: This is only required if the database admin requires you to
  	 log in to the database.
         </li>
         
  <li>
           password: This is only required if the database admin requires a
  	 password to connect to the database.
         </li>
         
  <li>
           pool-controller: This has two parameters with defaults.  If it is
  	 not specified, the defaults are used.
  	 <blockquote>
  <ul>
  	   
  <li>
  	     min: The minimum number of connections the pool will keep
  	     available at one time.  Defaults to zero (0).
  	   </li>
  	   
  <li>
  	     max: The maximum number of connections the pool will have
  	     created at the same time.  Defaults to three (3).
  	   </li>
           
  <li>
             oradb: If you have an Oracle database, you should add the attribute
                    "oradb" and set it to true.
           </li>
  	 
  </ul>
  </blockquote>
         
  </li>
         
  <li>
          auto-commit: If you need to ensure an autocommit is set to true or
                       false, then create the "auto-commit" element.
         </li>
        
  </ul>
  </blockquote>
       
  </font></td>
  </tr>
  </table>
  </div>
  <br>
       
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The J2EE Connection Property</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
        
  <p align="justify">
          The J2EE connection has only one property and it is absolutely
  	required.  Cocoon uses JNDI to look up the DataSource with the
  	name you specified in "dbname".
        </p>
       
  </font></td>
  </tr>
  </table>
  </div>
  <br>
      
  </font></td>
  </tr>
  </table>
  </div>
  <br>
      
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Using the Data Source Component</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
        
  <p align="justify">
         No matter how you defined your DataSourceComponent, you access
         it the same way.  Because The DataSourceComponent is a Component,
         your class needs to implement the Avalon Composer interface.  The
         Avalon Framework will give your class a ComponentManager.  At that
         point, it is up to you how and when you pull the DataSourceComponent
         out of the ComponentManager.
        </p>
        
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
         
  import org.apache.avalon.framework.component.ComponentManager;
  import org.apache.avalon.framework.component.ComponentSelector;
  import org.apache.cocoon.Roles;
  import org.apache.avalon.excalibur.datasource.DataSourceComponent;
  
  import java.sql.Connection;
  
  // .... Skip a lot of lines until we are in the method you use
  //      to initialize the DataSourceComponent ....
  
  private DataSourceComponent datasource;
  
  public void compose(ComponentManager manager) {
      ComponentSelector selector =
          (ComponentSelector) manager.lookup(Roles.DB_CONNECTION);
      this.datasource = (DataSourceComponent) selector.select("MyConnectionName");
  }
  
  // .... Skip more lines until we actually need to use the datasource
  
  private void meMethod() {
      Connection myConnection = this.datasource.getConnection();
  
      // .... perform SQL code here
  
      myConnection.close();
  }
         
        </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
        
  <p align="justify">
         Notice that once you obtained your connection, you did nothing out of the
         ordinary to return the connection to the pool?  This is by design, and a
         result of the JDBC specification.  Basically the JDBC specification states
         that if a driver implements pooled connections, then it should not alter
         the way those connections are used.  This maintains the portability of
         your code.
        </p>
      
  </font></td>
  </tr>
  </table>
  </div>
  <br>
     
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
    
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/extending.html
  
  Index: extending.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Extending Apache Cocoon</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Extending Apache Cocoon" border="0" vspace="0" hspace="0" src="developing/graphics/extending-header.jpg_label=Extending%20Apache%20Cocoon.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
  	
  	
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">If you want to extend the functionality of Apache Cocoon, it may be unclear
  		  how to achieve your goal. This page tries to indicate when to write what, and
  		  to give an overview of what already exists (so you don't duplicate other's
  		  efforts).</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>When to write a Generator</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">From the sitemap documentation: "A <code><font face="courier, monospaced">Generator</font></code> generates
  		  XML content as SAX events and initializes the pipeline processing. "</p>
  			
  <p align="justify">Thus a <code><font face="courier, monospaced">Generator</font></code> is the starting point of a pipeline: it
  		  produces the first SAX events on which all other components of the pipeline are
  		  triggered.</p>
  			
  <p align="justify">You may want to write a <code><font face="courier, monospaced">Generator</font></code> if you want some other
  		  basis for your SAX events (maybe you want a SAX event every time the
  		  temperature of your CPU changes?) However, before writing a
  		  <code><font face="courier, monospaced">Generator</font></code> from scratch, it may be worthwhile to have a look at
  		  <a href="#xsp">XSP</a>, which can create a <code><font face="courier, monospaced">Generator</font></code> for
  		you.</p>
  			
  <p align="justify">Existing <code><font face="courier, monospaced">Generator</font></code>s are: </p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">DirectoryGenerator</font></code> - Generates an XML directory
  			 listing.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">FileGenerator</font></code> - Does the job of an XML parser: read an
  			 XML file and outputs SAX events.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">HTMLGenerator</font></code> - Takes an HTML URL, makes an XHTML of
  			 it, and outputs the SAX events caused by this XHTML.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">ImageDirectoryGenerator</font></code> - An extension of
  			 DirectoryGenerators that adds extra attributes for image files. </li>
  				
  <li>
  					
  <code><font face="courier, monospaced">PhpGenerator</font></code> - Allows PHP to be used as a generator.
  			 Builds upon the PHP servlet functionality. Overrides the output method in
  			 order to pipe the results into SAX events.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">RequestGenerator</font></code> - [FIXME: This looks like just
  			 outputing the request headers, the request parameters and the configuration
  			 parameters. But I don't see any use of it (besides debugging and
  			 demonstration). Are there other situations in which you might want to use
  			 this?]</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">ServerPagesGenerator</font></code> - Makes a <code><font face="courier, monospaced">Generator</font></code>
  			 at compile time, based on the <code><font face="courier, monospaced">src</font></code> file you define in the sitemap.
  			 This one is responsible for making your XSP pages work.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">StatusGenerator</font></code> - Generates an XML representation of
  			 the current status of Cocoon. This can be considered "for administration use",
  			 i.e. your application probably won't deal with this one.</li>
  			
  </ul>
  </blockquote>
  			
  <p align="justify">All these classes are in the <code><font face="courier, monospaced">org.apache.cocoon.generation</font></code>
  		  package. In the same package, you find following helper classes and
  		  interfaces:</p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">Generator</font></code> - The interface you have to implement if you
  			 want to write a <code><font face="courier, monospaced">Generator</font></code>.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractGenerator</font></code> - Extend this one for easier
  			 building of your own <code><font face="courier, monospaced">Generator</font></code>.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractServerPage</font></code> - [FIXME: This seems to be intended
  			 as basis for the <code><font face="courier, monospaced">ServerPagesGenerator</font></code>, but it seems to be obsolete
  			 now?]</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">ComposerGenerator</font></code> - Can be used as base class if you
  			 want your <code><font face="courier, monospaced">Generator</font></code> to be an <a href="avalon.html">Avalon
  		Composer</a>.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">ServletGenerator</font></code> - If you want to generate servlets.
  		  This is the base class for the <code><font face="courier, monospaced">ServerPagesGenerator</font></code>.</li>
  			
  </ul>
  </blockquote>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>When to write a Transformer</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">Let's start again from the sitemap documentation: "A
  		  <code><font face="courier, monospaced">Transformer</font></code> transforms SAX events in SAX events." In other words,
  		  a <code><font face="courier, monospaced">Transformer</font></code> outputs SAX events based on SAX events it
  		  receives.</p>
  			
  <p align="justify">You can imagine a <code><font face="courier, monospaced">Transformer</font></code> doing many things, from
  		  XSLT processing over database querying to sending mail (and much further, of
  		  course).</p>
  			
  <p align="justify">These <code><font face="courier, monospaced">Transformer</font></code>s are standard available:</p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">LogTransformer</font></code> - This is a class that can be plugged
  			 into a pipeline to print the SAX events which passes through this
  			 <code><font face="courier, monospaced">Transformer</font></code> in a readable form to a file. This
  			 <code><font face="courier, monospaced">Transformer</font></code>'s main purpose is debugging.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">SQLTransformer</font></code> - Can be used for querying a SQL
  			 database.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">XalanTransformer</font></code> - Probably the most intuitive
  			 <code><font face="courier, monospaced">Transformer</font></code>: it applies an XSL sheet to the SAX events it
  			 receives. It uses Xalan in the process.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">XIncludeTransformer</font></code> - To include other XML documents
  			 in your "XML document" (which at transformation time exists in SAX
  			 events).</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">XTTransformer</font></code> - The same as
  			 <code><font face="courier, monospaced">XalanTransformer</font></code>, but this one uses XT.</li>
  			
  </ul>
  </blockquote>
  			
  <p align="justify">All these classes can be found in
  		  <code><font face="courier, monospaced">org.apache.cocoon.transformation</font></code>, along with these helper classes
  		  and interfaces:</p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">Transformer</font></code> - The interface each Transformer has to
  			 implement.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractTransformer</font></code> - A helper base class for
  			 implementing a <code><font face="courier, monospaced">Transformer</font></code>.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractDOMTransformer</font></code> - An Abstract DOM Transformer
  			 (helper base class), for use when a transformer needs a DOM-based view of the
  			 document.</li>
  			
  </ul>
  </blockquote>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>When to write a Serializer</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">No need for re-inventing the wheel, so let's start again with the
  		  sitemap documentation: "A <code><font face="courier, monospaced">Serializer</font></code> transforms SAX events in
  		  binary or char streams for final client consumption." A <code><font face="courier, monospaced">Serializer</font></code>
  		  is always the last step in a pipeline, and gives the client its final result:
  		  an HTML page, a nice PNG picture, a sound stream, or maybe just an XML
  		  document.</p>
  			
  <p align="justify">You should write a <code><font face="courier, monospaced">Serializer</font></code> if you want to serve a  client with some format that hasn't been provided yet.</p>
  			
  <p align="justify">Existing <code><font face="courier, monospaced">Serializer</font></code>s:</p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">FOPSerializer</font></code>- Make PDF files.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">HTMLSerializer</font></code> - Generate an HTML document.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">LinkSerializer</font></code>- Show the targets of the links in the document.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">SVGSerializer</font></code>- To construct an SVG.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">TextSerializer</font></code> - Generate a text document.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">XMLSerializer</font></code> - Generate an XML document.</li>
  			
  </ul>
  </blockquote>
  			
  <p align="justify">Again, these can be found in the package <code><font face="courier, monospaced">org.apache.cocoon.serialization</font></code>. And this package also includes following interfaces and helper classes:</p>
  			
  <blockquote>
  <ul>
  				
  <li>
  					
  <code><font face="courier, monospaced">Serializer</font></code> - The interface every <code><font face="courier, monospaced">Serializer</font></code> has to implement.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractTextSerializer</font></code> - Use this as base for your <code><font face="courier, monospaced">Serializer</font></code> if you want to output a character stream.</li>
  				
  <li>
  					
  <code><font face="courier, monospaced">AbstractSerializer</font></code> - A more general base class.</li>
  			
  </ul>
  </blockquote>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>About Action</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			
  <p align="justify">[FIXME: We have to wait until we can see what is going to happen here. Also, I wonder if this belongs here or should deserve a separate page.]</p>
  			
  <p align="justify">The Action part will be used for making Cocoon able to react on form input. This will make Cocoon no longer a simple basis for web publishing, but will make it apt for web interaction as well.</p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>About XSP</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			<a name="xsp">
  <!--anchor--></a>
  			
  <p align="justify">XSP stands for "eXtensible Server Pages". It is the idea to program <code><font face="courier, monospaced">Generator</font></code>s by means of XML. The basic idea is to put XML tags like <code><font face="courier, monospaced">&lt;xsp:logic&gt;</font></code> in your XML file, with in those tags Java code.</p>
  			
  <p>
  <table border="0" cellpadding="0" cellspacing="3" width="100%">
  <tr>
  <td valign="top" width="28"><img alt="Note" border="0" hspace="0" vspace="0" height="29" width="28" src="images/note.gif"></td><td valign="top"><font color="#000000" face="arial,helvetica,sanserif" size="-1"><i>This is not the proper way to use XSP's. I just mentioned them here so you wouldn't forget their existence. Look to the <a href="../userdocs/xsp/xsp.html">XSP page</a> for more information.</i></font></td>
  </tr>
  </table>
  </p>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  	
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/httprequest.html
  
  Index: httprequest.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Request Processing</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Request Processing" border="0" vspace="0" hspace="0" src="developing/graphics/httprequest-header.jpg_label=Request%20Processing.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td> 
    
    
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Introduction</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Goal</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">This document tries to explain Apache Cocoon (based on the version 2.0rc2-dev)
  			 technically. We do this by describing what happens if somebody types in the URL
  			 of a simple Cocoon page.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Intended public</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">The reader should have a knowledge of:</p> 
  		  
  <blockquote>
  <ul> 
  			 
  <li>the Java 2 platform</li>
  			 
  <li>the javax.servlet extensions</li> 
  			 
  <li>XML</li> 
  			 
  <li>HTTP</li> 
  		  
  </ul>
  </blockquote> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The configuration assumptions</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		
  <p align="justify">The sequence of events described in this document, depends on some
  		  assumptions with regard to the configuration of Cocoon. That's what's described
  		  here.</p>
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>sitemap.xmap</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  		  
  <p align="justify">The task of the sitemap is to define the pipelines that Cocoon will
  			 apply to URI's called in one's browser.</p>
  		  
  <p align="justify">This is the minimal sitemap that is necessary. The lines here are
  			 included in the standard sitemap.xmap that comes with the distribution of
  			 Cocoon 2.0rc2-dev.</p>
  		  
  <p align="justify">The sitemap is defined in <code><font face="courier, monospaced">${cocoon}/sitemap.xmap</font></code>.</p> 
  		  
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre> 
  &lt;?xml version="1.0"?&gt;
            
  &lt;map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"&gt; 
            
    &lt;!--===========================Components================================--&gt;
    &lt;map:components&gt;
            
      &lt;map:generators default="file"&gt;
      &lt;map:generator name="file" label="content" 
                     src="org.apache.cocoon.generation.FileGenerator"/&gt; 
      &lt;/map:generators&gt; 
  
      &lt;map:transformers default="xslt"&gt;
        &lt;map:transformer name="xslt"
                         src="org.apache.cocoon.transformation.XalanTransformer"&gt;
          &lt;compile-stylesheets map:value="true"/&gt; 
        &lt;/map:transformer&gt; 
      &lt;/map:transformers&gt;
  
      &lt;map:serializers default="html"&gt;
        &lt;map:serializer name="html" mime-type="text/html" 
                        src="org.apache.cocoon.serialization.HTMLSerializer"/&gt; 
      &lt;/map:serializers&gt;
  
      &lt;map:selectors default="browser"&gt;
        &lt;map:selector name="browser" 
                      factory="org.apache.cocoon.selection.BrowserSelectorFactory"&gt;
          &lt;browser name="explorer" useragent="MSIE"/&gt;
          &lt;browser name="netscape" useragent="Mozilla"/&gt; 
        &lt;/map:selector&gt; 
      &lt;/map:selectors&gt;
  
      &lt;map:matchers default="uri"&gt;
        &lt;map:matcher name="uri" 
                     factory="org.apache.cocoon.matching.WildcardURIMatcherFactory"/&gt;
      &lt;/map:matchers&gt; 
  
    &lt;/map:components&gt; 
            
    &lt;!--===========================Pipelines=================================--&gt;
    &lt;map:pipelines&gt; 
      &lt;map:pipeline&gt; 
        &lt;map:match pattern="hello.html"&gt;
          &lt;map:generate src="docs/samples/hello-page.xml"/&gt;
          &lt;map:transform src="stylesheets/page/simple-page2html.xsl"/&gt;
          &lt;map:serialize type="html"/&gt; 
        &lt;/map:match&gt; 
      &lt;/map:pipeline&gt; 
    &lt;/map:pipelines&gt;
            
  &lt;/map:sitemap&gt; 
  </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>cocoon.xconf</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">cocoon.xconf</font></code> is the file that defines the
  			 <a href="avalon.html">Avalon</a> Components.</p>
  		  
  <p align="justify">For our study, we need the standard <code><font face="courier, monospaced">cocoon.xconf</font></code> file
  			 of Cocoon 2.0rc2-dev.</p>
  		  
  <p align="justify">It can be found in <code><font face="courier, monospaced">${cocoon}/cocoon.xconf</font></code>.</p> 
  		  
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;?xml version="1.0"?&gt;
  
  &lt;cocoon version="2.0"&gt;
  
  &lt;!-- ===================== General Components =========================== --&gt;
  
    &lt;component role="org.apache.cocoon.components.parser.Parser" 
               class="org.apache.cocoon.components.parser.JaxpParser"/&gt;
    &lt;component role="org.apache.cocoon.components.store.Store"  
               class="org.apache.cocoon.components.store.MemoryStore"/&gt;
  
    &lt;component
        role="org.apache.cocoon.components.language.programming.ProgrammingLanguageSelector"
        class="org.apache.cocoon.CocoonComponentSelector"&gt;
      &lt;component-instance name="java" 
        class="org.apache.cocoon.components.language.programming.java.JavaLanguage"&gt;
        &lt;parameter name="compiler" 
        value="org.apache.cocoon.components.language.programming.java.Javac"/&gt;
        &lt;parameter name="code-formatter" 
        value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/&gt;
        &lt;parameter name="class-loader" 
        value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/&gt;
      &lt;/component-instance&gt;
    &lt;/component&gt;
  
    &lt;component role="org.apache.cocoon.components.classloader.ClassLoaderManager" 
        class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/&gt;
  
    &lt;component
        role="org.apache.cocoon.components.language.markup.MarkupLanguageSelector"
        class="org.apache.cocoon.CocoonComponentSelector"&gt;
      &lt;component-instance name="xsp" 
          class="org.apache.cocoon.components.language.markup.xsp.XSPMarkupLanguage"&gt;
        &lt;parameter name="prefix" value="xsp"/&gt;
        &lt;parameter name="uri" value="http://apache.org/xsp"/&gt;
  
        &lt;target-language name="java"&gt;
          &lt;parameter name="core-logicsheet" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/&gt;
  
          &lt;builtin-logicsheet&gt;
            &lt;parameter name="prefix" value="xsp-request"/&gt;
            &lt;parameter name="uri" value="http://apache.org/xsp/request/2.0"/&gt;
            &lt;parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/&gt;
          &lt;/builtin-logicsheet&gt;
  
          &lt;builtin-logicsheet&gt;
            &lt;parameter name="prefix" value="xsp-response"/&gt;
            &lt;parameter name="uri" value="http://apache.org/xsp/response/2.0"/&gt;
            &lt;parameter name="href" 
  value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/&gt;
          &lt;/builtin-logicsheet&gt;
        &lt;/target-language&gt;
      &lt;/component-instance&gt;
  
      &lt;component-instance name="sitemap" 
         class="org.apache.cocoon.components.language.markup.sitemap.SitemapMarkupLanguage"&gt;
        &lt;parameter name="prefix" value="map"/&gt;
        &lt;parameter name="uri" value="http://apache.org/cocoon/sitemap/1.0"/&gt;
  
        &lt;target-language name="java"&gt;
          &lt;parameter name="core-logicsheet" 
  value="resource://org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl"/&gt;
        &lt;/target-language&gt;
      &lt;/component-instance&gt;
    &lt;/component&gt;
  
    &lt;component role="org.apache.cocoon.components.language.generator.ProgramGenerator" 
               class="org.apache.cocoon.components.language.generator.ProgramGeneratorImpl"&gt;
      &lt;parameter name="auto-reload" value="true"/&gt;
    &lt;/component&gt;
  
    &lt;!-- these components is used as a PoolController for the sitemap component pools  --&gt;
    &lt;component role="org.apache.avalon.util.pool.PoolController" 
               class="org.apache.cocoon.util.ComponentPoolController"/&gt;
  
    &lt;sitemap file="sitemap.xmap"/&gt; 
  &lt;/cocoon&gt;
  </pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>The sequence of things</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Role of Tomcat</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">The role of Tomcat is to initialize the CocoonServlet, and to
  			 receive the HttpRequest and pass it on to the CocoonServlet.</p> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Initialize CocoonServlet</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  			 
  <p align="justify">This is done by calling
  				<code><font face="courier, monospaced">CocoonServlet.init(ServletConfig)</font></code>. This is the standard servlet
  				way to initialize a servlet.</p> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Pass HttpRequest</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  			 
  <p align="justify">On reception of a HttpRequest, Tomcat calls
  				<code><font face="courier, monospaced">CocoonServlet.service(HttpRequest, HttpResponse)</font></code>. This is also
  				standard.</p> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Initialization</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  			 
  <p align="justify">The steps that happen on initialization, are:</p> 
  			 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Find the classpath</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  				
  <p align="justify">Cocoon needs to know the classpath for compilation of the files
  				  it generates itself. This is where the classpath is stored.</p> 
  			 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  			 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Find the init file</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  				
  <p align="justify">The init file (normally <code><font face="courier, monospaced">cocoon.xconf</font></code>, as defined in
  				  <code><font face="courier, monospaced">${cocoon}/WEB-INF/web.xml</font></code>) contains the necessary information for
  				  Cocoon to decide which classes to use for which roles (refer to
  				  <a href="avalon.html">Avalon</a>).</p>
  				
  <p align="justify">This is a feature that is added for increased configurability.
  				  If you were developing a one time solution, the information in this file would
  				  normally be hard coded, but the use of this file increases potential
  				  reusability.</p> 
  			 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  			 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-2"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Read the init file</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="85%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  				
  <p align="justify">The init file is an xml file (normally
  				  <code><font face="courier, monospaced">cocoon.xconf</font></code>) which describes the classes to use for which
  				  roles.</p> 
  				
  <p align="justify">"Roles" are a concept of <a href="avalon.html">Avalon</a>.</p> 
  				
  <p align="justify">The handling of <code><font face="courier, monospaced">cocoon.xconf</font></code> goes as follows:</p> 
  				
  <blockquote>
  <ol> 
  				  
  <li>Get the parser: This is something necessary for
  					 bootstrapping: cocoon.xconf contains the parser to be used by Cocoon, but
  					 cocoon.xconf is an xml file that has to be parsed itself. That's why Cocoon
  					 gets a default parser out of the System properties (this refers to the
  					 environment variable <code><font face="courier, monospaced">$org.apache.cocoon.components.parser.Parser</font></code>
  					 of the OS). If no parser is defined in the environment, Cocoon will use
  					 <code><font face="courier, monospaced">org.apache.cocoon.components.parser.JaxpParser</font></code> (a hard-coded
  					 default).</li> 
  				  
  <li>Get the components: Cocoon uses roles (refer to
  					 <a href="avalon.html">Avalon</a>) as its working classes. Each role is
  				implemented by one or more real classes (components, again an
  				<a href="avalon.html">Avalon</a> concept). This is where they are
  				retrieved.</li> 
  				
  <li>Get the sitemap: Here the location of the sitemap is retrieved.
  				  The actual compilation of the sitemap occurs in the HttpRequest handling.</li> 
  				
  </ol>
  </blockquote> 
  			 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>UML sequence diagram</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			 
  <p align="justify">You can find it <a href="images/initialize_Cocoon.png">here</a>.</p> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>HttpRequest handling</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  			 
  <p align="justify">When the <code><font face="courier, monospaced">CocoonServlet</font></code> gets a HttpRequest from the
  				servlet engine, it sets up an <code><font face="courier, monospaced">Environment</font></code> (a
  				<code><font face="courier, monospaced">HttpEnvironment</font></code> in this case) and passes that to
  				<code><font face="courier, monospaced">Cocoon</font></code>. The <code><font face="courier, monospaced">Environment</font></code> exists of Request, Response,
  				and some servlet info (such as requested URI and the servlet's path).</p> 
  			 
  <p align="justify">This <code><font face="courier, monospaced">Cocoon</font></code> object lets the <code><font face="courier, monospaced">Environment</font></code>
  				decide which sitemap to use, and passes the sitemap filename along with the
  				<code><font face="courier, monospaced">Environment</font></code> to a <code><font face="courier, monospaced">Manager</font></code>. </p> 
  			 
  <p align="justify">This one puts a <code><font face="courier, monospaced">Handler</font></code> to work: it checks whether
  				there already exists a <code><font face="courier, monospaced">Handler</font></code> with a compiled version of the
  				sitemap. If not, it creates one. This is what happens then:</p> 
  			 
  <blockquote>
  <ol> 
  				
  <li>The <code><font face="courier, monospaced">Handler</font></code> creates a <code><font face="courier, monospaced">File</font></code> object
  				  with the asked URL.</li> 
  				
  <li>The <code><font face="courier, monospaced">Manager</font></code> sets the <code><font face="courier, monospaced">Composer</font></code> and the
  				  <code><font face="courier, monospaced">Configuration</font></code> of the <code><font face="courier, monospaced">Handler</font></code>. (These are
  				  <a href="avalon.html">Avalon</a> things).</li> 
  			 
  <li>If necessary, the <code><font face="courier, monospaced">Manager</font></code> asks the
  				<code><font face="courier, monospaced">Handler</font></code> to regenerate its sitemap class. (FIXME: As of today,
  				2000-11-08, I'm not sure if the "if necessary" check is working). Regeneration
  				exists in: 
  				<blockquote>
  <ol> 
  				  
  <li>The <code><font face="courier, monospaced">Handler</font></code> gets the
  					 <code><font face="courier, monospaced">"program-generator"</font></code> <code><font face="courier, monospaced">Component</font></code> from its
  					 <code><font face="courier, monospaced">Composer</font></code>.</li> 
  				  
  <li>The <code><font face="courier, monospaced">load()</font></code> method of this
  					 <code><font face="courier, monospaced">ProgramGeneratorImpl</font></code> is called. </li> 
  				  
  <li>The <code><font face="courier, monospaced">ProgramGeneratorImpl</font></code> gets the
  					 <code><font face="courier, monospaced">"markup-language"</font></code> (in this case it will get a
  					 <code><font face="courier, monospaced">SitemapMarkupLanguage</font></code>) and <code><font face="courier, monospaced">"programming-language"</font></code>
  					 (being <code><font face="courier, monospaced">JavaLanguage</font></code>) <code><font face="courier, monospaced">Component</font></code>s. </li> 
  				  
  <li>The <code><font face="courier, monospaced">ProgramGeneratorImpl</font></code> asks the
  					 <code><font face="courier, monospaced">SitemapMarkupLanguage</font></code> to generate code.</li> 
  				  
  <li>Then it asks the <code><font face="courier, monospaced">JavaLanguage</font></code> to load the code.
  					 The <code><font face="courier, monospaced">JavaLanguage</font></code> does this by creating a <code><font face="courier, monospaced">Javac</font></code>
  					 object, setting its variables, and asking it to compile. Then it loads the
  					 class.</li> 
  				  
  <li>Then its back to the <code><font face="courier, monospaced">ProgramGeneratorImpl</font></code> who
  					 tells the <code><font face="courier, monospaced">JavaLanguage</font></code> to instantiate the just loaded class.</li> 
  				
  </ol>
  </blockquote>
  </li> 
  			 
  <li>At last, the sitemapManager asks the <code><font face="courier, monospaced">Handler</font></code> to
  				process the <code><font face="courier, monospaced">Environment</font></code>, and the <code><font face="courier, monospaced">Handler</font></code> just
  				forwards this request to the generated sitemap class.</li> 
  			 
  </ol>
  </blockquote> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="-1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>UML sequence diagram</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="90%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  			 
  <p align="justify">You can find it <a href="images/get_hello_html.png">here</a>.</p> 
  		  
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Description of classes</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>CocoonServlet</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.servlet.CocoonServlet</font></code>
  </p> 
  		  
  <p align="justify">This is the contact point for the servlet engine. It sets up the
  			 environment and passes all the work to a Cocoon object.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Cocoon</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.Cocoon</font></code>
  </p> 
  		  
  <p align="justify">While this sounds to be the most important part of the Cocoon
  			 application, it is not. It is merely a Composer, meaning that it does some
  			 administrative work and gets other classes to work.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>ConfigurationBuilder</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.ConfigurationBuilder</font></code>
  </p> 
  		  
  <p align="justify">This one generates a Configuration out of a xml file.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Parser</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.components.parser.Parser</font></code>
  </p> 
  		  
  <p align="justify">An interface that takes an xml file and throws SAX events to the
  			 outside.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Configuration</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.Configuration</font></code>
  </p> 
  		  
  <p align="justify">This is an <a href="avalon.html">Avalon</a> interface. It
  		  assigns classes to roles. If an object needs a class for a specific role, it
  		  can ask a Configuration which class it has to use.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>DefaultComponentManager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.avalon.DefaultComponentManager</font></code>
  </p> 
  		  
  <p align="justify">Something that manages <a href="avalon.html">Avalon</a>
  		  Components.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Manager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.sitemap.Manager</font></code>
  </p> 
  		  
  <p align="justify">This one manages the sitemap: it finds out if there exists a Handler
  			 for a sitemap, and if not, makes sure that one gets created.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Handler</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.sitemap.Handler</font></code>
  </p> 
  		  
  <p align="justify">A class that is responsible for dealing with sitemaps. It holds the
  			 sourcefile of the sitemap, and the compiled code for it. It checks whether the
  			 sitemap class that it contains is still valid, and if not, regenerates it.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>ProgramGenerator</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.components.language.programming.ProgrammingLanguage</font></code>
  </p>
  		  
  		  
  <p align="justify">Generates programs.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>SitemapMarkupLanguage</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.components.language.markup.sitemap.SitemapMarkupLanguage</font></code>
  </p>
  		  
  		  
  <p align="justify">This one knows the markup of the sitemap, and helps writing the
  			 source file of the sitemap class.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>JavaLanguage</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.components.language.programming.java.JavaLanguage</font></code>
  </p>
  		  
  		  
  <p align="justify">This takes care for outputing Java code as source of the sitemap
  			 class.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  		
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>ResourcePipeline</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif"> 
  		  
  <p align="justify">
  <code><font face="courier, monospaced">org.apache.cocoon.sitemap.ResourcePipeline</font></code>
  </p> 
  		  
  <p align="justify">Holds the various steps that have to be taken when executing a
  			 pipeline.</p> 
  		
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
  	 
  </font></td>
  </tr>
  </table>
  </div>
  <br> 
    
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/index.html
  
  Index: index.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Developer Documentation</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Developer Documentation" border="0" vspace="0" hspace="0" src="developing/graphics/index-header.jpg_label=Developer%20Documentation.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
   
  
   
   
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Overview</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
  
    
  <p align="justify">
      Here will soon appear all the developer documentation.   
    </p>
  
   
  </font></td>
  </tr>
  </table>
  </div>
  <br>
  
   
  
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/cocoon2/developing/parent-component-manager.html
  
  Index: parent-component-manager.html
  ===================================================================
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Parent Component Manager</title>
  <script type="text/javascript" src="resources/script.js" language="JavaScript"></script>
  </head>
  <body bgcolor="#ffffff" marginheight="4" marginwidth="4" leftmargin="4" topmargin="4" alink="#cc0000" vlink="#0086b2" link="#039acc" text="#000000">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
  <tr>
  <td align="left" valign="top" rowspan="3" height="60" width="135"><img border="0" vspace="0" hspace="0" src="images/logo.gif" height="60" width="135"></td><td background="images/line.gif" colspan="2" align="left" valign="top" height="5" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/line.gif" height="5" width="1"></td><td align="left" valign="top" rowspan="3" height="60" width="29"><img border="0" vspace="0" hspace="0" src="images/right.gif" height="60" width="29"></td>
  </tr>
  <tr>
  <td bgcolor="#0086b2" colspan="2" align="right" valign="top" height="35" width="100%"><img align="right" alt="Parent Component Manager" border="0" vspace="0" hspace="0" src="developing/graphics/parent-component-manager-header.jpg_label=Parent%20Component%20Manager.jpg"></td>
  </tr>
  <tr>
  <td background="images/bottom.gif" bgcolor="#0086b2" align="left" valign="top" height="20" width="100%"><img align="left" border="0" vspace="0" hspace="0" src="images/bottom.gif" height="20" width="3"></td><td background="images/bottom.gif" width="288" valign="top" height="20" bgcolor="#0086b2" align="right">
  <table width="288" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new" href="http://xml.apache.org/"><img onLoad="rolloverLoad('xml', 'images/button-xml-hi.gif', 'images/button-xml-lo.gif');" border="0" vspace="0" hspace="0" name="xml" src="images/button-xml-lo.gif" height="20" width="96" alt="http://xml.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new" href="http://www.apache.org/"><img onLoad="rolloverLoad('asf', 'images/button-asf-hi.gif', 'images/button-asf-lo.gif');" border="0" vspace="0" hspace="0" name="asf" src="images/button-asf-lo.gif" height="20" width="96" alt="http://www.apache.org/"></a></td><td align="left" valign="top" height="20" width="96"><a onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new" href="http://www.w3.org/"><img onLoad="rolloverLoad('w3c', 'images/button-w3c-hi.gif', 'images/button-w3c-lo.gif');" border="0" vspace="0" hspace="0" name="w3c" src="images/button-w3c-lo.gif" height="20" width="96" alt="http://www.w3.org/"></a></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr width="100%">
  <td valign="top" width="120">
  <table width="120" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td valign="top" align="left"><img width="120" vspace="0" src="images/join.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Main')" onMouseOut="rolloverOff('Main')" href="../index.html"><img onLoad="rolloverLoad('Main', 'graphics/Main-label_over.jpg', 'graphics/Main-label.jpg');" vspace="0" hspace="0" name="Main" width="120" height="12" border="0" src="graphics/Main-label.jpg" alt="Main"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Concepts" width="120" vspace="0" src="graphics/Concepts-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Flow')" onMouseOut="rolloverOff('Flow')" href="httprequest.html"><img onLoad="rolloverLoad('Flow', 'graphics/Flow-label_over.jpg', 'graphics/Flow-label.jpg');" vspace="0" hspace="0" name="Flow" width="120" height="12" border="0" src="graphics/Flow-label.jpg" alt="Flow"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Extending C2')" onMouseOut="rolloverOff('Extending C2')" href="extending.html"><img onLoad="rolloverLoad('Extending C2', 'graphics/Extending C2-label_over.jpg', 'graphics/Extending C2-label.jpg');" vspace="0" hspace="0" name="Extending C2" width="120" height="12" border="0" src="graphics/Extending%20C2-label.jpg" alt="Extending C2"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Avalon')" onMouseOut="rolloverOff('Avalon')" href="avalon.html"><img onLoad="rolloverLoad('Avalon', 'graphics/Avalon-label_over.jpg', 'graphics/Avalon-label.jpg');" vspace="0" hspace="0" name="Avalon" width="120" height="12" border="0" src="graphics/Avalon-label.jpg" alt="Avalon"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Using Databases')" onMouseOut="rolloverOff('Using Databases')" href="datasources.html"><img onLoad="rolloverLoad('Using Databases', 'graphics/Using Databases-label_over.jpg', 'graphics/Using Databases-label.jpg');" vspace="0" hspace="0" name="Using Databases" width="120" height="12" border="0" src="graphics/Using%20Databases-label.jpg" alt="Using Databases"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('Parent CM')" onMouseOut="rolloverOff('Parent CM')" href="parent-component-manager.html"><img onLoad="rolloverLoad('Parent CM', 'graphics/Parent CM-label_over.jpg', 'graphics/Parent CM-label.jpg');" vspace="0" hspace="0" name="Parent CM" width="120" height="12" border="0" src="graphics/Parent%20CM-label.jpg" alt="Parent CM"></a></td>
  </tr>
  <tr>
  <td valign="top" align="left"><img alt="Java" width="120" vspace="0" src="graphics/Java-separator.jpg" hspace="0" height="20" border="0"><br>
  </td>
  </tr>
  <tr>
  <td valign="top" align="left"><a onMouseOver="rolloverOn('API (Javadoc)')" onMouseOut="rolloverOff('API (Javadoc)')" target="new" href="../javadocs/index.html"><img onLoad="rolloverLoad('API (Javadoc)', 'graphics/API (Javadoc)-label_over.jpg', 'graphics/API (Javadoc)-label.jpg');" width="120" vspace="0" name="API (Javadoc)" hspace="0" height="12" border="0" src="graphics/API%20(Javadoc)-label.jpg" alt="API (Javadoc)"></a></td>
  </tr>
  <tr>
  <td align="left" valign="top"><img width="120" vspace="0" src="images/close.gif" hspace="0" height="14" border="0"><br>
  </td>
  </tr>
  </table>
  </td><td>
  <table cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td height="10" width="100%"></td>
  </tr>
  <tr>
  <td>
          
          
              
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif" size="+1"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Parent Component Manager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="98%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
                  
  <p align="justify">When using Apache Cocoon it is sometimes neccessary to obtain
                      components from other sources than the <code><font face="courier, monospaced">user.roles</font></code> file,
                      or preferable to have a common component manager for several web applications.</p>
                  
                  
  <p align="justify">The pattern chosen for Cocoon is the dynamic loading of a component manager class.
                      The initialization parameter parent-component-manager in web.xml specifies a class
                      that will be loaded, instantiated and used as a parent component manager for 
                      Cocoon's component manager.</p>
                  
                  
  <p align="justify">The recommended procedure is for the class, when it is initialized, to create a 
                      delegate in the form of an <code><font face="courier, monospaced">ExcaliburComponentManager</font></code>, configure it
                      by looking up a <code><font face="courier, monospaced">Configuration</font></code> object via JNDI, and delegate any requests to it.</p>
                  
                  
  <p align="justify">In order to provide a way to pass parameters to the parent component manager class 
                      (the class specified in parent-component-manager), Cocoon will instantiate the class
                      via the constructor that takes a single <code><font face="courier, monospaced">String</font></code> argument, passing
                      anything to the right of the first <code><font face="courier, monospaced">'/'</font></code> in the parameter value to the
                      constructor. Subsequently Cocoon examines whether the class implements 
                      <code><font face="courier, monospaced">org.apache.avalon.framework.logger.Loggable</font></code> and/or 
                      <code><font face="courier, monospaced">org.apache.avalon.framework.activity.Initializable</font></code> and calls
                      <code><font face="courier, monospaced">setLogger</font></code> and/or <code><font face="courier, monospaced">initialize</font></code>, as appropriate.
                      The instance is then used as a parent component manager.
                  </p>
                                  
                  
  <p align="justify">Since that didn't make much sense in itself, let's look at the sample.</p>
                  
                  
  <p align="justify">The goal is to define a component that can give us the time of day and
                      let it be managed by a parent component manager.</p>
                  
                  
  <p align="justify">So, first we need to put a Configuration object into JNDI, and then 
                      grab that object, use it to configure an ExcaliburComponentManager,
                      and pass on any requests to that manager.</p>
                  
                  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Step 1: Creating a configuration object</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
                  
                      
  <p align="justify">We'll do this the quick and dirty way. The static initializer of a class
                          will create a Configuration instance with a single role and bind it
                          to <code><font face="courier, monospaced">org/apache/cocoon/samples/parentcm/ParentCMConfigration</font></code>.
                      </p>
                  
                      
  <p align="justify">The following code was taken from org/apache/cocoon/samples/parentcm/Configurator.java</p>
                      
                      
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  public class Configurator  {
  
      static {
          try {
              //
              // Create a new role.
              //
              DefaultConfiguration config = new DefaultConfiguration("roles", "");
              DefaultConfiguration timeComponent = new DefaultConfiguration("role", "roles");
              timeComponent.addAttribute("name", Time.ROLE);
              timeComponent.addAttribute("default-class", TimeComponent.class.getName());
              timeComponent.addAttribute("shorthand", "samples-parentcm-time");
              config.addChild(timeComponent);
              
              //
              // Bind it - get an initial context.
              //
              Hashtable environment = new Hashtable();
              environment.put(Context.INITIAL_CONTEXT_FACTORY, 
                              MemoryInitialContextFactory.class.getName());
              initialContext = new InitialContext(environment);
              
              //
              // Create subcontexts and bind the configuration.
              //
              Context ctx = initialContext.createSubcontext("org");
              ctx = ctx.createSubcontext("apache");
              ctx = ctx.createSubcontext("cocoon");
              ctx = ctx.createSubcontext("samples");
              ctx = ctx.createSubcontext("parentcm");
              ctx.rebind("ParentCMConfiguration", config);
          } catch (Exception e) {
              e.printStackTrace(System.err);
          }
      }    
  }</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                  
                  
  <p align="justify">To make sure the static initializer runs we make Cocoon force-load the class
                      by making a change to the web.xml file:</p>
                  
                  
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;init-param&gt;
    &lt;param-name&gt;load-class&lt;/param-name&gt;
    &lt;param-value&gt;
      &lt;!-- For IBM WebSphere: 
      com.ibm.servlet.classloader.Handler --&gt;
  
      &lt;!-- For Database Driver: --&gt;
      org.hsqldb.jdbcDriver
          
      &lt;!-- For parent ComponentManager sample:
              This will cause the static initializer to run,
              and thus the Configuration object to be created
              and bound. --&gt;
      org.apache.cocoon.samples.parentcm.Configurator 
    &lt;/param-value&gt;
  &lt;/init-param&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                  
  </font></td>
  </tr>
  </table>
  </div>
  <br>
                  
                  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Step 2: Write the component manager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
                  
                      
  <p align="justify">Now that the configuration object is sitting there waiting for us, let's craft
                          the component manager. Please see the file org/apache/cocoon/samples/parentcm/ParentComponentManager.java
                          for an example. It is too much to paste in here.</p>
                  
                  
  </font></td>
  </tr>
  </table>
  </div>
  <br>
                      
                  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Step 3: Tell Cocoon to use the component manager</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
                      
  <p align="justify">Change the web.xml file to:</p>
                      
                      
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  &lt;init-param&gt;
    &lt;param-name&gt;parent-component-manager&lt;/param-name&gt;
    &lt;param-value&gt;org.apache.cocoon.samples.parentcm.ParentComponentManager/(remove this line break)
  org/apache/cocoon/samples/parentcm/ParentCMConfiguration&lt;/param-value&gt;
  &lt;/init-param&gt;</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                      
                      
  <p align="justify">Cocoon will now do the following: First, it will split the parameter value at the first slash,
                          in this case ending up with the strings <code><font face="courier, monospaced">"org.apache.cocoon.samples.parentcm.ParentComponentManager"</font></code>
                          and <code><font face="courier, monospaced">"org/apache/cocoon/samples/parentcm/ParentCMConfiguration"</font></code>. The first string is the 
                          class to instantiate. The second is the parameter that will be passed to the constructor.</p>
                      
                      
  <p align="justify">Next, Cocoon loads the component manager class and uses reflection to find a constructor that
                          will accept a single <code><font face="courier, monospaced">String</font></code> argument. Upon finding one, it instantiates the
                          class in a manner similar to:</p>
                      
                      
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  ComponentManager cm = new 
      org.apache.cocoon.samples.parentcm.ParentComponentManager(
          "org/apache/cocoon/samples/parentcm/ParentCMConfiguration");</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                      
                      
  <p align="justify">
                          After this Cocoon checks whether the parent component manager class implements <code><font face="courier, monospaced">Initializable</font></code> and/or
                          <code><font face="courier, monospaced">Loggable</font></code>. Since the <code><font face="courier, monospaced">ParentComponentManager</font></code> class implements both, Cocoon
                          does the following (with simplification):
                      </p>
                      
                      
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  ((Loggable) cm).setLogger(logger);
  ((Initializable) cm).initialize();</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                      
                      
  <p align="justify">Finally, the instance is used as parent component manager of Cocoon's own component manager.</p>
                  
  </font></td>
  </tr>
  </table>
  </div>
  <br>
                  
                  
  <div align="right">
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td align="right" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-left.gif"></td><td background="images/bar-border-top.gif"><img border="0" hspace="0" vspace="0" height="5" width="1" src="images/void.gif"></td><td align="left" valign="bottom" height="7" width="9"><img border="0" hspace="0" vspace="0" height="7" width="9" src="images/bar-top-right.gif"></td>
  </tr>
  <tr>
  <td background="images/bar-border-left.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td><td bgcolor="#0086b2" width="100%"><font color="#ffffff" face="arial,helvetica,sanserif"><img border="0" hspace="0" vspace="0" height="5" width="5" src="images/void.gif"><b>Step 4: Use the component</b></font></td><td background="images/bar-border-right.gif" width="9"><img border="0" hspace="0" vspace="0" height="1" width="9" src="images/void.gif"></td>
  </tr>
  <tr>
  <td align="right" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-left.gif"></td><td background="images/bar-border-bottom.gif"><img border="0" hspace="0" vspace="0" height="12" width="1" src="images/void.gif"></td><td align="left" valign="top" height="12" width="9"><img border="0" hspace="0" vspace="0" height="12" width="9" src="images/bar-bottom-right.gif"></td>
  </tr>
  </table>
  <table cellpadding="0" cellspacing="0" width="95%" border="0">
  <tr>
  <td><font color="#000000" face="arial,helvetica,sanserif">
                  
                      
  <p align="justify">Cocoon2 components can now use the ComponentManager given to them by Cocoon to look up the
                          component managed by the parent component manager:</p>
                  
                      
  <p align="justify">The following code was taken from org/apache/cocoon/samples/parentcm/Generator.java</p>
                  
                      
  <div align="center">
  <table border="0" cellpadding="0" cellspacing="4">
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td bgcolor="#ffffff">
  <pre>
  public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
      throws ProcessingException, SAXException, IOException {
              
      Time timeGiver = null;
      try {
          timeGiver = (Time) manager.lookup(Time.ROLE);
          this.time = timeGiver.getTime ();
      } catch (ComponentException ce) {
          throw new ProcessingException ("Could not obtain current time.", ce);
      } finally {
          manager.release(timeGiver);
      }
  }</pre>
  </td><td width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  <tr>
  <td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td><td height="1" width="1" bgcolor="#0086b2"><img border="0" hspace="0" vspace="0" height="1" width="1" src="images/void.gif"></td>
  </tr>
  </table>
  </div>
                  
  </font></td>
  </tr>
  </table>
  </div>
  <br>
                  
                  
  <p align="justify">And that concludes the tour. A parent component manager was initialized with a configuration
                      obtained via JNDI and its components used by a Cocoon generator.</p>
              
  </font></td>
  </tr>
  </table>
  </div>
  <br>
          
      
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  <table width="100%" cellspacing="0" cellpadding="0" border="0">
  <tr>
  <td bgcolor="#0086b2"><img width="1" src="images/dot.gif" height="1"></td>
  </tr>
  <tr>
  <td align="center"><font size="-1" face="arial,helvetica,sanserif" color="#0086b2"><i>Copyright &copy; 1999-2001 The Apache Software Foundation. All Rights Reserved.</i></font></td>
  </tr>
  </table>
  </body>
  </html>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Avalon-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Avalon-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Concepts-separator.jpg
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Flow-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Flow-label_over.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Java-separator.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Main-label.jpg
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/graphics/Main-label_over.jpg
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  No                   revision
  
  
  No                   revision
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-border-bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-border-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-border-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-border-top.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-bottom-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-bottom-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-top-left.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bar-top-right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/bottom.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-asf-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-asf-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-w3c-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-w3c-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-xml-hi.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/button-xml-lo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/close.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/dot.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/get_hello_html.png
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/initialize_Cocoon.png
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/join.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/line.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/logo.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/note.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/right.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/images/void.gif
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/cocoon2/developing/resources/script.js
  
  Index: script.js
  ===================================================================
  rolloverImagesOn=new Array();
  rolloverImagesOff=new Array();
  
  function rolloverOn(name) {
    if(document.images[name] && rolloverImagesOn[name]) document.images[name].src=rolloverImagesOn[name].src;
  }
  
  function rolloverOff(name) {
   if(document.images[name] && rolloverImagesOff[name]) document.images[name].src=rolloverImagesOff[name].src;
  }
  
  
  function rolloverLoad(name,on,off) {
    rolloverImagesOn[name]=new Image();
    rolloverImagesOn[name].src=mangle(on);
    rolloverImagesOff[name]=new Image();
    rolloverImagesOff[name].src=mangle(off);
  }
  
  function mangle(name) {
  
    name = name.replace(/:/g, "_");
    name = name.replace(/\?/g, "_");
    name = name.replace(/\"/g, "\'");
  
    return name;
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org