xml-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stef...@locus.apache.org
Subject cvs commit: xml-site/targets/cocoon/images/images schema.jpg
Date Thu, 16 Dec 1999 01:39:31 GMT
stefano     99/12/15 17:39:30

  Modified:    targets/cocoon changes.html cocoon2.html dcp.html faqs.html
                        guide.html index.html install.html javadoc.html
                        sql.html technologies.html todo.html xsp.html
               targets/cocoon/graphics sql-header.jpg
               targets/cocoon/images/images schema.jpg
  Log:
  new Cocoon site (ready for 1.6) (generated part)
  
  Revision  Changes    Path
  1.3       +33 -14    xml-site/targets/cocoon/changes.html
  
  Index: changes.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/changes.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- changes.html	1999/12/07 07:44:20	1.2
  +++ changes.html	1999/12/16 01:39:28	1.3
  @@ -38,6 +38,31 @@
   
    <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Cocoon 1.6-dev (not yet released)</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="res
ources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><UL>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  +    Made ServletResponse and ServletContext available to engine and processors. This will require
  +    further abstraction to avoid processors from messing up with the response output stream.
  +  (<A href="#RR">RR</A>)</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/fix.jpg" vspace="4">
  +    Fixed DCP problems on getting property file when cocoon.jar is in classpath under java 1.1 JVMs.
  +  (<A href="#RR">RR</A>)</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  +    Added the ability to return HTTP error messages from Cocoon.
  +  (<A href="#SM">SM</A>)</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/fix.jpg" vspace="4">
  +  	Added dummy methods to EngineWrapper for JSDK 2.2 compatibility
  +  (<A href="#DB">DB</A>) Thanks to <A href="mailto:martinguitar@hotmail.com">Brett McLaughlin</A>.</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  +  	Added ProducerFromMap as a sitemap primer.
  +  (<A href="#DB">DB</A>)</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  +  	Added Tomcat installation instructions.
  +  (<A href="#SM">SM</A>) Thanks to <A href="mailto:bmclaugh@algx.net">Brett McLaughlin</A>.</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
  +  	Moved a few things around in ColumnFormatter so that it's possible for columns to be formatted as more than simply a text node (e.g. embedded HTML). Also added a little formatter that can transform \n into &lt;br&gt; for text and varchar columns.
  +  (<A href="#DB">DB</A>)</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  +  	Added new classes to SQLProcessor to do column-specific date formatting.
  +  (<A href="#DB">DB</A>) Thanks to <A href="mailto:ed@waterfall.freeserve.co.uk">Ed Ward</A>.</LI>
  +  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
       Add new producer for POST document processing, also useful for use of 
       Cocoon as a module (see EngineWrapper).
     (<A href="#SM">SM</A>) Thanks to <A href="mailto:grit@wwcn.org">Gerrit Hiddink</A>.</LI>
  @@ -50,12 +75,6 @@
     <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
       Added Documentation DTD.
     (<A href="#SM">SM</A>)</LI>
  -  <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  -    Added Documentation DTD.
  -  (<A href="#SM">SM</A>)</LI>
  -  <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
  -    Moved &quot;examples/&quot; under &quot;samples/&quot; for global xml.apache.org pattern.
  -  (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
       Moved &quot;examples/&quot; under &quot;samples/&quot; for global xml.apache.org pattern.
     (<A href="#SM">SM</A>)</LI>
  @@ -110,7 +129,7 @@
       outside. This was breaking the WML formatter.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/fix.jpg" vspace="4">
  -    Patched XSL:P to support &lt;&lt;xsl:processing-instruction&gt;&gt; instead of &lt;&lt;xsl:pi&gt;&gt; which is now deprecated. 
  +    Patched XSL:P to support &lt;xsl:processing-instruction&gt; instead of &lt;xsl:pi&gt; which is now deprecated. 
       This makes XSL:P a hybrid between XSLT revisions but it's easier this way than to create two sets
       of examples that work with latest and oldest releases of XSLT. Hopefully XSLT will standardize soon.
     (<A href="#SM">SM</A>)</LI>
  @@ -149,7 +168,7 @@
       Added WML formatter.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
  -    Added the ability to &quot;&quot;mount&quot;&quot; the Cocoon status to a configurable URL.
  +    Added the ability to &quot;mount&quot; the Cocoon status to a configurable URL.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
       Added the ability to hide Cocoon status for security reasons.
  @@ -177,7 +196,7 @@
       Updated the examples to reflect the changes.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
  -    Changed Cocoon illegal PIs from &lt;&lt;?cocon:xxx?&gt;&gt; to &lt;&lt;?cocoon-xxx?&gt;&gt;.
  +    Changed Cocoon illegal PIs from &lt;?cocon:xxx?&gt; to &lt;?cocoon-xxx?&gt;.
     (<A href="#SM">SM</A>) Thanks to <A href="mailto:tbray@textuality.com">Tim Bray</A>.</LI>
   </UL></FONT></TD></TR></TABLE><BR>
   
  @@ -200,8 +219,8 @@
       of scanning the whole file.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
  -    Updated the cocoon processing instructions that drive the reaction: &lt;&lt;?cocoon:process?&gt;&gt;
  -    drives the processing reaction, &lt;&lt;?cocoon.format?&gt;&gt; indicates the
  +    Updated the cocoon processing instructions that drive the reaction: &lt;?cocoon:process?&gt;
  +    drives the processing reaction, &lt;?cocoon.format?&gt; indicates the
       formatter used to end processing and format the document.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/remove.jpg" vspace="4">
  @@ -333,7 +352,7 @@
       Fixed the final Vector.toString() problem in JDK 1.1 compilation.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/fix.jpg" vspace="4">
  -    Fixed the &quot;&quot;verify error&quot;&quot; by using Jikes compiler for distribution.
  +    Fixed the &quot;verify error&quot; by using Jikes compiler for distribution.
     (<A href="#SM">SM</A>)</LI>
     <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
       Cleaned up documentation and added some entries in the FAQ.
  @@ -398,8 +417,8 @@
   
   <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Cocoon 1.1 (March 25 1999)</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/v
oid.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><UL>
    <LI><IMG align="right" border="0" hspace="4" src="images/images/update.jpg" vspace="4">
  -  Changed the stylesheet mapping processing instruction from illegal &quot;&quot;xml:stylesheet&quot;&quot;
  -  to standard &quot;&quot;xml-stylesheet&quot;&quot;.
  +  Changed the stylesheet mapping processing instruction from illegal &quot;xml:stylesheet&quot;
  +  to standard &quot;xml-stylesheet&quot;.
    (<A href="#SM">SM</A>)</LI>
    <LI><IMG align="right" border="0" hspace="4" src="images/images/add.jpg" vspace="4">
     Created Cocoon logo.
  
  
  
  1.2       +6 -6      xml-site/targets/cocoon/cocoon2.html
  
  Index: cocoon2.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/cocoon2.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- cocoon2.html	1999/12/03 00:17:05	1.1
  +++ cocoon2.html	1999/12/16 01:39:28	1.2
  @@ -56,7 +56,7 @@
   
    <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Passive APIs vs. Active APIs</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resource
s/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>Web serving environments must be fast and scalable to be
  -  useful. Cocoon1 was born as a &quot;&quot;proof of concept&quot;&quot; rather than a
  +  useful. Cocoon1 was born as a &quot;proof of concept&quot; rather than a
     production software and had significant design restrictions based mainly on
     the availability of freely redistributable tools. Other issues were lack of
     detailed knowledge on the APIs available as well as underestimation of the
  @@ -67,8 +67,8 @@
     API which is a <I>passive</I> API and was intended mainly for client side
     operation. This is mainly due to the fact that most (if not all!) DOM
     implementations require the document to reside in memory. While this is
  -  practical for small documents and thus good for the &quot;&quot;proof of
  -  concept&quot;&quot; stage, it is now considered a main design constraint for Cocoon
  +  practical for small documents and thus good for the &quot;proof of
  +  concept&quot; stage, it is now considered a main design constraint for Cocoon
     scalability.</P>
     
     <P>Since the goal of Cocoon2 is the ability to process
  @@ -186,8 +186,8 @@
     shape suitable to replace current high-structure web site management
     models.</P>
     
  -  <P>The model that Cocoon2 adopts is the &quot;&quot;pyramid model of
  -  web contracts&quot;&quot; which is outlined in the picture below</P>
  +  <P>The model that Cocoon2 adopts is the &quot;pyramid model of
  +  web contracts&quot; which is outlined in the picture below</P>
     
     <P><IMG align="right" border="0" hspace="4" src="images/images/pyramid-model.gif" vspace="4"></P>
     
  @@ -212,7 +212,7 @@
       
       <LI><B>Style</B> - 
         the people responsible for information
  -      presentation, look &amp;&amp; feel, site graphics and its maintenance.
  +      presentation, look &amp; feel, site graphics and its maintenance.
       </LI>
       
     </UL>
  
  
  
  1.2       +1022 -2   xml-site/targets/cocoon/dcp.html
  
  Index: dcp.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/dcp.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- dcp.html	1999/12/03 00:17:05	1.1
  +++ dcp.html	1999/12/16 01:39:28	1.2
  @@ -31,12 +31,1032 @@
     
   <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
    
  + 
  + 
  + <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Introduction</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspa
ce="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +  <P>
  +   In addition to static content (that is, hand-written documents produced
  +   by web authors), web publishing also requires <I>dynamic content
  +   generation</I>.  In dynamic content generation, XML documents or
  +   fragments are programmatically produced at request time.
  +  </P>
  +
  +  <P>
  +   In this context, content is the result of a computation based on request
  +   parameters and, frequently, on access to external data sources such as
  +   databases or remote server processes. This distinction in content origin
  +   justifies the extension of the &quot;traditional&quot; regions of web
  +   publishing (content and presentation) to also encompass that of
  +   <I>logic</I>.
  +  </P>
  + </FONT></TD></TR></TABLE><BR>
  +  
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Origins</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="
0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    The Cocoon community has long recognized the need for dynamic content
  +    generation capabilities. In response to this requirement, the Cocoon
  +    project has proposed
  +    <A href="http://xml.apache.org/cocoon/xsp.html">XSP</A>
  +    (<I>eXtensible Server Pages</I>). XSP defines a new XML DTD and
  +    namespace that addresses a complete region of web publishing, that of
  +    logic-based, dynamic content generation. XSP is a key component of future
  +    Cocoon versions and currently in development.
  +   </P>
   
  +   <P>
  +    DCP (<I>Dynamic Content Processor</I>), on the other hand, aims at
  +    providing easy-to-use dynamic content generation capabilities in the
  +    context of the current version of Cocoon. DCP is also a testbed for
  +    implementation-related issues in the upcoming development of XSP.
  +    These issues include aspects such as multiple language support,
  +    automatic code reloading and code reuse.
  +   </P>
  +  </FONT></TD></TR></TABLE><BR>
  + 
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Goals</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0"
 width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    DCP has been designed to provide dynamic content generation capabilities
  +    to Cocoon with the following goals in mind:
  +   </P>
  + 
  +   <UL> 
  +    <LI>
  +     Minimal changes to the current architecture.
  +    </LI>
  +    <LI>
  +     Maximal ease of use for authors and developers.
  +    </LI>
  +    <LI>
  +     Avoiding XSP implementation complexities while still providing a useful
  +     facility for dynamic content generation.
  +    </LI>
  +   </UL> 
  + 
  +   <P>
  +    In order to maximize ease of use, the following early decisions were made
  +    for DCP:
  +   </P>
  + 
  +   <UL> 
  +    <LI>
  +     Other than the source XML document itself, no external documents should
  +     be required to map inline dynamic content generation directives to
  +     external programs.
  +    </LI>
  +    <LI>
  +     External programs should be as easy to write as possible. In addition to
  +     Java, it should be possible to also write external programs in
  +     easy-to-use scripting languages.
  +    </LI>
  +   </UL> 
  + 
  +   <P>
  +    By restricting the use of external documents (such as XSP libraries)
  +    to specify how to map content generation directives to external programs,
  +    the obvious choice was the use of processing instructions (e.g.
  +    <I>&lt;?dcp-object?&gt;</I>, <I>&lt;?dcp-content?&gt;</I>).
  +   </P>
    
  -  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Introduction</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vsp
ace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  -   <P>Yet to be XML-ized!</P>
  +   <P>
  +    This decision results in a number of limitations when compared to the more
  +    general mechanism of transforming DOM <I>elements</I> (as opposed to
  +    processing instructions).
  +   </P>
  + 
  +   <P>
  +    One such limitation is that passing [static] parameters to external
  +    programs is limited to the single-valued pseudo-attributes used in
  +    processing instructions.  Closer inspection reveals, however, that
  +    this mechanism is appropriate for a large number of dynamic content
  +    generation requirements.
  +   </P>
  + 
  +   <P>
  +    Keeping external program writing simple means not requiring programmers
  +    to learn a new API or to follow restrictive coding conventions. The
  +    ability to write programs in easy-to-use scripting languages also
  +    contributes to simplifying development. This is particularly appealing,
  +    for instance, to web authors already familiar with Javascript, which
  +    is currently supported.
  +   </P>
  + 
  +   <P>
  +    Jean-Marc Lugrin's
  +    (<A href="http://home.worldcom.ch/jmlugrin/fesi/index.html">Fesi</A>)
  +    (<I>Free EcmaScript Interpreter</I>) is used to provide support for
  +    Javascript.
  +   </P>
     </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Relationship with Existing Technologies</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" s
rc="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    DCP (and XSP, for that matter) differs from existing dynamic web content
  +    generation technologies in that it deals with DOM trees rather than with
  +    the textual representation of HTML documents.
  +   </P>
  + 
  +   <P>
  +    Such technologies, however, have had a strong influence in DCP's design
  +    both because they pioneered programmatic web content generation and
  +    because DCP (and, again, XSP) aims at overcoming their limitations in
  +    the realm of XML-based document processing.
  +   </P>
  + 
  +   <P>
  +    <A href="http://www.javasoft.com/products/jsp/index.html">JSP</A>,
  +    in particular, is a widely used standard in the Java environment. Other
  +    comparable technologies are Microsoft's
  +    <A href="http://www.microsoft.com/ntserver/web/deployment/planguide/WebAppDev.asp">
  +     ASP
  +    </A>,
  +    <A href="http://www.coldfusion.com/">
  +     Cold Fusion
  +    </A>,
  +    Sun's [deprecated]
  +    <A href="http://www.sun.com/software/jwebserver/features/index.html#dsp">
  +     Page Compilation
  +    </A>,
  +    <A href="http://www.webmacro.org/">
  +     Webmacro
  +    </A>
  +    and
  +    <A href="http://www.bitmechanic.com/projects/gsp">
  +     GSP
  +    </A>.
  +   </P>
  + 
  +   <P>
  +    These technologies share three common characteristics:
  +   </P>
  + 
  +   <UL> 
  +    <LI>
  +     <B>Text-based</B>.
  +     Not being XML-aware, these technologies deal with textual streams,
  +     rather than with DOM trees or SAX events.
  +    </LI>
  +    <LI>
  +     <B>Html-oriented</B>.
  +     Generation capabilities have been designed with HTML in mind and
  +     do not lend themselves easily to produce XML.
  +    </LI>
  +    <LI>
  +     <B>No separation of logic and content</B>.
  +     Probably their most problematic area; these technologies mix content and
  +     program logic in the same document. This impairs labor division in web
  +     publishing.
  +    </LI>
  +   </UL> 
    
  +   <P>
  +    DCP and XSP, on the other hand, aim at a complete separation of logic
  +    and content.
  +   </P>
  + 
  +   <P>
  +    In DCP, web authors specify dynamic content insertion using a simple,
  +    standard XML syntax while programmers concentrate on content generation
  +    without being concerned by context or presentation issues.
  +   </P>
  + 
  +   <P>
  +    Finally, the difference between DCP and XSP is that while DCP is
  +    interpreted and executed at runtime, XSP page are compiled and executed
  +    directly as document producers. This allows better separation of content
  +    and logic (since the XSP pages can be processed like regular document at
  +    first) and increased performance (since no interpretation is required and
  +    compiled pages are cached).
  +   </P>
  +  </FONT></TD></TR></TABLE><BR>
  + 
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>A Simple Javascript Example</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resource
s/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +      Consider the following dynamic Cocoon XML document
  +      (<A href="http://www.plenix.com/dcp/ecmascript/sample.xml?country=Canada&language=English&language=French">sample.xml</A>):
  +   </P>
  +
  +   <P><IMG align="right" border="0" hspace="4" src="images/images/dcp-fig-1.gif" vspace="4"></P>
  +
  +   <P>
  +     In this example, portions shown in red are to be dynamically generated
  +     every time the document is requested.
  +   </P>
  +
  +   <P>
  +     For this to be achieved, three separate components must be written:
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +      A <I>source XML file</I> containing the static portions of the document
  +      and some dynamic content insertion directives.
  +    </LI>
  +    <LI>
  +      A <I>DCP script</I> containing DOM node-generation functions. This
  +      script can be used by many different XML documents.
  +    </LI>
  +    <LI>
  +      An <I>XSL stylesheet</I> containing transformation rules to generate
  +      HTML from the (expanded) XML document. Again, this stylesheet can be
  +      used by many different XML documents.
  +    </LI>
  +  </UL> 
  +
  +  <P>
  +    The following processing instructions are recognized:
  +  </P>
  +
  +  <UL> 
  +   <LI>
  +    <CODE><FONT face="courier, monospaced">
  +      &lt;?dcp-object name=&quot;objectName&quot; [language=&quot;languageName&quot;] code=&quot;codeLocation&quot;?&gt;
  +    </FONT></CODE>
  +    <BR><BR>
  +
  +     This instruction declares an external program (or DCP script) that
  +     contains node-generation methods. These methods will be invoked during
  +     document processing as dictated by the appearance of subsequent
  +     <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE> directives (explained below). 
  +    <BR><BR>
  +    
  +     <UL>
  +      <LI>
  +       Attribute <I>name</I> specifies an author-defined objectName that will
  +       be used to qualify method names in the DCP script. This name must be
  +       unique within the document. 
  +      </LI>
  +    
  +      <LI>
  +       Attribute <I>language</I> specifies the programming language in which
  +       the DCP script is written. Currently supported values for this attribute
  +       are <I>java</I> and <I>javascript</I> (also referred to as
  +       <I>ecmascript</I>). This attribute is optional; its default value
  +       is <I>java</I>. Other languages may be added in the future.
  +       It is valid for the same XML document to use multiple DCP scripts
  +       written in different languages. 
  +      </LI>
  +    
  +      <LI>
  +       Attribute <I>code</I> specifies the actual DCP script location.
  +       Interpretation of this mandatory attribute is language-dependent.
  +       For Java, it is a fully qualified class name. For Javascript, it is
  +       a script filename relative to the path of the invoking XML document.
  +       The same code can be specified multiple times in a given document,
  +       provided a different <I>objectName</I> is used in each case. 
  +      </LI>
  +     </UL>
  +   </LI>
  +
  +   <LI>
  +     <CODE><FONT face="courier, monospaced">
  +       &lt;?dcp-content method=&quot;object.method&quot; [param1=&quot;value&quot; param2=&quot;value&quot; ...] ?&gt;
  +     </FONT></CODE>
  +    <BR><BR>
  +
  +     This instruction requests the substitution of its corresponding node by
  +     the return value of a named method defined in a DCP script. 
  +    <BR><BR>
  +    
  +     Single-valued, named parameters can be passed to node-generation methods
  +     by specifying additional attributes in the
  +     <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE>
  +     processing instruction. These attributes are made available to the
  +     method through a <CODE><FONT face="courier, monospaced">Dictionary</FONT></CODE> argument. 
  +    <BR><BR>
  +    
  +     Attribute <I>method</I> defines what method to invoke on a given
  +     object. The object <I>name</I> must have been associated with a DCP
  +     script by means of a previous <CODE><FONT face="courier, monospaced">&lt;?dcp-object?&gt;</FONT></CODE>
  +     processing instruction.  Node-generation methods must be
  +     <CODE><FONT face="courier, monospaced">public</FONT></CODE> and conform to the following signature: 
  +    <BR><BR>
  +
  +    <CODE><FONT face="courier, monospaced">
  +     methodName(
  +          [java.util.Dictionary parameters],
  +          [org.w3c.Node source]
  +      )
  +    </FONT></CODE>
  +    <BR><BR>
  +
  +     where the [optional] function arguments are: 
  +    <BR><BR>
  +    
  +    <UL> 
  +     <LI>
  +      <CODE><FONT face="courier, monospaced">parameters</FONT></CODE>.
  +      A dictionary containing any optional named parameters specified as
  +      additional attributes to the <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE>
  +      processing instruction. 
  +     </LI>
  +     <LI>
  +      <CODE><FONT face="courier, monospaced">source</FONT></CODE>.
  +      The processing instruction node corresponding to the
  +      <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE> directive itself. This is useful
  +      for methods that need access to siblings or ancestors in the DOM tree. 
  +     </LI>
  +    </UL> 
  +    <BR><BR>
  +
  +     Methods can return any type of value, including primitive types,
  +     <CODE><FONT face="courier, monospaced">void</FONT></CODE> and <CODE><FONT face="courier, monospaced">null</FONT></CODE>. <CODE><FONT face="courier, monospaced">Void</FONT></CODE> and
  +     <CODE><FONT face="courier, monospaced">null</FONT></CODE> are understood as a request to remove the
  +     corresponding node. Returned values that are instances of
  +     <CODE><FONT face="courier, monospaced">org.w3c.Node</FONT></CODE> are simply inserted into the corresponding
  +     DOM tree position. Primitive types and regular objects are wrapped
  +     as strings in <CODE><FONT face="courier, monospaced">org.w3c.Text</FONT></CODE> nodes. Arrays are wrapped
  +     as <CODE><FONT face="courier, monospaced">org.w3c.DocumentFragment</FONT></CODE>'s containing as many children
  +     as elements in the array; each element is recursively wrapped according
  +     to the above rules. 
  +   </LI>
  +
  +   <LI>
  +    <CODE><FONT face="courier, monospaced">
  +     &lt;?dcp-var name1=&quot;value1&quot; [name2=&quot;value2&quot; ...]?&gt;
  +    </FONT></CODE>
  +    <BR><BR>
  +
  +     This instruction declares one or more global variables that will be
  +     passed in each subsequent method invocation as if explicitly specified
  +     as parameters. 
  +    <BR><BR>
  +      
  +     This mechanism is basically a convenience shorthand to avoid cluttering
  +     <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE> instructions with too long parameter
  +     lists. 
  +    <BR><BR>
  +      
  +     Declared variables are global to all subsequent method invocations.
  +     For a method to use a given global variable as a parameter, it must
  +     have been previously declared in the same document. 
  +    <BR><BR>
  +   </LI>
  +  </UL> 
  +
  +  <P>
  +   That said, the source XML document for the above example would be: 
  +  </P>
  +
  +  <P><IMG align="right" border="0" hspace="4" src="images/images/dcp-fig-2.gif" vspace="4"></P>
  +
  +   <P>
  +    In this document: 
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +       The processing instruction:
  +       <BR><BR>
  +       <CODE><FONT face="courier, monospaced">
  +        &lt;?dcp-object name=&quot;util&quot; language=&quot;javascript&quot; code=&quot;test.es&quot;?&gt;
  +       </FONT></CODE>
  +       <BR><BR>
  +       declares the existence of an external Javascript program contained in
  +       a file called <I>test.es</I>.
  +       <BR><BR>
  +
  +       Subsequent references to file <I>test.es</I> will use the alias
  +       <I>util</I>.
  +    </LI>
  +
  +    <LI>
  +      The processing instruction:
  +      <BR><BR>
  +      <CODE><FONT face="courier, monospaced">
  +       &lt;?dcp-content method=&quot;util.getSystemDate&quot; format=&quot;MM/dd/yyyy&quot;?&gt;
  +      </FONT></CODE>
  +      <BR><BR>
  +      specifies that function <I>getSystemDate</I> (contained in file
  +      <I>test.es</I>) must be called and its return value substituted in
  +      the document position where the <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE>
  +      directive originally appeared. 
  +      <BR><BR>
  +
  +      Furthermore, when this function is called, it is passed a parameter
  +      of name <I>format</I> and value <I>MM/dd/yyyy</I>.
  +    </LI>
  +   </UL> 
  +
  +   <P>
  +    The initial portion of the script file <I>test.es</I> contains: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    var count = 0;
  +  
  +    /* Node Generation Functions */
  +    function getCount() {
  +      /* To reference variables as static, prepend &quot;global.&quot; */
  +      return formatCount(++global.count);
  +    }
  +
  +    function getSystemDate(parameters) {
  +     var now = new Date();
  +     var format = parameters.get(&quot;format&quot;);
  +  
  +     if (format != null) {
  +      return formatDate(now, format);
  +     }
  +  
  +     return now;
  +    }
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    DCP automatically reloads Javascript script files whenever they change on
  +    disk. 
  +   </P>
  +
  +   <P>
  +    When a global variable must be treated as static, references to it must be
  +    qualified by the <I>global</I> modifier. This is convenient when the
  +    programmer wants the variable to retain its value across requests. 
  +   </P>
  +
  +   <P>
  +    For functions returning simple object values, DCP takes care of wrapping
  +    the returned value as an <CODE><FONT face="courier, monospaced">org.w3c.dom.Text</FONT></CODE> node containing
  +    the <CODE><FONT face="courier, monospaced">toString()</FONT></CODE> form of the object. When a function returns
  +    <CODE><FONT face="courier, monospaced">null</FONT></CODE>, the corresponding node is removed from the DOM tree. 
  +   </P>
  +
  +   <P>
  +    Of course, returned values can be instances of a DOM <CODE><FONT face="courier, monospaced">Node</FONT></CODE>
  +    type. This is illustrated by the function <CODE><FONT face="courier, monospaced">getParameters</FONT></CODE>
  +    below: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    function getParameters() {
  +     var parameterNames = request.getParameterNames();
  +  
  +     if (!parameterNames.hasMoreElements()) {
  +      return null;
  +     }
  +  
  +     var parameterList = createElement(&quot;parameters&quot;);
  +  
  +     while (parameterNames.hasMoreElements()) {
  +      var parameterName = parameterNames.nextElement();
  +  
  +      var parameterElement = createElement(&quot;parameter&quot;);
  +      parameterElement.setAttribute(&quot;name&quot;, parameterName);
  +  
  +      var parameterValues = request.getParameterValues(parameterName);
  +  
  +      for (var i = 0; i &lt; parameterValues.length; i++) {
  +       var valueElement = createElement(&quot;parameter-value&quot;);
  +       valueElement.appendChild(createTextNode(parameterValues[i]));
  +       parameterElement.appendChild(valueElement);
  +      }
  +  
  +      parameterList.appendChild(parameterElement);
  +     }
  +  
  +     return parameterList;
  +    }
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    Thus, if our example processes the request: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    sample.xml?me=Tarzan&amp;you=Jane&amp;you=Cheetah 
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    the above function would generate a DOM subtree equivalent to the
  +    following XML fragment: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    &lt;parameters&gt;
  +  
  +      &lt;parameter name=&quot;me&quot;&gt;
  +        &lt;parameter-value&gt;Tarzan&lt;/parameter-value&gt;
  +      &lt;/parameter&gt;
  +  
  +      &lt;parameter name=&quot;you&quot;&gt;
  +        &lt;parameter-value&gt;Jane&lt;/parameter-value&gt;
  +        &lt;parameter-value&gt;Cheetah&lt;/parameter-value&gt;
  +      &lt;/parameter&gt;
  +  
  +    &lt;/parameters&gt;  
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    The general signature for a dynamic content generation Javascript function
  +    is: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    function functionName(parameters, source) 
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    where: 
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +     <CODE><FONT face="courier, monospaced">parameters</FONT></CODE> is an instance of
  +     <CODE><FONT face="courier, monospaced">java.util.Dictionary</FONT></CODE> containing user-supplied parameters
  +     specified as <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE> pseudo-attributes.
  +     Example: parameter <CODE><FONT face="courier, monospaced">format</FONT></CODE> in function
  +     <CODE><FONT face="courier, monospaced">getSystemDate</FONT></CODE>.
  +    </LI>
  +    <LI>
  +     <CODE><FONT face="courier, monospaced">source</FONT></CODE> is an instance of
  +     <CODE><FONT face="courier, monospaced">org.w3c.dom.ProcessingInstruction</FONT></CODE>
  +     corresponding to the actual <CODE><FONT face="courier, monospaced">&lt;?dcp-content?&gt;</FONT></CODE>
  +     processing instruction.  This node is useful for performing
  +     context-dependent processing such as examining sibling or parent
  +     DOM nodes. 
  +    </LI>
  +   </UL> 
  +
  +   <P>
  +    Note: Programmers may omit any or all of these arguments if they are
  +    not actually needed by the task at hand. 
  +   </P>
  +
  +   <P>
  +    The following objects are always made available to external Javascript
  +    programs as global variables: 
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +     <CODE><FONT face="courier, monospaced">javax.servlet.http.HttpServletRequest request</FONT></CODE>
  +    </LI>
  +    <LI>
  +     <CODE><FONT face="courier, monospaced">org.w3c.dom.Document document</FONT></CODE>
  +    </LI>
  +   </UL> 
  +
  +   <P>
  +    The following convenience functions are made accessible by DCP to external
  +    Javascript programs: 
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +      DOM factory functions are provided by DCP for easy construction of DOM
  +      nodes: <CODE><FONT face="courier, monospaced">createTextNode(data)</FONT></CODE>,
  +      <CODE><FONT face="courier, monospaced">createElement(tagName)</FONT></CODE>, etc. 
  +
  +       In general, all DOM factory methods defined for interface
  +       <CODE><FONT face="courier, monospaced">org.w3c.dom.Document</FONT></CODE> are available as global
  +       Javascript functions. 
  +    </LI>
  +
  +    <LI>
  +      Formatting functions for numbers and dates: 
  +      <UL> 
  +       <LI>
  +        <CODE><FONT face="courier, monospaced">function formatCount(number)</FONT></CODE>,
  +       </LI>
  +       <LI>
  +        <CODE><FONT face="courier, monospaced">function formatCurrency(number)</FONT></CODE>,
  +       </LI>
  +       <LI>
  +        <CODE><FONT face="courier, monospaced">function formatPercentage(number)</FONT></CODE> and 
  +       </LI>
  +       <LI>
  +        <CODE><FONT face="courier, monospaced">function formatDate(date, format)</FONT></CODE>. Date format
  +        strings conform to the syntax defined by class
  +        <CODE><FONT face="courier, monospaced">java.text.DateFormat</FONT></CODE>.
  +       </LI>
  +      </UL> 
  +    </LI>
  +
  +    <LI>
  +     A JDBC access function function
  +
  +      <CODE><FONT face="courier, monospaced">sqlRowSet(connectionName, selectStatement)</FONT></CODE>,
  +
  +       that returns an array of Javascript objects whose member names are
  +       given by the lowercase form of each <I>SELECT</I> column label.
  +       The array contains as many elements as rows are returned by the
  +       <I>SELECT</I> statement. 
  +
  +      Parameters to this function are: 
  +
  +     <UL> 
  +      <LI>
  +       <CODE><FONT face="courier, monospaced">connectionName</FONT></CODE>.
  +       A connection pool name as specified by Gefion Software's
  +       <A href="http://www.webdevelopersjournal.com/columns/connection_pool.html">
  +        <CODE><FONT face="courier, monospaced">DBConnectionManager</FONT></CODE>
  +       </A>
  +       in the resource file
  +       <CODE><FONT face="courier, monospaced">db.properties</FONT></CODE> (see below).
  +      </LI>
  +
  +      <LI>
  +       <CODE><FONT face="courier, monospaced">selectStatement</FONT></CODE>.
  +       A SQL <I>SELECT</I> statement for the database manager in use. 
  +      </LI>
  +     </UL> 
  +    </LI>
  +   </UL>
  +
  +   <P>
  +    Using the Oracle demo connection in file <I>db.properties</I>
  +   </P>
  +   
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +  logfile=/tmp/dbcm.log
  +  drivers=postgresql.Driver oracle.jdbc.driver.OracleDriver
  +
  +  dictionary.url= jdbc:postgresql:translator
  +  dictionary.maxconn=8
  +  dictionary.user=clark
  +  dictionary.password=kent
  +
  +  demo.url=jdbc:oracle:thin:@localhost:1521:orcl
  +  demo.maxconn=4
  +  demo.user=scott
  +  demo.password=tiger
  +  </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +   
  +   <P>
  +    a sample Javascript user function would look like: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    var selectStatement =
  +     &quot;SELECT   EMPNO, &quot; +
  +     &quot;         ENAME, &quot; +
  +     &quot;         SAL + NVL(COMM, 0) AS INCOME &quot; +
  +     &quot;FROM     EMP &quot; +
  +     &quot;ORDER BY EMPNO&quot;;
  +
  +    var emps = sqlRowSet(&quot;demo&quot;, selectStatement);
  +
  +    for (var i = 0; i &lt; emps.length; i++) {
  +     addEmp(emps[i].empno, emps[i].ename, emps[i].income)
  +    }
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    Finally, it is possible, in general, to: 
  +   </P>
  +
  +   <UL> 
  +    <LI>
  +     Declare multiple external programs in the same XML document. 
  +     <BR><BR>
  +
  +     <CODE><FONT face="courier, monospaced">
  +       &lt;?dcp-object name=&quot;emp&quot; language=&quot;javascript&quot; code=&quot;emp.es&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +     <CODE><FONT face="courier, monospaced">
  +       &lt;?dcp-object name=&quot;dept&quot; language=&quot;javascript&quot; code=&quot;dept.es&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +    </LI>
  +    <LI>
  +     Declare the same external program multiple times in the same XML
  +     document, provided different names are used for each declaration. 
  +     <BR><BR>
  +
  +     <CODE><FONT face="courier, monospaced">
  +      &lt;?dcp-object name=&quot;emp&quot; language=&quot;ecmascript&quot; code=&quot;emp.es&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +     <CODE><FONT face="courier, monospaced">
  +      &lt;?dcp-object name=&quot;boss&quot; language=&quot;ecmascript&quot; code=&quot;emp.es&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +    </LI>
  +    <LI>
  +     Mix external programs written in different languages in the same XML
  +     document. 
  +     <BR><BR>
  +
  +     <CODE><FONT face="courier, monospaced">
  +      &lt;?dcp-object name=&quot;emp&quot; language=&quot;ecmascript&quot; code=&quot;emp.es&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +     <CODE><FONT face="courier, monospaced">
  +      &lt;?dcp-object name=&quot;dept&quot; language=&quot;java&quot; code=&quot;payroll.Department&quot;?&gt;
  +     </FONT></CODE>
  +     <BR>
  +    </LI>
  +   </UL> 
  +  </FONT></TD></TR></TABLE><BR>
  +
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Java DCP Programming</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.
gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    For the Java language, the attribute <CODE><FONT face="courier, monospaced">code</FONT></CODE> in the declaration 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    &lt;?dcp-object name=&quot;util&quot; language=&quot;java&quot; code=&quot;payroll.Employee&quot;?&gt;
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    is interpreted as a class name. Such class must be accessible through
  +    the servlet engine's classpath setting. 
  +   </P>
  +
  +   <P>
  +    Node-generation methods in Java conform to the following signature: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    public methodName(
  +     [java.util.Dictionary parameters],
  +     [org.w3c.dom.Node source]
  +    )
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    Like in Javascript, these arguments are optional. The return type can be
  +    of any Java type including <CODE><FONT face="courier, monospaced">void</FONT></CODE>.
  +   </P>
  +
  +   <P>
  +     Java classes used as DCP objects need not implement/extend any particular
  +     interface or class. In the Cocoon environment, however, it is strongly
  +     recommended to extend class: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    org.apache.cocoon.processor.dcp.java.ServletDCPProcessor. 
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +     This class provides the following convenience services: 
  +   </P>
  +
  +   <UL>
  +    <LI>
  +     Direct access to the servlet <I>request</I> object 
  +    </LI>
  +    <LI>
  +     Direct access to the document being processed 
  +    </LI>
  +    <LI>
  +      Factory methods to create all types of DOM nodes (elements, text nodes,
  +      document fragments, processing instructions, etc) 
  +    </LI>
  +   </UL>
  +
  +   <P>
  +    If developers choose not to extend this convenience class, the following
  +    requeriments must be honored: 
  +   </P>
  +
  +   <UL>
  +    <LI>
  +     The class must have an empty constructor 
  +    </LI>
  +    <LI>
  +     The class must have at least one method that conforms to the above
  +     signature. 
  +    </LI>
  +   </UL>
  +
  +   <P>
  +    In absence of a non-empty constructor, if the class does require
  +    initialization it can implement: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    org.cocoon.framework.Configurable. 
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +   <P>
  +    In this case, the DCP processor will invoke the class' init method
  +    immediately after instantiation. The configuration values passed in
  +    this case are: 
  +   </P>
  +
  +   <UL>
  +    <LI>
  +     The document being processed 
  +    </LI>
  +    <LI>
  +     The parameters passed to the processor by the invoking environment 
  +    </LI>
  +   </UL>
  +
  +   <P>
  +    For the Cocoon environment, parameters contain: 
  +   </P>
  +
  +   <UL>
  +    <LI>
  +     The <CODE><FONT face="courier, monospaced">javax.servlet.http.HttpServletRequest request</FONT></CODE> object
  +     corresponding to the current web server's request. 
  +    </LI>
  +    <LI>
  +     The <CODE><FONT face="courier, monospaced">java.lang.String path</FONT></CODE> associated with the current source
  +     XML document. 
  +    </LI>
  +    <LI>
  +     The <CODE><FONT face="courier, monospaced">java.lang.String browser</FONT></CODE> associated with the current
  +     request's <I>User-Agent</I> HTTP header. 
  +    </LI>
  +   </UL>
  +
  +   <P>
  +    Based on the above, for our tutorial example, the corresponding Java
  +    class would be: 
  +   </P>
  +
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    import java.util.*;
  +    import java.text.*;
  +    import org.w3c.dom.*;
  +    import javax.servlet.http.*;
  +    import org.apache.cocoon.processor.dcp.java.ServletDCPProcessor;
  +    
  +    public class Util extends ServletDCPProcessor {
  +      private static int count = 0;
  +    
  +      public synchronized int getCount() {
  +        return ++count;
  +      } 
  +    
  +      public String getSystemDate(Dictionary parameters) {
  +        Date now = new Date();
  +        String formattedDate = now.toString();
  +        String format = (String) parameters.get(&quot;format&quot;);
  +    
  +        if (format != null) {
  +          try {
  +            SimpleDateFormat dateFormat = new SimpleDateFormat(format);
  +            formattedDate = dateFormat.format(now);
  +          } catch (Exception e) { } // Bad format, ignore and return default
  +        }
  +    
  +        return formattedDate;
  +      }
  +    
  +      public Element getRequestParameters() {
  +        Enumeration e = this.request.getParameterNames();
  +    
  +        if (!e.hasMoreElements()) { // No parameters given, remove node from document 
  +          return null;
  +        }
  +    
  +        Element parameterList = createElement(&quot;parameters&quot;);
  +    
  +        int count;
  +        Element parameterValue;
  +        Element parameterElement;
  +        for (count = 0; e.hasMoreElements(); count++) {
  +          String name = (String) e.nextElement();
  +          String[] values = this.request.getParameterValues(name);
  +    
  +          parameterElement = createElement(&quot;parameter&quot;);
  +          parameterElement.setAttribute(&quot;name&quot;, name);
  +    
  +          for (int i = 0; i &lt; values.length; i++) {
  +            parameterValue = createElement(&quot;parameter-value&quot;);
  +            parameterValue.appendChild(createTextNode(values[i]));
  +    
  +            parameterElement.appendChild(parameterValue);
  +          }
  +    
  +          parameterList.appendChild(parameterElement);
  +        }
  +    
  +        return parameterList;
  +      }
  +    }
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +  </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Known Problems</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" v
space="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <UL>
  +    <LI>
  +     <B>Restricted Static Parameter Passing</B>.
  +     Due to the use of processing instructions as a means of inserting
  +     dynamic content in XML documents (as opposed to DOM elements),
  +     structured parameter passing can become too complex. 
  +     <BR><BR>
  +
  +     Consider the case when an employee list must be dynamically generated.
  +     Using elements to pass parameters to node-generation methods would allow
  +     for complex forms.
  +     <BR><BR>
  +
  +     
  +
  +     Other nested, multivalued parameter forms simply cannot be expressed by
  +     means of single-valued processing instruction pseudo-attributes. 
  +     <BR><BR>
  +
  +     A workaround for this is the traditional HTML idiom of using hidden
  +     fields in HTTP forms to pass static parameters. 
  +     <BR><BR>
  +
  +     Important to note, XSP uses elements (instead of processing instructions)
  +     to specify dynamic content substitution. 
  +    </LI>
  +
  +    <LI>
  +     <B>Javascript Performance</B>.
  +     While the current Javascript DCP performance is acceptable for small
  +     and medium-sized applications with light traffic, its response time is
  +     perceivably slower than that of Java. 
  +     <BR><BR>
  +
  +     This is a natural consequence of Javascript being interpreted by Java
  +     (itself interpreted by the underlying VM). As such, this restriction
  +     may also apply to other scripting languages such as WebL. 
  +     <BR><BR>
  +
  +     An alternative would be the use of Netscape's
  +     <A href="http://www.mozilla.org/rhino/">Rhino</A>
  +     (which supports compilation to class files),
  +     but this may create incompatibilities with existing programs
  +     that depend on FESI features.
  +     <BR><BR>
  +
  +     In the meantime, some Fesi-based workarounds are in place, most
  +     notably evaluator pooling, a technique based on dynamically cloning
  +     script evaluators when multiple, concurrent requests use the same
  +     Javascript external program. 
  +    </LI>
  +
  +    <LI>
  +     <B>No Java Class Reloading</B>.
  +     While Javascript files are automatically reloaded when they change on
  +     disk, currently there is no provision for automatic Java class reloading.
  +     <BR><BR>
  +
  +     Implementing this feature requires a specialized class loader. Note that
  +     servlet engine-provided class reloading does not apply to DCP because
  +     external Java programs are not servlets but, rather, regular classes
  +     dynamically instantiated by the DCP driver instead of by the underlying
  +     servlet engine. 
  +     <BR><BR>
  +
  +     The latter is also true if the user-supplied class extends DCP's
  +     convenience class
  +     <CODE><FONT face="courier, monospaced">org.apache.cocoon.processor.dcp.java.ServletDCPProcessor</FONT></CODE>.
  +    </LI>
  +   </UL>
  +  </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Additional Examples</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.g
if" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    In addition to the examples presented in this document, there is a more
  +    complex application written entirely in Cocoon using Java DCP: the
  +    <A href="http://www.plenix.com/translator/">
  +      Cocoon Multilingual Dictionary
  +    </A>.
  +   </P>
  +
  +   <P>
  +    This application lets users lookup terms and their translations in a
  +    number of European languages using Esperanto as the intermediate language.
  +    The entire example (source code and data, ~750K) can be downloaded from
  +    the above location. 
  +   </P>
  +  </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Future Directions</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif
" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +    <P>
  +      DCP will be deprecated in favor of
  +      <A href="http://xml.apache.org/cocoon/xsp.html">XSP</A>.
  +      Therefore, development is currently limited to bug fixes.
  +    </P>
  +  </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Acknowledgments</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" 
vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +   <P>
  +    The following people have contributed to the definition of DCP:
  +   </P>
  +
  +   <UL>
  +    <LI>
  +     Assaf Arkin, &lt;arkin@trendline.co.il&gt; 
  +    </LI>
  +    <LI>
  +     Brett Knights, &lt;bknights@uniserve.com&gt; 
  +    </LI>
  +    <LI>
  +     Donald Ball, &lt;balld@apache.org&gt; 
  +    </LI>
  +    <LI>
  +     Keith Visco, &lt;kvisco@ziplink.net&gt; 
  +    </LI>
  +    <LI>
  +     Stefano Mazzocchi, &lt;stefano@apache.org&gt; 
  +    </LI>
  +   </UL>
  +  </FONT></TD></TR></TABLE><BR>
  +
  +
   </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
                 Copyright &copy; 1999 The Apache Software Foundation.
                 All Rights Reserved.
  
  
  
  1.3       +15 -15    xml-site/targets/cocoon/faqs.html
  
  Index: faqs.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/faqs.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- faqs.html	1999/12/07 07:44:20	1.2
  +++ faqs.html	1999/12/16 01:39:28	1.3
  @@ -30,14 +30,14 @@
     <A href="todo.html" onMouseOut="rolloverOff('side-todo');" onMouseOver="rolloverOn('side-todo');"><IMG alt="Todo" border="0" height="12" hspace="0" name="side-todo" onLoad="rolloverLoad('side-todo','graphics/todo-label-2.jpg','graphics/todo-label-3.jpg');" src="graphics/todo-label-3.jpg" vspace="0" width="120"></A><BR>
     
   <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" he
ight="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Questions</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><UL><LI><A href="#faq-1">How do I pipe my servlet output into Cocoon?</A></LI><LI><A href="#faq-2">Where do I get more information on XSL and XML?</A></LI><LI><A href="#faq-3">The XSL book I read says the correct way of indicating the XSL stylesheet is by
  -    using the XML processing instruction &lt;&lt;?xml:stylesheet?&gt;&gt; while Cocoon is
  -    using &lt;&lt;?xml-stylesheet?&gt;&gt;. Who is right?
  +    using the XML processing instruction &lt;?xml:stylesheet?&gt; while Cocoon is
  +    using &lt;?xml-stylesheet?&gt;. Who is right?
    </A></LI><LI><A href="#faq-4">
  -    I think that using Processing Instructions to &quot;&quot;chain&quot;&quot;
  +    I think that using Processing Instructions to &quot;chain&quot;
       document layers somehow violates the context separation since I would like
       to be able to place style sensible information in sessions or request
       parameters. What do you think about this?
  - </A></LI><LI><A href="#faq-5">What is WAP and I do I browse WML?</A></LI><LI><A href="#faq-6">When I compile Cocoon on my system, I get all a bunch of errors. What's wrong?</A></LI><LI><A href="#faq-7">Why the name &quot;&quot;Cocoon&quot;&quot;?</A></LI></UL></FONT></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" w
idth="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Answers</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><BR><A name="faq-1"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" 
width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>How do I pipe my servlet output into Cocoon?</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace
="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  + </A></LI><LI><A href="#faq-5">What is WAP and how do I browse WML?</A></LI><LI><A href="#faq-6">When I compile Cocoon on my system, I get all a bunch of errors. What's wrong?</A></LI><LI><A href="#faq-7">Why the name &quot;Cocoon&quot;?</A></LI></UL></FONT></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"
><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Answers</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><BR><A name="faq-1"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484
"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>How do I pipe my servlet output into Cocoon?</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width
="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
     <P>Simple answer: <I>you don't!!!</I> read this
     document instead to find out equivalent ways to do what you need.</P>
     <P>Complex answer: the Servlet API <I>was not</I> designed with servlet
  @@ -84,26 +84,26 @@
         of standard DTDs</LI>
     </UL>
   </FONT></TD></TR></TABLE><BR><A name="faq-3"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>The XSL book I read says the correct way of indicating the XSL stylesheet is by
  -    using the XML processing instruction &lt;&lt;?xml:stylesheet?&gt;&gt; while Cocoon is
  -    using &lt;&lt;?xml-stylesheet?&gt;&gt;. Who is right?
  +    using the XML processing instruction &lt;?xml:stylesheet?&gt; while Cocoon is
  +    using &lt;?xml-stylesheet?&gt;. Who is right?
    </B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -  <P>The PI <CODE><FONT face="courier, monospaced">&lt;&lt;?xml:stylesheet type=&quot;&quot;text/xsl&quot;&quot; href=&quot;&quot;&quot;&quot;?&gt;&gt;</FONT></CODE>
  +  <P>The PI <CODE><FONT face="courier, monospaced">&lt;?xml:stylesheet type=&quot;text/xsl&quot; href=&quot;&quot;?&gt;</FONT></CODE>
     is the old method of associating a stylesheet with an XML document. Unfortunately, this
     technology is rapidly changing and your books should warn you that the topic they are
     discussing is not even in W3C Recommendation state. Which means that more changes are on
     their way.</P>
     <P>The current and proper way to associate a stylesheet with an XML document can be found at 
     <A href="http://www.w3.org/TR/xml-stylesheet">http://www.w3.org/TR/xml-stylesheet</A> and
  -  clearly indicates that <CODE><FONT face="courier, monospaced">&lt;&lt;?xml-stylesheet ...?&gt;&gt;</FONT></CODE> is the proper way.</P>
  +  clearly indicates that <CODE><FONT face="courier, monospaced">&lt;?xml-stylesheet ...?&gt;</FONT></CODE> is the proper way.</P>
    </FONT></TD></TR></TABLE><BR><A name="faq-4"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>
  -    I think that using Processing Instructions to &quot;&quot;chain&quot;&quot;
  +    I think that using Processing Instructions to &quot;chain&quot;
       document layers somehow violates the context separation since I would like
       to be able to place style sensible information in sessions or request
       parameters. What do you think about this?
    </B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
     <P>You are right, PI reaction breaks the context separation and it's, at the
  -    very end, the wrong approach. To follow a complete &quot;&quot;model, view,
  -    controller&quot;&quot; design pattern, one should be able to associate a different
  +    very end, the wrong approach. To follow a complete &quot;model, view,
  +    controller&quot; design pattern, one should be able to associate a different
       processing chain for each requested URI and for every possible request state
       (with request parameters, session parameters and environment parameters).</P>
     <P>The proposed solution (as you read in the Cocoon2
  @@ -115,7 +115,7 @@
       single reactive PI in each source file.</P>
     <P>So, you've been warned: the PIs will go away, current functionality will
       remain but the processing management will be abstracted one layer up.</P>
  -</FONT></TD></TR></TABLE><BR><A name="faq-5"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>What is WAP and I do I browse WML?</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG bo
rder="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  +</FONT></TD></TR></TABLE><BR><A name="faq-5"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>What is WAP and how do I browse WML?</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG 
border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
     <P>WAP stands for Wireless Application Protocol and WML stands for Wireless
       Markup Language. For more information about these two, please refer to the 
       <A href="http://www.wapforum.org">WAP Forum</A>. For a client able 
  @@ -137,15 +137,15 @@
     only way to compile it is to manually indicate all the files to compile or to use the
     makefiles after removing the unwanted wrapper classes for the packages you don't have or
     you don't want.</P>
  -</FONT></TD></TR></TABLE><BR><A name="faq-7"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Why the name &quot;&quot;Cocoon&quot;&quot;?</B></FONT></TD><TD bgcolor="#017299" width="
1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  +</FONT></TD></TR></TABLE><BR><A name="faq-7"></A><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Why the name &quot;Cocoon&quot;?</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG bord
er="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
     <P> (Cocoon's creator Stefano Mazzocchi answers): It's a pretty stupid reason and a funny
     story: I spent my 1998 Xmas vacation with my girlfriend up on the Alps at her cottage. One
     night I couldn't sleep, I went to watch some TV and finishing reading the XSL
     documentation I brought with me. Being a science fiction <I>afficionado</I>, I found out
     that Ron Howard's movie Cocoon was on and I started watching it. The idea of the XSL
  -  rendering servlet stoke me like the alien &quot;&quot;cocoons&quot;&quot; in the pool stroke those old men in the
  +  rendering servlet stoke me like the alien &quot;cocoons&quot; in the pool stroke those old men in the
     movie and, while watching, I started paper-coding it right away. After a while the movie
  -  was over and the publishing framework designed. The name &quot;&quot;Cocoon&quot;&quot; seemed right
  +  was over and the publishing framework designed. The name &quot;Cocoon&quot; seemed right
     for the thing, meaning to be a way to bring new life to old ideas as well as to create <I>cocoons</I>
     for such new ideas to become beautiful butterflies. :-)</P>
   </FONT></TD></TR></TABLE><BR></FONT></TD></TR></TABLE><BR></TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
  
  
  
  1.2       +4 -4      xml-site/targets/cocoon/guide.html
  
  Index: guide.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/guide.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- guide.html	1999/12/03 00:17:05	1.1
  +++ guide.html	1999/12/16 01:39:28	1.2
  @@ -63,7 +63,7 @@
   me like I walk on water), and a couple of summer 
   interns that I had helping me on the project are 
   suddenly getting massively head-hunted by companies 
  -like AT&amp;&amp;T now that they can put XML and XSL on 
  +like AT&amp;T now that they can put XML and XSL on 
   their resumes.  In a word: Cocoon simply rocks!
   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
   </FONT></TD></TR></TABLE><BR>
  @@ -98,7 +98,7 @@
     follow a <A href="http://www.w3.org/TR/WD-xml-stylesheet">W3C recommendation</A>
     and add the XML processing instruction to map a stylesheet to a document:</P>
     
  -  <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;&lt;xml-stylesheet href&quot;hello.xsl&quot; type=&quot;text/xsl&quot;&gt;&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" w
idth="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +  <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;xml-stylesheet href&quot;hello.xsl&quot; type=&quot;text/xsl&quot;&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"
></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
     
     <P>Now that our content layer is done, we need to create a stylesheet to
     convert it to a format readable by our web clients. Since most available web
  @@ -322,11 +322,11 @@
     to the right processor or formatter. These processing instructions are:</P>
     
   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  -&lt;&lt;?cocoon-process type=&quot;xxx&quot;?&gt;&gt; for processing
  +&lt;?cocoon-process type=&quot;xxx&quot;?&gt; for processing
   
         and
   
  -&lt;&lt;?cocoon-format type=&quot;yyy&quot;?&gt;&gt; for formatting
  +&lt;?cocoon-format type=&quot;yyy&quot;?&gt; for formatting
   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
   
     <P>These PIs are used to indicate the processing and formatting path that the
  
  
  
  1.4       +1 -1      xml-site/targets/cocoon/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/index.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- index.html	1999/12/03 00:17:05	1.3
  +++ index.html	1999/12/16 01:39:28	1.4
  @@ -174,7 +174,7 @@
      For direct participation, we suggest you to subscribe to the 
      <A href="http://xml.apache.org/mail.html">Cocoon mail lists</A> 
      (follow the link for information on how to subscribe and to access the mail 
  -   list archives), to checkout the <A href="http://www.apache.com/cvsweb/index.cgi/cocoon/">
  +   list archives), to checkout the <A href="http://xml.apache.org/websrc/cvsweb.cgi/xml-cocoon/">
      latest and greatest code</A> (which you found in the xml-cocoon module in 
      the xml.apache.org CVS code repository), control the todo
      list and jump in. Document writers are usually the most wanted people so if
  
  
  
  1.2       +273 -46   xml-site/targets/cocoon/install.html
  
  Index: install.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/install.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- install.html	1999/12/03 00:17:05	1.1
  +++ install.html	1999/12/16 01:39:28	1.2
  @@ -33,6 +33,7 @@
    
    
    
  + 
    <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>System Requirements</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gi
f" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>
      Cocoon requires the following systems to be already installed in your
  @@ -52,7 +53,6 @@
       is optional for command line operation.
      </LI>
     </UL>
  -   
    </FONT></TD></TR></TABLE><BR>
    
    <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Required Components</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gi
f" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  @@ -63,32 +63,141 @@
     </P>
     
     <P>
  -   Cocoon uses an XML parser and an XSLT processor has its basic components and
  -   uses the DOM API to access work with them. For this reason, you need both
  -   DOM-enabled XML parser and XSLT processor. Also, for complex formatting,
  -   Cocoon uses a formatting object renderer and a set of printing classes
  -   to send the page to the client.
  +   Here is a list of supported components with their minimum version required
  +   to operate with this version of Cocoon:
     </P>
     
  +  <P>XML Parsers<TABLE border="0" cellpadding="2" cellspacing="2" width="100%">
  +   
  +    <TR>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Name</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Version</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Location</B>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Apache Xerces&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">1.0 (java edition)&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://xml.apache.org/dist/">xml.apache.org</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Sun ProjectX&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">TR2&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://java.sun.com/xml/">java.sun.com</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="3" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Cocoon comes preconfigured for Xerces&nbsp;
  +      </FONT></TD>
  +    </TR>
  +  </TABLE></P>
  +   
  +  <P>XSLT Processor<TABLE border="0" cellpadding="2" cellspacing="2" width="100%">
  +   
  +    <TR>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Name</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Minimum Version</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Location</B>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Apache Xalan&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">0.19.1&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://xml.apache.org/dist/">xml.apache.org</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">James Clark's XT&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">19991102&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://www.jclark.com/">www.jclark.com</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="3" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Cocoon comes preconfigured for Xalan&nbsp;
  +      </FONT></TD>
  +    </TR>
  +  </TABLE></P>   
  +   
  +  <P>Other Required Components<TABLE border="0" cellpadding="2" cellspacing="2" width="100%">
  +   
  +    <TR>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Name</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Minimum Version</B>&nbsp;
  +      </FONT></TD>
  +     <TD align="center" bgcolor="#039acc" colspan="1" rowspan="1" valign="center"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="-1"><B>Location</B>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">Apache FOP&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">0.12.0&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://xml.apache.org/dist/">xml.apache.org</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">FESI EcmaScript Engine&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">1.2.1&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://home.worldcom.ch/jmlugrin/fesi/download.html">home.worldcom.ch/jmlugrin/fesi</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +    <TR>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">GNU Regexp&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">1.0.8&nbsp;
  +      </FONT></TD>
  +     <TD align="left" bgcolor="#a0ddf0" colspan="1" rowspan="1" valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><A href="http://www.cacas.org/java/gnu/regexp/">www.cacas.org/java/gnu/regexp</A>&nbsp;
  +      </FONT></TD>
  +    </TR>
  +  </TABLE></P>   
  +  
  +  <TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>
  +   Cocoon is strictly dependent on some printing classes contained into Xerces
  +   so, even if you use another parser, you should still keep Xerces visible
  +   to Cocoon.
  +  </I></FONT></TD></TR></TABLE>
  +  
     <P>
  -   Being an Apache project, Cocoon focues on Apache technologies and comes
  -   configured to operate with Xerces, Xalan and FOP, but other DOM-aware 
  -   components are supported as well (see the <CODE><FONT face="courier, monospaced">cocoon.properties</FONT></CODE>
  -   file for more information on other components supported).
  +   Being an Apache project, Cocoon focuses on Apache technologies but we are
  +   dedicated to support all compatible XML/XSL technologies and will welcome
  +   contributions to add support for other components not currently supported.
     </P>
     
     <P>
  -   For this reason, in order to work out of the box and have complete operation, 
  -   you need to download all three packages (Xerces-J, Xalan-J and FOP) from the
  -   <A href="http://xml.apache.org/dist/">xml.apache.org</A> distribution
  -   area. Once you have
  -   all three jar packages required and all other packages that may be required
  -   by these projects, go ahead and follow the instructions for your servlet
  -   engine.
  +   So this is your shopping list for components for complete operation:
     </P>
  - 
  +   
  +   <UL>
  +    <LI>Apache Xerces (required for the formatting classes)</LI>
  +    <LI>Your favorite XML parser</LI>
  +    <LI>Your favorite XSLT processor</LI>
  +    <LI>Apache FOP (optional, unless you want PDF rendering)</LI>
  +    <LI>GNU Regexp (optional, unless you use <I>ProducerFromMap</I>)</LI>
  +    <LI>FESI (optional, unless you use <I>DCP</I>)</LI>
  +   </UL>
  +   
  +  <P>
  +   All right. Now that you have downloaded all the components you need, go on
  +   and jump to the installation instructions for your servlet engine.
  +  </P>
    </FONT></TD></TR></TABLE><BR>
  -  
  + 
    <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Installing Cocoon</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif"
 vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>
      Being Cocoon a servlet, you should be able to install it on every compliant
  @@ -106,47 +215,48 @@
      </P>
      
      <P>
  -    First thing to do is to make sure that the components needed by Cocoon (and
  -    explained in the above paragraphs) are visible. This implies adding this to
  -    the servlet engine classpath by adding a line like this in your 
  +    First thing to do is to make sure that Cocoon and all the needed components
  +    (as explained in the previous section) are visible. This implies adding 
  +    this to the servlet engine classpath by adding a line like this in your 
       <CODE><FONT face="courier, monospaced">jserv.properties</FONT></CODE> file for each jar package you have to install
  -    after substituting <I>[path-to-jar]</I> with the path to the jar file and
  -    <I>[jar-name]</I> with the package file name.
  +    (after substituting <I>[path-to-jar]</I> with the path to the jar file and
  +    <I>[jar-name]</I> with the package file name).
      </P>
       
      <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>wrapper.classpath=[path-to-jar]/[jar-name].jar</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2"
 height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
      
      <P>
  -    <I>Note:</I> do not add the <CODE><FONT face="courier, monospaced">cocoon.jar</FONT></CODE> package here since
  -    this might corrupt it's normal operation. Here, you should add all the 
  -    required packages <I>but</I> Cocoon itself.
  +    Here is an example:
      </P>
      
  -   <P>
  -    At this point, you must tell the servlet engine to locate Cocoon (since
  -    you didn't do this in the step right above!). To do this, you should choose
  -    the servlet zone where you want Cocoon to reside. If you don't know what
  -    a servlet zone is, you probably want to open the <CODE><FONT face="courier, monospaced">zone.properties</FONT></CODE>
  -    file that represents the default servlet zone. Now add the 
  -    <CODE><FONT face="courier, monospaced">cocoon.jar</FONT></CODE> package to your servlet zone by making sure
  -    a line like this is present in your zone property file.
  -   </P>
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +wrapper.classpath=/usr/local/java/lib/cocoon.jar
  +wrapper.classpath=/usr/local/java/lib/xerces.jar
  +wrapper.classpath=/usr/local/java/lib/xalan.jar
  +wrapper.classpath=/usr/local/java/lib/fop.jar
  +wrapper.classpath=/usr/local/java/lib/regexp.jar
  +</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
      
  -   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>repositories=...,[path-to-cocoon]/bin/cocoon.jar</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b
2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +   <TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>
  +    from this version of Cocoon the <CODE><FONT face="courier, monospaced">Cocoon.jar</FONT></CODE> 
  +    package should be added to the servlet engine classpath as any other
  +    required package (as shown above).
  +   </I></FONT></TD></TR></TABLE>
      
      <P>
  -    where ... stands for any other servlet repository the servlet zone already
  -    contains (or might be empty if no other repository is used by this zone) and
  -    <I>[path-to-cocoon]</I> is substitued by the actual path to the <CODE><FONT face="courier, monospaced">
  -    cocoon.jar</FONT></CODE> file.
  +    At this point, you must set the Cocoon configurations. To do this, you 
  +    must choose the servlet zone(s) where you want Cocoon to reside (Note that
  +    Cocoon can safely reside on different servlet zones with different
  +    configuration files). If you don't know what a servlet zone is, you 
  +    probably want to open the <CODE><FONT face="courier, monospaced">zone.properties</FONT></CODE> file that represents 
  +    the default servlet zone.
      </P>
      
      <P>
  -    Now the servlet engine knows where to locate the Cocoon servlet
  -    but Cocoon must need to know its configurations to be able to start. 
       To configure Cocoon, you must pass the <CODE><FONT face="courier, monospaced">cocoon.properties</FONT></CODE>
       file location to the servlet by adding the following to the 
  -    <CODE><FONT face="courier, monospaced">zone.properties</FONT></CODE> file:
  +    <CODE><FONT face="courier, monospaced">zone.properties</FONT></CODE> file (or each servlet zone file you want
  +    Cocoon to reside):
      </P>
      
      <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>servlet.org.apache.cocoon.Cocoon.initArgs=properties=[path-to-cocoon]/bin/cocoon.properties</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vs
pace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  @@ -173,16 +283,132 @@
       and <I>/servlet/</I> is the mount point of your servlet zone (and the
       above is the standard name for servlet mapping for Apache JServ).
      </P>
  -     
  +   
      <P>
       Everything should be configured fine. Restart both Apache and Apache JServ
       and try accessing the samples contained in the distribution to see
       Cocoon in action.
      </P>
  +   
  +   <P>
  +    <B>Note</B>: you may want Cocoon to handle two different 
  +    extentions with different configurations. To do this, you must set the two 
  +    different configurations in two different servlet zones, then associate the 
  +    extentions like this:
  +   </P>
  +   
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>ApJServAction .xml1 /zone1/org.apache.cocoon.Cocoon
  +ApJServAction .xml2 /zone2/org.apache.cocoon.Cocoon</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>           
  +
  +   <P>
  +    where <I>.xml1</I> is handled by the Cocoon residing on <I>zone1</I>
  +    and <I>.xml2</I> is handled by the Cocoon residing on <I>zone2</I>
  +    which have different configurations and thus different behavior.
  +   </P>
     </FONT></TD></TR></TABLE><BR>
     
     <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Installing Cocoon on Apache Tomcat</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/v
oid.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  -   <P>Yet to be written! <I>Volunteers welcome!</I></P>
  +    <P>
  +     Tomcat has two basic methods of locating Java classes for the runtime environment.
  +     The first is the overall classpath that Tomcat uses to run, and this is the
  +     classpath provided to Java classes that use constructs such as
  +     <CODE><FONT face="courier, monospaced">Class.forName().newInstance()</FONT></CODE>.  The second classpath is
  +     associated with a specific context, and is somewhat analagous to the
  +     servlet zones used in Apache JServ (see section above).
  +    </P>
  +
  +    <P>
  +     Because the Cocoon framework utilizes <CODE><FONT face="courier, monospaced">Class.forName()</FONT></CODE> and other
  +     dynamic instance handling techniques, the Cocoon classes need to have its
  +     classpath aware of the component classes used within the framework.  To do 
  +     this, take all the required components (see above) and put them in your 
  +     <I>&lt;Tomcat-Root&gt;/lib</I> directory.  This is the standard location 
  +     for Tomcat core libraries. To ensure that Tomcat will use these, you need 
  +     to edit the Tomcat startup file.
  +    </P>
  +    
  +    <P>
  +     On Windows, this is <I>&lt;Tomcat-Root&gt;/tomcat.bat</I> and on
  +     Unix, this is <I>&lt;Tomcat-Root&gt;/tomcat.sh</I>.  In this 
  +     file you must add all the component jar files to Tomcat's classpath.
  +    </P>
  +
  +    <TABLE border="0" cellpadding="0" cellspacing="3" width="100%"><TR><TD valign="top" width="20"><IMG alt="Note" border="0" height="24" hspace="0" src="resources/note.gif" vspace="0" width="20"></TD><TD valign="top"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1"><I>
  +     from this version of Cocoon the <CODE><FONT face="courier, monospaced">Cocoon.jar</FONT></CODE> 
  +     package should be added to the servlet engine classpath as any other
  +     required package (as shown above).
  +    </I></FONT></TD></TR></TABLE>
  +   
  +    <P>
  +     Next you need to tell your context where Cocoon can find it's properties 
  +     file, as well as to map Cocoon to XML document requests.
  +     Make sure you have a <I>web.xml</I> file in your context's
  +     <I>WEB-INF</I> directory.  This file specifies servlet mappings
  +     and initial arguments to servlets.  If you don't have this file, you can copy
  +     an example from <I>&lt;Tomcat-Root&gt;/examples/WEB-INF</I>
  +     directory.  You should add the following entries in that file:
  +    </P>
  +
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  + &lt;servlet&gt;
  +  &lt;servlet-name&gt;org.apache.cocoon.Cocoon&lt;/servlet-name&gt;
  +  &lt;servlet-class&gt;org.apache.cocoon.Cocoon&lt;/servlet-class&gt;
  +  &lt;init-param&gt;
  +   &lt;param-name&gt;properties&lt;/param-name&gt;
  +   &lt;param-value&gt;
  +     [path-to-cocoon.properties]/cocoon.properties
  +   &lt;/param-value&gt;
  +  &lt;/init-param&gt;
  + &lt;/servlet&gt;
  + 
  + &lt;servlet-mapping&gt;
  +  &lt;servlet-name&gt;org.apache.cocoon.Cocoon&lt;/servlet-name&gt;
  +  &lt;url-pattern&gt;*.xml&lt;/url-pattern&gt;
  + &lt;/servlet-mapping&gt;
  +</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +
  +    <P>
  +     Make sure you replaced the path to the Cocoon.properties file with the 
  +     actual location of that file on your system.
  +     Note that you should not need to change anything from the template
  +     properties file found in the distribution, but you must edit it for
  +     more complex operation. Please refer directly to the file that contains
  +     brief indications and comments on the different configurations, but you
  +     don't need to care about that at this point.
  +    </P>
  +
  +    <P>
  +     Everything should be configured fine. Restart Tomcat
  +     and try accessing the samples contained in the distribution to see
  +     Cocoon in action.
  +    </P>   
  +  </FONT></TD></TR></TABLE><BR>
  +
  +  <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Installing Cocoon on BEA WebLogic</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/vo
id.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  +   <P>
  +    After you have obtained all the jar packages you need (see the above
  +    section), you should add all of them (included the <CODE><FONT face="courier, monospaced">cocoon.jar</FONT></CODE>
  +    package to your <CODE><FONT face="courier, monospaced">weblogic.class.path</FONT></CODE> variable either
  +    using the <I>t3config</I> utility or use the <CODE><FONT face="courier, monospaced">-Dweblogic.class.path</FONT></CODE>
  +    argument with the java runtime that invokes the system.
  +   </P>
  +   <P>
  +    Once you've done that, you should register Cocoon by adding these lines
  +    to your configuration files:
  +   </P>
  +   <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  +    weblogic.httpd.register.*.xml=\org.apache.cocoon.Cocoon
  +    weblogic.httpd.initArgs.*.xml=\properties=[path-to-cocoon]/bin/cocoon.properties
  +   </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +   <P>
  +    making sure that you replaced <I>[path-to-cocoon]</I> with the actual
  +    path in your system.
  +   </P>
  +   <P>
  +    At this point your system is configured. Access the &quot;/Cocoon.xml&quot; page
  +    with your browser to see the Cocoon status screen that will tell you
  +    that Cocoon is up and running.
  +   </P>
     </FONT></TD></TR></TABLE><BR>
     
     <TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="666699" colspan="2" width="484"><TABLE border="0" cellpadding="0" cellspacing="0" width="484"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="482"><FONT color="#ffffff" face="arial,helvetica,sanserif"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Installing Cocoon on Allaire JRun</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/vo
id.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="482"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="482"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="474"><FONT color="#000000" face="arial,helvetica,sanserif" size="-1">
  @@ -212,6 +438,7 @@
       <LI>Windows 98 + MS Personal Web Server + ServletExec 2.2 + Sun JDK 1.2.1</LI>
       <LI>Windows NT 4.0 + IIS 4.0 + ServletExec 2.2 + Sun JDK 1.2.1</LI>
       <LI>Windows NT 4.0 + IIS 4.0 + JRun 2.3.3 + Sun JDK 1.2.1</LI>
  +    <LI>Windows NT 4.0 + Apache 1.3.9 + JRun 2.3.3 + Sun JDK 1.2.2</LI>
       <LI>MacOS 8.6 + WebSTAR 4.0 + JRun 2.3 + MrJ 2.1.4</LI>
       <LI>MacOS 8.6 + WebSTAR 4.0 + ServletExec 2.1 + Mrj 2.1.4</LI>
       <LI>SunOS Netria 5.6 + Apache 1.3.9 + Apache JServ 1.1b3 + Sun JDK 1.1.7</LI>
  
  
  
  1.2       +6 -6      xml-site/targets/cocoon/javadoc.html
  
  Index: javadoc.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/javadoc.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- javadoc.html	1999/12/03 00:17:05	1.1
  +++ javadoc.html	1999/12/16 01:39:28	1.2
  @@ -68,15 +68,15 @@
     </UL>
     <LI>Some final formats we could produce are:</LI>
     <UL>
  -    <LI>javadoc.dtd ---&gt;&gt; javadoc_html.dtd ---&gt;&gt; HTML (this would create a
  +    <LI>javadoc.dtd ---&gt; javadoc_html.dtd ---&gt; HTML (this would create a
           javadoc that looks like the current HTML javadoc standard).</LI>
  -    <LI>javadoc.dtd ---&gt;&gt; docBook.dtd (this would facilitate printed
  -        books based having heavy content about java API's. For example &quot;&quot;The
  -        JDBC API Tutorial and Reference: 2nd Edition&quot;&quot; could make heavy use
  +    <LI>javadoc.dtd ---&gt; docBook.dtd (this would facilitate printed
  +        books based having heavy content about java API's. For example &quot;The
  +        JDBC API Tutorial and Reference: 2nd Edition&quot; could make heavy use
           of this.</LI>
  -    <LI>javadoc.dtd ---&gt;&gt; ebook.dtd (this would facilitate the electronic
  +    <LI>javadoc.dtd ---&gt; ebook.dtd (this would facilitate the electronic
           version of documentation)</LI>
  -    <LI>javadoc.dtd ---&gt;&gt; ??? ---&gt;&gt; pdf</LI>
  +    <LI>javadoc.dtd ---&gt; ??? ---&gt; pdf</LI>
     </UL>
     <LI>Using this method we will then enhance the existing Cocoon documentation to provide rich documentation
         using some subset of the above formats.</LI>
  
  
  
  1.2       +118 -7    xml-site/targets/cocoon/sql.html
  
  Index: sql.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/sql.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sql.html	1999/12/03 00:17:05	1.1
  +++ sql.html	1999/12/16 01:39:28	1.2
  @@ -1,4 +1,4 @@
  -<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>SQLProcessor User Guide</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/sql-header.jpg" vspace="0" width="456
"></TD></TR><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href=
"http://www.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
  +<HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>SQLProcessor</TITLE></HEAD><BODY alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4" text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5" hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left" height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0" src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG alt="" border="0" height="35" hspace="0" src="graphics/sql-header.jpg" vspace="0" width="456"></TD></TR
><TR><TD align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0" src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20" valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');" onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0" height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');" src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');" onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0" height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');" src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left" height="20" valign="top" width="96"><A href="http://www
.w3.org/" onMouseOut="rolloverOff('w3c');" onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0" height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');" src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top" width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0" width="120"><BR>
   
     <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG alt="Back" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','graphics/ext-2-label-2.jpg','graphics/ext-2-label-3.jpg');" src="graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
     
  @@ -30,13 +30,124 @@
     <A href="todo.html" onMouseOut="rolloverOff('side-todo');" onMouseOver="rolloverOn('side-todo');"><IMG alt="Todo" border="0" height="12" hspace="0" name="side-todo" onLoad="rolloverLoad('side-todo','graphics/todo-label-2.jpg','graphics/todo-label-3.jpg');" src="graphics/todo-label-3.jpg" vspace="0" width="120"></A><BR>
     
   <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
  - 
   
  - 
  -  <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Introduction</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vsp
ace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  -   <P>Yet to be XML-ized!</P>
  -  </FONT></TD></TR></TABLE><BR>
  - 
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Description</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspac
e="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>SQLProcessor is a processor for Cocoon that performs SQL queries, translates the resultset into an XML fragment, and inserts the fragment in the original document. I wrote it because I've got quite a bit of &quot;legacy&quot; data in SQL databases that I wanted to be able to easily access from Cocoon. I believe that servers and data structures capable of storing and retrieving large amounts of XML data natively will arise, obviating the need for this type of middleware. I also believe that it's going to take a while for them to achieve the same performance and stability we've come to expect from SQL databases, hence the current need for SQLProcessor or something like it.</P>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Installation</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspa
ce="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>Check your cocoon.properties for this line and add it if it's not already there:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>processor.type.sql = org.apache.cocoon.processor.sql.SQLProcessor</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD
 bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Configuration</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vsp
ace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>Add this PI to the XML files to which you wish to add SQL queries:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;?cocoon:process type=&quot;sql&quot;?&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" h
eight="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>You probably want this before any &quot;xslt&quot; processing directives. Then add SQL connection information to your XML files. The tagset for connection defitions looks like this:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;connectiondefs&gt;
  + &lt;connection name=&quot;foo_connection&quot;&gt;
  +  &lt;driver&gt;org.gjt.mm.mysql.Driver&lt;/driver&gt;
  +  &lt;dburl&gt;jdbc:mysql://mysql.example.com/foo_database&lt;/dburl&gt;
  +  &lt;username&gt;foo_user&lt;/username&gt;
  +  &lt;password&gt;foo_password&lt;/password&gt;
  + &lt;/connection&gt;
  + ... other connections if desired ...
  +&lt;/connectiondefs&gt;
  +</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>Username and password are optional. This tagset will be removed from the document after processing. Multiple connectiondefs should be processed properly, but there's no good reason I can think of to do that. It's probably desirable to put the connectiondefs in a standalone XML file and link it in with external entities. The syntax for that is:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;!DOCTYPE page [
  + &lt;!ENTITY connection_defs SYSTEM &quot;http://www.example.com/cdefs.xml&quot;&gt;
  +]&gt;
  +
  +&lt;page&gt;
  + &amp;connection_defs;
  + ... other XML data ...
  +&lt;/page&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>but this has the significant disadvantage that your database usernames and passwords are by default accessible from the WWW. You may wish to protect the cdefs.xml file by restricting access to the directory it lives in to the ip address(es) of your server(s).</P>
  +		<P>The other warning here is that if cocoon is operating on the www.example.com site, it will try to process the cdefs.xml file before giving it to the XML parser. As long as cdefs.xml has no cocoon:process PI, you will not have any trouble but it will be somewhat slower than if cocoon is not involved. A simple trick to get around this is to rename the file to an extension that does not trigger cocoon. I use .sxml, shorthand for Source XML. Those of you with real operating systems can just make a link to the .xml file.</P>
  +		<P>In addition to the connection element, you can also have querydefs tags in your connectiondefs node. A querydefs node must have a unique name attribute. query tags (described below) may reference a querydefs tag in their defs attribute, which causes the query tag's attributes to default to the attributes of the querydefs tag. This is useful for setting commonly used groups of attributes. You may also specify a default querydefs. Here is an example:</P>
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;querydefs name=&quot;standard&quot; doc-element=&quot;options&quot; 
  +  row-element=&quot;option&quot; connection=&quot;foo&quot;/&gt;
  +&lt;query defs=&quot;standard&quot;/&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>is equivalent to</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;query doc-element=&quot;options&quot; row-element=&quot;option&quot; connection=&quot;foo&quot;/&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/
void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>You can also flag a querydefs node as the default for all query tags by setting the default attribute to yes. Note that query tags can always override the defaults.</P>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Usage</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" 
width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>Add SQL queries to your XML files. The tagset looks like this:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;query connection=&quot;foo_connection&quot;&gt;
  + select name,number,message from foo_table order by name
  +&lt;/query&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>This will be replaced by a tagset that looks like this:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;ROWSET&gt;
  + &lt;ROW ID=&quot;0&quot;&gt;
  +  &lt;NAME&gt;Donald Ball&lt;/NAME&gt;
  +  &lt;NUMBER&gt;23&lt;/NUMBER&gt;
  +  &lt;MESSAGE&gt;
  +   The Illuminati do not exist. 
  +   This message paid for by the Illuminati.&lt;/MESSAGE
  +  &gt;
  + &lt;/ROW&gt;
  + ... other rows ...
  +&lt;/ROWSET&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>You can also have SQLProcessor substitute values from the servlet request into your query. The syntax for that is:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;query connection=&quot;foo_connection&quot;&gt;
  + select name,number,message from foo_table where id={@id} order by name
  +&lt;/query&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>This is, of course, highly configurable by setting attributes of the query tag. A partial list of attributes is:</P>
  +		<UL>
  +			<LI><B>doc-element</B> - The tag with which to wrap the whole shebang. Default is ROWSET. If an empty string is specified, e.g. doc-element=&quot;&quot;, the whole shebang will not be wrapped.</LI>
  +			<LI><B>row-element</B> - The tag with which to wrap each row. Default is ROW. Same deal as with doc-element.</LI>
  +			<LI><B>tag-case</B> - The case in which to present the column name tags. Default is &quot;preserve&quot;, meaning use whatever the JDBC driver likes to call the columns. Options are &quot;upper&quot; for forced uppercase (boo) or &quot;lower&quot; for forced lowercase (yay).</LI>
  +			<LI><B>null-indicator</B> - What do we do with null columns. default is to not print anything for null columns, not even a column tag. If this is set to &quot;y&quot; or &quot;yes&quot;, we add a NULL=&quot;YES&quot; attribute to the column and put an empty string inside.</LI>
  +			<LI><B>id-attribute</B> - What is the name of the attribute that uniquely identifies the rows? Default is ID. This is, of course, meaningless if row-element is set to an empty string.</LI>
  +			<LI><B>id-attribute-column</B> - Which column should we use for the id attribute value (think primary key column). Default is to use the offset of this row in the query's resultset.</LI>
  +			<LI><B>max-rows</B> - How many rows should we display</LI>
  +			<LI><B>skip-rows</B> - How many rows should we skip before starting to display rows</LI>
  +			<LI><B>variable-left-delimiter</B> - What string delimits variables in the query on the left side? Default is {@.</LI>
  +			<LI><B>variable-right-delimiter</B> - What string delimits variables in the query on the right side? Default is }.</LI>
  +		</UL>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Creating Complex Queries</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/vo
id.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>URL request parameter substitution using {@var} is fine for many situations, but is inadequate for handling queries whose conditions are dependent on the state of many variables. To accomodate these queries, you can specify the name of a subclass of SQLQueryCreator that will create the query string. The method that should be overridden is:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>public String getQuery(Connection conn, String query, 
  +  Element query_element, Properties query_props, Hashtable parameters) 
  +  throws Exception;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +		<P>This looks like a lot of parameters. I didn't figure that it made sense to deny any of the potential information available to the query creator. Just ignore what you don't care about. The parameters that deserve explanation are query_props, which is a Properties object containing all of the attribute values of the query tag, keyed by name. The parameters table is passed from cocoon to its processors, and contains lots of informatin, notable the original HttpServletRequest, keyed by the string &quot;request&quot;.</P>
  +		<P>You specify the particular subclass of SQLQueryCreator in the creator attribute of the query tag. It's probably easiest if you put your query creators in a package, e.g. com.webslingerZ.cocoon.ComplexQueryCreator.</P>
  +		<P>One utility method is provided for your convenience. The SQLEscape method should parse a string for apostrophes and replace them with whichever string their database likes to use instead. It's not working correctly for my database drivers, so the default getQuery method does not use it. If anyone can suggest the correct way to go about doing this, please contact me with your suggestion or, ideally, a patch.</P>
  +		<P>This is probably an overly complex way to handle most complex queries. It is hopefully the case that a more sophisticated variable substitution scheme or alternate attribute set will arise that accomodates more common complex queries without the need to write Java code. There is also some rationale for making SQLQueryCreator an interface. I welcome suggestions along these lines.</P>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Error Handling</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vs
pace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>In a perfect world, nothing would ever go wrong in your queries but this is not a perfect world. In our world, you can check for SQLExceptions in your stylesheets and present them to your users in a nice way. The tags used to render the error are configurable using attributes from the query tag. The attributes in question are:</P>
  +		<UL>
  +			<LI><B>error-element</B> - The name of the error-element to create, default is sqlerror.</LI>
  +			<LI><B>error-message-attribute</B> - The name of the attribute of the error-element in which to put the Exception's message. Default is message.</LI>
  +			<LI><B>error-message-element</B> - The name of the child element of the error-element in which to put the Exception's message. The default is to not do so.</LI>
  +			<LI><B>error-stacktrace-attribute</B> - The name of the attribute of the error-element in which to put the Exception's stacktrace. The default is to not do so.</LI>
  +			<LI><B>error-stacktrace-element</B> - The name of the child element of the error-element in which to put the Exception's stacktrace. The default is to not do so.</LI>
  +			<LI><B>error-message-text</B> - The text to pass out as an error message instead of the Exception's own message. This is useful for displaying user friendly error messages. The default is to use the Exception's message.</LI>
  +		</UL>
  +		<P>So by default, when an SQLException occurs, the processor generates this XML:</P>
  +		<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>&lt;sqlerror message=&quot;The database server is on fire.&quot;/&gt;</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD
><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Notes and Disclaimers</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.
gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<P>I sure hope this is useful to you. It's proving to be very useful to me. The DTD used here is a superset of that used by Oracle's XSQL servlet (which provides no methods for specifying alternate variable delimiters, creating complex queries, query default attributes, or error handling). Technical notes for the XSQL servlet are available - note you apparantly must now fill out an annoying survey to get access to this page. We're sharing the DTD with the tacit approval of Steve Meunch, who kindly pointed me in that direction when he saw a) how similar our methodologies were and b) how horrible my original DTD was. Thanks also go out to Stefano Mazzochi, who started this whole cocoon business in the first place, and Ricardo Rocha, whose DCP processor provided the framework for SQLProcessor's parent, XMLResultSet. Stefano Malimpensa has suggested many useful features that are beginning to make their way into the code.</P>
  +	</FONT></TD></TR></TABLE><BR>
  +
  +	<TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Planned Features</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" 
vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
  +		<UL>
  +			<LI>support for a &lt;querydefs&gt; tag for setting default query attributes</LI>
  +			<LI>time-based caching of query results</LI>
  +			<LI>simple postprocessing of SQL values (e.g. date formats)</LI>
  +			<LI>error message display</LI>
  +		</UL>
  +	</FONT></TD></TR></TABLE><BR>
  +
   </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT color="#0086b2" size="-1"><I>
                 Copyright &copy; 1999 The Apache Software Foundation.
                 All Rights Reserved.
  
  
  
  1.2       +5 -5      xml-site/targets/cocoon/technologies.html
  
  Index: technologies.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/technologies.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- technologies.html	1999/12/03 00:17:05	1.1
  +++ technologies.html	1999/12/16 01:39:28	1.2
  @@ -74,8 +74,8 @@
   
   <P>So, any valid XML document is <I>well-formed</I> and an XML document <I>valid
   </I>for one particular DTD may not necessary be valid for another DTD.
  -For example, HTML is not an XML language because the <CODE><FONT face="courier, monospaced">&lt;&lt;br&gt;&gt;</FONT></CODE> tag
  -is not XML compliant. XHTML (where <CODE><FONT face="courier, monospaced">&lt;&lt;br&gt;&gt;</FONT></CODE> is replaced by <CODE><FONT face="courier, monospaced">&lt;&lt;br/&gt;&gt;</FONT></CODE>)
  +For example, HTML is not an XML language because the <CODE><FONT face="courier, monospaced">&lt;br&gt;</FONT></CODE> tag
  +is not XML compliant. XHTML (where <CODE><FONT face="courier, monospaced">&lt;br&gt;</FONT></CODE> is replaced by <CODE><FONT face="courier, monospaced">&lt;br/&gt;</FONT></CODE>)
   is XML compliant. While HTML pages are not always XML documents (some pages
   might be), XHTML pages are always well-formed and valid if matched against the
   XHTML DTD.</P>
  @@ -107,8 +107,8 @@
     An HTML page is not designed for this. It was designed for <I>how to present</I>
     the data.</P>
     <P>When I look at a web page I might see that an author choose to make every
  -  paragraph heading bold with <CODE><FONT face="courier, monospaced">&lt;&lt;font size+1&gt;&gt;</FONT></CODE>. Yet if I look at
  -  another page I might notice that every paragraph heading was marked up with <CODE><FONT face="courier, monospaced">&lt;&lt;H1&gt;&gt;</FONT></CODE>.
  +  paragraph heading bold with <CODE><FONT face="courier, monospaced">&lt;font size+1&gt;</FONT></CODE>. Yet if I look at
  +  another page I might notice that every paragraph heading was marked up with <CODE><FONT face="courier, monospaced">&lt;H1&gt;</FONT></CODE>.
     Yet another page may use tables and table headers to format the data. Find me
     every document that has the word <I>potato</I> in the paragraph heading
     of the first paragraph.</P>
  @@ -258,7 +258,7 @@
   reason may be used in chain: transformA goes from DTD1 to DTD2 and transformB
   from DTD2 to DTD3 or graphically</P>
   
  -<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>DTD1 ---(transformA)--&gt;&gt; DTD2 ---(transformB)---&gt;&gt; DTD3</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD
 bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
  +<DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>DTD1 ---(transformA)--&gt; DTD2 ---(transformB)---&gt; DTD3</PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor
="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
   
   <P>We'll call DTD1 the <I>original DTD</I> (because its the origin), DTD2 some <I>intermediate
   DTD</I>, DTD3 the <I>final DTD</I>. It can be shown that a transformation can
  
  
  
  1.2       +5 -14     xml-site/targets/cocoon/todo.html
  
  Index: todo.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/todo.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- todo.html	1999/12/03 00:17:05	1.1
  +++ todo.html	1999/12/16 01:39:28	1.2
  @@ -30,25 +30,16 @@
     <IMG alt="Todo" border="0" height="12" hspace="0" src="graphics/todo-label-1.jpg" vspace="0" width="120"><BR>
     
   <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" he
ight="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>showstopper</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><LI><B>docs</B> - 
  -  Finish XML-ize the docs (install, DCP, SQL).
  - </LI><LI><B>docs</B> - 
  -  Write the HTML/FO stylesheets.
  - </LI><LI><B>build</B> - 
  -  Finish Ant build file and clean it up.
  - </LI><LI><B>admin</B> - 
  -  Make sure all the java.apache.org stuff is removed.
  +  Finish XML-ize the docs (DCP, SQL).
    </LI></FONT></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>high</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src
="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><LI><B>code</B> - 
  +  Implement &quot;xsl:output&quot; instead of &quot;cocoon-format&quot; PI and redesign
  +  formatting subsystem.
  + </LI><LI><B>code</B> - 
     Pass request/session parameters to the XSLT processors for dynamic
     stylesheet operation.
    </LI><LI><B>code</B> - 
     Work on external entities inclusion (follows sitemap stuff).
  - </LI><LI><B>code</B> - 
  -  Integrate Ricardo's XSP compiler.
  - </LI><LI><B>code</B> - 
  -  Check tomcat installation.
  - </LI></FONT></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>medium</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" s
rc="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><LI><B>admin</B> - 
  -  Add the Cocoon2 branch with the new interface.
  - </LI><LI><B>design</B> - 
  + </LI></FONT></TD></TR></TABLE><BR><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>medium</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" s
rc="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif"><LI><B>design</B> - 
     Write SiteMap document.
    </LI><LI><B>design</B> - 
     Merge stylebook technology with Cocoon
  
  
  
  1.2       +3 -3      xml-site/targets/cocoon/xsp.html
  
  Index: xsp.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/cocoon/xsp.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- xsp.html	1999/12/03 00:17:05	1.1
  +++ xsp.html	1999/12/16 01:39:28	1.2
  @@ -280,9 +280,9 @@
       &lt;/page&gt;  
     </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></DIV>
   
  -  <P>This simple example shows the power of content/logic/style separation. While the <CODE><FONT face="courier, monospaced">&lt;&lt;title&gt;&gt;</FONT></CODE>
  +  <P>This simple example shows the power of content/logic/style separation. While the <CODE><FONT face="courier, monospaced">&lt;title&gt;</FONT></CODE>
     tag has a very special meaning in the <I>page</I> document type, indicating the page
  -  title, the <CODE><FONT face="courier, monospaced">&lt;&lt;counter&gt;&gt;</FONT></CODE> element is needs to be dynamically substituted by
  +  title, the <CODE><FONT face="courier, monospaced">&lt;counter&gt;</FONT></CODE> element is needs to be dynamically substituted by
     the number of times the document has been requested. The logic that performs such behavior
     is included in tag itself, but unlike other existing server side technologies, the
     behavior is not defined in the page itself, but on the logic sheet that is applied to
  @@ -656,7 +656,7 @@
   <TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="666699" colspan="2" width="494"><TABLE border="0" cellpadding="0" cellspacing="0" width="494"><TR><TD bgcolor="#039acc" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#039acc" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD bgcolor="#039acc" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#0086b2" width="492"><FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1"><IMG border="0" height="2" hspace="0" src="resources/void.gif" vspace="0" width="2"><B>Acknowledgements</B></FONT></TD><TD bgcolor="#017299" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" v
space="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD bgcolor="#017299" height="1" width="492"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="492"></TD><TD bgcolor="#017299" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR></TABLE></TD></TR><TR><TD width="10">&nbsp;</TD><TD width="484"><FONT color="#000000" face="arial,helvetica,sanserif">
     <P>The following people have greatly contributed to the creation and design of this draft:</P>
     <UL>
  -   <LI><P>Ricardo Rocha &lt;&lt;<A href="mailto:ricardo@apache.org">ricardo@apache.org</A>&gt;&gt;</P></LI>
  +   <LI><P>Ricardo Rocha &lt;<A href="mailto:ricardo@apache.org">ricardo@apache.org</A>&gt;</P></LI>
     </UL>
   </FONT></TD></TR></TABLE><BR>
   
  
  
  
  1.2       +42 -44    xml-site/targets/cocoon/graphics/sql-header.jpg
  
  	<<Binary file>>
  
  
  1.2       +91 -107   xml-site/targets/cocoon/images/images/schema.jpg
  
  	<<Binary file>>
  
  

Mime
View raw message