You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2003/07/19 08:50:20 UTC

cvs commit: cocoon-site/site/2.1/userdocs/actions actions.html actions.pdf database-actions.html database-actions.pdf sendmail-action.html sendmail-action.pdf session-action.html session-action.pdf

joerg       2003/07/18 23:50:20

  Modified:    site/2.1/userdocs/actions actions.html actions.pdf
                        database-actions.html database-actions.pdf
                        sendmail-action.html sendmail-action.pdf
                        session-action.html session-action.pdf
  Log:
  update on action docu
  
  Revision  Changes    Path
  1.5       +294 -292  cocoon-site/site/2.1/userdocs/actions/actions.html
  
  Index: actions.html
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/actions.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- actions.html	21 May 2003 15:23:33 -0000	1.4
  +++ actions.html	19 Jul 2003 06:50:19 -0000	1.5
  @@ -1,292 +1,294 @@
  -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Actions</title>
  -<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  -</head>
  -<body text="#000000" bgcolor="#FFFFFF">
  -<!--================= start Navigation Path ==================-->
  -<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Navigation Path ==================-->
  -<!--================= start Banner ==================-->
  -<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<!--================= start Group Logo ==================-->
  -<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
  -<!--================= end Group Logo ==================-->
  -<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  -<!--================= end Project Logo ==================-->
  -<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  -<form target="_blank" action="http://www.google.com/search" method="get">
  -<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  -<tr>
  -<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  -<br>
  -<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  -                      the Apache Cocoon site
  -                      
  -                      
  -                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  -</tr>
  -</table>
  -</form>
  -</td>
  -<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" bgcolor="#294563" colspan="2">
  -<!--================= start Tabs ==================-->
  -<div class="tab">
  -<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  -<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  -</tr>
  -</table>
  -</td>
  -</tr>
  -</table>
  -</div>
  -<!--================= end Tabs ==================-->
  -</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Banner ==================-->
  -<!--================= start Menu, NavBar, Content ==================-->
  -<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top">
  -<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  -<tr>
  -<!--================= start left top NavBar ==================-->
  -<td rowspan="3" valign="top">
  -<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td>
  -<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  -<!--================= start Menu items ==================-->
  -<div class="menu">
  -<ul>
  -<li>
  -<font color="#CFDCED">Navigation</font>
  -<ul>
  -    
  -<li>
  -<a href="../../index.html">Main</a>
  -</li>
  -    
  -<li>
  -<a href="../index.html">User Documentation</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Actions</font>
  -<ul>
  -    
  -<li>
  -<span class="sel"><font color="#ffcc00">Overview</font></span>
  -</li>
  -    
  -<li>
  -<a href="database-actions.html">Database</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Default</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Core</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Optional</font>
  -<ul>
  -    
  -<li>
  -<a href="session-action.html">Session Action</a>
  -</li>
  -    
  -<li>
  -<a href="sendmail-action.html">Sendmail Action</a>
  -</li>
  -  
  -</ul>
  -</li>
  -</ul>
  -</div>
  -<!--================= end Menu items ==================-->
  -</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  -</tr>
  -<tr>
  -<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td><td valign="top" width="100%">
  -<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<!--================= start middle NavBar ==================-->
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end middle NavBar ==================-->
  -<!--================= start Content==================-->
  -<tr>
  -<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
  -<div class="content">
  -<table class="title" summary="">
  -<tr>
  -<td valign="middle">
  -<h1>Actions</h1>
  -</td><script Language="Javascript">
  -
  -function printit(){  
  -if (window.print) {
  -    window.print() ;  
  -} else {
  -    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  -document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  -    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  -}
  -}
  -</script><script Language="Javascript">  
  -var NS = (navigator.appName == "Netscape");
  -var VERSION = parseInt(navigator.appVersion);
  -if (VERSION > 3) {
  -    document.write('<td nowrap="nowrap" width="40" align="center">');     
  -    document.write('  <a class="dida" href="javascript:printit()">');        
  -    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');   
  -    document.write('  print</a>');   
  -    document.write('</td>');           
  -}
  -</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  -          PDF</a></td>
  -</tr>
  -</table>
  -<h3>in Cocoon</h3>
  -<p>
  -<font size="-2">by&nbsp;Carsten Ziegeler</font>
  -</p>
  -<ul class="minitoc">
  -<li>
  -<a href="#Goal">Goal</a>
  -</li>
  -<li>
  -<a href="#Overview">Overview</a>
  -</li>
  -<li>
  -<a href="#The+Actions+in+Apache+Cocoon">The Actions in Apache Cocoon</a>
  -</li>
  -</ul>
  -		
  -<a name="N1001F"></a><a name="Goal"></a>
  -<h3>Goal</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>This document lists all of the available actions of Apache Cocoon and
  -                     describes their purpose.</p>
  -</div>
  -
  -  
  -<a name="N10028"></a><a name="Overview"></a>
  -<h3>Overview</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>See the concepts document
  -     <a href="../concepts/actions.html">Creating and Using Actions</a>.
  -    </p>
  -</div>
  -		 
  -<a name="N10035"></a><a name="The+Actions+in+Apache+Cocoon"></a>
  -<h3>The Actions in Apache Cocoon</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Forthcoming...
  -      	      </p>
  -<ul>
  -				
  -<li>
  -<a href="database-actions.html">Database Actions</a>
  -</li>
  -				
  -<li>
  -<a href="session-action.html">Session Action</a>
  -</li>
  -			
  -</ul>
  -</div>
  -	
  -</div>
  -</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end Content==================-->
  -</table>
  -</td>
  -</tr>
  -</table>
  -<!--================= end Menu, NavBar, Content ==================-->
  -<!--================= start Footer ==================-->
  -<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  -<tr>
  -<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  -</tr>
  -<tr>
  -<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  -          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  -              document.write(" - "+"Last Published: " + document.lastModified);
  -            //  --></script></font></td>
  -</tr>
  -<tr>
  -<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  -</tr>
  -</table>
  -<!--================= end Footer ==================-->
  -</body>
  -</html>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<title>Actions</title>
  +<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  +</head>
  +<body text="#000000" bgcolor="#FFFFFF">
  +<!--================= start Navigation Path ==================-->
  +<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Navigation Path ==================-->
  +<!--================= start Banner ==================-->
  +<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td bgcolor="#294563"><a href=""></a></td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  +<!--================= end Project Logo ==================-->
  +<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  +<form target="_blank" action="http://www.google.com/search" method="get">
  +<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  +<tr>
  +<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
  +<br>
  +<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  +                      the Apache Cocoon site
  +                      
  +                      
  +                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  +</tr>
  +</table>
  +</form>
  +</td>
  +<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" bgcolor="#294563" colspan="2">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  +<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Banner ==================-->
  +<!--================= start Menu, NavBar, Content ==================-->
  +<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top">
  +<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  +<tr>
  +<!--================= start left top NavBar ==================-->
  +<td rowspan="3" valign="top">
  +<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td>
  +<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  +<!--================= start Menu items ==================-->
  +<div class="menu">
  +<ul>
  +<li>
  +<font color="#CFDCED">Navigation</font>
  +<ul>
  +    
  +<li>
  +<a href="../../index.html">Main</a>
  +</li>
  +    
  +<li>
  +<a href="../index.html">User Documentation</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Actions</font>
  +<ul>
  +    
  +<li>
  +<span class="sel"><font color="#ffcc00">Overview</font></span>
  +</li>
  +    
  +<li>
  +<a href="database-actions.html">Database</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Default</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Core</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Optional</font>
  +<ul>
  +    
  +<li>
  +<a href="sendmail-action.html">Sendmail Action</a>
  +</li>
  +    
  +<li>
  +<a href="session-action.html">Session Action</a>
  +</li>
  +  
  +</ul>
  +</li>
  +</ul>
  +</div>
  +<!--================= end Menu items ==================-->
  +</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  +</tr>
  +<tr>
  +<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td><td valign="top" width="100%">
  +<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<!--================= start middle NavBar ==================-->
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end middle NavBar ==================-->
  +<!--================= start Content==================-->
  +<tr>
  +<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
  +<div class="content">
  +<table class="title" summary="">
  +<tr>
  +<td valign="middle">
  +<h1>Actions</h1>
  +</td><script Language="Javascript">
  +
  +function printit(){  
  +if (window.print) {
  +    window.print() ;  
  +} else {
  +    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  +document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  +    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  +}
  +}
  +</script><script Language="Javascript">  
  +var NS = (navigator.appName == "Netscape");
  +var VERSION = parseInt(navigator.appVersion);
  +if (VERSION > 3) {
  +    document.write('<td nowrap="nowrap" width="40" align="center">');     
  +    document.write('  <a class="dida" href="javascript:printit()">');        
  +    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');   
  +    document.write('  print</a>');   
  +    document.write('</td>');           
  +}
  +</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
  +          PDF</a></td>
  +</tr>
  +</table>
  +<h3>in Cocoon</h3>
  +<p>
  +<font size="-2">by&nbsp;Carsten Ziegeler</font>
  +</p>
  +<ul class="minitoc">
  +<li>
  +<a href="#Goal">Goal</a>
  +</li>
  +<li>
  +<a href="#Overview">Overview</a>
  +</li>
  +<li>
  +<a href="#The+Actions+in+Apache+Cocoon">The Actions in Apache Cocoon</a>
  +</li>
  +</ul>
  +    
  +<a name="N1001F"></a><a name="Goal"></a>
  +<h3>Goal</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>This document lists all of the available actions of Apache Cocoon and
  +         describes their purpose.</p>
  +</div>
  +    
  +<a name="N10028"></a><a name="Overview"></a>
  +<h3>Overview</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>See the concepts document
  +        <a href="../concepts/actions.html">Creating and Using Actions</a>.
  +      </p>
  +</div>
  +    
  +<a name="N10035"></a><a name="The+Actions+in+Apache+Cocoon"></a>
  +<h3>The Actions in Apache Cocoon</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Forthcoming...</p>
  +<ul>
  +        
  +<li>
  +<a href="database-actions.html">Database Actions</a>
  +</li>
  +        
  +<li>
  +<a href="sendmail-action.html">Sendmail Action</a>
  +</li>
  +        
  +<li>
  +<a href="session-action.html">Session Action</a>
  +</li>
  +      
  +</ul>
  +</div>
  +  
  +</div>
  +</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end Content==================-->
  +</table>
  +</td>
  +</tr>
  +</table>
  +<!--================= end Menu, NavBar, Content ==================-->
  +<!--================= start Footer ==================-->
  +<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  +<tr>
  +<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  +</tr>
  +<tr>
  +<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  +          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  +              document.write(" - "+"Last Published: " + document.lastModified);
  +            //  --></script></font></td>
  +</tr>
  +<tr>
  +<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  +</tr>
  +</table>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.2       +72 -141   cocoon-site/site/2.1/userdocs/actions/actions.pdf
  
  	<<Binary file>>
  
  
  1.5       +709 -709  cocoon-site/site/2.1/userdocs/actions/database-actions.html
  
  Index: database-actions.html
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/database-actions.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- database-actions.html	21 May 2003 15:23:33 -0000	1.4
  +++ database-actions.html	19 Jul 2003 06:50:19 -0000	1.5
  @@ -1,709 +1,709 @@
  -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Database Actions</title>
  -<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  -</head>
  -<body text="#000000" bgcolor="#FFFFFF">
  -<!--================= start Navigation Path ==================-->
  -<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Navigation Path ==================-->
  -<!--================= start Banner ==================-->
  -<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<!--================= start Group Logo ==================-->
  -<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
  -<!--================= end Group Logo ==================-->
  -<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  -<!--================= end Project Logo ==================-->
  -<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  -<form target="_blank" action="http://www.google.com/search" method="get">
  -<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  -<tr>
  -<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  -<br>
  -<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  -                      the Apache Cocoon site
  -                      
  -                      
  -                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  -</tr>
  -</table>
  -</form>
  -</td>
  -<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" bgcolor="#294563" colspan="2">
  -<!--================= start Tabs ==================-->
  -<div class="tab">
  -<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  -<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  -</tr>
  -</table>
  -</td>
  -</tr>
  -</table>
  -</div>
  -<!--================= end Tabs ==================-->
  -</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Banner ==================-->
  -<!--================= start Menu, NavBar, Content ==================-->
  -<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top">
  -<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  -<tr>
  -<!--================= start left top NavBar ==================-->
  -<td rowspan="3" valign="top">
  -<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td>
  -<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  -<!--================= start Menu items ==================-->
  -<div class="menu">
  -<ul>
  -<li>
  -<font color="#CFDCED">Navigation</font>
  -<ul>
  -    
  -<li>
  -<a href="../../index.html">Main</a>
  -</li>
  -    
  -<li>
  -<a href="../index.html">User Documentation</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Actions</font>
  -<ul>
  -    
  -<li>
  -<a href="actions.html">Overview</a>
  -</li>
  -    
  -<li>
  -<span class="sel"><font color="#ffcc00">Database</font></span>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Default</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Core</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Optional</font>
  -<ul>
  -    
  -<li>
  -<a href="session-action.html">Session Action</a>
  -</li>
  -    
  -<li>
  -<a href="sendmail-action.html">Sendmail Action</a>
  -</li>
  -  
  -</ul>
  -</li>
  -</ul>
  -</div>
  -<!--================= end Menu items ==================-->
  -</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  -</tr>
  -<tr>
  -<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td><td valign="top" width="100%">
  -<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<!--================= start middle NavBar ==================-->
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end middle NavBar ==================-->
  -<!--================= start Content==================-->
  -<tr>
  -<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
  -<div class="content">
  -<table class="title" summary="">
  -<tr>
  -<td valign="middle">
  -<h1>Database Actions</h1>
  -</td><script Language="Javascript">
  -
  -function printit(){  
  -if (window.print) {
  -    window.print() ;  
  -} else {
  -    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  -document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  -    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  -}
  -}
  -</script><script Language="Javascript">  
  -var NS = (navigator.appName == "Netscape");
  -var VERSION = parseInt(navigator.appVersion);
  -if (VERSION > 3) {
  -    document.write('<td nowrap="nowrap" width="40" align="center">');     
  -    document.write('  <a class="dida" href="javascript:printit()">');        
  -    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');   
  -    document.write('  print</a>');   
  -    document.write('</td>');           
  -}
  -</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="database-actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  -          PDF</a></td>
  -</tr>
  -</table>
  -<p>
  -<font size="-2">by&nbsp;Christian Haul</font>
  -</p>
  -<ul class="minitoc">
  -<li>
  -<a href="#Introduction">Introduction</a>
  -</li>
  -<li>
  -<a href="#Original+Database+Actions">Original Database Actions</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml">Describing the Structure of your DB - descriptor.xml</a>
  -</li>
  -</ul>
  -</li>
  -<li>
  -<a href="#Modular+Database+Actions">Modular Database Actions</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9">Describing the Structure of your DB - descriptor.xml</a>
  -</li>
  -</ul>
  -</li>
  -</ul>
  -	
  -<a name="N10013"></a><a name="Introduction"></a>
  -<h3>Introduction</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -		Two different sets of actions exist, that deal with (object) relational
  -		database access through JDBC. The original database actions provide a
  -		relatively simple interface to store, modify, delete and retrieve data.
  -		They are oriented towards usage of request parameters for input and
  -		request attributes together with sitemap variables for output and do
  -		not support auto increment column types. In addition, the description of
  -		the database structure is split over several files since these actions
  -		attempt to use all tables in a provided description.
  -	  </p>
  -<p>
  -		The modular database actions provide similar functionality. In contrast
  -		to the original actions they allow to store the database meta data in a
  -		single file and to switch input and output flexible through the use of
  -		modules. Even for auto increment columns specific modules exist that
  -		cover a wide range of database management systems.
  -	  </p>
  -<p>
  -        For an overview of column types supported by the modular database
  -        actions, see javadocs for JDBCTypeConversions. The types supported by
  -        the original actions are documented in AbstractDatabaseAction.
  -      </p>
  -</div>
  -
  -	
  -<a name="N10022"></a><a name="Original+Database+Actions"></a>
  -<h3>Original Database Actions</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -		The original database actions have evolved quite a bit and at different
  -		speeds. The add action is certainly the most complete one, providing
  -		support for multiple tables and rows. However, the interface has become
  -		a bit inconsistent.
  -	  </p>
  -<p>
  -		If an error occurs, the original database actions will throw an
  -		exception.
  -	  </p>
  -<a name="N1002D"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml"></a>
  -<h4>Describing the Structure of your DB - descriptor.xml</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -		  The key to database actions is a file that describes database meta
  -		  data in XML. The original actions will ignore all but the first table
  -		  and act only on one row. Only the add action will try to access all
  -		  tables that are contained in this description. As a consequence, each
  -		  HTML form needs to have a corresponding descriptor file if different
  -		  tables are affected.
  -		</p>
  -<p>
  -		  The file name has no meaning and does not need to be
  -		  <span class="codefrag">descriptor.xml</span> - it can even be a Cocoon pipeline. The
  -		  name of the root element in a descriptor file is ignored. Only
  -		  <span class="codefrag">table</span> elements nested on first level inside the root
  -		  element are parsed by the actions. All unknown elements or attributes
  -		  are ignored.
  -		</p>
  -<p>
  -		  For each table a <span class="codefrag">table</span> element needs to be present. 
  -		</p>
  -<pre class="code">
  -
  -&lt;?xml version="1.0"?&gt;
  -
  -&lt;employee&gt;
  -  &lt;connection&gt;personnel&lt;/connection&gt;
  -  &lt;table name="employee"&gt;
  -    &lt;keys&gt;
  -      &lt;key param="employee" dbcol="id" type="int" mode="manual"/&gt;
  -    &lt;/keys&gt;
  -    &lt;values&gt;
  -      &lt;value param="name" dbcol="name" type="string"/&gt;
  -      &lt;value param="department" dbcol="department_id" type="int"/&gt;
  -    &lt;/values&gt;
  -  &lt;/table&gt;
  -&lt;/employee&gt;
  -	
  -		</pre>
  -<p>
  -		  Describes a single table named "employee". In addition a database
  -		  connection is specified. See <a href="../../developing/datasources.html">here</a> for more
  -		  information on database connections. 
  -		</p>
  -<a name="N10050"></a><a name="Key+Columns"></a>
  -<h5>Key Columns</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			Tables may or may not have key columns. A key column is a column
  -			that is part of the primary key. Actually, candidate keys should do
  -			as well.
  -		  </p>
  -<p>
  -			All key columns are contained in a <span class="codefrag">keys</span> child element
  -			of the <span class="codefrag">table</span> element. Each column has a
  -			<span class="codefrag">key</span> element to define its properties. The
  -			<span class="codefrag">dbcol</span> attribute holds the column name,
  -			<span class="codefrag">type</span> is the JDBC type name for this column (have a
  -			look at AbstactDatabaseAction source for valid type names),
  -			<span class="codefrag">param</span> specifies the name of the request parameter to
  -			use, and <span class="codefrag">mode</span> sets how the value for this column is
  -			obtained on adding a row.
  -		  </p>
  -<p>
  -			Through the mode attribute the behaviour of the add action can be
  -			changed.
  -		  </p>
  -<p>
  -			Default mode is "automatic" and to let the database create the key
  -			value by setting this value to <span class="codefrag">null</span>. The created value
  -			can not be read back from the database and will not be available as
  -			request attribute or sitemap variable.
  -		  </p>
  -<p>
  -			A mode of "manual" will query the database for the maximum current
  -			value, add 1 to it and use that for a value.
  -		  </p>
  -<p>
  -			A mode of "form" will use the corresponding request parameter.
  -		  </p>
  -<p>
  -			A mode of "request-attribute" will use the corresponding request
  -			attribute. The name specified in the <span class="codefrag">param</span> attribute
  -			will be automatically prefixed with the class name.
  -		  </p>
  -<p>
  -			Key values will be propagated to sitemap variables and - prefixed
  -			with the class name - request attributes.
  -		  </p>
  -</div>
  -<a name="N10089"></a><a name="Other+Columns"></a>
  -<h5>Other Columns</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			All other columns are contained in a <span class="codefrag">values</span> child
  -			element of the <span class="codefrag">table</span> element. Each column has a
  -			<span class="codefrag">value</span> element to define its properties. Properties are
  -			similar to those for key columns. A <span class="codefrag">mode</span> attribute
  -			does not exist for value columns. Instead, request parameters and
  -			request attributes are tried in this order for the specified
  -			parameter. 
  -		  </p>
  -<p>
  -			Request attribute names are <em>not</em> prefixed with the class
  -			name. Thus, to insert the value of a key column of the previous row
  -			or previous table into a value column, it needs to be named
  -			<span class="codefrag">org.apache.cocoon.acting.AbstractDatabaseAction:key:table:dbcol</span>. 
  -		  </p>
  -<p>
  -			Value columns are propagated to request attributes with class name
  -			prefix. They are not available for the sitemap.
  -		  </p>
  -</div>
  -</div>
  -</div>
  -	
  -<a name="N100AC"></a><a name="Modular+Database+Actions"></a>
  -<h3>Modular Database Actions</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -		The modular database actions were mainly created to make auto increment
  -		columns available, handle input and output flexibly, and have a
  -		consistent interface. A successful action will return the number of
  -		rows affected in a sitemap parameter named <span class="codefrag">row-count</span>. The
  -		added features required to change the descriptor file format in
  -		incompatible ways.
  -	  </p>
  -<p>
  -		It can be configured if an exception will be thrown when an error
  -		occurs.
  -	  </p>
  -<a name="N100BA"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9"></a>
  -<h4>Describing the Structure of your DB - descriptor.xml</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -		  Like the original actions, the modular actions need meta data in an
  -		  XML file. However, that file may contain any number of tables, not
  -		  just the ones needed for a single request. The tables actually used
  -		  are referenced through a <span class="codefrag">table-set</span>. Unknown elements and
  -		  attributes are ignored. This way a descriptor file can be shared with
  -		  other actions like the form validator.
  -		</p>
  -<p>
  -		  For the flexible input and output handling, the modular database
  -		  actions rely on <a href="../concepts/modules.html">modules</a>.
  -		  Have a look at those before proceeding.
  -		</p>
  -<p>
  -          The following is a snippet from a descriptor file. 
  -        </p>
  -<pre class="code">
  -
  -&lt;root&gt;
  -   &lt;connection&gt;personnel&lt;/connection&gt;
  -   &lt;table name="user" alias="user"&gt;
  -      &lt;keys&gt;
  -         &lt;key name="uid" type="int" autoincrement="true"&gt;
  -            &lt;mode name="auto"  type="autoincr"/&gt;
  -         &lt;/key&gt;
  -      &lt;/keys&gt;
  -      &lt;values&gt;
  -         &lt;value name="name"      type="string"&gt;&lt;/value&gt;
  -         &lt;value name="firstname" type="string"&gt;&lt;/value&gt;
  -         &lt;value name="uname"     type="string"&gt;&lt;/value&gt;
  -      &lt;/values&gt;   
  -   &lt;/table&gt;
  -
  -        </pre>
  -<p>
  -          The <span class="codefrag">table</span> element has an additional attribute
  -          <span class="codefrag">alias</span> which is an alternative name to reference
  -          the table from a table set. The descriptor file is searched
  -          top down for tables whose <span class="codefrag">name</span> or
  -          <span class="codefrag">alias</span> match. The <span class="codefrag">alias</span>n attribute
  -          is useful if a complex join expression is used as table
  -          name. In such a case modifications like update, insert,
  -          delete will likely fail.
  -        </p>
  -<p>
  -		  Another application of aliases if different numbers of columns should
  -		  be affected by an operation. or if a table contains several candidate
  -		  keys that are used alternatively. This way, different views to a
  -		  table can be created.
  -		</p>
  -<a name="N100E9"></a><a name="Key+Columns-N100E7"></a>
  -<h5>Key Columns</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			The descriptor file resembles the one for the original actions. One
  -			major difference is the absence of <span class="codefrag">dbcol</span> and
  -			<span class="codefrag">param</span> attributes. Instead there is a <span class="codefrag">name</span>
  -			attribute which corresponds to the <span class="codefrag">dbcol</span> attribute and
  -			specifies the database column name.
  -		  </p>
  -<p>
  -			If a column is an auto increment column, the similar named attribute
  -			indicates this. Auto increment columns will be handled differently
  -			on insert operations.
  -		  </p>
  -<p>
  -			Instead of specifying a parameter name, the actions support to use
  -			different input modules for each operation through the nested
  -			<span class="codefrag">mode</span> elements. This is described in more detail below.
  -		  </p>
  -<p>
  -			Note here though, that not every column needs a <span class="codefrag">mode</span>
  -			element: The actions default to the module defined as
  -			<span class="codefrag">request</span> which is in a default installation to obtain
  -			the values from request parameters. The name of the parameter
  -			defaults to table name dot column name.
  -		  </p>
  -</div>
  -<a name="N10110"></a><a name="Other+Columns-N1010E"></a>
  -<h5>Other Columns</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -            Apart from the fact that the auto increment columns are only
  -			supported for key columns, everything said above applies to value
  -			columns as well.
  -          </p>
  -</div>
  -<a name="N10119"></a><a name="Operation+Mode+Types"></a>
  -<h5>Operation Mode Types</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			Basically, two different mode types exist:
  -			<span class="codefrag">autoincrement</span> which is used whenever data shall be
  -			inserted into a table and this particular key column has the
  -			auto increment attribute set and <span class="codefrag">others</span> for all other
  -			requirements.
  -          </p>
  -<p>
  -            In addition, a table-set can specify different mode types to use
  -			instead of the predefined type names. Through this, and the fact
  -			that every mode can specify a different input module, it is easy to
  -			use different input modules for different tasks and forms.
  -          </p>
  -<p>
  -            One special mode type name exists that matches all requested ones:
  -			<span class="codefrag">all</span> This makes it easier to configure only some
  -			columns differently for each table-set.
  -          </p>
  -</div>
  -<a name="N10131"></a><a name="How+to+obtain+Values"></a>
  -<h5>How to obtain Values</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			As said above, these actions default to reading from request
  -			parameters with a default parameter name. By specifying
  -			<span class="codefrag">mode</span> elements, this can be overridden. Any component
  -			that implements the <span class="codefrag">InputModule</span> interface can be used
  -			to obtain values. How to make such modules known to Apache Cocoon
  -			is described  <a href="../concepts/modules.html">elsewhere</a>. 
  -		  </p>
  -<p>
  -			Beside using different input modules, their parameters can be set
  -			in place, for example to override parameter names, configure a
  -			random generator or a message digest algorithm.
  -		  </p>
  -<pre class="code">
  -
  -   &lt;table name="user_groups"&gt;
  -      &lt;keys&gt;
  -         &lt;key name="uid" type="int"&gt;
  -            &lt;mode name="request" type="request"&gt;
  -               &lt;parameter&gt;user_groups.uid&lt;/parameter&gt;
  -            &lt;/mode&gt;
  -            &lt;mode name="attribute" type="attrib"&gt;
  -               &lt;parameter&gt;org.apache.cocoon.components.modules.output.OutputModule:user.uid[0]&lt;/parameter&gt;
  -            &lt;/mode&gt;
  -         &lt;/key&gt;
  -         &lt;key name="gid" type="int" set="master"&gt;
  -            &lt;mode name="request" type="all"&gt;
  -               &lt;parameter&gt;user_groups.gid&lt;/parameter&gt;
  -            &lt;/mode&gt;
  -         &lt;/key&gt;
  -      &lt;/keys&gt;
  -   &lt;/table&gt;
  -
  -		  </pre>
  -<p>
  -			The above example shows just that: the <span class="codefrag">parameter</span>
  -			element is not read by the database action itself but the
  -			complete <span class="codefrag">mode</span> configuration object is passed to the
  -			input module. Both the request attribute and the request parameter
  -			input modules understand this parameter attribute which takes
  -			precedence over the default one.
  -		  </p>
  -<p>
  -			Another feature when obtaining values is tied to the
  -			<span class="codefrag">type</span> attribute: Different modes can be used in
  -			different situations. The basic setup uses two different mode
  -			types: <span class="codefrag">autoincrement</span> when inserting in key columns
  -			that have an indicator that they are indeed auto increment columns
  -			and <span class="codefrag">others</span> for insert operations on all other columns
  -			and all other operations on all columns.
  -		  </p>
  -<p>
  -			Table-sets can override the default names for these two mode type
  -			name categories with arbitrary names except the special name
  -			<span class="codefrag">all</span>. A mode that carries the type name "all" is used
  -			with all requested type names. Lookup obeys first match principle
  -			so that all modes are tested from top to bottom and the first that
  -			matches is used.
  -		  </p>
  -</div>
  -<a name="N10167"></a><a name="How+to+store+Values+e.g.+in+your+Session"></a>
  -<h5>How to store Values e.g. in your Session</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			All modular database action can be configured to use any component
  -			that implements the <span class="codefrag">OutputModule</span> interface to store
  -			values. The output module is chosen on declaring the action in the
  -			sitemap or dynamically with a sitemap parameter. If no output
  -			module is specified, the default it to use the request attribute
  -			module.
  -		  </p>
  -<p>
  -			The interface does not allow to pass configuration information to
  -			the output module. This has to be done when the module is declared
  -			e.g. in cocoon.xconf.
  -		  </p>
  -</div>
  -<a name="N10176"></a><a name="Inserting+Multiple+Rows+-+Sets"></a>
  -<h5>Inserting Multiple Rows - Sets</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			Once common task is to work on more than one row. If the rows are
  -			in different tables, this is catered for by table-sets. Operating
  -			on multiple rows of one table requires to mark columns that should
  -			vary and among those one, that determines the number of rows to
  -			work on.
  -		  </p>
  -<p>
  -			This is done with sets. All columns that cary a <span class="codefrag">set</span>
  -			attribute can vary, those, that don't, are kept fixed during the
  -			operation. The column that is used to determine the number of rows
  -			is required to have a value of <span class="codefrag">master</span> while all others
  -			need to have a value of <span class="codefrag">slave</span> for the set
  -			attribute. There may be only one master in a set.
  -		  </p>
  -<p>
  -			Sets can be tagged either on column or on mode level but not both
  -			for a single column.
  -		  </p>
  -</div>
  -<a name="N1018E"></a><a name="Select+Your+Tables+-+Table-Sets"></a>
  -<h5>Select Your Tables - Table-Sets</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -			Tables that should be used during an operation can be grouped
  -			together with a table-set. A table-set references tables by their
  -			name or their alias.
  -		  </p>
  -<p>
  -			In addition, a table-set can override the mode type names for the
  -			two categories "autoincrement" and "others".
  -		  </p>
  -<p>
  -			Operations spanning multiple tables in a table-set are done in a
  -			single transaction. Thus, if one fails, the other is rolled back.
  -		  </p>
  -<pre class="code">
  -
  -
  -   &lt;table name="groups"&gt;
  -      &lt;keys&gt;
  -         &lt;key name="gid" type="int" autoincrement="true"&gt;
  -            &lt;mode name="auto" type="autoincr"/&gt;
  -         &lt;/key&gt;
  -      &lt;/keys&gt;
  -      &lt;values&gt;
  -         &lt;value name="gname" type="string"/&gt;
  -      &lt;/values&gt;   
  -   &lt;/table&gt;
  -   
  -   &lt;table-set name="user"&gt;
  -      &lt;table name="user"/&gt;
  -   &lt;/table-set&gt;
  -
  -   &lt;table-set name="groups"&gt;
  -      &lt;table name="groups"/&gt;
  -   &lt;/table-set&gt;
  -
  -   &lt;table-set name="user+groups"&gt;
  -      &lt;table name="user"/&gt;
  -      &lt;table name="user_groups" others-mode="attrib"/&gt;
  -   &lt;/table-set&gt;
  -
  -   &lt;table-set name="user_groups"&gt;
  -      &lt;table name="user_groups" others-mode="request"/&gt;
  -   &lt;/table-set&gt;
  -
  -&lt;/root&gt;
  -
  -		  </pre>
  -</div>
  -</div>
  -</div>
  -  
  -</div>
  -</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end Content==================-->
  -</table>
  -</td>
  -</tr>
  -</table>
  -<!--================= end Menu, NavBar, Content ==================-->
  -<!--================= start Footer ==================-->
  -<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  -<tr>
  -<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  -</tr>
  -<tr>
  -<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  -          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  -              document.write(" - "+"Last Published: " + document.lastModified);
  -            //  --></script></font></td>
  -</tr>
  -<tr>
  -<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  -</tr>
  -</table>
  -<!--================= end Footer ==================-->
  -</body>
  -</html>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<title>Database Actions</title>
  +<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  +</head>
  +<body text="#000000" bgcolor="#FFFFFF">
  +<!--================= start Navigation Path ==================-->
  +<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Navigation Path ==================-->
  +<!--================= start Banner ==================-->
  +<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td bgcolor="#294563"><a href=""></a></td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  +<!--================= end Project Logo ==================-->
  +<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  +<form target="_blank" action="http://www.google.com/search" method="get">
  +<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  +<tr>
  +<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
  +<br>
  +<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  +                      the Apache Cocoon site
  +                      
  +                      
  +                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  +</tr>
  +</table>
  +</form>
  +</td>
  +<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" bgcolor="#294563" colspan="2">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  +<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Banner ==================-->
  +<!--================= start Menu, NavBar, Content ==================-->
  +<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top">
  +<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  +<tr>
  +<!--================= start left top NavBar ==================-->
  +<td rowspan="3" valign="top">
  +<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td>
  +<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  +<!--================= start Menu items ==================-->
  +<div class="menu">
  +<ul>
  +<li>
  +<font color="#CFDCED">Navigation</font>
  +<ul>
  +    
  +<li>
  +<a href="../../index.html">Main</a>
  +</li>
  +    
  +<li>
  +<a href="../index.html">User Documentation</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Actions</font>
  +<ul>
  +    
  +<li>
  +<a href="actions.html">Overview</a>
  +</li>
  +    
  +<li>
  +<span class="sel"><font color="#ffcc00">Database</font></span>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Default</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Core</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Optional</font>
  +<ul>
  +    
  +<li>
  +<a href="sendmail-action.html">Sendmail Action</a>
  +</li>
  +    
  +<li>
  +<a href="session-action.html">Session Action</a>
  +</li>
  +  
  +</ul>
  +</li>
  +</ul>
  +</div>
  +<!--================= end Menu items ==================-->
  +</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  +</tr>
  +<tr>
  +<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td><td valign="top" width="100%">
  +<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<!--================= start middle NavBar ==================-->
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end middle NavBar ==================-->
  +<!--================= start Content==================-->
  +<tr>
  +<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
  +<div class="content">
  +<table class="title" summary="">
  +<tr>
  +<td valign="middle">
  +<h1>Database Actions</h1>
  +</td><script Language="Javascript">
  +
  +function printit(){  
  +if (window.print) {
  +    window.print() ;  
  +} else {
  +    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  +document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  +    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  +}
  +}
  +</script><script Language="Javascript">  
  +var NS = (navigator.appName == "Netscape");
  +var VERSION = parseInt(navigator.appVersion);
  +if (VERSION > 3) {
  +    document.write('<td nowrap="nowrap" width="40" align="center">');     
  +    document.write('  <a class="dida" href="javascript:printit()">');        
  +    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');   
  +    document.write('  print</a>');   
  +    document.write('</td>');           
  +}
  +</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="database-actions.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
  +          PDF</a></td>
  +</tr>
  +</table>
  +<p>
  +<font size="-2">by&nbsp;Christian Haul</font>
  +</p>
  +<ul class="minitoc">
  +<li>
  +<a href="#Introduction">Introduction</a>
  +</li>
  +<li>
  +<a href="#Original+Database+Actions">Original Database Actions</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml">Describing the Structure of your DB - descriptor.xml</a>
  +</li>
  +</ul>
  +</li>
  +<li>
  +<a href="#Modular+Database+Actions">Modular Database Actions</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9">Describing the Structure of your DB - descriptor.xml</a>
  +</li>
  +</ul>
  +</li>
  +</ul>
  +	
  +<a name="N10013"></a><a name="Introduction"></a>
  +<h3>Introduction</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +		Two different sets of actions exist, that deal with (object) relational
  +		database access through JDBC. The original database actions provide a
  +		relatively simple interface to store, modify, delete and retrieve data.
  +		They are oriented towards usage of request parameters for input and
  +		request attributes together with sitemap variables for output and do
  +		not support auto increment column types. In addition, the description of
  +		the database structure is split over several files since these actions
  +		attempt to use all tables in a provided description.
  +	  </p>
  +<p>
  +		The modular database actions provide similar functionality. In contrast
  +		to the original actions they allow to store the database meta data in a
  +		single file and to switch input and output flexible through the use of
  +		modules. Even for auto increment columns specific modules exist that
  +		cover a wide range of database management systems.
  +	  </p>
  +<p>
  +        For an overview of column types supported by the modular database
  +        actions, see javadocs for JDBCTypeConversions. The types supported by
  +        the original actions are documented in AbstractDatabaseAction.
  +      </p>
  +</div>
  +
  +	
  +<a name="N10022"></a><a name="Original+Database+Actions"></a>
  +<h3>Original Database Actions</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +		The original database actions have evolved quite a bit and at different
  +		speeds. The add action is certainly the most complete one, providing
  +		support for multiple tables and rows. However, the interface has become
  +		a bit inconsistent.
  +	  </p>
  +<p>
  +		If an error occurs, the original database actions will throw an
  +		exception.
  +	  </p>
  +<a name="N1002D"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml"></a>
  +<h4>Describing the Structure of your DB - descriptor.xml</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +		  The key to database actions is a file that describes database meta
  +		  data in XML. The original actions will ignore all but the first table
  +		  and act only on one row. Only the add action will try to access all
  +		  tables that are contained in this description. As a consequence, each
  +		  HTML form needs to have a corresponding descriptor file if different
  +		  tables are affected.
  +		</p>
  +<p>
  +		  The file name has no meaning and does not need to be
  +		  <span class="codefrag">descriptor.xml</span> - it can even be a Cocoon pipeline. The
  +		  name of the root element in a descriptor file is ignored. Only
  +		  <span class="codefrag">table</span> elements nested on first level inside the root
  +		  element are parsed by the actions. All unknown elements or attributes
  +		  are ignored.
  +		</p>
  +<p>
  +		  For each table a <span class="codefrag">table</span> element needs to be present. 
  +		</p>
  +<pre class="code">
  +
  +&lt;?xml version="1.0"?&gt;
  +
  +&lt;employee&gt;
  +  &lt;connection&gt;personnel&lt;/connection&gt;
  +  &lt;table name="employee"&gt;
  +    &lt;keys&gt;
  +      &lt;key param="employee" dbcol="id" type="int" mode="manual"/&gt;
  +    &lt;/keys&gt;
  +    &lt;values&gt;
  +      &lt;value param="name" dbcol="name" type="string"/&gt;
  +      &lt;value param="department" dbcol="department_id" type="int"/&gt;
  +    &lt;/values&gt;
  +  &lt;/table&gt;
  +&lt;/employee&gt;
  +	
  +		</pre>
  +<p>
  +		  Describes a single table named "employee". In addition a database
  +		  connection is specified. See <a href="../../developing/datasources.html">here</a> for more
  +		  information on database connections. 
  +		</p>
  +<a name="N10050"></a><a name="Key+Columns"></a>
  +<h5>Key Columns</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			Tables may or may not have key columns. A key column is a column
  +			that is part of the primary key. Actually, candidate keys should do
  +			as well.
  +		  </p>
  +<p>
  +			All key columns are contained in a <span class="codefrag">keys</span> child element
  +			of the <span class="codefrag">table</span> element. Each column has a
  +			<span class="codefrag">key</span> element to define its properties. The
  +			<span class="codefrag">dbcol</span> attribute holds the column name,
  +			<span class="codefrag">type</span> is the JDBC type name for this column (have a
  +			look at AbstactDatabaseAction source for valid type names),
  +			<span class="codefrag">param</span> specifies the name of the request parameter to
  +			use, and <span class="codefrag">mode</span> sets how the value for this column is
  +			obtained on adding a row.
  +		  </p>
  +<p>
  +			Through the mode attribute the behaviour of the add action can be
  +			changed.
  +		  </p>
  +<p>
  +			Default mode is "automatic" and to let the database create the key
  +			value by setting this value to <span class="codefrag">null</span>. The created value
  +			can not be read back from the database and will not be available as
  +			request attribute or sitemap variable.
  +		  </p>
  +<p>
  +			A mode of "manual" will query the database for the maximum current
  +			value, add 1 to it and use that for a value.
  +		  </p>
  +<p>
  +			A mode of "form" will use the corresponding request parameter.
  +		  </p>
  +<p>
  +			A mode of "request-attribute" will use the corresponding request
  +			attribute. The name specified in the <span class="codefrag">param</span> attribute
  +			will be automatically prefixed with the class name.
  +		  </p>
  +<p>
  +			Key values will be propagated to sitemap variables and - prefixed
  +			with the class name - request attributes.
  +		  </p>
  +</div>
  +<a name="N10089"></a><a name="Other+Columns"></a>
  +<h5>Other Columns</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			All other columns are contained in a <span class="codefrag">values</span> child
  +			element of the <span class="codefrag">table</span> element. Each column has a
  +			<span class="codefrag">value</span> element to define its properties. Properties are
  +			similar to those for key columns. A <span class="codefrag">mode</span> attribute
  +			does not exist for value columns. Instead, request parameters and
  +			request attributes are tried in this order for the specified
  +			parameter. 
  +		  </p>
  +<p>
  +			Request attribute names are <em>not</em> prefixed with the class
  +			name. Thus, to insert the value of a key column of the previous row
  +			or previous table into a value column, it needs to be named
  +			<span class="codefrag">org.apache.cocoon.acting.AbstractDatabaseAction:key:table:dbcol</span>. 
  +		  </p>
  +<p>
  +			Value columns are propagated to request attributes with class name
  +			prefix. They are not available for the sitemap.
  +		  </p>
  +</div>
  +</div>
  +</div>
  +	
  +<a name="N100AC"></a><a name="Modular+Database+Actions"></a>
  +<h3>Modular Database Actions</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +		The modular database actions were mainly created to make auto increment
  +		columns available, handle input and output flexibly, and have a
  +		consistent interface. A successful action will return the number of
  +		rows affected in a sitemap parameter named <span class="codefrag">row-count</span>. The
  +		added features required to change the descriptor file format in
  +		incompatible ways.
  +	  </p>
  +<p>
  +		It can be configured if an exception will be thrown when an error
  +		occurs.
  +	  </p>
  +<a name="N100BA"></a><a name="Describing+the+Structure+of+your+DB+-+descriptor.xml-N100B9"></a>
  +<h4>Describing the Structure of your DB - descriptor.xml</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +		  Like the original actions, the modular actions need meta data in an
  +		  XML file. However, that file may contain any number of tables, not
  +		  just the ones needed for a single request. The tables actually used
  +		  are referenced through a <span class="codefrag">table-set</span>. Unknown elements and
  +		  attributes are ignored. This way a descriptor file can be shared with
  +		  other actions like the form validator.
  +		</p>
  +<p>
  +		  For the flexible input and output handling, the modular database
  +		  actions rely on <a href="../concepts/modules.html">modules</a>.
  +		  Have a look at those before proceeding.
  +		</p>
  +<p>
  +          The following is a snippet from a descriptor file. 
  +        </p>
  +<pre class="code">
  +
  +&lt;root&gt;
  +   &lt;connection&gt;personnel&lt;/connection&gt;
  +   &lt;table name="user" alias="user"&gt;
  +      &lt;keys&gt;
  +         &lt;key name="uid" type="int" autoincrement="true"&gt;
  +            &lt;mode name="auto"  type="autoincr"/&gt;
  +         &lt;/key&gt;
  +      &lt;/keys&gt;
  +      &lt;values&gt;
  +         &lt;value name="name"      type="string"&gt;&lt;/value&gt;
  +         &lt;value name="firstname" type="string"&gt;&lt;/value&gt;
  +         &lt;value name="uname"     type="string"&gt;&lt;/value&gt;
  +      &lt;/values&gt;   
  +   &lt;/table&gt;
  +
  +        </pre>
  +<p>
  +          The <span class="codefrag">table</span> element has an additional attribute
  +          <span class="codefrag">alias</span> which is an alternative name to reference
  +          the table from a table set. The descriptor file is searched
  +          top down for tables whose <span class="codefrag">name</span> or
  +          <span class="codefrag">alias</span> match. The <span class="codefrag">alias</span>n attribute
  +          is useful if a complex join expression is used as table
  +          name. In such a case modifications like update, insert,
  +          delete will likely fail.
  +        </p>
  +<p>
  +		  Another application of aliases if different numbers of columns should
  +		  be affected by an operation. or if a table contains several candidate
  +		  keys that are used alternatively. This way, different views to a
  +		  table can be created.
  +		</p>
  +<a name="N100E9"></a><a name="Key+Columns-N100E7"></a>
  +<h5>Key Columns</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			The descriptor file resembles the one for the original actions. One
  +			major difference is the absence of <span class="codefrag">dbcol</span> and
  +			<span class="codefrag">param</span> attributes. Instead there is a <span class="codefrag">name</span>
  +			attribute which corresponds to the <span class="codefrag">dbcol</span> attribute and
  +			specifies the database column name.
  +		  </p>
  +<p>
  +			If a column is an auto increment column, the similar named attribute
  +			indicates this. Auto increment columns will be handled differently
  +			on insert operations.
  +		  </p>
  +<p>
  +			Instead of specifying a parameter name, the actions support to use
  +			different input modules for each operation through the nested
  +			<span class="codefrag">mode</span> elements. This is described in more detail below.
  +		  </p>
  +<p>
  +			Note here though, that not every column needs a <span class="codefrag">mode</span>
  +			element: The actions default to the module defined as
  +			<span class="codefrag">request</span> which is in a default installation to obtain
  +			the values from request parameters. The name of the parameter
  +			defaults to table name dot column name.
  +		  </p>
  +</div>
  +<a name="N10110"></a><a name="Other+Columns-N1010E"></a>
  +<h5>Other Columns</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +            Apart from the fact that the auto increment columns are only
  +			supported for key columns, everything said above applies to value
  +			columns as well.
  +          </p>
  +</div>
  +<a name="N10119"></a><a name="Operation+Mode+Types"></a>
  +<h5>Operation Mode Types</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			Basically, two different mode types exist:
  +			<span class="codefrag">autoincrement</span> which is used whenever data shall be
  +			inserted into a table and this particular key column has the
  +			auto increment attribute set and <span class="codefrag">others</span> for all other
  +			requirements.
  +          </p>
  +<p>
  +            In addition, a table-set can specify different mode types to use
  +			instead of the predefined type names. Through this, and the fact
  +			that every mode can specify a different input module, it is easy to
  +			use different input modules for different tasks and forms.
  +          </p>
  +<p>
  +            One special mode type name exists that matches all requested ones:
  +			<span class="codefrag">all</span> This makes it easier to configure only some
  +			columns differently for each table-set.
  +          </p>
  +</div>
  +<a name="N10131"></a><a name="How+to+obtain+Values"></a>
  +<h5>How to obtain Values</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			As said above, these actions default to reading from request
  +			parameters with a default parameter name. By specifying
  +			<span class="codefrag">mode</span> elements, this can be overridden. Any component
  +			that implements the <span class="codefrag">InputModule</span> interface can be used
  +			to obtain values. How to make such modules known to Apache Cocoon
  +			is described  <a href="../concepts/modules.html">elsewhere</a>. 
  +		  </p>
  +<p>
  +			Beside using different input modules, their parameters can be set
  +			in place, for example to override parameter names, configure a
  +			random generator or a message digest algorithm.
  +		  </p>
  +<pre class="code">
  +
  +   &lt;table name="user_groups"&gt;
  +      &lt;keys&gt;
  +         &lt;key name="uid" type="int"&gt;
  +            &lt;mode name="request" type="request"&gt;
  +               &lt;parameter&gt;user_groups.uid&lt;/parameter&gt;
  +            &lt;/mode&gt;
  +            &lt;mode name="attribute" type="attrib"&gt;
  +               &lt;parameter&gt;org.apache.cocoon.components.modules.output.OutputModule:user.uid[0]&lt;/parameter&gt;
  +            &lt;/mode&gt;
  +         &lt;/key&gt;
  +         &lt;key name="gid" type="int" set="master"&gt;
  +            &lt;mode name="request" type="all"&gt;
  +               &lt;parameter&gt;user_groups.gid&lt;/parameter&gt;
  +            &lt;/mode&gt;
  +         &lt;/key&gt;
  +      &lt;/keys&gt;
  +   &lt;/table&gt;
  +
  +		  </pre>
  +<p>
  +			The above example shows just that: the <span class="codefrag">parameter</span>
  +			element is not read by the database action itself but the
  +			complete <span class="codefrag">mode</span> configuration object is passed to the
  +			input module. Both the request attribute and the request parameter
  +			input modules understand this parameter attribute which takes
  +			precedence over the default one.
  +		  </p>
  +<p>
  +			Another feature when obtaining values is tied to the
  +			<span class="codefrag">type</span> attribute: Different modes can be used in
  +			different situations. The basic setup uses two different mode
  +			types: <span class="codefrag">autoincrement</span> when inserting in key columns
  +			that have an indicator that they are indeed auto increment columns
  +			and <span class="codefrag">others</span> for insert operations on all other columns
  +			and all other operations on all columns.
  +		  </p>
  +<p>
  +			Table-sets can override the default names for these two mode type
  +			name categories with arbitrary names except the special name
  +			<span class="codefrag">all</span>. A mode that carries the type name "all" is used
  +			with all requested type names. Lookup obeys first match principle
  +			so that all modes are tested from top to bottom and the first that
  +			matches is used.
  +		  </p>
  +</div>
  +<a name="N10167"></a><a name="How+to+store+Values+e.g.+in+your+Session"></a>
  +<h5>How to store Values e.g. in your Session</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			All modular database action can be configured to use any component
  +			that implements the <span class="codefrag">OutputModule</span> interface to store
  +			values. The output module is chosen on declaring the action in the
  +			sitemap or dynamically with a sitemap parameter. If no output
  +			module is specified, the default it to use the request attribute
  +			module.
  +		  </p>
  +<p>
  +			The interface does not allow to pass configuration information to
  +			the output module. This has to be done when the module is declared
  +			e.g. in cocoon.xconf.
  +		  </p>
  +</div>
  +<a name="N10176"></a><a name="Inserting+Multiple+Rows+-+Sets"></a>
  +<h5>Inserting Multiple Rows - Sets</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			Once common task is to work on more than one row. If the rows are
  +			in different tables, this is catered for by table-sets. Operating
  +			on multiple rows of one table requires to mark columns that should
  +			vary and among those one, that determines the number of rows to
  +			work on.
  +		  </p>
  +<p>
  +			This is done with sets. All columns that cary a <span class="codefrag">set</span>
  +			attribute can vary, those, that don't, are kept fixed during the
  +			operation. The column that is used to determine the number of rows
  +			is required to have a value of <span class="codefrag">master</span> while all others
  +			need to have a value of <span class="codefrag">slave</span> for the set
  +			attribute. There may be only one master in a set.
  +		  </p>
  +<p>
  +			Sets can be tagged either on column or on mode level but not both
  +			for a single column.
  +		  </p>
  +</div>
  +<a name="N1018E"></a><a name="Select+Your+Tables+-+Table-Sets"></a>
  +<h5>Select Your Tables - Table-Sets</h5>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +			Tables that should be used during an operation can be grouped
  +			together with a table-set. A table-set references tables by their
  +			name or their alias.
  +		  </p>
  +<p>
  +			In addition, a table-set can override the mode type names for the
  +			two categories "autoincrement" and "others".
  +		  </p>
  +<p>
  +			Operations spanning multiple tables in a table-set are done in a
  +			single transaction. Thus, if one fails, the other is rolled back.
  +		  </p>
  +<pre class="code">
  +
  +
  +   &lt;table name="groups"&gt;
  +      &lt;keys&gt;
  +         &lt;key name="gid" type="int" autoincrement="true"&gt;
  +            &lt;mode name="auto" type="autoincr"/&gt;
  +         &lt;/key&gt;
  +      &lt;/keys&gt;
  +      &lt;values&gt;
  +         &lt;value name="gname" type="string"/&gt;
  +      &lt;/values&gt;   
  +   &lt;/table&gt;
  +   
  +   &lt;table-set name="user"&gt;
  +      &lt;table name="user"/&gt;
  +   &lt;/table-set&gt;
  +
  +   &lt;table-set name="groups"&gt;
  +      &lt;table name="groups"/&gt;
  +   &lt;/table-set&gt;
  +
  +   &lt;table-set name="user+groups"&gt;
  +      &lt;table name="user"/&gt;
  +      &lt;table name="user_groups" others-mode="attrib"/&gt;
  +   &lt;/table-set&gt;
  +
  +   &lt;table-set name="user_groups"&gt;
  +      &lt;table name="user_groups" others-mode="request"/&gt;
  +   &lt;/table-set&gt;
  +
  +&lt;/root&gt;
  +
  +		  </pre>
  +</div>
  +</div>
  +</div>
  +  
  +</div>
  +</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end Content==================-->
  +</table>
  +</td>
  +</tr>
  +</table>
  +<!--================= end Menu, NavBar, Content ==================-->
  +<!--================= start Footer ==================-->
  +<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  +<tr>
  +<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  +</tr>
  +<tr>
  +<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  +          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  +              document.write(" - "+"Last Published: " + document.lastModified);
  +            //  --></script></font></td>
  +</tr>
  +<tr>
  +<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  +</tr>
  +</table>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.2       +158 -175  cocoon-site/site/2.1/userdocs/actions/database-actions.pdf
  
  	<<Binary file>>
  
  
  1.5       +538 -538  cocoon-site/site/2.1/userdocs/actions/sendmail-action.html
  
  Index: sendmail-action.html
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/sendmail-action.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- sendmail-action.html	21 May 2003 15:23:33 -0000	1.4
  +++ sendmail-action.html	19 Jul 2003 06:50:19 -0000	1.5
  @@ -1,448 +1,448 @@
  -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Sendmail Action</title>
  -<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  -</head>
  -<body text="#000000" bgcolor="#FFFFFF">
  -<!--================= start Navigation Path ==================-->
  -<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Navigation Path ==================-->
  -<!--================= start Banner ==================-->
  -<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<!--================= start Group Logo ==================-->
  -<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
  -<!--================= end Group Logo ==================-->
  -<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  -<!--================= end Project Logo ==================-->
  -<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  -<form target="_blank" action="http://www.google.com/search" method="get">
  -<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  -<tr>
  -<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  -<br>
  -<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  -                      the Apache Cocoon site
  -                      
  -                      
  -                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  -</tr>
  -</table>
  -</form>
  -</td>
  -<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" bgcolor="#294563" colspan="2">
  -<!--================= start Tabs ==================-->
  -<div class="tab">
  -<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  -<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  -</tr>
  -</table>
  -</td>
  -</tr>
  -</table>
  -</div>
  -<!--================= end Tabs ==================-->
  -</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Banner ==================-->
  -<!--================= start Menu, NavBar, Content ==================-->
  -<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top">
  -<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  -<tr>
  -<!--================= start left top NavBar ==================-->
  -<td rowspan="3" valign="top">
  -<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td>
  -<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  -<!--================= start Menu items ==================-->
  -<div class="menu">
  -<ul>
  -<li>
  -<font color="#CFDCED">Navigation</font>
  -<ul>
  -    
  -<li>
  -<a href="../../index.html">Main</a>
  -</li>
  -    
  -<li>
  -<a href="../index.html">User Documentation</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Actions</font>
  -<ul>
  -    
  -<li>
  -<a href="actions.html">Overview</a>
  -</li>
  -    
  -<li>
  -<a href="database-actions.html">Database</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Default</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Core</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Optional</font>
  -<ul>
  -    
  -<li>
  -<a href="session-action.html">Session Action</a>
  -</li>
  -    
  -<li>
  -<span class="sel"><font color="#ffcc00">Sendmail Action</font></span>
  -</li>
  -  
  -</ul>
  -</li>
  -</ul>
  -</div>
  -<!--================= end Menu items ==================-->
  -</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  -</tr>
  -<tr>
  -<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td><td valign="top" width="100%">
  -<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<!--================= start middle NavBar ==================-->
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end middle NavBar ==================-->
  -<!--================= start Content==================-->
  -<tr>
  -<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
  -<div class="content">
  -<table class="title" summary="">
  -<tr>
  -<td valign="middle">
  -<h1>Sendmail Action</h1>
  -</td><script Language="Javascript">
  -
  -function printit(){  
  -if (window.print) {
  -    window.print() ;  
  -} else {
  -    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  -document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  -    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  -}
  -}
  -</script><script Language="Javascript">  
  -var NS = (navigator.appName == "Netscape");
  -var VERSION = parseInt(navigator.appVersion);
  -if (VERSION > 3) {
  -    document.write('<td nowrap="nowrap" width="40" align="center">');     
  -    document.write('  <a class="dida" href="javascript:printit()">');        
  -    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');   
  -    document.write('  print</a>');   
  -    document.write('</td>');           
  -}
  -</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="sendmail-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  -          PDF</a></td>
  -</tr>
  -</table>
  -<p>
  -<font size="-2">by&nbsp;Frank Ridderbusch</font>
  -</p>
  -<ul class="minitoc">
  -<li>
  -<a href="#Description">Description</a>
  -</li>
  -<li>
  -<a href="#Usage">Usage</a>
  -</li>
  -<li>
  -<a href="#Example+Code">Example Code</a>
  -</li>
  -<li>
  -<a href="#Input%2FOutput+Parameter+Reference">Input/Output Parameter Reference</a>
  -</li>
  -<li>
  -<a href="#Additional+Hint">Additional Hint</a>
  -</li>
  -</ul>
  -    
  -<a name="N10013"></a><a name="Description"></a>
  -<h3>Description</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The Sendmail action is an action, which makes the capability
  -	of sending an email message available to the sitemap. This
  -	includes attaching binary files, which come either from another
  -	Cocoon pipeline or from HTML file uploads. The Sendmail action
  -	make the primary methods of the <a href="http://java.sun.com/products/javamail/">Java Mail
  -	  API</a> available to the sitemap.</p>
  -<p>The Sendmail action is an alternative to the <a href="../xsp/sendmail.html">Sendmail logicsheet</a>.</p>
  -</div>
  -
  -    
  -<a name="N10027"></a><a name="Usage"></a>
  -<h3>Usage</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Before the Sendmail action can be used it must be activated
  -	either in Cocoons main sitemap or in a subsitemap, which is
  -	used for your application. Include the below
  -	<span class="codefrag">map:action</span> fragment inside the
  -	<span class="codefrag">map:components</span> -&gt; <span class="codefrag">map:actions</span>
  -	tags.</p>
  -<pre class="code">
  -
  -&lt;map:components&gt;
  -  &lt;map:actions&gt;
  -     &lt;map:action name="sendmail" logger="sitemap.action.sendmail"
  -                  src="org.apache.cocoon.acting.Sendmail"/&gt;
  -  &lt;/map:actions&gt;
  -....
  -&lt;/map:components&gt;
  -
  -      </pre>
  -</div>
  -
  -    
  -<a name="N1003E"></a><a name="Example+Code"></a>
  -<h3>Example Code</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>This example uses a simple HTML form, which provides entry
  -	fields for <span class="codefrag">subject</span>, <span class="codefrag">cc</span>,
  -	<span class="codefrag">uploaded_file1</span> and the email <span class="codefrag">body</span>.
  -      </p>
  -<pre class="code">
  -
  -&lt;form action="/cocoon/mail/send-a-mail"
  -      method="POST"
  -     enctype="multipart/form-data"&gt;
  -
  -&lt;input type="text" name="subject" size="56" /&gt;
  -...
  -&lt;input type="text" name="cc" size="56" /&gt;
  -...
  -&lt;input type="file" name="uploaded_file1" size="56" /&gt;
  -...
  -&lt;textarea name="body" rows="5" cols="72"&gt;
  -&lt;/textarea&gt;
  -...
  -&lt;/form&gt;
  -
  -      </pre>
  -<p>Please keep in mind, that it is important to use
  -	<span class="codefrag">enctype="multipart/form-data"</span>, if you want to
  -	upload files, which should be attached to an email message.
  -      </p>
  -<p>The posted HTTP request data is processed by this sitemap
  -	fragment.</p>
  -<pre class="code">
  -
  -&lt;map:match pattern="mail/*"&gt;
  -  &lt;map:act type="sendmail"&gt;
  -    &lt;map:parameter name="smtphost" value="localhost"/&gt;
  -    &lt;map:parameter name="from" value="cocoon@localhost"/&gt;
  -    &lt;map:parameter name="to" value="maillinglist@somewhere.com"/&gt;
  -    &lt;map:parameter name="subject" value="{request-param:subject}"/&gt;
  -    &lt;map:parameter name="body" value="{request-param:body}"/&gt;
  -    &lt;map:parameter name="cc" value="{request-param:cc}"/&gt;
  -    &lt;map:parameter name="bcc" value="censor@somewhere.com"/&gt;
  -    &lt;map:parameter name="attachments"
  -                  value="uploaded_file1 context://welcome.xml"/&gt;
  -    &lt;map:generate src="mail/{status}.xml"/&gt;
  -    &lt;map:serialize type="xml"/&gt;
  -  &lt;/map:act&gt;
  -&lt;/map:match&gt;
  -
  -      </pre>
  -<p>The input modules are used to supply some of the input
  -	parameters for the Sendmail action. In this example, apart
  -	from the <span class="codefrag">uploaded_file1</span> request parameter, a
  -	second file is attached to the email message, using the Cocoon
  -	protocol notation (the file <span class="codefrag">welcome.xml</span> from the
  -	Cocoon context directory). The result of sending the email
  -	message is passed back into the sitemap through the
  -	<span class="codefrag">status</span> parameter and is used to provide the user
  -	with a feedback. (The transformation is left as an exercise to
  -	the reader).</p>
  -<p>Please consider the security implications, if you let a user
  -	specify an email address in an input form. A malicious user
  -	might abuse this to send SPAM emails. So, this example is
  -	probably only useful in an intranet application, where users
  -	can mostly be considered well behaved.</p>
  -</div>
  -
  -    
  -<a name="parameters"></a>
  -    <a name="N10078"></a><a name="Input%2FOutput+Parameter+Reference"></a>
  -<h3>Input/Output Parameter Reference</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The following is the list of parameters, which can be passed
  -	from the sitemap into the Sendmail action.</p>
  -<table class="ForrestTable" cellspacing="1" cellpadding="4">
  -	
  -<tr>
  -	  
  -<th colspan="1" rowspan="1">Name:</th>
  -	  <th colspan="1" rowspan="1">Required?</th>
  -	  <th colspan="1" rowspan="1">Description:</th>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">smtphost</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">The IP-address or the name of the host, which should
  -	    deliver the email message. Better know as the mail
  -	    transfer agent or short MTA.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">to</td>
  -	  <td colspan="1" rowspan="1">yes</td>
  -	  <td colspan="1" rowspan="1">Sets the destination/to address of the email message.
  -	    This can be a list of comma separated email
  -	    addresses.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">cc</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the recipients of a carbon copy of this email. This
  -	    can be a list of comma separated email addresses.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">bcc</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the recipients of a black carbon copy of the
  -	    email. This can be a list of comma separated email
  -	    addresses.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">from</td>
  -	  <td colspan="1" rowspan="1">yes</td>
  -	  <td colspan="1" rowspan="1">Sets the from address of the message.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">subject</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the subject line of the message.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">body</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the body text of the message.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">charset</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the character set for encoding the message. This
  -	    tag has only an effect, if no attachments are send.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">attachment</td>
  -	  <td colspan="1" rowspan="1">no</td>
  -	  <td colspan="1" rowspan="1">Sets the attachment for this email. This is a blank
  -	    separated list. If an argument contains a ":", it is
  -	    assumed, that a Cocoon internal protocol is specified
  -	    (ex: <span class="codefrag">context://welcome.xml</span>). This means, that
  -	    the attachment comes from a Cocoon pipeline (internally an
  -	    <span class="codefrag">org.apache.excalibur.source.Source</span> object).
  -	    If the argument does not contain a colon, the argument
  -	    names a request parameter, which is a file upload through
  -	    a HTML form (internally an
  -	    <span class="codefrag">org.apache.cocoon.components.request.multipart.FilePart</span>
  -	    object).</td>
  -	
  -</tr>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<title>Sendmail Action</title>
  +<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  +</head>
  +<body text="#000000" bgcolor="#FFFFFF">
  +<!--================= start Navigation Path ==================-->
  +<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Navigation Path ==================-->
  +<!--================= start Banner ==================-->
  +<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td bgcolor="#294563"><a href=""></a></td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  +<!--================= end Project Logo ==================-->
  +<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  +<form target="_blank" action="http://www.google.com/search" method="get">
  +<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  +<tr>
  +<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
  +<br>
  +<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  +                      the Apache Cocoon site
  +                      
  +                      
  +                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  +</tr>
  +</table>
  +</form>
  +</td>
  +<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" bgcolor="#294563" colspan="2">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  +<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Banner ==================-->
  +<!--================= start Menu, NavBar, Content ==================-->
  +<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top">
  +<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  +<tr>
  +<!--================= start left top NavBar ==================-->
  +<td rowspan="3" valign="top">
  +<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td>
  +<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  +<!--================= start Menu items ==================-->
  +<div class="menu">
  +<ul>
  +<li>
  +<font color="#CFDCED">Navigation</font>
  +<ul>
  +    
  +<li>
  +<a href="../../index.html">Main</a>
  +</li>
  +    
  +<li>
  +<a href="../index.html">User Documentation</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Actions</font>
  +<ul>
  +    
  +<li>
  +<a href="actions.html">Overview</a>
  +</li>
  +    
  +<li>
  +<a href="database-actions.html">Database</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Default</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Core</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Optional</font>
  +<ul>
  +    
  +<li>
  +<span class="sel"><font color="#ffcc00">Sendmail Action</font></span>
  +</li>
  +    
  +<li>
  +<a href="session-action.html">Session Action</a>
  +</li>
  +  
  +</ul>
  +</li>
  +</ul>
  +</div>
  +<!--================= end Menu items ==================-->
  +</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  +</tr>
  +<tr>
  +<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td><td valign="top" width="100%">
  +<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<!--================= start middle NavBar ==================-->
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end middle NavBar ==================-->
  +<!--================= start Content==================-->
  +<tr>
  +<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
  +<div class="content">
  +<table class="title" summary="">
  +<tr>
  +<td valign="middle">
  +<h1>Sendmail Action</h1>
  +</td><script Language="Javascript">
  +
  +function printit(){  
  +if (window.print) {
  +    window.print() ;  
  +} else {
  +    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  +document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  +    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  +}
  +}
  +</script><script Language="Javascript">  
  +var NS = (navigator.appName == "Netscape");
  +var VERSION = parseInt(navigator.appVersion);
  +if (VERSION > 3) {
  +    document.write('<td nowrap="nowrap" width="40" align="center">');     
  +    document.write('  <a class="dida" href="javascript:printit()">');        
  +    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');   
  +    document.write('  print</a>');   
  +    document.write('</td>');           
  +}
  +</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="sendmail-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
  +          PDF</a></td>
  +</tr>
  +</table>
  +<p>
  +<font size="-2">by&nbsp;Frank Ridderbusch</font>
  +</p>
  +<ul class="minitoc">
  +<li>
  +<a href="#Description">Description</a>
  +</li>
  +<li>
  +<a href="#Usage">Usage</a>
  +</li>
  +<li>
  +<a href="#Example+Code">Example Code</a>
  +</li>
  +<li>
  +<a href="#Input%2FOutput+Parameter+Reference">Input/Output Parameter Reference</a>
  +</li>
  +<li>
  +<a href="#Additional+Hint">Additional Hint</a>
  +</li>
  +</ul>
  +    
  +<a name="N10013"></a><a name="Description"></a>
  +<h3>Description</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The Sendmail action is an action, which makes the capability
  +	of sending an email message available to the sitemap. This
  +	includes attaching binary files, which come either from another
  +	Cocoon pipeline or from HTML file uploads. The Sendmail action
  +	make the primary methods of the <a href="http://java.sun.com/products/javamail/">Java Mail
  +	  API</a> available to the sitemap.</p>
  +<p>The Sendmail action is an alternative to the <a href="../xsp/sendmail.html">Sendmail logicsheet</a>.</p>
  +</div>
  +
  +    
  +<a name="N10027"></a><a name="Usage"></a>
  +<h3>Usage</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Before the Sendmail action can be used it must be activated
  +	either in Cocoons main sitemap or in a subsitemap, which is
  +	used for your application. Include the below
  +	<span class="codefrag">map:action</span> fragment inside the
  +	<span class="codefrag">map:components</span> -&gt; <span class="codefrag">map:actions</span>
  +	tags.</p>
  +<pre class="code">
  +
  +&lt;map:components&gt;
  +  &lt;map:actions&gt;
  +     &lt;map:action name="sendmail" logger="sitemap.action.sendmail"
  +                  src="org.apache.cocoon.acting.Sendmail"/&gt;
  +  &lt;/map:actions&gt;
  +....
  +&lt;/map:components&gt;
  +
  +      </pre>
  +</div>
  +
  +    
  +<a name="N1003E"></a><a name="Example+Code"></a>
  +<h3>Example Code</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>This example uses a simple HTML form, which provides entry
  +	fields for <span class="codefrag">subject</span>, <span class="codefrag">cc</span>,
  +	<span class="codefrag">uploaded_file1</span> and the email <span class="codefrag">body</span>.
  +      </p>
  +<pre class="code">
  +
  +&lt;form action="/cocoon/mail/send-a-mail"
  +      method="POST"
  +     enctype="multipart/form-data"&gt;
  +
  +&lt;input type="text" name="subject" size="56" /&gt;
  +...
  +&lt;input type="text" name="cc" size="56" /&gt;
  +...
  +&lt;input type="file" name="uploaded_file1" size="56" /&gt;
  +...
  +&lt;textarea name="body" rows="5" cols="72"&gt;
  +&lt;/textarea&gt;
  +...
  +&lt;/form&gt;
  +
  +      </pre>
  +<p>Please keep in mind, that it is important to use
  +	<span class="codefrag">enctype="multipart/form-data"</span>, if you want to
  +	upload files, which should be attached to an email message.
  +      </p>
  +<p>The posted HTTP request data is processed by this sitemap
  +	fragment.</p>
  +<pre class="code">
  +
  +&lt;map:match pattern="mail/*"&gt;
  +  &lt;map:act type="sendmail"&gt;
  +    &lt;map:parameter name="smtphost" value="localhost"/&gt;
  +    &lt;map:parameter name="from" value="cocoon@localhost"/&gt;
  +    &lt;map:parameter name="to" value="maillinglist@somewhere.com"/&gt;
  +    &lt;map:parameter name="subject" value="{request-param:subject}"/&gt;
  +    &lt;map:parameter name="body" value="{request-param:body}"/&gt;
  +    &lt;map:parameter name="cc" value="{request-param:cc}"/&gt;
  +    &lt;map:parameter name="bcc" value="censor@somewhere.com"/&gt;
  +    &lt;map:parameter name="attachments"
  +                  value="uploaded_file1 context://welcome.xml"/&gt;
  +    &lt;map:generate src="mail/{status}.xml"/&gt;
  +    &lt;map:serialize type="xml"/&gt;
  +  &lt;/map:act&gt;
  +&lt;/map:match&gt;
  +
  +      </pre>
  +<p>The input modules are used to supply some of the input
  +	parameters for the Sendmail action. In this example, apart
  +	from the <span class="codefrag">uploaded_file1</span> request parameter, a
  +	second file is attached to the email message, using the Cocoon
  +	protocol notation (the file <span class="codefrag">welcome.xml</span> from the
  +	Cocoon context directory). The result of sending the email
  +	message is passed back into the sitemap through the
  +	<span class="codefrag">status</span> parameter and is used to provide the user
  +	with a feedback. (The transformation is left as an exercise to
  +	the reader).</p>
  +<p>Please consider the security implications, if you let a user
  +	specify an email address in an input form. A malicious user
  +	might abuse this to send SPAM emails. So, this example is
  +	probably only useful in an intranet application, where users
  +	can mostly be considered well behaved.</p>
  +</div>
  +
  +    
  +<a name="parameters"></a>
  +    <a name="N10078"></a><a name="Input%2FOutput+Parameter+Reference"></a>
  +<h3>Input/Output Parameter Reference</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The following is the list of parameters, which can be passed
  +	from the sitemap into the Sendmail action.</p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +	
  +<tr>
  +	  
  +<th colspan="1" rowspan="1">Name:</th>
  +	  <th colspan="1" rowspan="1">Required?</th>
  +	  <th colspan="1" rowspan="1">Description:</th>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">smtphost</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">The IP-address or the name of the host, which should
  +	    deliver the email message. Better know as the mail
  +	    transfer agent or short MTA.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">to</td>
  +	  <td colspan="1" rowspan="1">yes</td>
  +	  <td colspan="1" rowspan="1">Sets the destination/to address of the email message.
  +	    This can be a list of comma separated email
  +	    addresses.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">cc</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the recipients of a carbon copy of this email. This
  +	    can be a list of comma separated email addresses.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">bcc</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the recipients of a black carbon copy of the
  +	    email. This can be a list of comma separated email
  +	    addresses.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">from</td>
  +	  <td colspan="1" rowspan="1">yes</td>
  +	  <td colspan="1" rowspan="1">Sets the from address of the message.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">subject</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the subject line of the message.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">body</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the body text of the message.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">charset</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the character set for encoding the message. This
  +	    tag has only an effect, if no attachments are send.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">attachment</td>
  +	  <td colspan="1" rowspan="1">no</td>
  +	  <td colspan="1" rowspan="1">Sets the attachment for this email. This is a blank
  +	    separated list. If an argument contains a ":", it is
  +	    assumed, that a Cocoon internal protocol is specified
  +	    (ex: <span class="codefrag">context://welcome.xml</span>). This means, that
  +	    the attachment comes from a Cocoon pipeline (internally an
  +	    <span class="codefrag">org.apache.excalibur.source.Source</span> object).
  +	    If the argument does not contain a colon, the argument
  +	    names a request parameter, which is a file upload through
  +	    a HTML form (internally an
  +	    <span class="codefrag">org.apache.cocoon.components.request.multipart.FilePart</span>
  +	    object).</td>
  +	
  +</tr>
   <!-- [CH] I believe deleting attachments should be handled at a different place
   	<tr>
   	  <td>keep-attachment</td>
  @@ -451,96 +451,96 @@
   	    <code>false</code>. This means, that any uploads are
   	    delete from Cocoons upload directory.</td>
   	</tr>
  --->
  -      
  -</table>
  -<p>The following is the list of parameters, which are passed
  -	from Sendmail action back into the sitemap.</p>
  -<table class="ForrestTable" cellspacing="1" cellpadding="4">
  -	
  -<tr>
  -	  
  -<th colspan="1" rowspan="1">Name:</th>
  -	  <th colspan="1" rowspan="1">Description:</th>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">status</td>
  -	  <td colspan="1" rowspan="1">This parameter can take three values:
  -	    <span class="codefrag">success</span>, <span class="codefrag">user-error</span> and
  -	    <span class="codefrag">server-error</span>. <span class="codefrag">success</span> means,
  -	    that the email message has been successfully delivered to
  -	    the mail transfer host. <span class="codefrag">user-error</span> means,
  -	    that there was a problem with at least one of the specified
  -	    email addresses (to, cc, bcc or
  -	    from). <span class="codefrag">server-error</span> means, that there was
  -	    some problem delivering the message to the mail transfer
  -	    host. In effect, this parameter can be used to inform the
  -	    user about the outcome of sending the email message.</td>
  -	
  -</tr>
  -	
  -<tr>
  -	  
  -<td colspan="1" rowspan="1">message</td>
  -	  <td colspan="1" rowspan="1">This parameter contain some explanatory text, if the
  -	    message couldn't be delivered. It is unset, if the email
  -	    message had been successfully send.</td>
  -	
  -</tr>
  -      
  -</table>
  -</div>
  -
  -    
  -<a name="hint"></a>
  -    <a name="N10185"></a><a name="Additional+Hint"></a>
  -<h3>Additional Hint</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Cocoon provides the capability, to automatically parse a file
  -	upload out of an incoming HTTP request. Depending on the
  -	setting of the parameter <span class="codefrag">autosave-uploads</span>
  -	(default is <span class="codefrag">false</span>) in Cocoons
  -	<span class="codefrag">web.xml</span> file, the file upload is either stored in
  -	memory (<span class="codefrag">false</span>) for further processing or stuffed
  -	into Cocoons upload directory (<span class="codefrag">true</span>).</p>
  -<p>In theory, it should be equal whether the file upload data
  -	comes from memory of from file. In my particular setup (Linux,
  -	Tomcat 4.0.4, Mozilla 1.3 and JDK 1.4.1_02) I was unable to
  -	get the file uploading working with
  -	<span class="codefrag">autosave-upload=false</span>. Somehow the attached
  -	binary data was distorted (a GIF file does not appear to be a
  -	GIF any more).</p>
  -<p>With <span class="codefrag">autosave-upload=true</span> it worked flawlessly,
  -	even attaching multiple files.</p>
  -</div>
  -  
  -</div>
  -</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end Content==================-->
  -</table>
  -</td>
  -</tr>
  -</table>
  -<!--================= end Menu, NavBar, Content ==================-->
  -<!--================= start Footer ==================-->
  -<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  -<tr>
  -<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  -</tr>
  -<tr>
  -<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  -          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  -              document.write(" - "+"Last Published: " + document.lastModified);
  -            //  --></script></font></td>
  -</tr>
  -<tr>
  -<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  -</tr>
  -</table>
  -<!--================= end Footer ==================-->
  -</body>
  -</html>
  +-->
  +      
  +</table>
  +<p>The following is the list of parameters, which are passed
  +	from Sendmail action back into the sitemap.</p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +	
  +<tr>
  +	  
  +<th colspan="1" rowspan="1">Name:</th>
  +	  <th colspan="1" rowspan="1">Description:</th>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">status</td>
  +	  <td colspan="1" rowspan="1">This parameter can take three values:
  +	    <span class="codefrag">success</span>, <span class="codefrag">user-error</span> and
  +	    <span class="codefrag">server-error</span>. <span class="codefrag">success</span> means,
  +	    that the email message has been successfully delivered to
  +	    the mail transfer host. <span class="codefrag">user-error</span> means,
  +	    that there was a problem with at least one of the specified
  +	    email addresses (to, cc, bcc or
  +	    from). <span class="codefrag">server-error</span> means, that there was
  +	    some problem delivering the message to the mail transfer
  +	    host. In effect, this parameter can be used to inform the
  +	    user about the outcome of sending the email message.</td>
  +	
  +</tr>
  +	
  +<tr>
  +	  
  +<td colspan="1" rowspan="1">message</td>
  +	  <td colspan="1" rowspan="1">This parameter contain some explanatory text, if the
  +	    message couldn't be delivered. It is unset, if the email
  +	    message had been successfully send.</td>
  +	
  +</tr>
  +      
  +</table>
  +</div>
  +
  +    
  +<a name="hint"></a>
  +    <a name="N10185"></a><a name="Additional+Hint"></a>
  +<h3>Additional Hint</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Cocoon provides the capability, to automatically parse a file
  +	upload out of an incoming HTTP request. Depending on the
  +	setting of the parameter <span class="codefrag">autosave-uploads</span>
  +	(default is <span class="codefrag">false</span>) in Cocoons
  +	<span class="codefrag">web.xml</span> file, the file upload is either stored in
  +	memory (<span class="codefrag">false</span>) for further processing or stuffed
  +	into Cocoons upload directory (<span class="codefrag">true</span>).</p>
  +<p>In theory, it should be equal whether the file upload data
  +	comes from memory of from file. In my particular setup (Linux,
  +	Tomcat 4.0.4, Mozilla 1.3 and JDK 1.4.1_02) I was unable to
  +	get the file uploading working with
  +	<span class="codefrag">autosave-upload=false</span>. Somehow the attached
  +	binary data was distorted (a GIF file does not appear to be a
  +	GIF any more).</p>
  +<p>With <span class="codefrag">autosave-upload=true</span> it worked flawlessly,
  +	even attaching multiple files.</p>
  +</div>
  +  
  +</div>
  +</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end Content==================-->
  +</table>
  +</td>
  +</tr>
  +</table>
  +<!--================= end Menu, NavBar, Content ==================-->
  +<!--================= start Footer ==================-->
  +<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  +<tr>
  +<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  +</tr>
  +<tr>
  +<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  +          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  +              document.write(" - "+"Last Published: " + document.lastModified);
  +            //  --></script></font></td>
  +</tr>
  +<tr>
  +<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  +</tr>
  +</table>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.2       +106 -205  cocoon-site/site/2.1/userdocs/actions/sendmail-action.pdf
  
  	<<Binary file>>
  
  
  1.5       +336 -336  cocoon-site/site/2.1/userdocs/actions/session-action.html
  
  Index: session-action.html
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/userdocs/actions/session-action.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- session-action.html	21 May 2003 15:23:33 -0000	1.4
  +++ session-action.html	19 Jul 2003 06:50:19 -0000	1.5
  @@ -1,336 +1,336 @@
  -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  -<html>
  -<head>
  -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Session Action</title>
  -<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  -</head>
  -<body text="#000000" bgcolor="#FFFFFF">
  -<!--================= start Navigation Path ==================-->
  -<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Navigation Path ==================-->
  -<!--================= start Banner ==================-->
  -<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<!--================= start Group Logo ==================-->
  -<td bgcolor="#294563"><a href="http://xml.apache.org"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/group-logo.gif"></a></td>
  -<!--================= end Group Logo ==================-->
  -<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  -<!--================= end Project Logo ==================-->
  -<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  -<form target="_blank" action="http://www.google.com/search" method="get">
  -<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  -<tr>
  -<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  -<br>
  -<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  -                      the Apache Cocoon site
  -                      
  -                      
  -                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  -</tr>
  -</table>
  -</form>
  -</td>
  -<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" bgcolor="#294563" colspan="2">
  -<!--================= start Tabs ==================-->
  -<div class="tab">
  -<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td width="8"><img alt="" height="8" width="8" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  -<table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  -</tr>
  -</table>
  -</td>
  -</tr>
  -</table>
  -</div>
  -<!--================= end Tabs ==================-->
  -</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -<!--================= end Banner ==================-->
  -<!--================= start Menu, NavBar, Content ==================-->
  -<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td valign="top">
  -<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  -<tr>
  -<!--================= start left top NavBar ==================-->
  -<td rowspan="3" valign="top">
  -<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  -</tr>
  -<tr>
  -<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td>
  -<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  -<!--================= start Menu items ==================-->
  -<div class="menu">
  -<ul>
  -<li>
  -<font color="#CFDCED">Navigation</font>
  -<ul>
  -    
  -<li>
  -<a href="../../index.html">Main</a>
  -</li>
  -    
  -<li>
  -<a href="../index.html">User Documentation</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Actions</font>
  -<ul>
  -    
  -<li>
  -<a href="actions.html">Overview</a>
  -</li>
  -    
  -<li>
  -<a href="database-actions.html">Database</a>
  -</li>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Default</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Core</font>
  -<ul>
  -  
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Optional</font>
  -<ul>
  -    
  -<li>
  -<span class="sel"><font color="#ffcc00">Session Action</font></span>
  -</li>
  -    
  -<li>
  -<a href="sendmail-action.html">Sendmail Action</a>
  -</li>
  -  
  -</ul>
  -</li>
  -</ul>
  -</div>
  -<!--================= end Menu items ==================-->
  -</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  -</tr>
  -<tr>
  -<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -</table>
  -</td><td valign="top" width="100%">
  -<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  -<!--================= start middle NavBar ==================-->
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  -                &nbsp;
  -                
  -                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<tr>
  -<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end middle NavBar ==================-->
  -<!--================= start Content==================-->
  -<tr>
  -<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td><td align="left" width="100%">
  -<div class="content">
  -<table class="title" summary="">
  -<tr>
  -<td valign="middle">
  -<h1>Session Action</h1>
  -</td><script Language="Javascript">
  -
  -function printit(){  
  -if (window.print) {
  -    window.print() ;  
  -} else {
  -    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  -document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  -    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  -}
  -}
  -</script><script Language="Javascript">  
  -var NS = (navigator.appName == "Netscape");
  -var VERSION = parseInt(navigator.appVersion);
  -if (VERSION > 3) {
  -    document.write('<td nowrap="nowrap" width="40" align="center">');     
  -    document.write('  <a class="dida" href="javascript:printit()">');        
  -    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" border="0"><br>');   
  -    document.write('  print</a>');   
  -    document.write('</td>');           
  -}
  -</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="session-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  -          PDF</a></td>
  -</tr>
  -</table>
  -<p>
  -<font size="-2">by&nbsp;Carsten Ziegeler</font>
  -</p>
  -<ul class="minitoc">
  -<li>
  -<a href="#Session+Action">Session Action</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#Creating+a+Session">Creating a Session</a>
  -</li>
  -<li>
  -<a href="#Terminating+a+Session">Terminating a Session</a>
  -</li>
  -</ul>
  -</li>
  -<li>
  -<a href="#Configuration">Configuration</a>
  -</li>
  -</ul>
  -  
  -<a name="N1001C"></a><a name="Session+Action"></a>
  -<h3>Session Action</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -    The session action helps in managing the session of a user on
  -    the server. It can create and terminate a session. The function
  -    is controlled by a parameter named 'action'.
  -   </p>
  -<p>For more information on session handling and session contexts
  -      have a look at the <a href="../../developing/webapps/session.html">Session Context documentation</a>.</p>
  -<a name="N1002B"></a><a name="Creating+a+Session"></a>
  -<h4>Creating a Session</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -      To create a session (if it not already exists) simply add the
  -      action in your pipeline:
  -     </p>
  -<pre class="code">
  -
  -    &lt;map:act type="session"/&gt;
  -	
  -</pre>
  -<p>This is the equivalent to specify the 'action' parameter
  -       with the value 'create':</p>
  -<pre class="code">
  -
  -    &lt;map:act type="session"&gt;
  -        &lt;map:parameter name="action" value="create"/&gt;
  -    &lt;/map:act&gt;
  -	
  -</pre>
  -</div>
  -<a name="N10041"></a><a name="Terminating+a+Session"></a>
  -<h4>Terminating a Session</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Terminating a session is as easy as creating a session, simply
  -      add the action to your pipeline and set the 'action' parameter
  -      to 'terminate':</p>
  -<pre class="code">
  -
  -    &lt;map:act type="session"&gt;
  -        &lt;map:parameter name="action" value="terminate"/&gt;
  -    &lt;/map:act&gt;
  -	
  -</pre>
  -<p>This terminates the session immediately.</p>
  -<p>You can optionally specifiy the 'mode' parameter which controlls
  -        the termination of the session. You have the choice between
  -        'immediately' (the default) and 'if-unsued'. If you use the
  -        mode 'if-unused', the session is only terminated, if no session
  -        context exists for the user:</p>
  -<pre class="code">
  -
  -    &lt;map:act type="session"&gt;
  -        &lt;map:parameter name="action" value="terminate"/&gt;
  -        &lt;map:parameter name="mode" value="if-unused"/&gt;
  -    &lt;/map:act&gt;
  -	
  -</pre>
  -</div>
  -</div>
  -   
  -<a name="N1005B"></a><a name="Configuration"></a>
  -<h3>Configuration</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<ul>
  -    
  -<li>Name : session</li>
  -    
  -<li>Class: org.apache.cocoon.webapps.session.acting.SessionAction</li>
  -   
  -</ul>
  -</div>
  - 
  -</div>
  -</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif"></td>
  -</tr>
  -<!--================= end Content==================-->
  -</table>
  -</td>
  -</tr>
  -</table>
  -<!--================= end Menu, NavBar, Content ==================-->
  -<!--================= start Footer ==================-->
  -<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  -<tr>
  -<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  -</tr>
  -<tr>
  -<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  -          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  -              document.write(" - "+"Last Published: " + document.lastModified);
  -            //  --></script></font></td>
  -</tr>
  -<tr>
  -<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  -</tr>
  -</table>
  -<!--================= end Footer ==================-->
  -</body>
  -</html>
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<title>Session Action</title>
  +<link type="text/css" href="../../skin/page.css" rel="stylesheet">
  +</head>
  +<body text="#000000" bgcolor="#FFFFFF">
  +<!--================= start Navigation Path ==================-->
  +<table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Navigation Path ==================-->
  +<!--================= start Banner ==================-->
  +<table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td bgcolor="#294563"><a href=""></a></td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://cocoon.apache.org/"><img border="0" class="logoImage" alt="Apache Cocoon" src="../../images/project-logo.gif"></a></td>
  +<!--================= end Project Logo ==================-->
  +<!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  +<form target="_blank" action="http://www.google.com/search" method="get">
  +<table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  +<tr>
  +<td colspan="3"><img height="10" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap"><input value="cocoon.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../../skin/images/spacer.gif" class="spacer"><input name="Search" value="Search" type="submit">
  +<br>
  +<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
  +                      the Apache Cocoon site
  +                      
  +                      
  +                    </font></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td><img alt="" border="0" height="10" width="9" src="../../skin/images/search-right.gif"></td>
  +</tr>
  +</table>
  +</form>
  +</td>
  +<!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" bgcolor="#294563" colspan="2">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td width="6"><img alt="" height="8" width="6" src="../../skin/images/spacer.gif"></td><td valign="bottom">
  +<table summary="selected tab" style="height: 1.8em" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="../../index.html"><font color="#000000">Home</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../skin/images/tabSel-right.gif"></td>
  +</tr>
  +</table>
  +</td>
  +</tr>
  +</table>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +<!--================= end Banner ==================-->
  +<!--================= start Menu, NavBar, Content ==================-->
  +<table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td valign="top">
  +<table summary="menu" border="0" cellspacing="0" cellpadding="0">
  +<tr>
  +<!--================= start left top NavBar ==================-->
  +<td rowspan="3" valign="top">
  +<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  +</tr>
  +<tr>
  +<td bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td>
  +<!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  +<!--================= start Menu items ==================-->
  +<div class="menu">
  +<ul>
  +<li>
  +<font color="#CFDCED">Navigation</font>
  +<ul>
  +    
  +<li>
  +<a href="../../index.html">Main</a>
  +</li>
  +    
  +<li>
  +<a href="../index.html">User Documentation</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Actions</font>
  +<ul>
  +    
  +<li>
  +<a href="actions.html">Overview</a>
  +</li>
  +    
  +<li>
  +<a href="database-actions.html">Database</a>
  +</li>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Default</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Core</font>
  +<ul>
  +  
  +</ul>
  +</li>
  +<li>
  +<font color="#CFDCED">Optional</font>
  +<ul>
  +    
  +<li>
  +<a href="sendmail-action.html">Sendmail Action</a>
  +</li>
  +    
  +<li>
  +<span class="sel"><font color="#ffcc00">Session Action</font></span>
  +</li>
  +  
  +</ul>
  +</li>
  +</ul>
  +</div>
  +<!--================= end Menu items ==================-->
  +</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../skin/images/menu-right.gif"></td>
  +</tr>
  +<tr>
  +<td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +</table>
  +</td><td valign="top" width="100%">
  +<table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  +<!--================= start middle NavBar ==================-->
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
  +                &nbsp;
  +                
  +                </font><img width="10" height="8" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<tr>
  +<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end middle NavBar ==================-->
  +<!--================= start Content==================-->
  +<tr>
  +<td align="left" width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td><td align="left" width="100%">
  +<div class="content">
  +<table class="title" summary="">
  +<tr>
  +<td valign="middle">
  +<h1>Session Action</h1>
  +</td><script Language="Javascript">
  +
  +function printit(){  
  +if (window.print) {
  +    window.print() ;  
  +} else {
  +    var WebBrowser = '<OBJECT CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" HEIGHT="0" WIDTH="0" ID="WebBrowser1"></OBJECT>';
  +document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
  +    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
  +}
  +}
  +</script><script Language="Javascript">  
  +var NS = (navigator.appName == "Netscape");
  +var VERSION = parseInt(navigator.appVersion);
  +if (VERSION > 3) {
  +    document.write('<td nowrap="nowrap" width="40" align="center">');     
  +    document.write('  <a class="dida" href="javascript:printit()">');        
  +    document.write('    <img alt="Print this Page" src="../../skin/images/printer.gif" class="skin"><br>');   
  +    document.write('  print</a>');   
  +    document.write('</td>');           
  +}
  +</script><td nowrap="nowrap" width="40" align="center"><a class="dida" href="session-action.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" class="skin"><br>
  +          PDF</a></td>
  +</tr>
  +</table>
  +<p>
  +<font size="-2">by&nbsp;Carsten Ziegeler</font>
  +</p>
  +<ul class="minitoc">
  +<li>
  +<a href="#Session+Action">Session Action</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#Creating+a+Session">Creating a Session</a>
  +</li>
  +<li>
  +<a href="#Terminating+a+Session">Terminating a Session</a>
  +</li>
  +</ul>
  +</li>
  +<li>
  +<a href="#Configuration">Configuration</a>
  +</li>
  +</ul>
  +  
  +<a name="N1001C"></a><a name="Session+Action"></a>
  +<h3>Session Action</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +    The session action helps in managing the session of a user on
  +    the server. It can create and terminate a session. The function
  +    is controlled by a parameter named 'action'.
  +   </p>
  +<p>For more information on session handling and session contexts
  +      have a look at the <a href="../../developing/webapps/session.html">Session Context documentation</a>.</p>
  +<a name="N1002B"></a><a name="Creating+a+Session"></a>
  +<h4>Creating a Session</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>
  +      To create a session (if it not already exists) simply add the
  +      action in your pipeline:
  +     </p>
  +<pre class="code">
  +
  +    &lt;map:act type="session"/&gt;
  +	
  +</pre>
  +<p>This is the equivalent to specify the 'action' parameter
  +       with the value 'create':</p>
  +<pre class="code">
  +
  +    &lt;map:act type="session"&gt;
  +        &lt;map:parameter name="action" value="create"/&gt;
  +    &lt;/map:act&gt;
  +	
  +</pre>
  +</div>
  +<a name="N10041"></a><a name="Terminating+a+Session"></a>
  +<h4>Terminating a Session</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Terminating a session is as easy as creating a session, simply
  +      add the action to your pipeline and set the 'action' parameter
  +      to 'terminate':</p>
  +<pre class="code">
  +
  +    &lt;map:act type="session"&gt;
  +        &lt;map:parameter name="action" value="terminate"/&gt;
  +    &lt;/map:act&gt;
  +	
  +</pre>
  +<p>This terminates the session immediately.</p>
  +<p>You can optionally specifiy the 'mode' parameter which controlls
  +        the termination of the session. You have the choice between
  +        'immediately' (the default) and 'if-unsued'. If you use the
  +        mode 'if-unused', the session is only terminated, if no session
  +        context exists for the user:</p>
  +<pre class="code">
  +
  +    &lt;map:act type="session"&gt;
  +        &lt;map:parameter name="action" value="terminate"/&gt;
  +        &lt;map:parameter name="mode" value="if-unused"/&gt;
  +    &lt;/map:act&gt;
  +	
  +</pre>
  +</div>
  +</div>
  +   
  +<a name="N1005B"></a><a name="Configuration"></a>
  +<h3>Configuration</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
  +    
  +<li>Name : session</li>
  +    
  +<li>Class: org.apache.cocoon.webapps.session.acting.SessionAction</li>
  +   
  +</ul>
  +</div>
  + 
  +</div>
  +</td><td width="10"><img width="10" height="1" alt="" src="../../skin/images/spacer.gif" class="spacer"></td>
  +</tr>
  +<!--================= end Content==================-->
  +</table>
  +</td>
  +</tr>
  +</table>
  +<!--================= end Menu, NavBar, Content ==================-->
  +<!--================= start Footer ==================-->
  +<table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  +<tr>
  +<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../skin/images/spacer.gif" class="spacer"><a href="../../skin/images/label.gif"></a><a href="../../skin/images/page.gif"></a><a href="../../skin/images/chapter.gif"></a><a href="../../skin/images/chapter_open.gif"></a><a href="../../skin/images/current.gif"></a><a href="../..//favicon.ico"></a></td>
  +</tr>
  +<tr>
  +<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
  +          1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
  +              document.write(" - "+"Last Published: " + document.lastModified);
  +            //  --></script></font></td>
  +</tr>
  +<tr>
  +<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  +</tr>
  +</table>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.2       +89 -145   cocoon-site/site/2.1/userdocs/actions/session-action.pdf
  
  	<<Binary file>>