cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cross...@apache.org
Subject svn commit: r345438 [121/286] - in /cocoon/site/site/2.1: ./ developing/ developing/portal/ developing/portal/coplets/ developing/webapps/ developing/webapps/authentication/ faq/ howto/ installing/ plan/ plan/documentation/ plan/otherplanning/ plan/ove...
Date Fri, 18 Nov 2005 04:13:22 GMT
Added: cocoon/site/site/2.1/userdocs/concepts/modules-ref.html
URL: http://svn.apache.org/viewcvs/cocoon/site/site/2.1/userdocs/concepts/modules-ref.html?rev=345438&view=auto
==============================================================================
--- cocoon/site/site/2.1/userdocs/concepts/modules-ref.html (added)
+++ cocoon/site/site/2.1/userdocs/concepts/modules-ref.html Thu Nov 17 20:00:02 2005
@@ -0,0 +1,2101 @@
+<!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=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Input Modules Reference</title>
+<link type="text/css" href="../../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../../skin/profile.css" rel="stylesheet">
+<script src="../../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../../images/cocoon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://cocoon.apache.org/">cocoon</a><script src="../../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../../images/cocoon-project-logo.png" title="The Apache Software Foundation"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://cocoon.apache.org/"><img class="logoImage" alt="Apache Cocoon" src="../../../images/cocoon-logo.gif" title="Apache Cocoon"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="cocoon.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../../2.1/index.html">Home</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../../../skin/')" id="menu_1.1Title" class="menutitle">About</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/features.html">Features</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/news.html">News</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/license.html">License</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/mirror.cgi">Download</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.2', '../../../skin/')" id="menu_selected_1.2Title" class="menutitle" style="background-image: url('../../../skin/images/chapter_open.gif');">Documentation</div>
+<div id="menu_selected_1.2" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../../2.1/introduction.html">Introduction</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.2', '../../../skin/')" id="menu_1.2.2Title" class="menutitle">Tracks</div>
+<div id="menu_1.2.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/tracks/index.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tracks/first-steps-track.html">First steps</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tracks/web-publishing-track.html">Web publishing</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.3', '../../../skin/')" id="menu_1.2.3Title" class="menutitle">Installation</div>
+<div id="menu_1.2.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://cocoon.apache.org/mirror.cgi">Download</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/installing/index.html">Intro</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/installing/requirements.html">System requirements</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/installing/updating-older.html">Updating to version 2.1.5</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/installing/jars.html">Jars</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/installing/tests.html">Overview</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/overview.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.2.5', '../../../skin/')" id="menu_selected_1.2.5Title" class="menutitle" style="background-image: url('../../../skin/images/chapter_open.gif');">User Guide</div>
+<div id="menu_selected_1.2.5" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/index.html">User Documentation</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.2.5.2', '../../../skin/')" id="menu_selected_1.2.5.2Title" class="menutitle" style="background-image: url('../../../skin/images/chapter_open.gif');">Concepts</div>
+<div id="menu_selected_1.2.5.2" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.2.2', '../../../skin/')" id="menu_1.2.5.2.2Title" class="menutitle">Sitemap</div>
+<div id="menu_1.2.5.2.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/sitemap.html">Section Home</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/sitemap/sitemap-examples.html">Example sitemap snippets</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/views.html">Views</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/caching.html">Caching</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/actions.html">Actions</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/matchers_selectors.html">Matchers and Selectors</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/catalog.html">Entity Catalogs</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/mrustore.html">MRUMemoryStore</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/persistence.html">Persistence</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/storejanitor.html">StoreJanitor</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/xmlsearching.html">XML Searching</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/databases.html">Databases</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/modules.html">Modules</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Modules Reference</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/redirection.html">Redirection</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/profiler.html">Profiler</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/concepts/errorhandling.html">Error Handling</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3', '../../../skin/')" id="menu_1.2.5.3Title" class="menutitle">Sitemap Components</div>
+<div id="menu_1.2.5.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.2.5.3.1', '../../../skin/')" id="menu_1.2.5.3.1Title" class="menutitle">Generators</div>
+<div id="menu_1.2.5.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/generators.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.1.2', '../../../skin/')" id="menu_1.2.5.3.1.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/file-generator.html">File Generator</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.1.3', '../../../skin/')" id="menu_1.2.5.3.1.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/calendar-generator.html">Calendar Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/directory-generator.html">Directory Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/file-generator.html">File Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/imagedirectory-generator.html">Imagedirectory Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/jx-generator.html">Jx Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/linkstatus-generator.html">Linkstatus Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/mp3directory-generator.html">MP3directory Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/error-generator.html">Notifying Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/request-generator.html">Request Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/sessionattribute-generator.html">SessionAttribute Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/status-generator.html">Status Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/stream-generator.html">Stream Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xpathdirectory-generator.html">Xpathdirectory Generator</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.1.4', '../../../skin/')" id="menu_1.2.5.3.1.4Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/extractor-generator.html">Fragment Extractor Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/html-generator.html">HTML Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/jsp-generator.html">JSP Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/php-generator.html">PHP Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/profile-generator.html">Profile Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/script-generator.html">Script Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/search-generator.html">Search Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/serverpages-generator.html">Server Pages Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/velocity-generator.html">Velocity Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/wsproxy-generator.html">Web Service Proxy Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xmldbcollection-generator.html">XML:DB Collection Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xmldb-generator.html">XML:DB Generator</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.2', '../../../skin/')" id="menu_1.2.5.3.2Title" class="menutitle">Transformers</div>
+<div id="menu_1.2.5.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/transformers.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.2.2', '../../../skin/')" id="menu_1.2.5.3.2.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.2.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/xslt-transformer.html">XSLT Transformer</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.2.3', '../../../skin/')" id="menu_1.2.5.3.2.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.2.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/extractor-transformer.html">Fragment Extractor Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/i18nTransformer.html">I18n Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/jpath-transformer.html">JPath Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/log-transformer.html">Log Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/filter-transformer.html">Filter Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/readdomsession-transformer.html">Read DOM Session Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/rolefilter-transformer.html">RoleFilter Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/simpleform-transformer.html">SimpleForm Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/simpleforminstance-transformer.html">SimpleFormInstance Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/writedomsession-transformer.html">Write DOM Session Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xinclude-transformer.html">Xinclude Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/cinclude-transformer.html">Cinclude Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/encodeurl-transformer.html">EncodeUrl Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/sourcewriting-transformer.html">Sourcewriting Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/augment-transformer.html">Augment Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/jx-template-transformer.html">JX Template Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xslt-transformer.html">XSLT Transformer</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.2.4', '../../../skin/')" id="menu_1.2.5.3.2.4Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.2.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/ldap-transformer.html">LDAP Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/lexer-transformer.html">Lexical Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/parser-transformer.html">Parser Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/pattern-transformer.html">Pattern Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/session.html">Session Transformer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/sql-transformer.html">SQL Transformer</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.3', '../../../skin/')" id="menu_1.2.5.3.3Title" class="menutitle">Serializers</div>
+<div id="menu_1.2.5.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/serializers.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.3.2', '../../../skin/')" id="menu_1.2.5.3.3.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/html-serializer.html">HTML Serializer</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.3.3', '../../../skin/')" id="menu_1.2.5.3.3.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/html-serializer.html">HTML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xhtml-serializer.html">XHTML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xml-serializer.html">XML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/text-serializer.html">Text Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/wap-serializer.html">WAP/WML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/svg-serializer.html">SVG Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/svgxml-serializer.html">SVG/XML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/svgjpeg-serializer.html">SVG/JPEG Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/svgpng-serializer.html">SVG/PNG Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/svgtiff-serializer.html">SVG/TIFF Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/vrml-serializer.html">VRML Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/link-serializer.html">Link Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/ziparchive-serializer.html">Zip archive Serializer</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.3.4', '../../../skin/')" id="menu_1.2.5.3.3.4Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.3.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/pdf-serializer.html">PDF Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/ps-serializer.html">PS Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/pcl-serializer.html">PCL Serializer</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xls-serializer.html">HSSF (XLS) Serializer</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.4', '../../../skin/')" id="menu_1.2.5.3.4Title" class="menutitle">Matchers</div>
+<div id="menu_1.2.5.3.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/matchers.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.4.2', '../../../skin/')" id="menu_1.2.5.3.4.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.4.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/wildcarduri-matcher.html">WildCard URI Matcher</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.4.3', '../../../skin/')" id="menu_1.2.5.3.4.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/core/wildcarduri-matcher.html">WildCard URI Matcher</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/core/wildcardheader-matcher.html">WildCard Header Matcher</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.4.4', '../../../skin/')" id="menu_1.2.5.3.4.4Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/template-matcher.html">Template Matcher</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.5', '../../../skin/')" id="menu_1.2.5.3.5Title" class="menutitle">Selectors</div>
+<div id="menu_1.2.5.3.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/selectors.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.5.2', '../../../skin/')" id="menu_1.2.5.3.5.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.5.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/browser-selector.html">Browser Selector</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.5.3', '../../../skin/')" id="menu_1.2.5.3.5.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.5.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/browser-selector.html">Browser Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/host-selector.html">Host Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/parameter-selector.html">Parameter Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/requestattribute-selector.html">Request Attribute Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/requestmethod-selector.html">Request Method Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/requestparameter-selector.html">Request Parameter Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/resourceexists-selector.html">Resource Exists Selector</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/regular-expression-header-selector.html">Regular-expression Header Selector</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.5.4', '../../../skin/')" id="menu_1.2.5.3.5.4Title" class="menutitle">Scratchpad</div>
+<div id="menu_1.2.5.3.5.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/scratchpad/date-selector.html">Date Selector</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.6', '../../../skin/')" id="menu_1.2.5.3.6Title" class="menutitle">Actions</div>
+<div id="menu_1.2.5.3.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/actions.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/database-actions.html">Database</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.6.3', '../../../skin/')" id="menu_1.2.5.3.6.3Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.6.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/sendmail-action.html">Sendmail Action</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/session-action.html">Session Action</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/script-action.html">Script Action</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.7', '../../../skin/')" id="menu_1.2.5.3.7Title" class="menutitle">Readers</div>
+<div id="menu_1.2.5.3.7" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/readers.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.7.2', '../../../skin/')" id="menu_1.2.5.3.7.2Title" class="menutitle">Default</div>
+<div id="menu_1.2.5.3.7.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/default/resource-reader.html">Resource Reader</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.7.3', '../../../skin/')" id="menu_1.2.5.3.7.3Title" class="menutitle">Core</div>
+<div id="menu_1.2.5.3.7.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/core/image-reader.html">Image Reader</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/core/resource-reader.html">Resource Reader</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.7.4', '../../../skin/')" id="menu_1.2.5.3.7.4Title" class="menutitle">Optional</div>
+<div id="menu_1.2.5.3.7.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/axisrpc-reader.html">AxisRPC Reader</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/database-reader.html">Database Reader</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/optional/jsp-reader.html">JSP Reader</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.3.7.5', '../../../skin/')" id="menu_1.2.5.3.7.5Title" class="menutitle">Scratchpad</div>
+<div id="menu_1.2.5.3.7.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/scratchpad/directoryziparchiver-reader.html">Directory ZIP Archiver</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.4', '../../../skin/')" id="menu_1.2.5.4Title" class="menutitle">Flow</div>
+<div id="menu_1.2.5.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/index.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/continuations.html">Continuations</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/how-does-it-work.html">How does it work?</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/using.html">Usage</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/tutor.html">Tutorial</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/sitemap.html">Sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/api.html">Flowscript</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/java.html">Calling Java</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/views.html">Views</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/jxtemplate.html">JXTemplate</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/jpath.html">JPath</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/flow/velocity.html">Velocity</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.5', '../../../skin/')" id="menu_1.2.5.5Title" class="menutitle">Cocoon Forms</div>
+<div id="menu_1.2.5.5" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.2.5.5.1', '../../../skin/')" id="menu_1.2.5.5.1Title" class="menutitle">Basics</div>
+<div id="menu_1.2.5.5.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/basics/index.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/basics/sample.html">Sample</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/basics/improving_sample.html">Improving the sample</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.5.2', '../../../skin/')" id="menu_1.2.5.5.2Title" class="menutitle">Widgets</div>
+<div id="menu_1.2.5.5.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_form.html">form</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_field.html">field</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_multivaluefield.html">multivaluefield</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_booleanfield.html">booleanfield</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_repeater.html">repeater</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_output.html">output</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_submit.html">submit</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_action.html">action</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_repeater_action.html">repeater-action</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_row_action.html">row-action</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_aggregatefield.html">aggregatefield</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_upload.html">upload</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_messages.html">messages</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_imagemap.html">imagemap</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_tree.html">tree</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_group.html">group/struct</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_union.html">union</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgets/widget_class.html">class/new</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.5.3', '../../../skin/')" id="menu_1.2.5.5.3Title" class="menutitle">Widget Concepts</div>
+<div id="menu_1.2.5.5.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgetconcepts/validation.html">Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgetconcepts/eventhandling.html">Event Handling</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgetconcepts/datatypes.html">Datatypes</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgetconcepts/selectionlists.html">Selection lists</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/widgetconcepts/widgetstates.html">Widget states</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.5.4', '../../../skin/')" id="menu_1.2.5.5.4Title" class="menutitle">Form Publishing</div>
+<div id="menu_1.2.5.5.4" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.2.5.5.4.1', '../../../skin/')" id="menu_1.2.5.5.4.1Title" class="menutitle">Templating</div>
+<div id="menu_1.2.5.5.4.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/publishing/templating.html">Section Home</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/publishing/templating/templategenerator.html">Template Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/publishing/templating/templatetransformer.html">Template Transformer</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/publishing/formsgenerator.html">Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/publishing/xslt.html">XSLT</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/binding.html">Binding Framework</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xmlbinding.html">Simple XML Binding</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.5.7', '../../../skin/')" id="menu_1.2.5.5.7Title" class="menutitle">API</div>
+<div id="menu_1.2.5.5.7" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/api/api_javascript.html">Javascript (Flowscript)</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/api/api_java.html">Java</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/formlibraries.html">Form libraries</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/ajax.html">Ajax</a>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/cocoon/Forms">Forms @ Wiki</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.6', '../../../skin/')" id="menu_1.2.5.6Title" class="menutitle">XSP</div>
+<div id="menu_1.2.5.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.6.2', '../../../skin/')" id="menu_1.2.5.6.2Title" class="menutitle">XSP</div>
+<div id="menu_1.2.5.6.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xsp.html">Section Home</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xsp/logicsheet.html">XSP Guide</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xsp/xsp-internals.html">XSP Internals</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xsp/logicsheet-concepts.html">XSP Logicsheets</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/xsp/sessions.html">Sessions</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.6.3', '../../../skin/')" id="menu_1.2.5.6.3Title" class="menutitle">Logicsheets</div>
+<div id="menu_1.2.5.6.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/logicsheets/request.html">Request</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/logicsheets/session.html">Session</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/logicsheets/esql.html">ESQL</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/logicsheets/logicsheet-forms.html">Forms</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/logicsheets/sendmail.html">Sendmail</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.5.7', '../../../skin/')" id="menu_1.2.5.7Title" class="menutitle">Offline</div>
+<div id="menu_1.2.5.7" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/userdocs/offline/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/offline/cli.html">Command Line</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/offline/configuration.html">CLI Configuration</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/offline/ant.html">Ant</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/userdocs/offline/bean.html">Cocoon Bean</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6', '../../../skin/')" id="menu_1.2.6Title" class="menutitle">Developer's Guide</div>
+<div id="menu_1.2.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/index.html">Index</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6.2', '../../../skin/')" id="menu_1.2.6.2Title" class="menutitle">Concepts</div>
+<div id="menu_1.2.6.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/httprequest.html">Internals</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/extending.html">Extending</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/avalon.html">Avalon</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/source.html">Source Handling</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/stores.html">Stores</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/datasources.html">Using Databases</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/parent-component-manager.html">Parent CM</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/deliquick.html">DELI Quick Start</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/deli.html">DELI</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6.3', '../../../skin/')" id="menu_1.2.6.3Title" class="menutitle">Developing Webapps</div>
+<div id="menu_1.2.6.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/session.html">Sessions</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/contexts.html">Session Contexts</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6.3.4', '../../../skin/')" id="menu_1.2.6.3.4Title" class="menutitle">Authentication</div>
+<div id="menu_1.2.6.3.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication.html">Section Home</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/authentication-handler.html">The Authentication Handler</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/authenticating_user.html">Authenticating a User</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/user_management.html">User Management</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/application_management.html">Application Management</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/module_management.html">Module Management</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/user_administration.html">User Administration</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/summary.html">Configuration Summary</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/authentication/pipeline_patterns.html">Pipeline Patterns</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/forms.html">Simple Forms</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/webapps/portal.html">Portal FW</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6.4', '../../../skin/')" id="menu_1.2.6.4Title" class="menutitle">Building a portal using the Portal Engine</div>
+<div id="menu_1.2.6.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/portal-block.html">Portal Engine</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.6.4.3', '../../../skin/')" id="menu_1.2.6.4.3Title" class="menutitle">Configuring Coplets</div>
+<div id="menu_1.2.6.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/coplets.html">Section Home</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/coplets/uricoplet.html">The URICoplet</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/coplets/cachinguricoplet.html">The CachingURICoplet</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/layout_skins.html">Layout and Skins</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/events.html">Event Handling</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/profiles.html">Profiles</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/wsrp.html">WSRP Support</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/authentication.html">Authentication</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/forms.html">Form handling</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/portal/basket.html">A Basket</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/developing/web3.html">Connect to SAP R/3</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/2.1/apidocs/index.html">API (Javadoc)</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.7', '../../../skin/')" id="menu_1.2.7Title" class="menutitle">Tutorials</div>
+<div id="menu_1.2.7" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/tutorial/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tutorial/tutorial-develop-webapp.html">WebApp</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tutorial/tutorial-generator.html">Custom Generator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tutorial/tutorial-shots.html">Tutorial screenshots</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/tutorial/tutorial-rmi-generator.html">RMIServer</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.8', '../../../skin/')" id="menu_1.2.8Title" class="menutitle">FAQ</div>
+<div id="menu_1.2.8" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/faq/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-install.html">Install</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-configure-environment.html">Configure</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-cvs.html">CVS/SVN</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-configure-c2.html">Configure C2</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-databases.html">Databases</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-xsp.html">XSP</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-xslt.html">XSLT</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-debugging.html">Debugging</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-sitemap.html">Sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-generators.html">Generators</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-transformers.html">Transformers</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-serializers.html">Serializers</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-matchers.html">Matchers</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-selectors.html">Selectors</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-actions.html">Actions</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/faq/faq-aggregators.html">Aggregators</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2.9', '../../../skin/')" id="menu_1.2.9Title" class="menutitle">How Tos</div>
+<div id="menu_1.2.9" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/howto/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-explore-samples.html">Samples</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-paginator-transformer.html">Paginator</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-html-pdf-publishing.html">HTML-PDF</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/wsproxy-generator.html">Web Syndication</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-flow-debugger.html">Flow Debugger</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-author-howto.html">Author How-To</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-author-faq.html">Author FAQ</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-author-snippet.html">Author Snippet</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-author-core-docs.html">Author Docs</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-patch.html">Prepare patch</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/howto/howto-bugzilla.html">Bugzilla</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/performancetips.html">Performance</a>
+</div>
+<div onclick="SwitchMenu('menu_1.2.11', '../../../skin/')" id="menu_1.2.11Title" class="menutitle">Snippets</div>
+<div id="menu_1.2.11" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/snippet/index.html">Index</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/snippet/snippet-xslt-options.html">XSLT Processor Options</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/snippet/snippet-internal-pipeline.html">Internal Pipeline</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/cocoon/">Wiki Docs</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../../../skin/')" id="menu_1.3Title" class="menutitle">Status</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/todo.html">To Do</a>
+</div>
+<div onclick="SwitchMenu('menu_1.3.3', '../../../skin/')" id="menu_1.3.3Title" class="menutitle">Planning Notes</div>
+<div id="menu_1.3.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.3.3.1', '../../../skin/')" id="menu_1.3.3.1Title" class="menutitle">Overview</div>
+<div id="menu_1.3.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/plan/overview/index.html">Planning Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/plan/overview/roadmap.html">Roadmap</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3.3.2', '../../../skin/')" id="menu_1.3.3.2Title" class="menutitle">Documentation</div>
+<div id="menu_1.3.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/plan/documentation/doc.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/plan/documentation/linkstatus.html">Fix broken links</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3.3.3', '../../../skin/')" id="menu_1.3.3.3Title" class="menutitle">Other Planning</div>
+<div id="menu_1.3.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/plan/otherplanning/release.html">Release Plan</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/plan/otherplanning/samples.html">Cocoon Samples</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/plan/otherplanning/proposed-toc.html">Proposed TOC</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/plan/otherplanning/updating.html">Updating Cocoon</a>
+</div>
+</div>
+</div>
+<div class="menuitem">
+<a href="http://issues.apache.org/jira/browse/COCOON">Patch queue</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', '../../../skin/')" id="menu_1.4Title" class="menutitle">Community</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../../2.1/bylaws-addendum.html">Cocoon Bylaws</a>
+</div>
+<div class="menuitem">
+<a href="../../../2.1/who.html">Hall of Fame</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/community/contrib.html">Contributing</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/community/mail-lists.html">Mail Lists</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/community/mail-archives.html">Mail Archives</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.5', '../../../skin/')" id="menu_1.5Title" class="menutitle">Project</div>
+<div id="menu_1.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://issues.apache.org/jira/browse/COCOON">Bug Database</a>
+</div>
+<div class="menuitem">
+<a href="http://svn.apache.org/viewcvs.cgi/cocoon/branches/BRANCH_2_1_X/?root=Apache-SVN">Code Repository</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/mirror.cgi#nightly">Dev Snapshots</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.6', '../../../skin/')" id="menu_1.6Title" class="menutitle">Other Releases</div>
+<div id="menu_1.6" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://cocoon.apache.org/1.x/">Cocoon 1.x</a>
+</div>
+<div class="menuitem">
+<a href="http://cocoon.apache.org/2.0/">Cocoon 2.0</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.7', '../../../skin/')" id="menu_1.7Title" class="menutitle">External</div>
+<div id="menu_1.7" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://wiki.apache.org/cocoon/GT2005Hackaton">2005 Get Together</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2">
+<a href="http://apachecon.com/"><img border="0" title="ApacheCon US 2005" alt="ApacheCon US 2005 - logo" src="http://apache.org/images/ac2005us_blue_125x125.jpg" style="width: 125px;height: 125px;"></a>
+</div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<h1>Input Modules Reference</h1>
+<a name="N10007"></a><a name="Introduction"></a>
+<h2 class="h3">Introduction</h2>
+<div class="section">
+<p>This is meant to be a concise reference to Cocoon's InputModules, what they
+do, and how to use them. InputModules are available in Cocoon 2.0.4 and above.
+Many descriptions are taken directly from the respective modules' source code,
+or from trial and error experimentation.</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">See also: the
+<a class="external" href="http://wiki.apache.org/cocoonInputModules">InputModules Wiki Page</a>.
+</div>
+</div>
+</div>
+<a name="N10019"></a><a name="Modules+Reference"></a>
+<h2 class="h3">Modules Reference</h2>
+<div class="section">
+<a name="N1001D"></a><a name="AbstractInputModule"></a>
+<h3 class="h4">AbstractInputModule</h3>
+<p>AbstractInputModule gives you the infrastructure for easily deploying more
+InputModules.</p>
+<a name="N10023"></a><a name="AbstractJXPathModule"></a>
+<h3 class="h4">AbstractJXPathModule</h3>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">The following is the same as described in the JXPathMetaModule,
+but the JXPathMetaModule actually doesn't inherit from AbstractJXPathModule.</div>
+</div>
+<p>JXPathModule allows to access properties of any object in generic way. JXPath
+provides APIs for the traversal of graphs of JavaBeans, DOM and other types of
+objects using the XPath syntax. JXPathMetaModule is based on this class and
+duplicates the code since multiple inheritance is not possible. Please keep both
+classes in sync.</p>
+<p>Configuration example:</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tbody>
+
+<tr>
+
+<td>
+
+<p>&lt;lenient&gt;false&lt;/lenient&gt;</p>
+
+</td>
+<td>
+
+<p>When set to true, non-existing attributes return null, when set to false, an
+exception is thrown. Default is true.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>&lt;parameter&gt;foo&lt;/parameter&gt;</p>
+
+</td>
+<td>
+
+<p>When set overrides attribute name passed to module.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>&lt;function name="java.lang.String" prefix="str"/&gt;</p>
+
+</td>
+<td>
+
+<p>Imports the class "String" as extension class to the JXPathContext using the
+prefix "str". Thus "str:length(xpath)" would apply the method "length" to the
+string object obtained from the xpath expression. Please note that the class
+needs to be fully qualified.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>&lt;package name="java.util" prefix="util"/&gt;</p>
+
+</td>
+<td>
+
+<p>Imports all classes in the package "java.util" as extension classes to the
+JXPathContext using the prefix "util". Thus "util:Date.new()" would create a new
+java.util.Date object.</p>
+
+</td>
+
+</tr>
+
+</tbody>
+
+</table>
+<a name="N10074"></a><a name="AbstractMetaModule"></a>
+<h3 class="h4">AbstractMetaModule</h3>
+<p>AbstractMetaModule gives you the infrastructure for easily deploying more
+"meta" InputModules i.e. InputModules that are composed of other InputModules.
+In order to get at the Logger, use getLogger().</p>
+<a name="N1007A"></a><a name="BaseLinkModule"></a>
+<h3 class="h4">BaseLinkModule</h3>
+<p>BaseLinkModule returns a relative link (../, ../../ etc) to the base of the
+current request or sitemap URI. For instance, if called within a &lt;map:match
+pattern="a/b/c.xsp"&gt; pipeline, {baselink:SitemapBaseLink} would evaluate to
+../../.</p>
+<a name="N10080"></a><a name="ChainMetaModule"></a>
+<h3 class="h4">ChainMetaModule</h3>
+<p>This modules allows to "chain" several other modules. If a module returns
+"null" as attribute value, the next module in the chain is queried until either
+a value can be obtained or the end of the chain is reached.</p>
+<p>A typical example would be to "chain" request parameters, session attributes,
+and constants in this order. This way, an application could have a default skin
+that could be overridden by a user in her/his profile stored in the session. In
+addition, the user could request a different skin through passing a request
+parameter.</p>
+<p>
+<strong><strong>Usage</strong>:</strong>
+</p>
+<p>Any number of &lt;input-module/&gt; blocks may appear in the component
+configuration. The @name attribute is used as the name of the requested input
+module. The complete &lt;input-module/&gt; block is passed at run-time to the
+module and thus can contain any configuration data for that particular module.
+</p>
+<p>
+<strong>Configuration:</strong>
+</p>
+<p>It can be controlled whether it returns a flat or a deep view, i.e. whether
+only values from the first module are returned if non-null or they are merged
+with values from other modules &lt;all-values&gt;true&lt;/all-values&gt;. The
+same is possible for the attribute names (&lt;all-names/&gt;). In addition,
+empty strings could be treated the same as null values (&lt;empty-as-null/&gt;).
+</p>
+<a name="N10094"></a><a name="ContextPathModule"></a>
+<h3 class="h4">ContextPathModule</h3>
+<p>ContextRealPathModule provides a real filesystem path for a virtual
+context-relative path. If this mapping cannot be performed (e.g. Cocoon is
+running in a .war file), null will be returned. Compared to the
+<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/components/modules/input/RealPathModule.html">RealPathModule</a>
+this module is able to provide the "real" absolute path even if the application
+is mounted outside the webapp tree of Cocoon.</p>
+<p>Note: the primary use for this is to support external code that wants a
+filesystem path. For example, The FOP 0.20.x serializer doesn't like relative
+image paths, and doesn't understand Cocoon URLs (context:, cocoon: etc). So we
+pass the *2fo.xsl stylesheet a real filesystem path to where we keep our images:
+</p>
+<p>A absolute path argument like {contextrealpath:/resources} will be resolved
+from the root context path (ie. COCOON_HOME/build/webapp) whereas a relative
+path attribute like {contextrealpath:./resources} will be resolved from the
+location of the sitemap that uses it. If that sitemap is mounted outside the
+usual COCOON_HOME/build/webapp the path resolved with this modules points to the
+correct location.</p>
+<pre>&lt;map:transform src="skins/%7Bforrest:skin%7D/xslt/fo/document2fo.xsl"&gt;
+    &lt;map:parameter name="basedir" value="{contextrealpath:resources}/"&gt;
+ &lt;/map:parameter&gt;
+
+ And then prepend this to all image paths:
+  ...
+  &lt;xsl:param name="basedir" select="''"&gt;
+  ...
+  &lt;xsl:template match="img"&gt;
+      &lt;xsl:variable name="imgpath" select="concat($basedir, @src)"&gt;
+      &lt;fo:external-graphic src="%7B$imgpath%7D" .=""&gt;&lt;/fo:external-graphic&gt;
+  &lt;/xsl:variable&gt;&lt;/xsl:template&gt;&lt;/xsl:param&gt;&lt;/map:transform&gt;
+</pre>
+<a name="N100A4"></a><a name="CollectionMetaModule"></a>
+<h3 class="h4">CollectionMetaModule</h3>
+<p>Constructs an array of values suitable for a JDBC collection type from
+parameters obtained from another input module. Application is not limited to
+JDBC collections but can be used wherever similar named attributes shall be
+collected to an array of a given type. Currently, long, int, and string are
+known, more to come.</p>
+<p>
+<strong>Global and Local Configuration:</strong>
+</p>
+<div class="frame fixme">
+<div class="label">Fixme</div>
+<div class="content">Finish the reference for this Module.</div>
+</div>
+<a name="N100B5"></a><a name="CookieModule"></a>
+<h3 class="h4">CookieModule</h3>
+<p>This module returns the value of the named HTTP cookie.</p>
+<p>
+<strong>Example Pipeline Fragment:</strong>
+</p>
+<pre>&lt;map:match pattern="foo.html"&gt;
+  &lt;map:generate type="file" src="documents/{cookie:user-language}/foo.xml"/&gt;
+  &lt;map:transform src="stylesheets/foo2html.xsl"/&gt;
+  &lt;map:serialize/&gt;
+&lt;/map:match&gt;
+</pre>
+<a name="N100C0"></a><a name="DateInputModule"></a>
+<h3 class="h4">DateInputModule</h3>
+<p>This module returns the current date, optionally formatted as string. Format
+given through attribute "format" of configuration root node or nested
+&lt;format/&gt; tag on module declaration.</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">The 'format' attribute doesn't seem to work. Nested
+<tt>&lt;format/&gt;</tt> tags work fine.</div>
+</div>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">See also:
+<a class="external" href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">Java
+Date Format</a>.</div>
+</div>
+<a name="N100DD"></a><a name="DateMetaInputModule"></a>
+<h3 class="h4">DateMetaInputModule</h3>
+<p>Parses a date string according to a given format and returns a date object.
+Configuration options: element "format" to hold a
+<a class="external" href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a>
+format string, child element "input-module" holds InputModule to obtain the
+string from.</p>
+<a name="N100E7"></a><a name="DefaultsModule"></a>
+<h3 class="h4">DefaultsModule</h3>
+<p>Set a number of constants. To override the values with input from another
+module, combine this one with the ChainMetaModule and an arbitrary number of
+other modules. &lt;values&gt; &lt;skin&gt;myskin&lt;/skin&gt;
+&lt;base&gt;baseurl&lt;/base&gt; ... &lt;/values&gt;</p>
+<a name="N100ED"></a><a name="DigestMetaModule"></a>
+<h3 class="h4">DigestMetaModule</h3>
+<p>Meta module that obtains values from other module and returns message digest
+of value. Very useful for storing and checking passwords. Input module
+configured through nested element "input-module", message digest algorithm,
+security provider, salt, and URL encoded output configurable through elements
+"algorithm", "provider", "salt", "encode". Defaults are "sha", null, "salt", and
+"false". Available value for encode are "none" (returns byte[]), "string"
+(return hash as string), "url" (returns url encoded string), "hex" (returns
+string of hex values).</p>
+<a name="N100F3"></a><a name="FlowAttributeModule"></a>
+<h3 class="h4">FlowAttributeModule</h3>
+<p>FlowAttributeModule provides access to the flow business object properties.
+To get access to the properties use XPath syntax. If requested object is not
+found then an exception will be thrown.</p>
+<a name="N100F9"></a><a name="FlowContinuationModule"></a>
+<h3 class="h4">FlowContinuationModule</h3>
+<p>FlowContinuationModule provides access to the flow web continuation object.
+To get access to the properties use XPath syntax. If requested object is not
+found then an exception will be thrown.</p>
+<a name="N100FF"></a><a name="GlobalInputModule"></a>
+<h3 class="h4">GlobalInputModule</h3>
+<p>This module allows you to access "global" variables which are defined in a
+sitemap's pipelines definition.</p>
+<p>
+<strong>cocoon.xconf usage:</strong>
+</p>
+<pre>&lt;input-modules&gt;
+  ...
+  &lt;component-instance 
+     class="org.apache.cocoon.components.modules.input.GlobalInputModule" 
+     logger="core.modules.input" 
+     name="global"/&gt;
+  ...
+&lt;/input-modules&gt;
+</pre>
+<p>
+<strong>Sitemap Usage:</strong>
+</p>
+<pre>&lt;map:component-configurations&gt;
+  &lt;global-variables&gt;
+      &lt;doc&gt;doc.xml&lt;/doc&gt;
+  &lt;/global-variables&gt;
+&lt;/map:component-configurations&gt;
+</pre>
+<p>
+<strong>Example Pipeline Fragment:</strong>
+</p>
+<pre>&lt;map:match pattern="foo"&gt;
+  &lt;map:generate type="file" src="documents/{global:doc}"/&gt;
+  &lt;map:transform src="stylesheets/foo2html.xsl"/&gt;
+  &lt;map:serialize/&gt;
+&lt;/map:match&gt;
+</pre>
+<a name="N10114"></a><a name="HeaderAttributeModule"></a>
+<h3 class="h4">HeaderAttributeModule</h3>
+<p>HeaderAttributeModule accesses request header attributes. If the attribute
+name contains an asterisk "*" this is considered a wildcard and all attributes
+that would match this wildcard are considered to be part of an array of that
+name for getAttributeValues. Only one "*" is allowed.</p>
+<a name="N1011A"></a><a name="JXPathMetaModule"></a>
+<h3 class="h4">JXPathMetaModule</h3>
+<p>JXPathModule allows to access properties of any object in generic way. JXPath
+provides APIs for the traversal of graphs of JavaBeans, DOM and other types of
+objects using the XPath syntax. This is based on the AbstractJXPathModule and
+duplicates the code since multiple inheritance is not possible. Please keep both
+classes in sync.</p>
+<p>Configuration example:</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tbody>
+
+<tr>
+
+<td>
+
+<p>
+<tt>&lt;lenient&gt;false&lt;/lenient&gt;</tt>
+</p>
+
+</td>
+<td>
+
+<p>When set to true, non-existing attributes return null, when set to false, an
+exception is thrown. Default is true.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>
+<tt>&lt;parameter&gt;false&lt;/parameter&gt;</tt>
+</p>
+
+</td>
+<td>
+
+<p>Attribute name to be used instead of passed attribute name.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>
+<tt>&lt;from-parameter&gt;false&lt;/from-parameter&gt;</tt>
+</p>
+
+</td>
+<td>
+
+<p>Attribute name to pass to configured input module</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td><tt>&lt;input-module name="request-attr"/&gt;</tt></td>
+<td>
+
+<p>Uses the "request-attr" input module to obtain a value and applies the given
+JXPath expression to it.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td><tt>&lt;function name="java.lang.String" prefix="str"/&gt;</tt></td>
+<td>
+
+<p>Imports the class "String" as extension class to the JXPathContext using the
+prefix "str". Thus "str:length(xpath)" would apply the method "length" to the
+string object obtained from the xpath expression. Please note that the class
+needs to be fully qualified.</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td><tt>&lt;package name="java.util" prefix="util"/&gt;</tt></td>
+<td>
+
+<p>Imports all classes in the package "java.util" as extension classes to the
+JXPathContext using the prefix "util". Thus "util:Date.new()" would create a new
+java.util.Date object.</p>
+
+</td>
+
+</tr>
+
+</tbody>
+
+</table>
+<a name="N1017E"></a><a name="LocateResource"></a>
+<h3 class="h4">LocateResource</h3>
+<p>Locate a resource in a resource tree. Any attribute name is interpreted as a
+URI with the last part being the resource name unless it ends with a slash. The
+URI is checked if the resource exists and the URI is returned. If the resource
+does not exist, the URI is shortened until the resource name is found and the
+new URI is returned. If no resource with the given name exists, null is
+returned.</p>
+<p>A use case is to locate the closest menu file or when moving a site from a
+filesystem path == URL system from a httpd to Cocoon and provide similar
+functions to .htaccess files.</p>
+<p>Example: for context:/some/path/to/a/file.xml the following URIs are tested:
+context:/some/path/to/a/file.xml, context:/some/path/to/file.xml,
+context:/some/path/file.xml, context:/some/file.xml, and context:/file.xml. For
+the attribute name context:/some/path/foo/ tests context:/some/path/foo/,
+context:/some/path/, context:/some/, and context:/ are tested.</p>
+<p>The getAttribute() method will return the URI for the first match while
+getAttributeValues() will return an array of all existing paths.
+getAttributeNames() will return an Iterator to an empty collection.</p>
+<a name="N1018A"></a><a name="MapMetaModule"></a>
+<h3 class="h4">MapMetaModule</h3>
+<p>Meta module that obtains an Object from another module, assumes that this
+Object implements the java.util.Map interface, and gives access to the map
+contents. Possible use is to propagate data from flow through request attributes
+to database actions. The same can be achieved by using the
+<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/components/modules/input/JXPathMetaModule.html">JXPathMetaModule</a>.
+</p>
+<p>Configuration: "input-module", "object", "parameter"</p>
+<a name="N10196"></a><a name="NamingInputModule"></a>
+<h3 class="h4">NamingInputModule</h3>
+<p>NamingInputModule accesses values stored in the JNDI context.</p>
+<p>This module accept any configuration parameters and passes them as properties
+to the InitialContext. When connecting to the Naming context of the server
+Cocoon is running in, no parameters are required.</p>
+<p>Example module configuration when connecting to external WebLogic server:
+</p>
+<pre>&lt;java.naming.factory.initial&gt;weblogic.jndi.WLInitialContextFactory&lt;/java.naming.factory.initial&gt;
+&lt;java.naming.provider.url&gt;t3://localhost:7001&lt;/java.naming.provider.url&gt;
+</pre>
+<p>Example usage:</p>
+<pre>&lt;map:generate src="{naming:java:comp/env/greeting}"/&gt;
+</pre>
+<p>This lookups greeting entry from the environment of the webapp. Webapp's
+web.xml should define this entry:</p>
+<pre>   &lt;env-entry&gt;
+     &lt;env-entry-name&gt;greeting&lt;/env-entry-name&gt;
+     &lt;env-entry-value&gt;Hello, World&lt;/env-entry-value&gt;
+     &lt;env-entry-type&gt;java.lang.String&lt;/env-entry-type&gt;
+   &lt;/env-entry&gt;
+</pre>
+<a name="N101AA"></a><a name="NullInputModule"></a>
+<h3 class="h4">NullInputModule</h3>
+<p>NullInputModule returns a null object. Use this if you want to explicitly
+forbid a parameter to be filled. E.g. a database column shall be filled with a
+default value, your forms never contain that parameter but you don't want anyone
+to provide this parameter manually.</p>
+<a name="N101B0"></a><a name="PortletURLModule"></a>
+<h3 class="h4">PortletURLModule</h3>
+<p>Input module to be used in together with
+<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/transformation/LinkRewriterTransformer.html">LinkRewriterTransformer</a>
+in JSR-168 (Portlet) environment. Allows creation of render, action, and
+resource URLs using syntax:</p>
+<ul>
+
+<li>portlet:action:&lt;path&gt; for action URL;</li>
+
+<li>portlet:render:&lt;path&gt; for render URL;</li>
+
+<li>portlet:resource:&lt;path&gt; for resource URL;</li>
+
+</ul>
+<p>Outside of portlet environment, prefixes (portlet:action:, portlet:render:,
+portlet:resource:) are omitted.</p>
+<a name="N101C7"></a><a name="PropertiesFileModule"></a>
+<h3 class="h4">PropertiesFileModule</h3>
+<p>Input module for accessing properties in a properties file.</p>
+<p>The properties file can only be configured statically and is resolved via the
+SourceResolver system.</p>
+<a name="N101CF"></a><a name="RandomNumberModule"></a>
+<h3 class="h4">RandomNumberModule</h3>
+<p>RandomNumberModule returns a random number as a string. Configuration through
+child elements: "min", "max" setting range of random number. Defaults to "0" and
+"9999999999" respectively.</p>
+<a name="N101D5"></a><a name="RawRequestParameterModule"></a>
+<h3 class="h4">RawRequestParameterModule</h3>
+<p>This module allows access to "raw" request parameters and their values.</p>
+<p>Values returned are "URL Encoded", meaning if a parameter is submitted as
+"foo+bar", you will get the string "foo+bar".</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">For access to URL-Decoded request parameters, see the
+<a href="#request-parameter-module">RequestParameterModule</a>.</div>
+</div>
+<p>
+<strong>cocoon.xconf usage:</strong>
+</p>
+<pre>&lt;input-modules&gt;
+  ...
+  &lt;component-instance 
+     class="org.apache.cocoon.components.modules.input.RawRequestParameterModule" 
+     logger="core.modules.input" 
+     name="raw-request-param"/&gt;
+  ...
+&lt;/input-modules&gt;
+</pre>
+<p>
+<strong>Example Pipeline Fragment:</strong>
+</p>
+<pre>&lt;map:match pattern="amazonProxy"&gt;
+  &lt;map:generate type="file" 
+      src="http://localhost:8888/search?qry={raw-request-param:actor}"/&gt;
+  &lt;map:serialize type="xml"/&gt;
+&lt;/map:match&gt;
+</pre>
+<p>This input module is useful when you are querying a remote service, and you
+need to be able to send a search string with spaces or other special characters
+intact. If you were to simply use <tt>{request-param:actor}</tt>, you would end
+up sending a space character to the remote service, which would be an error,
+since <a class="external" href="http://www.faqs.org/rfcs/rfc1738.html">RFC 1738</a> requires
+spaces and other special characters to be correctly encoded.</p>
+<a name="N101FC"></a><a name="RealPathModule"></a>
+<h3 class="h4">RealPathModule</h3>
+<p>RealPathModule provides a real filesystem path for a virtual context-relative
+path. If this mapping cannot be performed (e.g. Cocoon is running in a .war
+file), null will be returned.</p>
+<a name="N10202"></a><a name="RequestAttributeModule"></a>
+<h3 class="h4">RequestAttributeModule</h3>
+<p>RequestAttributeModule accesses request attributes. If the attribute name
+contains an asterisk "*" this is considered a wildcard and all attributes that
+would match this wildcard are considered to be part of an array of that name for
+getAttributeValues. Only one "*" is allowed.</p>
+<a name="N10208"></a><a name="RequestModule"></a>
+<h3 class="h4">RequestModule</h3>
+<p>RequestModule provides access to Request object properties. To get access to
+request properties use XPath syntax, e.g. to get the request context path use
+'contextPath' as the attribute name.</p>
+<p>More complex expressions are also supported, e.g.:</p>
+<pre> 'userPrincipal/name' </pre>
+<p>will return the name property of the Principal object returned by the
+request.getUserPrincipal() method. If requested object is not found then an
+exception will be thrown.</p>
+<a name="N10214"></a><a name="RequestParameterModule"></a>
+<h3 class="h4">RequestParameterModule</h3>
+<p>This module allows access to request parameters. Values returned are "URL
+Decoded". That is, if a request parameter is submitted as <tt>foo+bar</tt>, you
+will get the string "foo bar".</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">For URL-Encoded request parameters, see the
+<a href="#raw-request-parameter-module">RawRequestParameterModule</a>.</div>
+</div>
+<p>
+<strong>cocoon.xconf usage:</strong>
+</p>
+<pre>&lt;input-modules&gt;
+  ...
+  &lt;component-instance 
+     class="org.apache.cocoon.components.modules.input.RequestParameterModule" 
+     logger="core.modules.input" 
+     name="request-param"/&gt;
+  ...
+&lt;/input-modules&gt;
+</pre>
+<p>
+<strong>Example Pipeline Fragment:</strong>
+</p>
+<pre>&lt;map:match pattern="bar"&gt;
+   &lt;map:generate type="file" src="documents/{request-param:file}"/&gt;
+   &lt;map:transform src="stylesheets/{request-param:stylesheet}"/&gt;
+   &lt;map:serialize/&gt;
+&lt;/map:match&gt;
+</pre>
+<p>This pipeline will match a request for "bar" and pass the request parameters
+"file" and "stylesheet" to the generator and transformer, respectively. (e.g.
+http://localhost:8080/cocoon/bar?file=doc.xml&amp;stylesheet=main.xsl).</p>
+<p>Directly passing request parameters for file access can be dangerous.
+Remember to follow basic webapp safety rules when designing your pipelines, and
+when passing around request parameters.</p>
+<a name="N10237"></a><a name="RequestURIModule"></a>
+<h3 class="h4">RequestURIModule</h3>
+<p>Returns the URI of the request.</p>
+<p>If you are familliar with Avalon and Cocoon's component architecture, the
+following will explain what is specifically returned:</p>
+<pre>String uri = ObjectModelHelper.getRequest(objectModel).getSitemapURI();</pre>
+<p>
+<strong>cocoon.xconf usage:</strong>
+</p>
+<pre>&lt;input-modules&gt;
+  ...
+  &lt;component-instance 
+     class="org.apache.cocoon.components.modules.input.RequestURIModule" 
+     logger="core.modules.input" 
+     name="request-uri"/&gt;
+  ...
+&lt;/input-modules&gt;
+</pre>
+<p>
+<strong>Example Sitemap Usage:</strong>
+</p>
+<pre>{request-uri:requestURI}</pre>
+<p>This is how you would use the module most of the time, since the module only
+returns one item, the Request URI.</p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">The same effect can be achieved by passing the parameter name
+"sitemapURI" to the request module. Therefore this component is not declared in
+cocoon.xconf by default. You must manually add it.</div>
+</div>
+<a name="N10255"></a><a name="SelectMetaInputModule"></a>
+<h3 class="h4">SelectMetaInputModule</h3>
+<p>
+<strong>Configuration</strong>
+</p>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+
+<tbody>
+
+<tr>
+
+<td>
+
+<p>input-module</p>
+
+</td>
+<td>
+
+<p>Configuration and name of input module used for the selection.</p>
+
+</td>
+<td>
+
+<p>
+<tt>req</tt>
+</p>
+
+</td>
+<td>
+
+<p>String</p>
+
+</td>
+<td>
+
+<p>
+<tt>null</tt>
+</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>when</p>
+
+</td>
+<td>
+
+<p>Selection case, condition in test attribute, input module name in name
+attribute. Optional configuration as nested content.</p>
+
+</td>
+<td>
+
+<p>
+<tt>req</tt>
+</p>
+
+</td>
+<td>
+
+<p>String</p>
+
+</td>
+<td>
+
+<p>
+<tt>null</tt>
+</p>
+
+</td>
+
+</tr>
+
+<tr>
+
+<td>
+
+<p>otherwise</p>
+
+</td>
+<td>
+
+<p>Default selection case. If not present and no case matches, null is returned.
+</p>
+
+</td>
+<td></td>
+<td>
+
+<p>String</p>
+
+</td>
+<td>
+
+<p>
+<tt>null</tt>
+</p>
+
+</td>
+
+</tr>
+
+</tbody>
+
+</table>
+<a name="N102C5"></a><a name="SessionAttributeModule"></a>
+<h3 class="h4">SessionAttributeModule</h3>
+<p>essionAttributeModule accesses session attributes. If the attribute name
+contains an asterisk "*" this is considered a wildcard and all attributes that
+would match this wildcard are considered to be part of an array of that name for
+getAttributeValues. Only one "*" is allowed.</p>
+<a name="N102CB"></a><a name="SessionModule"></a>
+<h3 class="h4">SessionModule</h3>
+<p>SessionModule provides access to Session object properties. To get access to
+session properties use XPath syntax, e.g. to get the session id use 'id' as the
+attribute name.<br>
+More complex expressions with functions are also supported, e.g.:</p>
+<pre> 'substring(id, 8)' </pre>
+<p>will return the substring of id property of the session object.
+<strong>NOTE:</strong> The module does not create a new session.</p>
+<a name="N102DA"></a><a name="SimpleMappingMetaModule"></a>
+<h3 class="h4">SimpleMappingMetaModule</h3>
+<p>Meta module that obtains values from an other module and by replacing the
+requested attribute name with another name. This is done first through a
+replacement table and may additionally prepend or append a string. Replacement
+works in both ways, it is applied to the returned attribute names as well.</p>
+<p>Example configuration:</p>
+<pre> &lt;prefix&gt;cocoon.&lt;/prefix&gt;
+ &lt;suffix&gt;.attr&lt;/suffix&gt;
+ &lt;mapping in="foo" out="bar"/&gt;
+ &lt;mapping in="yuk" out="yeeha"/&gt;
+</pre>
+<p>Will map a parameter "foo" to the real one named "cocoon.bar.attr". If
+parameters "cocoon.yeeha.attr" and "shopping.cart" exist, the iterator will
+return "yeeha". "shopping.cart" does not contain the pre-/ suffix and thus is
+dropped.</p>
+<p>Similarily, rm-prefix and rm-suffix will be removed from the attribute name.
+</p>
+<a name="N102E8"></a><a name="SitemapVariableHolder"></a>
+<h3 class="h4">SitemapVariableHolder</h3>
+<p>This "component" is a trick to get global variables on a per sitemap base.
+</p>
+<a name="N102EE"></a><a name="StringConstantModule"></a>
+<h3 class="h4">StringConstantModule</h3>
+<p>StringConstantModule returns a constant string. Constant must be the only
+content of the configuration object.</p>
+<a name="N102F4"></a><a name="SystemPropertyModule"></a>
+<h3 class="h4">SystemPropertyModule</h3>
+<p>SystemPropertyModule is an JXPath based InputModule implementation that
+provides access to system properties. Available system properties are defined by
+Java's
+<a class="external" href="http://java.sun.com/j2se/1.4.1/docs/api/java/lang/System.html#getProperties%28%29">System.getProperties()</a>.
+JXPath allows to apply XPath functions to system properties. If there is a
+security manager, its checkPropertiesAccess method is called with no arguments.
+This may result in a security exception which is wrapped into a configuration
+exception and re-thrown.</p>
+<a name="N102FE"></a><a name="URLDecodeModule"></a>
+<h3 class="h4">URLDecodeModule</h3>
+<p>This module provides functionality for converting a String from the
+application/x-www-form-urlencoded MIME format. It is useful for example for
+calling remote services:</p>
+<pre>&lt;map:generate src="http://remote/page?param1={url-decode:{request-param:param1}}"/&gt;</pre>
+<p>Module configuration takes only one configuration parameter: "encoding" which
+is a target string encoding. This is utf-8 by default.</p>
+<a name="N10308"></a><a name="URLEncodeModule"></a>
+<h3 class="h4">URLEncodeModule</h3>
+<p>This module provides functionality for converting a String to the
+application/x-www-form-urlencoded MIME format. It is useful for example for
+calling remote services:</p>
+<pre>&lt;map:generate src="http://remote/page?param1={url-encode:{request-param:param1}}"/&gt;</pre>
+<p>Module configuration takes only one configuration parameter: "encoding" which
+is a target string encoding. This is utf-8 by default.</p>
+<a name="N10312"></a><a name="XMLFileModule"></a>
+<h3 class="h4">XMLFileModule</h3>
+<p>This module provides an Input Module interface to any XML document, by using
+XPath expressions as attribute keys. The XML can be obtained from any Cocoon
+Source (e.g., cocoon:/..., context://.., and regular URLs). Sources can be held
+in memory for better performance and reloaded if changed.</p>
+<p>Caching and reloading can be turned on / off (default: on) through
+&lt;reloadable&gt;false&lt;/reloadable&gt; and
+&lt;cacheable&gt;false&lt;/cacheable&gt;. The file (source) to use is specified
+through &lt;file src="protocol:path/to/file.xml" reloadable="true"
+cacheable="true"/&gt; optionally overriding defaults for caching and or
+reloading.</p>
+<p>In addition, xpath expressions are cached for higher performance. Thus, if an
+expression has been evaluated for a file, the result is cached and will be
+reused, the expression is not evaluated a second time. This can be turned off
+using the cache-xpaths configuration option.</p>
+<a name="N1031C"></a><a name="XMLMetaModule"></a>
+<h3 class="h4">XMLMetaModule</h3>
+<p>Meta module that obtains values from other module and returns all parameters
+as XML.</p>
+<p>Config:</p>
+<pre>   &lt;!-- in cocoon.xconf --&gt;
+   &lt;ignore&gt;do-&lt;/ignore&gt;
+   &lt;strip&gt;user.&lt;/strip&gt;
+   &lt;input-module name="request-param"/&gt;
+
+   &lt;!-- e.g. in database.xml --&gt;
+   &lt;mode type="all" name="xmlmeta"/&gt;
+      &lt;ignore&gt;foo.&lt;/ignore&gt;
+      &lt;strip&gt;f&lt;/strip&gt;
+      &lt;use&gt;foo&lt;/use&gt;
+      &lt;root&gt;my-root&lt;/root&gt;
+      &lt;input-module name="request-param"/&gt;
+   &lt;/mode&gt;
+</pre>
+<p>If present, "ignore" gives a prefix of parameters to ignore, ignore has
+precedence over the "use" attribute, "strip" a prefix that will be removed from
+the final parameter names in the produced XML, "use" is a prefix for parameters
+to include in the XML, and "root" is the name of the root element in the created
+XML.</p>
+<p>Input:</p>
+<pre>    foo.one = ['abc']
+    foo.two = ['def']
+    foo1 = ['bar']
+    foo2 = ['one','two','three']
+    bar = ['rubber duck']
+</pre>
+<p>Output:</p>
+<pre>    &lt;my-root&gt;
+     &lt;item name="oo1"&gt;bar&lt;/item&gt;
+     &lt;item name="oo2"&gt;
+        &lt;value&gt;one&lt;/value&gt;
+        &lt;value&gt;two&lt;/value&gt;
+        &lt;value&gt;three&lt;/value&gt;
+     &lt;/item&gt;
+   &lt;/my-root&gt;
+</pre>
+<p>Produces Objects of type
+<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/xml/dom/DocumentWrapper.html">DocumentWrapper</a>
+
+</p>
+<div class="daisy-edit-link">
+<p>
+<em>Errors and Improvements?</em>
+                 If you see any errors or potential improvements in this document
+                 please help us:
+                <a class="external" href="http://cocoon.zones.apache.org/daisy/legacydocs/727">
+                  View, Edit or comment on
+                </a> the latest development version (registration required).
+              </p>
+</div>
+</div>
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         1999-2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:dev@cocoon.apache.org?subject=[WEBSITE]%C2%A02.1/userdocs/concepts/modules-ref.html">dev@cocoon.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Propchange: cocoon/site/site/2.1/userdocs/concepts/modules-ref.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message