You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by bl...@apache.org on 2001/09/19 16:28:01 UTC
cvs commit: xml-cocoon2/webapp.tutorial/stylesheets/system directory2html.xsl error2html.xsl status2html.xsl
bloritsch 01/09/19 07:28:01
Added: webapp.tutorial menu.xml sitemap.xmap
webapp.tutorial/WEB-INF cocoon.xconf logkit.xconf web.xml
webapp.tutorial/WEB-INF/db tutorial.sql
webapp.tutorial/docs confirm-dept.xsp confirm-empl.xsp
create-dept.xsp create-empl.xsp department-form.xml
edit-dept.xsp edit-empl.xsp employee-form.xml
home.xml results-dept.xsp results-empl.xsp
search-dept.xsp search-empl.xsp
webapp.tutorial/docs/dtd changes-v10.dtd characters.ent
document-v10.dtd faq-v10.dtd javadoc-v04draft.dtd
specification-v10.dtd todo-v10.dtd
webapp.tutorial/resources/images bar-border-bottom.gif
bar-border-left.gif bar-border-right.gif
bar-border-top.gif bar-bottom-left.gif
bar-bottom-right.gif bar-top-left.gif
bar-top-right.gif bottom.gif button-asf-hi.gif
button-asf-lo.gif button-w3c-hi.gif
button-w3c-lo.gif button-xml-hi.gif
button-xml-lo.gif close.gif dot.gif join.gif
line.gif logo.gif note.gif right.gif separator.gif
void.gif
webapp.tutorial/resources/styles script.js
webapp.tutorial/stylesheets apache.xsl
webapp.tutorial/stylesheets/system directory2html.xsl
error2html.xsl status2html.xsl
Log:
Commit the tutorial webapp.
Revision Changes Path
1.1 xml-cocoon2/webapp.tutorial/menu.xml
Index: menu.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE menu [
<!ELEMENT menu (item|group)*>
<!ELEMENT group (item)*>
<!ATTLIST group link CDATA #REQUIRED
title CDATA #REQUIRED>
<!ELEMENT item EMPTY>
<!ATTLIST item link CDATA #REQUIRED
title CDATA #REQUIRED>
]>
<menu>
<group link="home.html" title="search">
<item link="search-dept.html" title="find department"/>
<item link="search-empl.html" title="find employee"/>
</group>
<item link="create-dept.html" title="new department"/>
<item link="create-empl.html" title="new employee"/>
</menu>
1.1 xml-cocoon2/webapp.tutorial/sitemap.xmap
Index: sitemap.xmap
===================================================================
<?xml version="1.0"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components ================================ -->
<map:components>
<map:generators default="file">
<map:generator name="file" src="org.apache.cocoon.generation.FileGenerator" label="content"/>
<map:generator name="serverpages" src="org.apache.cocoon.generation.ServerPagesGenerator" label="content"/>
<map:generator name="request" src="org.apache.cocoon.generation.RequestGenerator"/>
<map:generator name="status" src="org.apache.cocoon.generation.StatusGenerator"/>
</map:generators>
<map:transformers default="xslt">
<map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer">
<use-store>true</use-store>
<use-request-parameters>false</use-request-parameters>
<use-browser-capabilities-db>false</use-browser-capabilities-db>
</map:transformer>
<map:transformer name="i18n" src="org.apache.cocoon.transformation.I18nTransformer"/>
<map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer"/>
<map:transformer name="cinclude" src="org.apache.cocoon.transformation.CIncludeTransformer"/>
</map:transformers>
<map:readers default="resource">
<map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader"/>
</map:readers>
<map:serializers default="html">
<map:serializer name="links" src="org.apache.cocoon.serialization.LinkSerializer"/>
<map:serializer name="xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
<map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer"/>
</map:serializers>
<map:selectors default="browser">
<map:selector name="browser" src="org.apache.cocoon.selection.BrowserSelectorFactory">
<!-- # NOTE: The appearance indicates the search order. This is very important since
# some words may be found in more than one browser description. (MSIE is
# presented as "Mozilla/4.0 (Compatible; MSIE 4.01; ...")
-->
<browser name="explorer" useragent="MSIE"/>
<browser name="pocketexplorer" useragent="MSPIE"/>
<browser name="handweb" useragent="HandHTTP"/>
<browser name="avantgo" useragent="AvantGo"/>
<browser name="imode" useragent="DoCoMo"/>
<browser name="opera" useragent="Opera"/>
<browser name="lynx" useragent="Lynx"/>
<browser name="java" useragent="Java"/>
<browser name="wap" useragent="Nokia"/>
<browser name="wap" useragent="UP"/>
<browser name="wap" useragent="Wapalizer"/>
<browser name="mozilla5" useragent="Mozilla/5"/>
<browser name="mozilla5" useragent="Netscape6/"/>
<browser name="netscape" useragent="Mozilla"/>
</map:selector>
<map:selector name="coded" src="org.apache.cocoon.selection.CodedSelectorFactory"/>
<map:selector name="parameter" src="org.apache.cocoon.selection.ParameterSelectorFactory"/>
</map:selectors>
<map:matchers default="wildcard">
<map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
<map:matcher name="regexp" src="org.apache.cocoon.matching.RegexpURIMatcherFactory"/>
<map:matcher name="request" src="org.apache.cocoon.matching.RequestParamMatcher"/>
</map:matchers>
<map:actions>
<map:action name="dbAdd" src="org.apache.cocoon.acting.DatabaseAddAction"/>
<map:action name="dbDel" src="org.apache.cocoon.acting.DatabaseDeleteAction"/>
<map:action name="dbUpd" src="org.apache.cocoon.acting.DatabaseUpdateAction"/>
<map:action name="form" src="org.apache.cocoon.acting.FormValidatorAction"/>
</map:actions>
</map:components>
<!-- ========================== Action sets ================================ -->
<map:action-sets>
<map:action-set name="process">
<map:act type="form" action="Create Department">
<map:parameter name="validate-set" value="add"/>
<map:act type="dbAdd"/>
</map:act>
<map:act type="form" action="Update Department">
<map:parameter name="validate-set" value="update"/>
<map:act type="dbUpd"/>
</map:act>
<map:act type="dbDel" action="Delete Department"/>
<map:act type="form" action="Create Employee">
<map:parameter name="validate-set" value="add"/>
<map:act type="dbAdd"/>
</map:act>
<map:act type="form" action="Update Employee">
<map:parameter name="validate-set" value="update"/>
<map:act type="dbUpd"/>
</map:act>
<map:act type="dbDel" action="Delete Employee"/>
</map:action-set>
</map:action-sets>
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
<map:pipeline>
<map:match pattern="">
<map:redirect-to uri="home.html"/>
</map:match>
<map:match pattern="*-dept.html">
<map:act set="process">
<map:parameter name="descriptor" value="context://docs/department-form.xml"/>
<map:generate type="serverpages" src="docs/confirm-dept.xsp"/>
<map:transform src="stylesheets/apache.xsl"/>
<map:serialize/>
</map:act>
<map:generate type="serverpages" src="docs/{1}-dept.xsp"/>
<map:transform src="stylesheets/apache.xsl"/>
<map:serialize/>
</map:match>
<map:match pattern="*-dept.xml">
<map:act set="process">
<map:parameter name="descriptor" value="context://docs/department-form.xml"/>
<map:generate type="serverpages" src="docs/confirm-dept.xsp"/>
<map:serialize type="xml"/>
</map:act>
<map:generate type="serverpages" src="docs/{1}-dept.xsp"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="*-empl.html">
<map:act set="process">
<map:parameter name="descriptor" value="context://docs/employee-form.xml"/>
<map:generate type="serverpages" src="docs/confirm-empl.xsp"/>
<map:transform src="stylesheets/apache.xsl"/>
<map:serialize/>
</map:act>
<map:generate type="serverpages" src="docs/{1}-empl.xsp"/>
<map:transform src="stylesheets/apache.xsl"/>
<map:serialize/>
</map:match>
<map:match pattern="*-empl.xml">
<map:act set="process">
<map:parameter name="descriptor" value="context://docs/employee-form.xml"/>
<map:generate type="serverpages" src="docs/confirm-empl.xsp"/>
<map:serialize type="xml"/>
</map:act>
<map:generate type="serverpages" src="docs/{1}-empl.xsp"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="**.xml">
<map:generate src="docs/{1}.xml"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="**.html">
<map:generate src="docs/{1}.xml"/>
<map:transform src="stylesheets/apache.xsl"/>
<map:serialize/>
</map:match>
<map:match pattern="images/**.gif">
<map:read src="resources/images/{1}.gif" mime-type="image/gif"/>
</map:match>
<map:match pattern="images/**.jpg">
<map:read src="resources/images/{1}.jpg" mime-type="image/jpg"/>
</map:match>
<map:match pattern="images/**.png">
<map:read src="resources/images/{1}.png" mime-type="image/png"/>
</map:match>
<map:match pattern="resources/**.css">
<map:read src="resources/styles/{1}.css" mime-type="text/css"/>
</map:match>
<map:match pattern="resources/**.js">
<map:read src="resource/styles/{1}.js" mime-type="application/x-javascript"/>
</map:match>
<map:handle-errors>
<map:transform src="stylesheets/system/error2html.xsl"/>
<map:serialize status-code="500"/>
</map:handle-errors>
</map:pipeline>
</map:pipelines>
</map:sitemap>
<!-- end of file -->
1.1 xml-cocoon2/webapp.tutorial/WEB-INF/cocoon.xconf
Index: cocoon.xconf
===================================================================
<?xml version="1.0"?>
<cocoon version="2.0">
<!-- ===================== General Components =========================== -->
<!-- The default parser used in the Apache Cocoon 2 system is
org.apache.cocoon.components.parser.JaxpParser.
Apache Cocoon 2 system requires a JAXP 1.1 parser.
If you have problems because your servlet environment uses its own
parser not conforming to JAXP 1.1 try using the alternative
XercesParser instead of the JaxpParser. To activate the XercesParser
move the line below starting with <parser ...> out of this comment block.
You also than have to add a system property to your JVM
(probably on the startup of your servlet engine like this:
-Dorg.apache.cocoon.components.parser.Parser=org.apache.cocoon.components.parser.XercesParser
<parser class="org.apache.cocoon.components.parser.XercesParser"/>
-->
<!-- HSQLDB Server for samples. Comment this section out if you don't care about the samples.
port : number port where the server is listening
silent : true/false display all queries
trace : true/false display JDBC trace messages
-->
<hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl"
pool-max="1" pool-min="1">
<parameter name="port" value="9002"/>
<parameter name="silent" value="true"/>
<parameter name="trace" value="false"/>
</hsqldb-server>
<!-- Storing:
maxobjects: Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The
last object in the cache will be thrown out.
threadpriority: Indicates the priority of the writer thread.
(1 is the lowest priority and 10 is the highest).
filesystem: Turns the filesystem storage for objects on or off.
-->
<store class="org.apache.cocoon.components.store.MRUMemoryStore" logger="root.store">
<parameter name="maxobjects" value="100"/>
<parameter name="threadpriority" value="5"/>
<parameter name="filesystem" value="true"/>
</store>
<!-- Store Janitor:
freememory = How much free memory shall be available in the jvm
heapsize = Indicates the limit of the jvm memory consumption
cleanupthreadinterval = How often shall the cleanup thread check memory
threadpriority = Indicates the thread priority of the cleanup thread
Be carefull with the heapsize and freememory paramters. Wrong values can
cause high cpu usage.
Example configuration:
Jvm settings:
-Xms100000000 -Xmx200000000
store-janitor settings:
<parameter name="freememory" value="50000000"/>
<parameter name="heapsize" value="150000000"/>
Heapsize must be higher then the -Xms parameter and freememory
between those both.
-->
<store-janitor class="org.apache.cocoon.components.store.StoreJanitorImpl" logger="root.store">
<parameter name="freememory" value="1000000"/>
<parameter name="heapsize" value="60000000"/>
<parameter name="cleanupthreadinterval" value="10"/>
<parameter name="threadpriority" value="5"/>
</store-janitor>
<xslt-processor class="org.apache.cocoon.components.xslt.XSLTProcessorImpl" logger="root.xslt">
<parameter name="use-store" value="true"/>
</xslt-processor>
<!-- The url factory adds special url protocols to the system, they
are then available inside Cocoon, e.g. as a source argument
for one of the sitemap components -->
<url-factory>
<protocol name="resource" class="org.apache.cocoon.components.url.ResourceURLFactory"/>
<protocol name="context" class="org.apache.cocoon.components.url.ContextURLFactory"/>
</url-factory>
<!-- The source handler adds special url protocols to the system, they
are then available inside Cocoon, e.g. as a source argument
for one of the sitemap components. -->
<source-handler>
</source-handler>
<!-- The ProgamGenerator builts programs from a XML document written in
a MarkupLanguage.
auto-reload:
root-package: persistent code repository.
preload: -->
<program-generator>
<parameter name="auto-reload" value="true"/>
<parameter name="root-package" value="org.apache.cocoon.www"/>
<parameter name="preload" value="true"/>
</program-generator>
<!-- The JspGenerator selects a JSPEngine component. The JSPEngine component launches
a JSP servlet engine of your servlet container, feeds the HttpRequest into the JSP
servlet engine, and pipes the jsp response as SAX events into Cocoon2. The JSP page
is specified by the HttpRequest. This way you can continue to use your JSP pages.
Your migration from JSP to XSP may be done step by step. You may specify your JSP
pages either as JSP scriptlets or as JSP-XML. But keep in mind that your JSP output
should be valid XML. -->
<jsp-engine>
<parameter name="servlet-class" value="org.apache.jasper.servlet.JspServlet"/>
<parameter name="servlet-name" value="*.jsp"/>
</jsp-engine>
<programming-languages>
<java-language name="java">
<!-- compiler parameter specifies which class to use to compile Java.
Possible variants are Javac and Jikes compilers.
Javac requires javac.jar (included with Cocoon distribution).
Jikes requires IBM jikes compiler to be present in the PATH -->
<parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.Javac"/>
<!-- Specifies which formatter to use to format source code.
This parameter is optional. -->
<parameter name="code-formatter" value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/>
<!-- A singleton-like implementation of a ClassLoader -->
<parameter name="class-loader" value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
</java-language>
</programming-languages>
<!-- A singleton-like implementation of a ClassLoader -->
<classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
<!-- This section defines several builtin logicsheets. A logicsheet is an XML filter used
to translate user-defined, dynamic markup into equivalent code embedding directives
for a given markup language. -->
<markup-languages>
<xsp-language name="xsp">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
<!-- Defines the XSP Core logicsheet for the Java language -->
<target-language name="java">
<parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
<!-- The Request logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard request operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-request"/>
<parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
</builtin-logicsheet>
<!-- The Response logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard response operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-response"/>
<parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
</builtin-logicsheet>
<!-- The Session logicsheet (taglib) is an XSP logicsheet that wraps XML tags around
standard session operations. Specifically, the Session logicsheet provides an
XML interface to most methods of the HttpSession object (see the Java Servlet API
Specification, version 2.2 ) for more information. -->
<builtin-logicsheet>
<parameter name="prefix" value="session"/>
<parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/session.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="xsp-cookie"/>
<parameter name="uri" value="http://apache.org/xsp/cookie/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/cookie.xsl"/>
</builtin-logicsheet>
<!-- The ESQL logicsheet is an XSP logicsheet that performs sql queries and
serializes their results as XML. This allows you to work with data from a
wide variety of different sources when using Apache Cocoon. -->
<builtin-logicsheet>
<parameter name="prefix" value="esql"/>
<parameter name="uri" value="http://apache.org/cocoon/SQL/v2"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/esql.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="log"/>
<parameter name="uri" value="http://apache.org/xsp/log/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/log.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="util"/>
<parameter name="uri" value="http://apache.org/xsp/util/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/util.xsl"/>
</builtin-logicsheet>
<!-- The xsp-formval taglib serves as interface to retrieve validation results
from a request attribute -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-formval"/>
<parameter name="uri" value="http://apache.org/xsp/form-validator/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/form-validator.xsl"/>
</builtin-logicsheet>
<!-- The capture taglib is for capturing parts of the XSP-generated XML as
XML fragments or DOM nodes -->
<builtin-logicsheet>
<parameter name="prefix" value="capture"/>
<parameter name="uri" value="http://apache.org/cocoon/capture/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/capture.xsl"/>
</builtin-logicsheet>
</target-language>
</xsp-language>
<!-- Defines Sitemap Core logicsheet for the Java language -->
<sitemap-language name="sitemap">
<parameter name="prefix" value="map"/>
<parameter name="uri" value="http://apache.org/cocoon/sitemap/1.0"/>
<target-language name="java">
<parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/sitemap/java/sitemap.xsl"/>
</target-language>
</sitemap-language>
</markup-languages>
<datasources>
<jdbc name="personnel">
<!--
If you have an Oracle database, and are using the the
pool-controller below, you should add the attribute
"oradb" and set it to true.
<pool-controller min="5" max="10" oradb="true"/>
That way the test to see if the server has disconnected
the JdbcConnection will function properly.
-->
<pool-controller min="5" max="10" oradb="true"/>
<!--
If you need to ensure an autocommit is set to true or
false, then create the "auto-commit" element below.
<auto-commit>false</auto-commit>
The default is true.
-->
<dburl>jdbc:oracle:thin:@borg:1521:ORADB</dburl>
<user>test</user>
<password>test</password>
</jdbc>
</datasources>
<!-- A StreamPipeline either
collects a Reader and let it produce a character stream
or connects a EventPipeline with a
Serializer and let them produce the character stream.
-->
<stream-pipeline class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
pool-max="32" pool-min="16" pool-grow="4"/>
<!-- Caching of stream pipeline:
freememory: Indicates how much memory should be left free in the
JVM for normal operation.
heapsize: Indicates how big the heap size can grow to before the
cleanup thread kicks in.
cleanupthreadinterval: Indicates the interval of the cleanup thread in seconds.
maxobjects: Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The
last object in the cache will be thrown out.
usecleanupthread: Indicates whether we use a cleanup thread or not.
threadpriority: Indicates the priority of the cleanup thread.
(1 is the lowest priority and 10 is the highest).
filesystem: Turns the filesystem storage for objects on or off.
-->
<stream-cache class="org.apache.cocoon.components.store.MRUMemoryStore" logger="root.store">
<parameter name="maxobjects" value="100"/>
<parameter name="threadpriority" value="5"/>
<parameter name="filesystem" value="true"/>
</stream-cache>
<!-- An EventPipeline connects the generator and the various transformers
and produces a character stream. Alternatives to CachingEventPipeline
is: NonCachingEventPipeline.
<event-pipeline class="org.apache.cocoon.components.pipeline.NonCachingEventPipeline"/>
-->
<event-pipeline class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
pool-max="32" pool-min="16" pool-grow="4"/>
<!-- Caching of event pipeline:
maxobjects: Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The
last object in the cache will be thrown out.
threadpriority: Indicates the priority of the cleanup thread.
(1 is the lowest priority and 10 is the highest).
filesystem: Turns the filesystem storage for objects on or off.
-->
<event-cache class="org.apache.cocoon.components.store.MRUMemoryStore" logger="root.store">
<parameter name="maxobjects" value="100"/>
<parameter name="threadpriority" value="5"/>
<parameter name="filesystem" value="true"/>
</event-cache>
<!-- The SAXConnector connects the various pipeline components.
LoggingSAXConnector logs SAX events between pipeline components
into a cocoon's log file.
Uncomment one of the following lines for using the SAXConnector.
<sax-connector class="org.apache.cocoon.components.saxconnector.LoggingSAXConnector"/>
-->
<!-- ======================== The sitemap ============================== -->
<!-- The reloading of the sitemap:
The check-reload attribute determines if the sitemap is reloaded on change. If
it is set to "no", the sitemap is generated once at startup, if it is set to "yes",
the sitemap is regenerated if it changes.
The reload-method specifies the method for the regeneration:
asynchron: If the sitemap changes, the sitemap is regenerated at the next request in
the background and the incoming request is served with the old sitemap.
All subsequent requests are served with the old sitemap until the
regeneration in the background has finished.
synchron: If the sitemap changes, the sitemap is regenerated at the next request.
When the regeneration is finished the request (and all subsequent ones)
is served with the new sitemap.
For development environment set the reload-method to synchron and the
check-reload to yes, for production environment it is advisable to set
the reload-method to asynchron and for more safety the check-reload to no.
-->
<sitemap file="sitemap.xmap" reload-method="asynchron" check-reload="yes"/>
</cocoon>
1.1 xml-cocoon2/webapp.tutorial/WEB-INF/logkit.xconf
Index: logkit.xconf
===================================================================
<?xml version="1.0"?>
<logkit>
<factories>
<factory type="priority-filter" class="org.apache.avalon.excalibur.logger.factory.PriorityFilterTargetFactory"/>
<factory type="servlet" class="org.apache.avalon.excalibur.logger.factory.ServletTargetFactory"/>
<factory type="cocoon" class="org.apache.cocoon.util.log.CocoonTargetFactory"/>
</factories>
<targets>
<cocoon id="cocoon">
<filename>${context-root}/WEB-INF/logs/cocoon.log</filename>
<format type="cocoon">
%7.7{priority} %{time} [%8.8{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
</format>
<append>true</append>
<rotation type="revolving" init="1" max="4">
<or>
<size>100m</size>
<time>01:00:00</time>
</or>
</rotation>
</cocoon>
<cocoon id="root">
<filename>${context-root}/WEB-INF/logs/root.log</filename>
<format type="cocoon">
%7.7{priority} %{time} [%8.8{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
</format>
<append>true</append>
<rotation type="revolving" init="1" max="4">
<or>
<size>100m</size>
<time>01:00:00</time>
</or>
</rotation>
</cocoon>
<cocoon id="components">
<filename>${context-root}/WEB-INF/logs/components.log</filename>
<format type="cocoon">
%7.7{priority} %{time} [%8.8{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}
</format>
<append>true</append>
<rotation type="revolving" init="1" max="4">
<or>
<size>100m</size>
<time>01:00:00</time>
</or>
</rotation>
</cocoon>
<priority-filter id="filter" log-level="ERROR">
<servlet>
<format type="extended">%7.7{priority} %5.5{time}: %{message}\n%{throwable}</format>
</servlet>
</priority-filter>
</targets>
<categories>
<category name="cocoon" log-level="DEBUG">
<log-target id-ref="cocoon"/>
</category>
<category name="root" log-level="DEBUG">
<log-target id-ref="root"/>
<category name="store" log-level="DEBUG">
<log-target id-ref="components"/>
<log-target id-ref="filter"/>
</category>
<category name="xslt" log-level="DEBUG">
<log-target id-ref="components"/>
<log-target id-ref="filter"/>
</category>
</category>
</categories>
</logkit>
1.1 xml-cocoon2/webapp.tutorial/WEB-INF/web.xml
Index: web.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
This is the web-app configurations that allow Cocoon to work under
Apache Tomcat. Please, follow the installation section of the
documentation for more information about installing Cocoon on Tomcat
-->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>Cocoon2 Demo</display-name>
<description>Demo application for Cocoon2</description>
<servlet>
<servlet-name>Cocoon2</servlet-name>
<display-name>Cocoon2</display-name>
<description>The main Cocoon2 servlet</description>
<!--
In cases you're facing class loader problems you can alternatively
use the following servlet-class instead of the normal one
<servlet-class>org.apache.cocoon.servlet.ParanoidCocoonServlet</servlet-class>
-->
<servlet-class>org.apache.cocoon.servlet.CocoonServlet</servlet-class>
<!--
This parameter points to the main configuration file for Cocoon.
Note that the path is specified in absolute notation but it will be
resolved relative to the servlets webapp context path
-->
<init-param>
<param-name>configurations</param-name>
<param-value>/WEB-INF/cocoon.xconf</param-value>
</init-param>
<!--
This parameter tells cocoon to load all the required libraries into
it's own classloader instead of trusting the Servlet Vendor's
classloader. If you experience strange classloader issues,
try setting this parameter to "true".
-->
<init-param>
<param-name>init-classloader</param-name>
<param-value>false</param-value>
</init-param>
<!--
This parameter indicates the configuration file of the LogKit management
-->
<init-param>
<param-name>logkit-config</param-name>
<param-value>/WEB-INF/logkit.xconf</param-value>
</init-param>
<!--
This parameter indicates the category id of the logger from the LogKit
configuration used by the CocoonServlet.
-->
<init-param>
<param-name>servlet-logger</param-name>
<param-value>root</param-value>
</init-param>
<!--
This parameter indicates the category id of the logger from the LogKit
management configuration for the Cocoon engine.
This logger is used for all components described in the cocoon.xconf
and sitemap.xmap file not having specified a logger with the
logger="..." attribute in the component configuration file.
-->
<init-param>
<param-name>cocoon-logger</param-name>
<param-value>cocoon</param-value>
</init-param>
<!--
This parameter indicates the log level to use throughout startup of the system
Available levels are:
DEBUG: prints all level of log messages.
INFO: prints all level of log messages except DEBUG ones.
WARN: prints all level of log messages except DEBUG and INFO ones.
ERROR: prints all level of log messages except DEBUG, INFO and WARN ones.
FATAL-ERROR: prints only log messages of this level
-->
<init-param>
<param-name>log-level</param-name>
<param-value>DEBUG</param-value>
</init-param>
<!--
Allow reinstantiating (reloading) of the cocoon instance. If this is
set to "yes" or "true", a new cocoon instance can be created using
the request parameter "cocoon-reload".
-->
<init-param>
<param-name>allow-reload</param-name>
<param-value>yes</param-value>
</init-param>
<!--
This parameter is used to list classes that should be loaded
at initialization time of the servlet.
Usually this classes are JDBC Drivers used
-->
<init-param>
<param-name>load-class</param-name>
<param-value>
<!-- For IBM WebSphere:
com.ibm.servlet.classloader.Handler -->
<!-- For Database Driver: -->
oracle.jdbc.driver.OracleDriver
<!-- For parent ComponentManager sample:
org.apache.cocoon.samples.parentcm.Configurator
-->
</param-value>
</init-param>
<!--
This parameter allows to specify where Cocoon should put files
which are uploaded by the upload.xsp sample. The path specified
is always relative to the context path of the servlet.
The default directory is "image-dir" in the work-directory
<init-param>
<param-name>upload-directory</param-name>
<param-value>/WEB-INF/work/image-dir</param-value>
</init-param>
-->
<!--
This parameter allows to specify where Cocoon should put files
which are cached by the storing class. The path specified
is always relative to the context path of the servlet.
The default directory is "cache-dir" in the work-directory
<init-param>
<param-name>cache-directory</param-name>
<param-value>/WEB-INF/work/cache-dir</param-value>
</init-param>
-->
<!--
This parameter allows to specify where Cocoon should put it's
working files. The path specified is always relative to the
context path of the Cocoon servlet.
Usually it is obtained from the servlet engine.
<init-param>
<param-name>work-directory</param-name>
<param-value>/WEB-INF/work</param-value>
</init-param>
-->
<!--
This parameter allows to specify additional directories or jars
which Cocoon should put into it's own classpath.
Note that you must separate them using the platforms path.separator
(":" for *nix and ";" for Windows systems). Also note that absolute
pathes are take as such but relative pathes are rooted at the context
root of the Cocoon servlet.
<init-param>
<param-name>extra-classpath</param-name>
<param-value>WEB-INF/extra-classes1:/[YOU-ABSOLUTE-PATH-TO]/own.jar</param-value>
</init-param>
-->
<!--
This parameter allows you to select the parent component manager.
The class will be instantiated via the constructor that takes a single
String as a parameter. That String will be equal to the text after the
'/'.
Cocoon honors the Loggable and Initializable interfaces for this class,
if it implements them.
If you uncomment the following lines the parent CM is set to the Parent CM sample, which will look up
a configuration via JNDI at org/apache/cocoon/samples/parentcm/ParentCMConfiguration
and use it.
<init-param>
<param-name>parent-component-manager</param-name>
<param-value>org.apache.cocoon.samples.parentcm.ParentComponentManager/org/apache/cocoon/samples/parentcm/ParentCMConfiguration</param-value>
</init-param>
-->
<!--
This parameter allows you to startup Cocoon2 immediately after startup
of your servlet engine.
-->
<load-on-startup>1</load-on-startup>
<!--
If you set this parameter to 'true' or 'yes', Cocoon will add processing
time to the end of each response. Value 'hide' adds processing time as an HTML
comment. By default, processing time is not added (corresponds to value 'no').
<init-param>
<param-name>show-time</param-name>
<param-value>hide</param-value>
</init-param>
-->
</servlet>
<servlet-mapping>
<servlet-name>Cocoon2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
1.1 xml-cocoon2/webapp.tutorial/WEB-INF/db/tutorial.sql
Index: tutorial.sql
===================================================================
#
# Tutorial DB
#
#
# Table structure for table 'department'
#
CREATE TABLE department (
department_id number(12) DEFAULT '0' NOT NULL,
department_name varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (department_id)
);
#
# Data for table 'department'
#
INSERT INTO department VALUES (1,'Development');
INSERT INTO department VALUES (2,'Management');
INSERT INTO department VALUES (3,'Testors');
#
# Table structure for table 'employee'
#
CREATE TABLE employee (
employee_id number(12) DEFAULT '0' NOT NULL,
department_id number(12) DEFAULT '0' NOT NULL,
employee_name varchar(64) DEFAULT '' NOT NULL,
PRIMARY KEY (employee_id)
);
#
# Foreign Keys
#
ALTER TABLE employee ADD (
CONSTRAINT fkdepartment FOREIGN KEY(DEPARTMENT_ID)
REFERENCES DEPARTMENT(DEPARTMENT_ID)
ON DELETE CASCADE
);
#
# Data for table 'employee'
#
INSERT INTO employee VALUES (1,1,'Donald Ball');
INSERT INTO employee VALUES (2,1,'Stefano Mazzocchi');
INSERT INTO employee VALUES (3,2,'Pierpaolo Fumagalli');
INSERT INTO employee VALUES (4,4,'Torsten Curdt');
1.1 xml-cocoon2/webapp.tutorial/docs/confirm-dept.xsp
Index: confirm-dept.xsp
===================================================================
<xsp:page xmlns:xsp="http://apache.org/xsp">
<document>
<header>
<title>Department</title>
</header>
<body>
<s1 title="Department Processed">
<p>
You have successfully processed the department.
</p>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/confirm-empl.xsp
Index: confirm-empl.xsp
===================================================================
<xsp:page xmlns:xsp="http://apache.org/xsp">
<document>
<header>
<title>Department</title>
</header>
<body>
<s1 title="Employee Processed">
<p>
You have successfully processed the employee.
</p>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/create-dept.xsp
Index: create-dept.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0">
<document>
<header>
<title>Department</title>
</header>
<body>
<s1 title="Create a Department">
<form handler="create-dept.html">
<p>
You can create a department by typing in the
name and pressing the "Create Department" button.
</p>
<p>
Name: <text name="name" size="30" required="true"/><br />
<xsp-formval:on-toosmall name="name">
Name must be at least 5 characters.
</xsp-formval:on-toosmall>
<xsp-formval:on-toolarge name="name">
Name must be less than 64 characters.
</xsp-formval:on-toolarge>
</p>
<submit name="Create Department"/>
<note>
* These fields are required.
</note>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/create-empl.xsp
Index: create-empl.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0"
xmlns:esql="http://apache.org/cocoon/SQL/v2">
<document>
<header>
<title>Employee</title>
</header>
<body>
<s1 title="Create an Employee">
<form handler="create-empl.html">
<p>
You can create an employee by typing in the
name and pressing the "submit" button.
</p>
<p>
Name: <text name="name" size="30" required="true"/><br />
<xsp-formval:on-toosmall name="name">
Name must be at least 5 characters
</xsp-formval:on-toosmall>
<xsp-formval:on-toolarge name="name">
Name must be less than 64 characters
</xsp-formval:on-toolarge>
</p>
<p>
Department:
<select name="department">
<esql:connection>
<!-- declare the connection pool we are using -->
<esql:pool>personnel</esql:pool>
<!-- query execution blocks can be repeated -->
<esql:execute-query>
<!-- Find all departments and order them -->
<esql:query>
SELECT department_id, department_name
FROM department ORDER BY department_name
</esql:query>
<!-- What to do with the results -->
<esql:results>
<!--
A successful query that returns results
executes this block. You can also embed
more "execute-query" blocks inside the
row-results. That way you can have queries
that filter information based on the results
of other queries.
-->
<esql:row-results>
<option>
<xsp:attribute name="value"><esql:get-string column="department_id"/></xsp:attribute>
<esql:get-string column="department_name"/>
</option>
</esql:row-results>
<!--
Other result types are "no-results" and
"error-results". A successful query that
does not return results (an empty resultset)
will use the XML embedded in the "no-results"
section. An unsuccessful query that throws
an exception will use the XML embedded in
the "error-results" section.
-->
</esql:results>
</esql:execute-query>
</esql:connection>
</select><br/>
<xsp-formval:on-null name="department">
You must select a department
</xsp-formval:on-null>
</p>
<submit name="Create Employee"/>
<note>
* These fields are required.
</note>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/department-form.xml
Index: department-form.xml
===================================================================
<root>
<parameter name="id" type="long" nullable="no"/>
<parameter name="name" type="string" min-len="5" max-len="64"/>
<constraint-set name="update">
<validate name="name"/>
<validate name="id"/>
</constraint-set>
<constraint-set name="add">
<validate name="name"/>
</constraint-set>
<connection>personnel</connection>
<table name="department">
<keys>
<key param="id" dbcol="department_id" type="int" mode="manual"/>
</keys>
<values>
<value param="name" dbcol="department_name" type="string"/>
</values>
</table>
</root>
1.1 xml-cocoon2/webapp.tutorial/docs/edit-dept.xsp
Index: edit-dept.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:esql="http://apache.org/cocoon/SQL/v2">
<document>
<header>
<title>Department</title>
</header>
<body>
<s1 title="Create a Department">
<form handler="edit-dept.html">
<p>
You can create a department by typing in the
name and pressing the "submit" button.
</p>
<p>
<parameter name="id">
<xsp:attribute name="value"><xsp-request:get-parameter name="id"/></xsp:attribute>
</parameter>
<esql:connection>
<esql:pool>personnel</esql:pool>
<esql:execute-query>
<esql:query>
SELECT department_name FROM department
WHERE department_id = <esql:parameter><xsp-request:get-parameter name="id"/></esql:parameter>
</esql:query>
<esql:results>
<esql:row-results>
Name: <text name="name" size="30" required="true">
<xsp:attribute name="value"><esql:get-string column="department_name"/></xsp:attribute>
</text><br />
<xsp-formval:on-toosmall name="name">
Name must be at least 5 characters.
</xsp-formval:on-toosmall>
<xsp-formval:on-toolarge name="name">
Name must be less than 64 characters.
</xsp-formval:on-toolarge>
</esql:row-results>
</esql:results>
</esql:execute-query>
</esql:connection>
</p>
<submit name="Update Department"/><submit name="Delete Department"/>
<note>
* These fields are required.
</note>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/edit-empl.xsp
Index: edit-empl.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:esql="http://apache.org/cocoon/SQL/v2">
<document>
<header>
<title>Employee</title>
</header>
<body>
<s1 title="Edit an Employee">
<form handler="edit-empl.html">
<p>
You can edit an employee by changing the
name and department and pressing the "Update Employee" button.
</p>
<parameter name="id">
<xsp:attribute name="value"><xsp-request:get-parameter name="id"/></xsp:attribute>
</parameter>
<esql:connection>
<esql:pool>personnel</esql:pool>
<esql:execute-query>
<esql:query>
SELECT employee_name, department_id FROM employee
WHERE employee_id = <esql:parameter><xsp-request:get-parameter name="id"/></esql:parameter>
</esql:query>
<esql:results>
<esql:row-results>
<p>
Name: <text name="name" size="30" required="true">
<xsp:attribute name="value"><esql:get-string column="employee_name"/></xsp:attribute>
</text><br />
<xsp:logic>int deptId = <esql:get-int column="department_id"/>;</xsp:logic>
<xsp-formval:on-toosmall name="name">
Name must be at least 5 characters.
</xsp-formval:on-toosmall>
<xsp-formval:on-toolarge name="name">
Name must be less than 64 characters.
</xsp-formval:on-toolarge>
</p>
<p>
Department:
<select name="department">
<!-- query execution blocks can be repeated -->
<esql:execute-query>
<!-- Find all departments and order them -->
<esql:query>
SELECT department_id, department_name
FROM department ORDER BY department_name
</esql:query>
<!-- What to do with the results -->
<esql:results>
<!--
A successful query that returns results
executes this block. You can also embed
more "execute-query" blocks inside the
row-results. That way you can have queries
that filter information based on the results
of other queries.
-->
<esql:row-results>
<xsp:logic>
if (<esql:get-int column="department_id"/> == deptId) {
xspAttr.addAttribute("", "selected", "selected", "CDATA", "");
}
</xsp:logic>
<option>
<xsp:attribute name="value"><esql:get-string column="department_id"/></xsp:attribute>
<esql:get-string column="department_name"/>
</option>
</esql:row-results>
<!--
Other result types are "no-results" and
"error-results". A successful query that
does not return results (an empty resultset)
will use the XML embedded in the "no-results"
section. An unsuccessful query that throws
an exception will use the XML embedded in
the "error-results" section.
-->
</esql:results>
</esql:execute-query>
</select><br/>
<xsp-formval:on-null name="department">
You must select a department.
</xsp-formval:on-null>
</p>
</esql:row-results>
</esql:results>
</esql:execute-query>
</esql:connection>
<submit name="Update Employee"/><submit name="Delete Employee"/>
<note>
* These fields are required.
</note>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/employee-form.xml
Index: employee-form.xml
===================================================================
<root>
<parameter name="id" type="long" nullable="no"/>
<parameter name="name" type="string" min-len="5" max-len="64"/>
<parameter name="department" type="long" nullable="no"/>
<constraint-set name="update">
<validate name="name"/>
<validate name="id"/>
<validate name="department"/>
</constraint-set>
<constraint-set name="add">
<validate name="name"/>
<validate name="department"/>
</constraint-set>
<connection>personnel</connection>
<table name="employee">
<keys>
<key param="id" dbcol="employee_id" type="int" mode="manual"/>
</keys>
<values>
<value param="name" dbcol="employee_name" type="string"/>
<value param="department" dbcol="department_id" type="int"/>
</values>
</table>
</root>
1.1 xml-cocoon2/webapp.tutorial/docs/home.xml
Index: home.xml
===================================================================
<document>
<header>
<title>Home Page</title>
</header>
<body>
<s1 title="Welcome to Personnel Administrator">
<p>
Welcome to our Personnel Administrator. You
can perform one of the following functions:
</p>
<ul>
<li><link href="search-dept.html">Search Departments</link></li>
<li><link href="search-empl.html">Search Employees</link></li>
<li><link href="create-dept.html">Create Department</link></li>
<li><link href="create-empl.html">Create Employee</link></li>
</ul>
</s1>
</body>
</document>
1.1 xml-cocoon2/webapp.tutorial/docs/results-dept.xsp
Index: results-dept.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:esql="http://apache.org/cocoon/SQL/v2">
<document>
<header>
<title>Search Results</title>
</header>
<body>
<s1 title="Department Search Results">
<p>
You can edit a department by clicking on the "edit"
button, and you can delete a department by clicking on
the "delete" button.
</p>
<esql:connection>
<esql:pool>personnel</esql:pool>
<esql:execute-query>
<esql:query>
SELECT department_id, department_name FROM department
WHERE department_name LIKE <esql:parameter>%<xsp-request:get-parameter name="name"/>%</esql:parameter>
ORDER BY department_name
</esql:query>
<esql:results>
<esql:row-results>
<s2>
<xsp:attribute name="title"><esql:get-string column="department_name"/></xsp:attribute>
<form handler="edit-dept.html">
<xsp:attribute name="name"><esql:get-string column="department_id"/></xsp:attribute>
<p>
<parameter name="id">
<xsp:attribute name="value"><esql:get-string column="department_id"/></xsp:attribute>
</parameter>
<submit name="Edit Department"/><submit name="Delete Department"/>
</p>
</form>
</s2>
</esql:row-results>
</esql:results>
<esql:no-results>
<p>
We could find any departments that matched your search
criteria of "<xsp-request:get-parameter name="name"/>".
<link href="search-dept.html">Go back and try again?</link>
</p>
</esql:no-results>
</esql:execute-query>
</esql:connection>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/results-empl.xsp
Index: results-empl.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:esql="http://apache.org/cocoon/SQL/v2">
<document>
<header>
<title>Search Results</title>
</header>
<body>
<s1 title="Employee Search Results">
<p>
You can edit an employee by clicking on the "edit"
button, and you can delete an employee by clicking on
the "delete" button.
</p>
<esql:connection>
<esql:pool>personnel</esql:pool>
<esql:execute-query>
<esql:query>
SELECT employee_id, employee_name FROM employee
WHERE employee_name LIKE <esql:parameter>%<xsp-request:get-parameter name="name"/>%</esql:parameter>
ORDER BY employee_name
</esql:query>
<esql:results>
<esql:row-results>
<s2>
<xsp:attribute name="title"><esql:get-string column="employee_name"/></xsp:attribute>
<form handler="edit-empl.html">
<xsp:attribute name="name"><esql:get-string column="employee_id"/></xsp:attribute>
<p>
<parameter name="id">
<xsp:attribute name="value"><esql:get-string column="employee_id"/></xsp:attribute>
</parameter>
<submit name="Edit Employee"/><submit name="Delete Employee"/>
</p>
</form>
</s2>
</esql:row-results>
</esql:results>
<esql:no-results>
<p>
We could find any employees that matched your search
criteria of "<xsp-request:get-parameter name="name"/>".
<link href="search-empl.html">Go back and try again?</link>
</p>
</esql:no-results>
</esql:execute-query>
</esql:connection>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/search-dept.xsp
Index: search-dept.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp">
<document>
<header>
<title>Find Department</title>
</header>
<body>
<s1 title="Find a Department">
<form handler="results-dept.html">
<p>
You can find a department by typing in a
name, or part of a name, and pressing the
"submit" button. If you don't type in any
name, all results will appear.
</p>
<p>
Department: <text name="name" size="30"/><br/>
</p>
<submit name="Find Department"/>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/search-empl.xsp
Index: search-empl.xsp
===================================================================
<?xml version="1.0"?>
<xsp:page xmlns:xsp="http://apache.org/xsp">
<document>
<header>
<title>Find Employee</title>
</header>
<body>
<s1 title="Find an Employee">
<form handler="results-empl.html">
<p>
You can find an employee by typing in a
name, or part of a name, and pressing the
"submit" button. If you don't type in any
name, all results will appear.
</p>
<p>
Employee: <text name="name" size="30"/><br/>
</p>
<submit name="Find Employee"/>
</form>
</s1>
</body>
</document>
</xsp:page>
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/changes-v10.dtd
Index: changes-v10.dtd
===================================================================
<!-- ===================================================================
Apache Changes DTD (Version 1.0)
PURPOSE:
This DTD was developed to create a simple yet powerful document
type for software development changes for use with the Apache projects.
It is an XML-compliant DTD and it's maintained by the Apache XML
project.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD Changes Vx.yz//EN"
"http://xml.apache.org/DTD/changes-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
It is important, expecially in open developped software projects, to keep
track of software changes both to give users indications of bugs that might
have been resolved, as well, and not less important, to provide credits
for the support given to the project. It is considered vital to provide
adequate payback using recognition and credits to let users and developers
feel part of the community, thus increasing development power.
AUTHORS:
Stefano Mazzocchi <st...@apache.org>
FIXME:
CHANGE HISTORY:
19991129 Initial version. (SM)
20000316 Added bugfixing attribute. (SM)
COPYRIGHT:
Copyright (c) @year@ The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Extend the Documentation DTD -->
<!-- =============================================================== -->
<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
possibly using public identifiers -->
<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
%document-dtd;
<!-- =============================================================== -->
<!-- Common entities -->
<!-- =============================================================== -->
<!ENTITY % types "add|remove|update|fix">
<!-- =============================================================== -->
<!-- Document Type Definition -->
<!-- =============================================================== -->
<!ELEMENT changes (devs, release*)>
<!ATTLIST changes %common.att;
%title.att;>
<!ELEMENT devs (person+)>
<!ATTLIST devs %common.att;>
<!ELEMENT release (action+)>
<!ATTLIST release %common.att;
version CDATA #REQUIRED
date CDATA #REQUIRED>
<!ELEMENT action (%content.mix;)*>
<!ATTLIST action %common.att;
dev IDREF #REQUIRED
type (%types;) #IMPLIED
due-to CDATA #IMPLIED
due-to-email CDATA #IMPLIED
fixes-bug CDATA #IMPLIED>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/characters.ent
Index: characters.ent
===================================================================
<!--
Portions (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!--
Character entity set.
-->
<!-- Latin A -->
<!ENTITY nbsp " "> <!-- U+00A0 ISOnum - no-break space = non-breaking space -->
<!ENTITY iexcl "¡"> <!-- U+00A1 ISOnum - inverted exclamation mark -->
<!ENTITY cent "¢"> <!-- U+00A2 ISOnum - cent sign -->
<!ENTITY pound "£"> <!-- U+00A3 ISOnum - pound sign -->
<!ENTITY curren "¤"> <!-- U+00A4 ISOnum - currency sign -->
<!ENTITY yen "¥"> <!-- U+00A5 ISOnum - yen sign = yuan sign -->
<!ENTITY brvbar "¦"> <!-- U+00A6 ISOnum - broken bar = broken vertical bar -->
<!ENTITY sect "§"> <!-- U+00A7 ISOnum - section sign -->
<!ENTITY uml "¨"> <!-- U+00A8 ISOdia - diaeresis = spacing diaeresis -->
<!ENTITY copy "©"> <!-- U+00A9 ISOnum - copyright sign -->
<!ENTITY ordf "ª"> <!-- U+00AA ISOnum - feminine ordinal indicator -->
<!ENTITY laquo "«"> <!-- U+00AB ISOnum - left-pointing double angle quotation mark = left pointing guillemet -->
<!ENTITY not "¬"> <!-- U+00AC ISOnum - not sign -->
<!ENTITY shy "­"> <!-- U+00AD ISOnum - soft hyphen = discretionary hyphen -->
<!ENTITY reg "®"> <!-- U+00AE ISOnum - registered sign = registered trade mark sign -->
<!ENTITY macr "¯"> <!-- U+00AF ISOdia - macron = spacing macron = overline = APL overbar -->
<!ENTITY deg "°"> <!-- U+00B0 ISOnum - degree sign -->
<!ENTITY plusmn "±"> <!-- U+00B1 ISOnum - plus-minus sign = plus-or-minus sign -->
<!ENTITY sup2 "²"> <!-- U+00B2 ISOnum - superscript two = superscript digit two = squared -->
<!ENTITY sup3 "³"> <!-- U+00B3 ISOnum - superscript three = superscript digit three = cubed -->
<!ENTITY acute "´"> <!-- U+00B4 ISOdia - acute accent = spacing acute -->
<!ENTITY micro "µ"> <!-- U+00B5 ISOnum - micro sign -->
<!ENTITY para "¶"> <!-- U+00B6 ISOnum - pilcrow sign = paragraph sign -->
<!ENTITY middot "·"> <!-- U+00B7 ISOnum - middle dot = Georgian comma = Greek middle dot -->
<!ENTITY cedil "¸"> <!-- U+00B8 ISOdia - cedilla = spacing cedilla -->
<!ENTITY sup1 "¹"> <!-- U+00B9 ISOnum - superscript one = superscript digit one -->
<!ENTITY ordm "º"> <!-- U+00BA ISOnum - masculine ordinal indicator -->
<!ENTITY raquo "»"> <!-- U+00BB ISOnum - right-pointing double angle quotation mark = right pointing guillemet -->
<!ENTITY frac14 "¼"> <!-- U+00BC ISOnum - vulgar fraction one quarter = fraction one quarter -->
<!ENTITY frac12 "½"> <!-- U+00BD ISOnum - vulgar fraction one half = fraction one half -->
<!ENTITY frac34 "¾"> <!-- U+00BE ISOnum - vulgar fraction three quarters = fraction three quarters -->
<!ENTITY iquest "¿"> <!-- U+00BF ISOnum - inverted question mark = turned question mark -->
<!ENTITY Agrave "À"> <!-- U+00C0 ISOlat1 - latin capital letter A with grave = latin capital letter A grave -->
<!ENTITY Aacute "Á"> <!-- U+00C1 ISOlat1 - latin capital letter A with acute -->
<!ENTITY Acirc "Â"> <!-- U+00C2 ISOlat1 - latin capital letter A with circumflex -->
<!ENTITY Atilde "Ã"> <!-- U+00C3 ISOlat1 - latin capital letter A with tilde -->
<!ENTITY Auml "Ä"> <!-- U+00C4 ISOlat1 - latin capital letter A with diaeresis -->
<!ENTITY Aring "Å"> <!-- U+00C5 ISOlat1 - latin capital letter A with ring above = latin capital letter A ring -->
<!ENTITY AElig "Æ"> <!-- U+00C6 ISOlat1 - latin capital letter AE = latin capital ligature AE -->
<!ENTITY Ccedil "Ç"> <!-- U+00C7 ISOlat1 - latin capital letter C with cedilla -->
<!ENTITY Egrave "È"> <!-- U+00C8 ISOlat1 - latin capital letter E with grave -->
<!ENTITY Eacute "É"> <!-- U+00C9 ISOlat1 - latin capital letter E with acute -->
<!ENTITY Ecirc "Ê"> <!-- U+00CA ISOlat1 - latin capital letter E with circumflex -->
<!ENTITY Euml "Ë"> <!-- U+00CB ISOlat1 - latin capital letter E with diaeresis -->
<!ENTITY Igrave "Ì"> <!-- U+00CC ISOlat1 - latin capital letter I with grave -->
<!ENTITY Iacute "Í"> <!-- U+00CD ISOlat1 - latin capital letter I with acute -->
<!ENTITY Icirc "Î"> <!-- U+00CE ISOlat1 - latin capital letter I with circumflex -->
<!ENTITY Iuml "Ï"> <!-- U+00CF ISOlat1 - latin capital letter I with diaeresis -->
<!ENTITY ETH "Ð"> <!-- U+00D0 ISOlat1 - latin capital letter ETH -->
<!ENTITY Ntilde "Ñ"> <!-- U+00D1 ISOlat1 - latin capital letter N with tilde -->
<!ENTITY Ograve "Ò"> <!-- U+00D2 ISOlat1 - latin capital letter O with grave -->
<!ENTITY Oacute "Ó"> <!-- U+00D3 ISOlat1 - latin capital letter O with acute -->
<!ENTITY Ocirc "Ô"> <!-- U+00D4 ISOlat1 - latin capital letter O with circumflex -->
<!ENTITY Otilde "Õ"> <!-- U+00D5 ISOlat1 - latin capital letter O with tilde -->
<!ENTITY Ouml "Ö"> <!-- U+00D6 ISOlat1 - latin capital letter O with diaeresis -->
<!ENTITY times "×"> <!-- U+00D7 ISOnum - multiplication sign -->
<!ENTITY Oslash "Ø"> <!-- U+00D8 ISOlat1 - latin capital letter O with stroke = latin capital letter O slash -->
<!ENTITY Ugrave "Ù"> <!-- U+00D9 ISOlat1 - latin capital letter U with grave -->
<!ENTITY Uacute "Ú"> <!-- U+00DA ISOlat1 - latin capital letter U with acute -->
<!ENTITY Ucirc "Û"> <!-- U+00DB ISOlat1 - latin capital letter U with circumflex -->
<!ENTITY Uuml "Ü"> <!-- U+00DC ISOlat1 - latin capital letter U with diaeresis -->
<!ENTITY Yacute "Ý"> <!-- U+00DD ISOlat1 - latin capital letter Y with acute -->
<!ENTITY THORN "Þ"> <!-- U+00DE ISOlat1 - latin capital letter THORN -->
<!ENTITY szlig "ß"> <!-- U+00DF ISOlat1 - latin small letter sharp s = ess-zed -->
<!ENTITY agrave "à"> <!-- U+00E0 ISOlat1 - latin small letter a with grave = latin small letter a grave -->
<!ENTITY aacute "á"> <!-- U+00E1 ISOlat1 - latin small letter a with acute -->
<!ENTITY acirc "â"> <!-- U+00E2 ISOlat1 - latin small letter a with circumflex -->
<!ENTITY atilde "ã"> <!-- U+00E3 ISOlat1 - latin small letter a with tilde -->
<!ENTITY auml "ä"> <!-- U+00E4 ISOlat1 - latin small letter a with diaeresis -->
<!ENTITY aring "å"> <!-- U+00E5 ISOlat1 - latin small letter a with ring above = latin small letter a ring -->
<!ENTITY aelig "æ"> <!-- U+00E6 ISOlat1 - latin small letter ae = latin small ligature ae -->
<!ENTITY ccedil "ç"> <!-- U+00E7 ISOlat1 - latin small letter c with cedilla -->
<!ENTITY egrave "è"> <!-- U+00E8 ISOlat1 - latin small letter e with grave -->
<!ENTITY eacute "é"> <!-- U+00E9 ISOlat1 - latin small letter e with acute -->
<!ENTITY ecirc "ê"> <!-- U+00EA ISOlat1 - latin small letter e with circumflex -->
<!ENTITY euml "ë"> <!-- U+00EB ISOlat1 - latin small letter e with diaeresis -->
<!ENTITY igrave "ì"> <!-- U+00EC ISOlat1 - latin small letter i with grave -->
<!ENTITY iacute "í"> <!-- U+00ED ISOlat1 - latin small letter i with acute -->
<!ENTITY icirc "î"> <!-- U+00EE ISOlat1 - latin small letter i with circumflex -->
<!ENTITY iuml "ï"> <!-- U+00EF ISOlat1 - latin small letter i with diaeresis -->
<!ENTITY eth "ð"> <!-- U+00F0 ISOlat1 - latin small letter eth -->
<!ENTITY ntilde "ñ"> <!-- U+00F1 ISOlat1 - latin small letter n with tilde -->
<!ENTITY ograve "ò"> <!-- U+00F2 ISOlat1 - latin small letter o with grave -->
<!ENTITY oacute "ó"> <!-- U+00F3 ISOlat1 - latin small letter o with acute -->
<!ENTITY ocirc "ô"> <!-- U+00F4 ISOlat1 - latin small letter o with circumflex -->
<!ENTITY otilde "õ"> <!-- U+00F5 ISOlat1 - latin small letter o with tilde -->
<!ENTITY ouml "ö"> <!-- U+00F6 ISOlat1 - latin small letter o with diaeresis -->
<!ENTITY divide "÷"> <!-- U+00F7 ISOnum - division sign -->
<!ENTITY oslash "ø"> <!-- U+00F8 ISOlat1 - latin small letter o with stroke = latin small letter o slash -->
<!ENTITY ugrave "ù"> <!-- U+00F9 ISOlat1 - latin small letter u with grave -->
<!ENTITY uacute "ú"> <!-- U+00FA ISOlat1 - latin small letter u with acute -->
<!ENTITY ucirc "û"> <!-- U+00FB ISOlat1 - latin small letter u with circumflex -->
<!ENTITY uuml "ü"> <!-- U+00FC ISOlat1 - latin small letter u with diaeresis -->
<!ENTITY yacute "ý"> <!-- U+00FD ISOlat1 - latin small letter y with acute -->
<!ENTITY thorn "þ"> <!-- U+00FE ISOlat1 - latin small letter thorn -->
<!ENTITY yuml "ÿ"> <!-- U+00FF ISOlat1 - latin small letter y with diaeresis -->
<!-- Latin Extended-A -->
<!ENTITY OElig "Œ"> <!-- U+0152 ISOlat2 - latin capital ligature OE -->
<!ENTITY oelig "œ"> <!-- U+0153 ISOlat2 - latin small ligature oe -->
<!-- ligature is a misnomer, this is a separate character in some languages -->
<!ENTITY Scaron "Š"> <!-- U+0160 ISOlat2 - latin capital letter S with caron -->
<!ENTITY scaron "š"> <!-- U+0161 ISOlat2 - latin small letter s with caron -->
<!ENTITY Yuml "Ÿ"> <!-- U+0178 ISOlat2 - latin capital letter Y with diaeresis -->
<!-- Spacing Modifier Letters -->
<!ENTITY circ "ˆ"> <!-- U+02C6 ISOpub - modifier letter circumflex accent -->
<!ENTITY tilde "˜"> <!-- U+02DC ISOdia - small tilde -->
<!-- General Punctuation -->
<!ENTITY ensp " "> <!-- U+2002 ISOpub - en space -->
<!ENTITY emsp " "> <!-- U+2003 ISOpub - em space -->
<!ENTITY thinsp " "> <!-- U+2009 ISOpub - thin space -->
<!ENTITY zwnj "‌"> <!-- U+200C RFC 2070 - zero width non-joiner -->
<!ENTITY zwj "‍"> <!-- U+200D RFC 2070 - zero width joiner -->
<!ENTITY lrm "‎"> <!-- U+200E RFC 2070 - left-to-right mark -->
<!ENTITY rlm "‏"> <!-- U+200F RFC 2070 - right-to-left mark -->
<!ENTITY ndash "–"> <!-- U+2013 ISOpub - en dash -->
<!ENTITY mdash "—"> <!-- U+2014 ISOpub - em dash -->
<!ENTITY lsquo "‘"> <!-- U+2018 ISOnum - left single quotation mark -->
<!ENTITY rsquo "’"> <!-- U+2019 ISOnum - right single quotation mark -->
<!ENTITY sbquo "‚"> <!-- U+201A NEW - single low-9 quotation mark -->
<!ENTITY ldquo "“"> <!-- U+201C ISOnum - left double quotation mark -->
<!ENTITY rdquo "”"> <!-- U+201D ISOnum - right double quotation mark, -->
<!ENTITY bdquo "„"> <!-- U+201E NEW - double low-9 quotation mark -->
<!ENTITY dagger "†"> <!-- U+2020 ISOpub - dagger -->
<!ENTITY Dagger "‡"> <!-- U+2021 ISOpub - double dagger -->
<!ENTITY permil "‰"> <!-- U+2030 ISOtech - per mille sign -->
<!ENTITY lsaquo "‹"> <!-- U+2039 ISO prop. - single left-pointing angle quotation mark -->
<!-- lsaquo is proposed but not yet ISO standardized -->
<!ENTITY rsaquo "›"> <!-- U+203A ISO prop. - single right-pointing angle quotation mark -->
<!-- rsaquo is proposed but not yet ISO standardized -->
<!ENTITY euro "€"> <!-- U+20AC NEW - euro sign -->
<!-- Latin Extended-B -->
<!ENTITY fnof "ƒ"> <!-- U+0192 ISOtech - latin small f with hook = function = florin -->
<!-- Greek -->
<!ENTITY Alpha "Α"> <!-- U+0391 - greek capital letter alpha -->
<!ENTITY Beta "Β"> <!-- U+0392 - greek capital letter beta -->
<!ENTITY Gamma "Γ"> <!-- U+0393 ISOgrk3 - greek capital letter gamma -->
<!ENTITY Delta "Δ"> <!-- U+0394 ISOgrk3 - greek capital letter delta -->
<!ENTITY Epsilon "Ε"> <!-- U+0395 - greek capital letter epsilon -->
<!ENTITY Zeta "Ζ"> <!-- U+0396 - greek capital letter zeta -->
<!ENTITY Eta "Η"> <!-- U+0397 - greek capital letter eta -->
<!ENTITY Theta "Θ"> <!-- U+0398 ISOgrk3 - greek capital letter theta -->
<!ENTITY Iota "Ι"> <!-- U+0399 - greek capital letter iota -->
<!ENTITY Kappa "Κ"> <!-- U+039A - greek capital letter kappa -->
<!ENTITY Lambda "Λ"> <!-- U+039B ISOgrk3 - greek capital letter lambda -->
<!ENTITY Mu "Μ"> <!-- U+039C - greek capital letter mu -->
<!ENTITY Nu "Ν"> <!-- U+039D - greek capital letter nu -->
<!ENTITY Xi "Ξ"> <!-- U+039E ISOgrk3 - greek capital letter xi -->
<!ENTITY Omicron "Ο"> <!-- U+039F - greek capital letter omicron -->
<!ENTITY Pi "Π"> <!-- U+03A0 ISOgrk3 - greek capital letter pi -->
<!ENTITY Rho "Ρ"> <!-- U+03A1 - greek capital letter rho -->
<!ENTITY Sigma "Σ"> <!-- U+03A3 ISOgrk3 - greek capital letter sigma -->
<!ENTITY Tau "Τ"> <!-- U+03A4 - greek capital letter tau -->
<!ENTITY Upsilon "Υ"> <!-- U+03A5 ISOgrk3 - greek capital letter upsilon -->
<!ENTITY Phi "Φ"> <!-- U+03A6 ISOgrk3 - greek capital letter phi -->
<!ENTITY Chi "Χ"> <!-- U+03A7 - greek capital letter chi -->
<!ENTITY Psi "Ψ"> <!-- U+03A8 ISOgrk3 - greek capital letter psi -->
<!ENTITY Omega "Ω"> <!-- U+03A9 ISOgrk3 - greek capital letter omega -->
<!ENTITY alpha "α"> <!-- U+03B1 ISOgrk3 - greek small letter alpha -->
<!ENTITY beta "β"> <!-- U+03B2 ISOgrk3 - greek small letter beta -->
<!ENTITY gamma "γ"> <!-- U+03B3 ISOgrk3 - greek small letter gamma -->
<!ENTITY delta "δ"> <!-- U+03B4 ISOgrk3 - greek small letter delta -->
<!ENTITY epsilon "ε"> <!-- U+03B5 ISOgrk3 - greek small letter epsilon -->
<!ENTITY zeta "ζ"> <!-- U+03B6 ISOgrk3 - greek small letter zeta -->
<!ENTITY eta "η"> <!-- U+03B7 ISOgrk3 - greek small letter eta -->
<!ENTITY theta "θ"> <!-- U+03B8 ISOgrk3 - greek small letter theta -->
<!ENTITY iota "ι"> <!-- U+03B9 ISOgrk3 - greek small letter iota -->
<!ENTITY kappa "κ"> <!-- U+03BA ISOgrk3 - greek small letter kappa -->
<!ENTITY lambda "λ"> <!-- U+03BB ISOgrk3 - greek small letter lambda -->
<!ENTITY mu "μ"> <!-- U+03BC ISOgrk3 - greek small letter mu -->
<!ENTITY nu "ν"> <!-- U+03BD ISOgrk3 - greek small letter nu -->
<!ENTITY xi "ξ"> <!-- U+03BE ISOgrk3 - greek small letter xi -->
<!ENTITY omicron "ο"> <!-- U+03BF NEW - greek small letter omicron -->
<!ENTITY pi "π"> <!-- U+03C0 ISOgrk3 - greek small letter pi -->
<!ENTITY rho "ρ"> <!-- U+03C1 ISOgrk3 - greek small letter rho -->
<!ENTITY sigmaf "ς"> <!-- U+03C2 ISOgrk3 - greek small letter final sigma -->
<!ENTITY sigma "σ"> <!-- U+03C3 ISOgrk3 - greek small letter sigma -->
<!ENTITY tau "τ"> <!-- U+03C4 ISOgrk3 - greek small letter tau -->
<!ENTITY upsilon "υ"> <!-- U+03C5 ISOgrk3 - greek small letter upsilon -->
<!ENTITY phi "φ"> <!-- U+03C6 ISOgrk3 - greek small letter phi -->
<!ENTITY chi "χ"> <!-- U+03C7 ISOgrk3 - greek small letter chi -->
<!ENTITY psi "ψ"> <!-- U+03C8 ISOgrk3 - greek small letter psi -->
<!ENTITY omega "ω"> <!-- U+03C9 ISOgrk3 - greek small letter omega -->
<!ENTITY thetasym "ϑ"> <!-- U+03D1 NEW - greek small letter theta symbol -->
<!ENTITY upsih "ϒ"> <!-- U+03D2 NEW - greek upsilon with hook symbol -->
<!ENTITY piv "ϖ"> <!-- U+03D6 ISOgrk3 - greek pi symbol -->
<!-- General Punctuation -->
<!ENTITY bull "•"> <!-- U+2022 ISOpub - bullet = black small circle -->
<!ENTITY hellip "…"> <!-- U+2026 ISOpub - horizontal ellipsis = three dot leader -->
<!ENTITY prime "′"> <!-- U+2032 ISOtech - prime = minutes = feet -->
<!ENTITY Prime "″"> <!-- U+2033 ISOtech - double prime = seconds = inches -->
<!ENTITY oline "‾"> <!-- U+203E NEW - overline = spacing overscore -->
<!ENTITY frasl "⁄"> <!-- U+2044 NEW - fraction slash -->
<!-- Letterlike Symbols -->
<!ENTITY weierp "℘"> <!-- U+2118 ISOamso - script capital P = power set = Weierstrass p -->
<!ENTITY image "ℑ"> <!-- U+2111 ISOamso - blackletter capital I = imaginary part -->
<!ENTITY real "ℜ"> <!-- U+211C ISOamso - blackletter capital R = real part symbol -->
<!ENTITY trade "™"> <!-- U+2122 ISOnum - trade mark sign -->
<!ENTITY alefsym "ℵ"> <!-- U+2135 NEW - alef symbol = first transfinite cardinal -->
<!-- Arrows -->
<!ENTITY larr "←"> <!-- U+2190 ISOnum - leftwards arrow -->
<!ENTITY uarr "↑"> <!-- U+2191 ISOnum - upwards arrow -->
<!ENTITY rarr "→"> <!-- U+2192 ISOnum - rightwards arrow -->
<!ENTITY darr "↓"> <!-- U+2193 ISOnum - downwards arrow -->
<!ENTITY harr "↔"> <!-- U+2194 ISOamsa - left right arrow -->
<!ENTITY crarr "↵"> <!-- U+21B5 NEW - downwards arrow with corner leftwards = carriage return -->
<!ENTITY lArr "⇐"> <!-- U+21D0 ISOtech - leftwards double arrow -->
<!ENTITY uArr "⇑"> <!-- U+21D1 ISOamsa - upwards double arrow -->
<!ENTITY rArr "⇒"> <!-- U+21D2 ISOtech - rightwards double arrow -->
<!ENTITY dArr "⇓"> <!-- U+21D3 ISOamsa - downwards double arrow -->
<!ENTITY hArr "⇔"> <!-- U+21D4 ISOamsa - left right double arrow -->
<!-- Mathematical Operators -->
<!ENTITY forall "∀"> <!-- U+2200 ISOtech - for all -->
<!ENTITY part "∂"> <!-- U+2202 ISOtech - partial differential -->
<!ENTITY exist "∃"> <!-- U+2203 ISOtech - there exists -->
<!ENTITY empty "∅"> <!-- U+2205 ISOamso - empty set = null set = diameter -->
<!ENTITY nabla "∇"> <!-- U+2207 ISOtech - nabla = backward difference -->
<!ENTITY isin "∈"> <!-- U+2208 ISOtech - element of -->
<!ENTITY notin "∉"> <!-- U+2209 ISOtech - not an element of -->
<!ENTITY ni "∋"> <!-- U+220B ISOtech - contains as member -->
<!ENTITY prod "∏"> <!-- U+220F ISOamsb - n-ary product = product sign -->
<!ENTITY sum "∑"> <!-- U+2211 ISOamsb - n-ary sumation -->
<!ENTITY minus "−"> <!-- U+2212 ISOtech - minus sign -->
<!ENTITY lowast "∗"> <!-- U+2217 ISOtech - asterisk operator -->
<!ENTITY radic "√"> <!-- U+221A ISOtech - square root = radical sign -->
<!ENTITY prop "∝"> <!-- U+221D ISOtech - proportional to -->
<!ENTITY infin "∞"> <!-- U+221E ISOtech - infinity -->
<!ENTITY ang "∠"> <!-- U+2220 ISOamso - angle -->
<!ENTITY and "∧"> <!-- U+2227 ISOtech - logical and = wedge -->
<!ENTITY or "∨"> <!-- U+2228 ISOtech - logical or = vee -->
<!ENTITY cap "∩"> <!-- U+2229 ISOtech - intersection = cap -->
<!ENTITY cup "∪"> <!-- U+222A ISOtech - union = cup -->
<!ENTITY int "∫"> <!-- U+222B ISOtech - integral -->
<!ENTITY there4 "∴"> <!-- U+2234 ISOtech - therefore -->
<!ENTITY sim "∼"> <!-- U+223C ISOtech - tilde operator = varies with = similar to -->
<!ENTITY cong "≅"> <!-- U+2245 ISOtech - approximately equal to -->
<!ENTITY asymp "≈"> <!-- U+2248 ISOamsr - almost equal to = asymptotic to -->
<!ENTITY ne "≠"> <!-- U+2260 ISOtech - not equal to -->
<!ENTITY equiv "≡"> <!-- U+2261 ISOtech - identical to -->
<!ENTITY le "≤"> <!-- U+2264 ISOtech - less-than or equal to -->
<!ENTITY ge "≥"> <!-- U+2265 ISOtech - greater-than or equal to -->
<!ENTITY sub "⊂"> <!-- U+2282 ISOtech - subset of -->
<!ENTITY sup "⊃"> <!-- U+2283 ISOtech - superset of -->
<!ENTITY nsub "⊄"> <!-- U+2284 ISOamsn - not a subset of -->
<!ENTITY sube "⊆"> <!-- U+2286 ISOtech - subset of or equal to -->
<!ENTITY supe "⊇"> <!-- U+2287 ISOtech - superset of or equal to -->
<!ENTITY oplus "⊕"> <!-- U+2295 ISOamsb - circled plus = direct sum -->
<!ENTITY otimes "⊗"> <!-- U+2297 ISOamsb - circled times = vector product -->
<!ENTITY perp "⊥"> <!-- U+22A5 ISOtech - up tack = orthogonal to = perpendicular -->
<!ENTITY sdot "⋅"> <!-- U+22C5 ISOamsb - dot operator -->
<!-- Miscellaneous Technical -->
<!ENTITY lceil "⌈"> <!-- U+2308 ISOamsc - left ceiling = apl upstile -->
<!ENTITY rceil "⌉"> <!-- U+2309 ISOamsc - right ceiling -->
<!ENTITY lfloor "⌊"> <!-- U+230A ISOamsc - left floor = apl downstile -->
<!ENTITY rfloor "⌋"> <!-- U+230B ISOamsc - right floor -->
<!ENTITY lang "〈"> <!-- U+2329 ISOtech - left-pointing angle bracket = bra -->
<!ENTITY rang "〉"> <!-- U+232A ISOtech - right-pointing angle bracket = ket -->
<!-- Geometric Shapes -->
<!ENTITY loz "◊"> <!-- U+25CA ISOpub - lozenge -->
<!-- Miscellaneous Symbols -->
<!ENTITY spades "♠"> <!-- U+2660 ISOpub - black spade suit -->
<!ENTITY clubs "♣"> <!-- U+2663 ISOpub - black club suit = shamrock -->
<!ENTITY hearts "♥"> <!-- U+2665 ISOpub - black heart suit = valentine -->
<!ENTITY diams "♦"> <!-- U+2666 ISOpub - black diamond suit -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/document-v10.dtd
Index: document-v10.dtd
===================================================================
<!-- ===================================================================
Apache Documentation DTD (Version 1.0)
PURPOSE:
This DTD was developed to create a simple yet powerful document
type for software documentation for use with the Apache projects.
It is an XML-compliant DTD and it's maintained by the Apache XML
project.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD Documentation Vx.yz//EN"
"http://xml.apache.org/DTD/document-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
Many of the design patterns used in this DTD were take from the
W3C XML Specification DTD edited by Eve Maler <el...@arbortext.com>.
Where possible, great care has been used to reutilize HTML tag
names to reduce learning efforts and to allow HTML editors to be
used for complex authorings like tables and lists.
AUTHORS:
Stefano Mazzocchi <st...@apache.org>
FIXME:
- how can we include char entities without hardwiring them?
- should "form" tags be included?
- should all style-free HTML 4.0 markup tags be included?
- how do we handle the idea of "soft" xlinks?
- should we add "soft" links to images?
CHANGE HISTORY:
19991121 Initial version. (SM)
19991123 Replaced "res" with more standard "strong" for emphasis. (SM)
19991124 Added "fork" element for window forking behavior. (SM)
19991124 Added "img-inline" element to separate from "img". (SM)
19991129 Removed "affiliation" from "author". (SM)
19991129 Made "author" empty and moved "name|email" as attributes (SM)
19991215 Simplified table section (SM)
19991215 Changed "img-block" in more friendly "figure" (SM)
20000125 Added the "icon" image (SM)
20000126 Allowed "anchor" in all levels (SM)
20000404 Removed the "role" attribute from common-xxx.att (SM)
20000606 Allowed nested markup tags (SM)
COPYRIGHT:
Copyright (c) 1999-2000 The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Common character entities (included from external file) -->
<!-- =============================================================== -->
<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
possibly using public identifiers of ISO latin char sets -->
<!ENTITY % charEntity SYSTEM "characters.ent">
%charEntity;
<!-- =============================================================== -->
<!-- Userful entitieis for increased DTD readability -->
<!-- =============================================================== -->
<!ENTITY % text "#PCDATA">
<!-- =============================================================== -->
<!-- Entities for general XML compliance -->
<!-- =============================================================== -->
<!-- Common attributes
Every element has an ID attribute (sometimes required,
but usually optional) for links. %common.att;
is for common attributes where the ID is optional, and
%common-idreq.att; is for common attributes where the
ID is required.
-->
<!ENTITY % common.att
'id ID #IMPLIED
xml:lang NMTOKEN #IMPLIED'>
<!ENTITY % common-idreq.att
'id ID #REQUIRED
xml:lang NMTOKEN #IMPLIED'>
<!-- xml:space attribute ===============================================
Indicates that the element contains white space
that the formatter or other application should retain,
as appropriate to its function.
==================================================================== -->
<!ENTITY % xmlspace.att
'xml:space (default|preserve) #FIXED "preserve"'>
<!-- def attribute =====================================================
Points to the element where the relevant definition can be
found, using the IDREF mechanism. %def.att; is for optional
def attributes, and %def-req.att; is for required def
attributes.
==================================================================== -->
<!ENTITY % def.att
'def IDREF #IMPLIED'>
<!ENTITY % def-req.att
'def IDREF #REQUIRED'>
<!-- ref attribute =====================================================
Points to the element where more information can be found,
using the IDREF mechanism. %ref.att; is for optional
ref attributes, and %ref-req.att; is for required ref
attributes.
================================================================== -->
<!ENTITY % ref.att
'ref IDREF #IMPLIED'>
<!ENTITY % ref-req.att
'ref IDREF #REQUIRED'>
<!-- =============================================================== -->
<!-- Entities for XLink compliance -->
<!-- =============================================================== -->
<!ENTITY % xlink-simple.att
'type (simple|extended|locator|arc) #FIXED "simple"
href CDATA #IMPLIED
role CDATA #IMPLIED
title CDATA #IMPLIED '>
<!-- 'xmlns CDATA #FIXED "http://www.w3.org/XML/XLink/0.9" -->
<!-- FIXME: brain-dead IE5 has broken support for
namespace validation and since I use it for editing
I remove this for now -->
<!ENTITY % xlink-user-replace.att
'show (new|parsed|replace) #FIXED "replace"
actuate (user|auto) #FIXED "user" '>
<!ENTITY % xlink-user-new.att
'show (new|parsed|replace) #FIXED "new"
actuate (user|auto) #FIXED "user" '>
<!ENTITY % xlink-auto-parsed.att
'show (new|parsed|replace) #FIXED "parsed"
actuate (user|auto) #FIXED "auto" '>
<!-- FIXME (SM): XLink doesn't yet cover the idea of soft links so
introducing it here using the same namespace is _somewhat_
illegal. Should we create it own namespace?
-->
<!ENTITY % xlink-soft.att
'mode (hard|soft) #FIXED "soft" '>
<!-- =============================================================== -->
<!-- Entities for general usage -->
<!-- =============================================================== -->
<!-- Key attribute =====================================================
Optionally provides a sorting or indexing key, for cases when
the element content is inappropriate for this purpose.
==================================================================== -->
<!ENTITY % key.att
'key CDATA #IMPLIED'>
<!-- Title attributes ==================================================
Indicates that the element requires to have a title.
==================================================================== -->
<!ENTITY % title.att
'title CDATA #REQUIRED'>
<!-- Name attributes ==================================================
Indicates that the element requires to have a name.
==================================================================== -->
<!ENTITY % name.att
'name CDATA #REQUIRED'>
<!-- Email attributes ==================================================
Indicates that the element requires to have an email.
==================================================================== -->
<!ENTITY % email.att
'email CDATA #REQUIRED'>
<!-- =============================================================== -->
<!-- General definitions -->
<!-- =============================================================== -->
<!-- A person is a general human entity -->
<!ELEMENT person EMPTY>
<!ATTLIST person %common.att;
%name.att;
%email.att;>
<!-- =============================================================== -->
<!-- Content definitions -->
<!-- =============================================================== -->
<!ENTITY % local.content.mix "">
<!ENTITY % markup "strong|em|code|sub|sup">
<!ENTITY % links "link|connect|jump|fork|anchor">
<!ENTITY % special "br|img|icon">
<!ENTITY % link-content.mix "%text;|%markup;|%special;%local.content.mix;">
<!ENTITY % content.mix "%link-content.mix;|%links;">
<!-- ==================================================== -->
<!-- Phrase Markup -->
<!-- ==================================================== -->
<!-- Strong (typically bold) -->
<!ELEMENT strong (%text;|%markup;|%links;)*>
<!ATTLIST strong %common.att;>
<!-- Emphasis (typically italic) -->
<!ELEMENT em (%text;|%markup;|%links;)*>
<!ATTLIST em %common.att;>
<!-- Code (typically monospaced) -->
<!ELEMENT code (%text;|%markup;|%links;)*>
<!ATTLIST code %common.att;>
<!-- Superscript (typically smaller and higher) -->
<!ELEMENT sup (%text;|%markup;|%links;)*>
<!ATTLIST sup %common.att;>
<!-- Subscript (typically smaller and lower) -->
<!ELEMENT sub (%text;|%markup;|%links;)*>
<!ATTLIST sub %common.att;>
<!-- FIXME (SM): should we add these HTML 4.0 markups
which are style-free?
-dfn
-samp
-kbd
-var
-cite
-abbr
-acronym
-->
<!-- ==================================================== -->
<!-- Hypertextual Links -->
<!-- ==================================================== -->
<!-- hard replacing link (equivalent of <a ...>) -->
<!ELEMENT link (%link-content.mix;)*>
<!ATTLIST link %common.att;
%xlink-simple.att;
%xlink-user-replace.att;>
<!-- Hard window replacing link (equivalent of <a ... target="_top">) -->
<!ELEMENT jump (%link-content.mix;)*>
<!ATTLIST jump anchor CDATA #IMPLIED
%common.att;
%xlink-simple.att;
%xlink-user-new.att;>
<!-- Hard window forking link (equivalent of <a ... target="_new">) -->
<!ELEMENT fork (%link-content.mix;)*>
<!ATTLIST fork %common.att;
%xlink-simple.att;
%xlink-user-new.att;>
<!-- Anchor point (equivalent of <a name="...">) -->
<!ELEMENT anchor EMPTY>
<!ATTLIST anchor %common-idreq.att;>
<!-- Soft link between processed pages (no equivalent in HTML) -->
<!ELEMENT connect (%link-content.mix;)*>
<!ATTLIST connect %common.att;
%xlink-simple.att;
%xlink-user-replace.att;
%xlink-soft.att;>
<!-- ==================================================== -->
<!-- Specials -->
<!-- ==================================================== -->
<!-- Breakline Object (typically forces line break) -->
<!ELEMENT br EMPTY>
<!ATTLIST br %common.att;>
<!-- Image Object (typically an inlined image) -->
<!-- FIXME (SM): should we have the notion of soft links even here
for inlined objects? -->
<!ELEMENT img EMPTY>
<!ATTLIST img src CDATA #REQUIRED
alt CDATA #REQUIRED
height CDATA #IMPLIED
width CDATA #IMPLIED
usemap CDATA #IMPLIED
ismap (ismap) #IMPLIED
%common.att;>
<!-- Image Icon (typically an inlined image placed as graphical item) -->
<!-- FIXME (SM): should we have the notion of soft links even here
for inlined objects? -->
<!ELEMENT icon EMPTY>
<!ATTLIST icon src CDATA #REQUIRED
alt CDATA #REQUIRED
height CDATA #IMPLIED
width CDATA #IMPLIED
%common.att;>
<!-- Flash Object (Typically an inlined flash object) -->
<!ELEMENT flash EMPTY>
<!ATTLIST flash src CDATA #REQUIRED
width CDATA #REQUIRED
height CDATA #REQUIRED
quality CDATA #IMPLIED
bg CDATA #IMPLIED
%common.att;>
<!-- =============================================================== -->
<!-- Blocks definitions -->
<!-- =============================================================== -->
<!ENTITY % local.blocks "">
<!ENTITY % local.lists "">
<!ENTITY % paragraphs "rule|overview|quote|p|source|note|fixme|figure">
<!ENTITY % tables "table">
<!ENTITY % lists "ol|ul|sl|dl %local.lists;">
<!ENTITY % blocks "anchor|%paragraphs;|%tables;|%lists; %local.blocks;">
<!-- ==================================================== -->
<!-- Paragraphs -->
<!-- ==================================================== -->
<!-- Text Paragraph (normally vertically space delimited) -->
<!ELEMENT p (%content.mix;)*>
<!ATTLIST p %common.att;>
<!-- Text Paragraph (normally centered and emphasized) -->
<!ELEMENT overview (%content.mix;)*>
<!ATTLIST overview %common.att;>
<!-- Text Paragraph (normally centered) -->
<!ELEMENT quote (%content.mix;)*>
<!ATTLIST quote %common.att;>
<!ELEMENT rule EMPTY>
<!-- Source Paragraph (normally space is preserved) -->
<!ELEMENT source (%content.mix;)*>
<!ATTLIST source %common.att;
%xmlspace.att;>
<!-- Note Paragraph (normally shown encapsulated) -->
<!ELEMENT note (%content.mix;)*>
<!ATTLIST note %common.att;>
<!-- Fixme Paragraph (normally not shown) -->
<!ELEMENT fixme (%content.mix;)*>
<!-- the "author" attribute should match the "key" attribute of the
<author> element -->
<!ATTLIST fixme author CDATA #REQUIRED
%common.att;>
<!-- ==================================================== -->
<!-- Tables -->
<!-- ==================================================== -->
<!-- Attributes that indicate the spanning of the table cell -->
<!ENTITY % cell.span
'colspan CDATA "1"
rowspan CDATA "1"'>
<!-- Table element -->
<!ELEMENT table (caption?, tr+)>
<!ATTLIST table %common.att;>
<!-- The table title -->
<!ELEMENT caption (%content.mix;)*>
<!ATTLIST caption %common.att;>
<!-- The table row element -->
<!ELEMENT tr (th|td)+>
<!ATTLIST tr %common.att;>
<!-- The table row header element -->
<!ELEMENT th (%content.mix;)*>
<!ATTLIST th %common.att;
%cell.span;>
<!-- The table row description element -->
<!ELEMENT td (%content.mix;)*>
<!ATTLIST td %common.att;
%cell.span;>
<!-- ==================================================== -->
<!-- Lists -->
<!-- ==================================================== -->
<!-- Unordered list (typically bulleted) -->
<!ELEMENT ul (li|%lists;)+>
<!-- spacing attribute:
Use "normal" to get normal vertical spacing for items;
use "compact" to get less spacing. The default is dependent
on the stylesheet. -->
<!ATTLIST ul
%common.att;
spacing (normal|compact) #IMPLIED>
<!-- Ordered list (typically numbered) -->
<!ELEMENT ol (li|%lists;)+>
<!-- spacing attribute:
Use "normal" to get normal vertical spacing for items;
use "compact" to get less spacing. The default is dependent
on the stylesheet. -->
<!ATTLIST ol
%common.att;
spacing (normal|compact) #IMPLIED>
<!-- Simple list (typically with no mark) -->
<!ELEMENT sl (li|%lists;)+>
<!ATTLIST sl %common.att;>
<!-- List item -->
<!ELEMENT li (%content.mix;|%lists;)*>
<!ATTLIST li %common.att;>
<!-- Definition list (typically two-column) -->
<!ELEMENT dl (dt,dd)+>
<!ATTLIST dl %common.att;>
<!-- Definition term -->
<!ELEMENT dt (%content.mix;)*>
<!ATTLIST dt %common.att;>
<!-- Definition description -->
<!ELEMENT dd (%content.mix;)*>
<!ATTLIST dd %common.att;>
<!-- ==================================================== -->
<!-- Special Blocks -->
<!-- ==================================================== -->
<!-- Image Block (typically a separated and centered image) -->
<!-- FIXME (SM): should we have the notion of soft links even here
for inlined objects? -->
<!ELEMENT figure EMPTY>
<!ATTLIST figure src CDATA #REQUIRED
alt CDATA #REQUIRED
height CDATA #IMPLIED
width CDATA #IMPLIED
usemap CDATA #IMPLIED
ismap (ismap) #IMPLIED
%common.att;>
<!-- =============================================================== -->
<!-- Document -->
<!-- =============================================================== -->
<!ELEMENT document (header?, body, footer?)>
<!ATTLIST document %common.att;
redirect CDATA #IMPLIED
time CDATA #IMPLIED>
<!-- ==================================================== -->
<!-- Header -->
<!-- ==================================================== -->
<!ENTITY % local.headers "">
<!ELEMENT header (title, subtitle?, version?, type?, authors,
notice*, abstract? %local.headers;)>
<!ATTLIST header %common.att;>
<!ELEMENT title (%text;)>
<!ATTLIST title image CDATA #IMPLIED
%common.att;>
<!ELEMENT subtitle (%text;)>
<!ATTLIST subtitle %common.att;>
<!ELEMENT version (%text;)>
<!ATTLIST version %common.att;>
<!ELEMENT type (%text;)>
<!ATTLIST type %common.att;>
<!ELEMENT authors (person+)>
<!ATTLIST authors %common.att;>
<!ELEMENT notice (%content.mix;)*>
<!ATTLIST notice %common.att;>
<!ELEMENT abstract (%content.mix;)*>
<!ATTLIST abstract %common.att;>
<!-- ==================================================== -->
<!-- Body -->
<!-- ==================================================== -->
<!ENTITY % local.sections "">
<!ENTITY % sections "s1|anchor %local.sections;">
<!ELEMENT body (%sections;)+>
<!ATTLIST body %common.att;>
<!ELEMENT s1 (s2|%blocks;)*>
<!ATTLIST s1 %title.att; %common.att;>
<!ELEMENT s2 (s3|%blocks;)*>
<!ATTLIST s2 %title.att; %common.att;>
<!ELEMENT s3 (s4|%blocks;)*>
<!ATTLIST s3 %title.att; %common.att;>
<!ELEMENT s4 (%blocks;)*>
<!ATTLIST s4 %title.att; %common.att;>
<!-- ==================================================== -->
<!-- Footer -->
<!-- ==================================================== -->
<!ENTITY % local.footers "">
<!ELEMENT footer (legal %local.footers;)>
<!ELEMENT legal (%content.mix;)*>
<!ATTLIST legal %common.att;>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/faq-v10.dtd
Index: faq-v10.dtd
===================================================================
<!-- ===================================================================
Apache FAQ DTD (Version 1.0)
PURPOSE:
This DTD was developed to create a simple yet powerful document
type for software FAQ's for use with the Apache projects.
It is an XML-compliant DTD and it's maintained by the Apache XML
project.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD FAQ Vx.yz//EN"
"http://xml.apache.org/DTD/faq-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
FAQs represent a powerful knowledge base and a very good way of solving
common user problems reducing messages on mail lists and reducing the effort
required for software installation and usage. Thid DTD want to be a common
format for FAQ interchange to allow FAQ-O-Matic-type workgroup services to
be published in other formats as well as enhancing data interchange.
AUTHORS:
Stefano Mazzocchi <st...@apache.org>
FIXME:
CHANGE HISTORY:
19991129 Initial version. (SM)
COPYRIGHT:
Copyright (c) @year@ The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Extend the Documentation DTD -->
<!-- =============================================================== -->
<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
possibly using public identifiers -->
<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
%document-dtd;
<!-- =============================================================== -->
<!-- Document Type Definition -->
<!-- =============================================================== -->
<!ELEMENT faqs (authors?, faq)+>
<!ATTLIST faqs %common.att;
%title.att;>
<!ELEMENT faq (question, answer)>
<!ATTLIST faq %common.att;>
<!ELEMENT question (%content.mix;)*>
<!ATTLIST question %common.att;>
<!ELEMENT answer (%blocks;)*>
<!ATTLIST answer author IDREF #IMPLIED>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/javadoc-v04draft.dtd
Index: javadoc-v04draft.dtd
===================================================================
<!-- ===================================================================
Apache JavaDoc DTD (version 0.4-draft)
PURPOSE:
This DTD is designed to capture the output of JavaDoc as an XML document
through the use of the JavaDocXML Doclet. The hope is that by having the
JavaDoc documentation in an XML format, it will be easier for application
developers working with XML to treat their java source documentation in the
same way they treat any other XML document within their publication framework.
This DTD should reflect the information contained within the RootDoc object
passed to the JavaDocXML Doclet by JavaDoc. The RootDoc object and the rest
of the javaDoc Doclet API is specified at
http://java.sun.com/products/jdk/1.2/docs/tooldocs/javadoc/doclet/index.html
The only information that appears to be difficult to derive from this DTD
that is easy to obtain from the RootDoc object is the information about
serialization. However, this information should be derivable by manually
looking for the correct serialization methods and other related structures.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD JavaDoc Vx.yz//EN"
"http://xml.apache.org/DTD/javadoc-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
The authors would like to thank the Cocoon's mail list subscribers for
providing such great support and feedback for this DTD.
AUTHORS:
Kenneth Murphy <mu...@umsystem.edu>
FIXME:
CHANGE HISTORY:
199909?? Original idea of XML doclet. (KM)
199910?? Initial version of this DTD. (KM)
19991129 Cleaned up DTD. (SM)
COPYRIGHT:
Copyright (c) @year@ The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Common Attribute Entities -->
<!-- =============================================================== -->
<!ENTITY % name 'name CDATA #REQUIRED'>
<!ENTITY % dimension 'dimension CDATA #REQUIRED'>
<!ENTITY % abstract 'abstract (true | false) "false"'>
<!ENTITY % anonymous 'anonymous (true | false) "false"'>
<!ENTITY % synthetic 'synthetic (true | false) "false"'>
<!ENTITY % static 'static (true | false) "false"'>
<!ENTITY % final 'final (true | false) "false"'>
<!ENTITY % transient 'transient (true | false) "false"'>
<!ENTITY % volatile 'volatile (true | false) "false"'>
<!ENTITY % native 'native (true | false) "false"'>
<!ENTITY % synchronized 'synchronized (true | false) "false"'>
<!ENTITY % access 'access (private | package | protected | public) "package"'>
<!ENTITY % class.access 'access (package | public) "package"'>
<!ENTITY % extensibility 'extensibility (abstract | final | default) "default"'>
<!-- =============================================================== -->
<!-- Javadoc -->
<!-- =============================================================== -->
<!ELEMENT javadoc (package*, class*, interface*)>
<!-- =============================================================== -->
<!-- Package -->
<!-- =============================================================== -->
<!ELEMENT package (doc?, package*, class*, interface*)>
<!ATTLIST package %name;>
<!-- =============================================================== -->
<!-- Class -->
<!-- =============================================================== -->
<!ELEMENT class (doc?,
extends_class?,
implements?,
field*,
constructor*,
method*,
innerclass*)>
<!ATTLIST class
%name;
%extensibility;
%class.access;>
<!ELEMENT extends_class (classref+)>
<!ELEMENT innerclass (doc?,
extends?,
implements?,
field*,
constructor*,
method*)>
<!ATTLIST innerclass
%name;
%access;
%abstract;
%anonymous;
%final;
%static;>
<!-- =============================================================== -->
<!-- Interface -->
<!-- =============================================================== -->
<!ELEMENT interface (doc?,
extends_interface?,
field*,
method*)>
<!ATTLIST interface
%name;
%access;>
<!ELEMENT extends_interface (interfaceref+)>
<!-- =============================================================== -->
<!-- Elements -->
<!-- =============================================================== -->
<!ELEMENT implements (interfaceref+)>
<!ELEMENT throws (classref)+>
<!ELEMENT classref EMPTY>
<!ATTLIST classref %name;>
<!ELEMENT interfaceref EMPTY>
<!ATTLIST interfaceref %name;>
<!ELEMENT methodref EMPTY>
<!ATTLIST methodref %name;>
<!ELEMENT packageref EMPTY>
<!ATTLIST packageref %name;>
<!ELEMENT primitive EMPTY>
<!ATTLIST primitive
type (void | boolean | int | long | byte | short | double | float | char) #REQUIRED>
<!ELEMENT field (doc?, (classref | interfaceref | primitive))>
<!ATTLIST field
%name;
%access;
%dimension;
%synthetic;
%static;
%final;
%transient;
%volatile;>
<!ELEMENT constructor (doc?, parameter*, throws*)>
<!ATTLIST constructor
%name;
%access;
%synthetic;>
<!ELEMENT method (doc?, returns, parameter*, throws*)>
<!ATTLIST method
%name;
%access;
%extensibility;
%native;
%synthetic;
%static;
%synchronized;>
<!ELEMENT returns (classref | interfaceref | primitive)>
<!ATTLIST returns %dimension;>
<!ELEMENT parameter (classref | interfaceref | primitive)>
<!ATTLIST parameter
%name;
%final;
%dimension;>
<!ELEMENT dimension (#PCDATA)>
<!ELEMENT doc (#PCDATA |
linktag |
authortag |
versiontag |
paramtag |
returntag |
exceptiontag |
throwstag |
seetag |
sincetag |
deprecatedtag |
serialtag |
serialfieldtag |
serialdatatag)*>
<!ELEMENT linktag (#PCDATA)>
<!ATTLIST linktag
src CDATA #REQUIRED>
<!ELEMENT authortag (#PCDATA | linktag)*>
<!ELEMENT versiontag (#PCDATA | linktag)*>
<!ELEMENT paramtag (#PCDATA | linktag)*>
<!ATTLIST paramtag %name;>
<!ELEMENT returntag (#PCDATA | linktag)*>
<!ELEMENT exceptiontag (#PCDATA | classref | linktag)*>
<!ELEMENT throwstag (#PCDATA | classref | linktag)*>
<!ELEMENT seetag (#PCDATA | linktag)*>
<!ATTLIST seetag
src CDATA #REQUIRED>
<!ELEMENT sincetag (#PCDATA | linktag)*>
<!ELEMENT deprecatedtag (#PCDATA | linktag)*>
<!ELEMENT serialtag (#PCDATA | linktag)*>
<!ELEMENT serialfieldtag (#PCDATA | linktag)*>
<!ATTLIST serialfieldtag
fieldname CDATA #REQUIRED
fieldtype CDATA #REQUIRED>
<!ELEMENT serialdatatag (#PCDATA | linktag)*>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/specification-v10.dtd
Index: specification-v10.dtd
===================================================================
<!-- ===================================================================
Apache Specification DTD (Version 1.0)
PURPOSE:
This DTD was developed to create a simple yet powerful document
type for software specifications for use with the Apache projects.
It is an XML-compliant DTD and it's maintained by the Apache XML
project.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD Specification Vx.yz//EN"
"http://xml.apache.org/DTD/specification-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
AUTHORS:
Stefano Mazzocchi <st...@apache.org>
FIXME:
CHANGE HISTORY:
19991129 Initial version. (SM)
COPYRIGHT:
Copyright (c) @year@ The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Extend the Documentation DTD -->
<!-- =============================================================== -->
<!-- extend the local.xxx entities -->
<!ENTITY % local.lists "|bl">
<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
possibly using public identifiers -->
<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
%document-dtd;
<!-- =============================================================== -->
<!-- Document Type Definition -->
<!-- =============================================================== -->
<!ELEMENT specification (header?, body, appendices?, footer?)>
<!ATTLIST specification %common.att;>
<!ELEMENT appendices (%sections;)+>
<!ATTLIST appendices %common.att;>
<!-- =============================================================== -->
<!-- Bibliography List -->
<!-- =============================================================== -->
<!-- Bibliography list -->
<!ELEMENT bl (bi)+>
<!ATTLIST bl %common.att;>
<!-- Book item -->
<!ELEMENT bi EMPTY>
<!ATTLIST bi %common.att;
%name.att;
%title.att;
%xlink-simple.att;
%xlink-user-new.att;
authors CDATA #REQUIRED
date CDATA #IMPLIED>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/docs/dtd/todo-v10.dtd
Index: todo-v10.dtd
===================================================================
<!-- ===================================================================
Apache Todos DTD (Version 1.0)
PURPOSE:
This DTD was developed to create a simple yet powerful document
type for software development todo lists for use with the Apache projects.
It is an XML-compliant DTD and it's maintained by the Apache XML
project.
TYPICAL INVOCATION:
<!DOCTYPE document PUBLIC
"-//APACHE//DTD Todo Vx.yz//EN"
"http://xml.apache.org/DTD/todo-vxyz.dtd">
where
x := major version
y := minor version
z := status identifier (optional)
NOTES:
It is important, expecially in open developped software projects, to keep
track of software changes that need to be done, planned features, development
assignment, etc. in order to allow better work parallelization and create
an entry point for people that want to help. This DTD wants to provide
a solid foundation to provide such information and to allow it to be
published as well as distributed in a common format.
AUTHORS:
Stefano Mazzocchi <st...@apache.org>
FIXME:
- do we need anymore working contexts? (SM)
CHANGE HISTORY:
19991129 Initial version. (SM)
19991225 Added actions element for better structure (SM)
COPYRIGHT:
Copyright (c) @year@ The Apache Software Foundation.
Permission to copy in any form is granted provided this notice is
included in all copies. Permission to redistribute is granted
provided this file is distributed untouched in all its parts and
included files.
==================================================================== -->
<!-- =============================================================== -->
<!-- Extend the Documentation DTD -->
<!-- =============================================================== -->
<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
possibly using public identifiers -->
<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
%document-dtd;
<!-- =============================================================== -->
<!-- Common entities -->
<!-- =============================================================== -->
<!ENTITY % priorities "showstopper|high|medium|low|wish|dream">
<!ENTITY % contexts "build|docs|code|admin|design">
<!-- =============================================================== -->
<!-- Document Type Definition -->
<!-- =============================================================== -->
<!ELEMENT todo (devs, actions*)>
<!ATTLIST todo %common.att;
%title.att;>
<!ELEMENT devs (person+)>
<!ATTLIST devs %common.att;>
<!ELEMENT actions (action+)>
<!ATTLIST actions %common.att;
priority (%priorities;) #IMPLIED>
<!ELEMENT action (%content.mix;)*>
<!ATTLIST action %common.att;
assigned-to IDREF #IMPLIED
context (%contexts;) #REQUIRED>
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-border-bottom.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-border-left.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-border-right.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-border-top.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-bottom-left.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-bottom-right.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-top-left.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bar-top-right.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/bottom.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-asf-hi.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-asf-lo.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-w3c-hi.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-w3c-lo.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-xml-hi.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/button-xml-lo.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/close.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/dot.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/join.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/line.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/logo.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/note.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/right.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/separator.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/images/void.gif
<<Binary file>>
1.1 xml-cocoon2/webapp.tutorial/resources/styles/script.js
Index: script.js
===================================================================
rolloverImagesOn=new Array();
rolloverImagesOff=new Array();
function rolloverOn(name) {
document.images[name].src=rolloverImagesOn[name].src;
}
function rolloverOff(name) {
document.images[name].src=rolloverImagesOff[name].src;
}
function rolloverLoad(name,on,off) {
rolloverImagesOn[name]=new Image();
rolloverImagesOn[name].src=on;
rolloverImagesOff[name]=new Image();
rolloverImagesOff[name].src=off;
}
1.1 xml-cocoon2/webapp.tutorial/stylesheets/apache.xsl
Index: apache.xsl
===================================================================
<?xml version="1.0"?>
<!-- Author: Berin Loritsch "bloritsch@infoplanning.com" -->
<!-- Version: 1.0 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="document">
<html>
<head>
<script language="JavaScript" type="text/javascript" src="resources/script.js"/>
<title><xsl:value-of select="document/header/title"/></title>
<xsl:if test="@redirect">
<meta http-equiv="Refresh" content="{@time};URL={@redirect}"/>
</xsl:if>
</head>
<body text="#000000" link="#039acc" vlink="#0086b2" alink="#cc0000"
topmargin="4" leftmargin="4" marginwidth="4" marginheight="4"
bgcolor="#ffffff">
<!-- THE TOP BAR (HEADER) -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="135" height="60" rowspan="3" valign="top" align="left">
<img width="135" height="60" src="images/logo.gif" hspace="0" vspace="0" border="0"/>
</td>
<td width="100%" height="5" valign="top" align="left" colspan="2" background="images/line.gif">
<img width="1" height="5" src="images/line.gif" hspace="0" vspace="0" border="0" align="left"/>
</td>
<td width="29" height="60" rowspan="3" valign="top" align="left">
<img width="29" height="60" src="images/right.gif" hspace="0" vspace="0" border="0"/>
</td>
</tr>
<tr>
<td width="100%" height="35" valign="top" align="left" colspan="2" bgcolor="#0086b2"><font size="5" face="arial,helvetica,sanserif" color="#ffffff"><div style="text-align: right;"><xsl:value-of select="header/title"/></div></font></td>
</tr>
<tr>
<td width="100%" height="20" valign="top" align="left" bgcolor="#0086b2" background="images/bottom.gif">
<img width="3" height="20" src="images/bottom.gif" hspace="0" vspace="0" border="0" align="left"/>
</td>
<td align="right" bgcolor="#0086b2" height="20" valign="top" width="288" background="images/bottom.gif">
<table border="0" cellpadding="0" cellspacing="0" width="288">
<tr>
<td width="96" height="20" valign="top" align="left">
<a href="http://xml.apache.org/" onMouseOver="rolloverOn('xml');" onMouseOut="rolloverOff('xml');" target="new">
<img alt="http://xml.apache.org/" width="96" height="20" src="images/button-xml-lo.gif"
name="xml" hspace="0" vspace="0" border="0"
onLoad="rolloverLoad('xml','images/button-xml-hi.gif','images/button-xml-lo.gif');"/>
</a>
</td>
<td width="96" height="20" valign="top" align="left">
<a href="http://www.apache.org/" onMouseOver="rolloverOn('asf');" onMouseOut="rolloverOff('asf');" target="new">
<img alt="http://www.apache.org/" width="96" height="20" src="images/button-asf-lo.gif"
name="asf" hspace="0" vspace="0" border="0"
onLoad="rolloverLoad('asf','images/button-asf-hi.gif','images/button-asf-lo.gif');"/>
</a>
</td>
<td width="96" height="20" valign="top" align="left">
<a href="http://www.w3.org/" onMouseOver="rolloverOn('w3c');" onMouseOut="rolloverOff('w3c');" target="new">
<img alt="http://www.w3.org/" width="96" height="20" src="images/button-w3c-lo.gif"
name="w3c" hspace="0" vspace="0" border="0"
onLoad="rolloverLoad('w3c','images/button-w3c-hi.gif','images/button-w3c-lo.gif');"/>
</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- THE MAIN PANEL (SIDEBAR AND CONTENT) -->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<!-- THE SIDE BAR -->
<td width="120" valign="top" align="left">
<div width="120" style="background-color: #a0a0a0;">
<font face="arial,helvetica,sanserif" color="#ffffff" size="-1">
<img width="120" height="14" src="images/join.gif" hspace="0" vspace="0" border="0"/><br/>
<xsl:apply-templates select="document('../menu.xml')"/>
<img width="120" height="14" src="images/close.gif" hspace="0" vspace="0" border="0"/><br/>
</font>
</div>
</td>
<!-- THE CONTENT PANEL -->
<td width="*" valign="top" align="left">
<table border="0" cellspacing="0" cellpadding="3">
<tr><td><br/><xsl:apply-templates/></td></tr>
</table>
</td>
</tr>
</table>
<br/>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td bgcolor="#0086b2"><img src="images/dot.gif" width="1" height="1"/></td></tr>
<tr>
<td align="center"><font face="arial,helvetica,sanserif" size="-1" color="#0086b2"><i>
Copyright © 1999-2001.
All Rights Reserved.
</i></font></td>
</tr>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="body">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="menu">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="group">
<a class="menu" href="{@link}"><font size="+1" color="#ffff80"><xsl:value-of select="@title"/></font></a><br/>
<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
<a class="menu" href="{@link}"><font color="#ffffff"><xsl:value-of select="@title"/></font></a><br/>
</xsl:template>
<xsl:template match="flash">
<div align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" id="{@id}" height="{@height}" width="{@width}">
<param value="{@movie}" name="movie"/>
<param value="{@quality}" name="quality"/>
<param value="{@bg}" name="bgcolor"/>
<embed src="{@movie}" quality="{@quality}" bgcolor="{@bg}" height="{@height}" width="{@width}" type="application/x-shockwave-flash" pluginspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"/>
</object>
</div><p/>
</xsl:template>
<xsl:template match="header"/>
<xsl:template match="s1">
<div align="right">
<table border="0" width="98%" cellspacing="0" cellpadding="0">
<tr>
<td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
<td width="100%" bgcolor="#0086b2">
<font size="+1" face="arial,helvetica,sanserif" color="#ffffff">
<img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
</td>
<td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-bottom.gif"><img src="images/void.gif" height="12" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
<table border="0" width="98%" cellspacing="0" cellpadding="0">
<tr>
<td>
<font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
</td>
</tr>
</table>
</div>
<br/>
</xsl:template>
<xsl:template match="s2">
<div align="right">
<table border="0" width="95%" cellspacing="0" cellpadding="0">
<tr>
<td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
<td width="100%" bgcolor="#0086b2">
<font face="arial,helvetica,sanserif" color="#ffffff">
<img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
</td>
<td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
<table border="0" width="95%" cellspacing="0" cellpadding="0">
<tr>
<td>
<font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
</td>
</tr>
</table>
</div>
<br/>
</xsl:template>
<xsl:template match="s3">
<div align="right">
<table border="0" width="90%" cellspacing="0" cellpadding="0">
<tr>
<td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" background="images/bar-border-left.gif"><img src="iamges/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
<td width="100%" bgcolor="#0086b2">
<font size="-1" face="arial,helvetica,sanserif" color="#ffffff">
<img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
</td>
<td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
<table border="0" width="90%" cellspacing="0" cellpadding="0">
<tr>
<td>
<font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
</td>
</tr>
</table>
</div>
<br/>
</xsl:template>
<xsl:template match="s4">
<div align="right">
<table border="0" width="85%" cellspacing="0" cellpadding="0">
<tr>
<td width="9" height="7" valign="bottom" align="right"><img src="images/bar-top-left.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-top.gif"><img src="images/void.gif" width="1" height="5" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="7" valign="bottom" align="left"><img src="images/bar-top-right.gif" width="9" height="7" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" background="images/bar-border-left.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
<td width="100%" bgcolor="#0086b2">
<font size="-2" face="arial,helvetica,sanserif" color="#ffffff">
<img src="images/void.gif" width="5" height="5" vspace="0" hspace="0" border="0"/><b><xsl:value-of select="@title"/></b></font>
</td>
<td width="9" background="images/bar-border-right.gif"><img src="images/void.gif" width="9" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td width="9" height="12" valign="top" align="right"><img src="images/bar-bottom-left.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
<td background="images/bar-border-bottom.gif"><img src="images/void.gif" width="1" height="12" vspace="0" hspace="0" border="0"/></td>
<td width="9" height="12" valign="top" align="left"><img src="images/bar-bottom-right.gif" width="9" height="12" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
<table border="0" width="85%" cellspacing="0" cellpadding="0">
<tr>
<td>
<font face="arial,helvetica,sanserif" color="#000000"><xsl:apply-templates/></font>
</td>
</tr>
</table>
</div>
<br/>
</xsl:template>
<xsl:template match="form">
<form name="form_{@name}" action="{@handler}" method="POST">
<xsl:apply-templates/>
</form>
</xsl:template>
<xsl:template match="submit">
<input type="submit" name="cocoon-action" value="{@name}"/>
</xsl:template>
<xsl:template match="reset">
<input type="reset" value="{@name}"/>
</xsl:template>
<xsl:template match="parameter">
<input type="hidden" name="{@name}" value="{@value}"/>
</xsl:template>
<xsl:template match="radio">
<xsl:for-each select="option">
<xsl:choose>
<xsl:when test="position()=1">
<input type="radio" name="{../@group}" value="{@value}" checked="true"/>
</xsl:when>
<xsl:otherwise>
<input type="radio" name="{../@group}" value="{@value}"/>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="."/><br/>
</xsl:for-each>
</xsl:template>
<xsl:template match="text">
<xsl:choose>
<xsl:when test="@required='true'">
<span style="color: #ff0000;">*</span>
</xsl:when>
<xsl:otherwise> </xsl:otherwise>
</xsl:choose>
<input type="text" name="{@name}" size="{@size}" value="{@value}"/>
</xsl:template>
<xsl:template match="check">
<xsl:element name="input">
<xsl:attribute name="type">checkbox</xsl:attribute>
<xsl:attribute name="value">1</xsl:attribute>
<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
<xsl:if test="@checked='true'">
<xsl:attribute name="checked"/>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template match="p">
<p align="justify"><xsl:apply-templates/></p>
</xsl:template>
<xsl:template match="note">
<p>
<table width="100%" cellspacing="3" cellpadding="0" border="0">
<tr>
<td width="28" valign="top">
<img src="images/note.gif" width="28" height="29" vspace="0" hspace="0" border="0" alt="Note"/>
</td>
<td valign="top">
<font size="-1" face="arial,helvetica,sanserif" color="#000000">
<i>
<xsl:apply-templates/>
</i>
</font>
</td>
</tr>
</table>
</p>
</xsl:template>
<xsl:template match="source">
<div align="center">
<table cellspacing="4" cellpadding="0" border="0">
<tr>
<td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#0086b2" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td bgcolor="#0086b2" width="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#ffffff"><pre><xsl:apply-templates/></pre></td>
<td bgcolor="#0086b2" width="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
<tr>
<td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#0086b2" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
<td bgcolor="#0086b2" width="1" height="1"><img src="images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
</tr>
</table>
</div>
</xsl:template>
<xsl:template match="figure">
<p align="center"><img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4"/></p>
</xsl:template>
<xsl:template match="img">
<img src="{@src}" alt="{@alt}" border="0" vspace="4" hspace="4" align="right"/>
</xsl:template>
<xsl:template match="icon">
<img src="{@src}" alt="{@alt}" border="0" align="absmiddle"/>
</xsl:template>
<xsl:template match="footer"/>
<xsl:template match="fixme"/>
<xsl:template match="ul|ol|dl">
<blockquote>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</blockquote>
</xsl:template>
<xsl:template match="li">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="sl">
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="dt">
<li>
<strong><xsl:value-of select="."/></strong>
<xsl:text> - </xsl:text>
<xsl:apply-templates select="dd"/>
</li>
</xsl:template>
<xsl:template match="table">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<caption><xsl:value-of select="caption"/></caption>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="tr">
<tr><xsl:apply-templates/></tr>
</xsl:template>
<xsl:template match="th">
<td bgcolor="#039acc" colspan="{@colspan}" rowspan="{@rowspan}" valign="center" align="center">
<font color="#ffffff" size="-1" face="arial,helvetica,sanserif">
<b><xsl:apply-templates/></b> 
</font>
</td>
</xsl:template>
<xsl:template match="td">
<td bgcolor="#a0ddf0" colspan="{@colspan}" rowspan="{@rowspan}" valign="top" align="left">
<font color="#000000" size="-1" face="arial,helvetica,sanserif">
<xsl:apply-templates/> 
</font>
</td>
</xsl:template>
<xsl:template match="tn">
<td bgcolor="#ffffff" colspan="{@colspan}" rowspan="{@rowspan}">
 
</td>
</xsl:template>
<xsl:template match="caption"/>
<xsl:template match="overview">
<div class="ovw"><xsl:apply-templates/></div>
</xsl:template>
<xsl:template match="quote">
<div class="ctr"><xsl:apply-templates/></div>
</xsl:template>
<xsl:template match="rule">
<br/><img src="images/hstrip.gif" width="364" height="18"/><br/>
</xsl:template>
<xsl:template match="link">
<a href="{@href}"><xsl:apply-templates/></a>
</xsl:template>
<xsl:template match="connect">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="jump">
<a href="{@href}#{@anchor}"><xsl:apply-templates/></a>
</xsl:template>
<xsl:template match="fork">
<a href="{@href}" target="_blank"><xsl:apply-templates/></a>
</xsl:template>
<xsl:template match="anchor">
<a name="{@id}"><xsl:comment>anchor</xsl:comment></a>
</xsl:template>
<xsl:template match="strong">
<b><xsl:apply-templates/></b>
</xsl:template>
<xsl:template match="em">
<i><xsl:apply-templates/></i>
</xsl:template>
<xsl:template match="code">
<code><font face="courier, monospaced"><xsl:apply-templates/></font></code>
</xsl:template>
<xsl:template match="connect">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="bottom">
<div class="bot"><xsl:apply-templates/></div>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
1.1 xml-cocoon2/webapp.tutorial/stylesheets/system/directory2html.xsl
Index: directory2html.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dir="http://apache.org/cocoon/directory/2.0">
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="dir:directory/@name"/></title>
</head>
<body bgcolor="#ffffff">
<h1>Directory Listing of <xsl:value-of select="dir:directory/@name"/></h1>
<table border="0">
<tr>
<td>
<a href="../"><i>parent directory</i></a>
</td>
</tr>
<tr>
<td>
 
</td>
</tr>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="dir:directory/dir:directory">
<tr>
<td>
<a href="{@name}/"><i><xsl:value-of select="@name"/></i></a>
</td>
<td>
<xsl:value-of select="@date"/>
</td>
</tr>
</xsl:template>
<xsl:template match="dir:file">
<tr>
<td>
<a href="{@name}"><xsl:value-of select="@name"/></a>
</td>
<td>
<xsl:value-of select="@date"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
1.1 xml-cocoon2/webapp.tutorial/stylesheets/system/error2html.xsl
Index: error2html.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:error="http://apache.org/cocoon/error/2.0">
<xsl:template match="error:notify">
<html>
<head>
<title>
<xsl:value-of select="@type"/>:<xsl:value-of select="error:title"/>
</title>
</head>
<body bgcolor="#ffffff">
<table border="0" bgcolor="#000000" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td bgcolor="#0086b2" colspan="2">
<font color="#ffffff" face="arial,helvetica,sanserif" size="+2">
<xsl:value-of select="error:title"/>
</font>
</td>
</tr>
<tr>
<td bgcolor="#0086b2" valign="top">
<font color="#ffffff" face="arial,helvetica,sanserif" size="+1">
<xsl:value-of select="@type"/>
</font>
</td>
<td bgcolor="#ffffff" >
<xsl:apply-templates select="error:message"/>
</td>
</tr>
<tr>
<td bgcolor="#0086b2" valign="top" colspan="2">
<font color="#ffffff" face="arial,helvetica,sanserif" size="+1">details</font>
</td>
</tr>
<tr>
<td bgcolor="#0086b2" valign="top">
<font face="arial,helvetica,sanserif" color="#ffffff">from</font>
</td>
<td bgcolor="#ffffff">
<font face="arial,helvetica,sanserif">
<xsl:value-of select="@sender"/>
</font>
</td>
</tr>
<tr>
<td bgcolor="#0086b2" valign="top">
<font face="arial,helvetica,sanserif" color="#ffffff">source</font>
</td>
<td bgcolor="#ffffff">
<font face="arial,helvetica,sanserif">
<xsl:value-of select="error:source"/>
</font>
</td>
</tr>
<xsl:apply-templates select="error:description"/>
<tr>
<td bgcolor="#0086b2" valign="top" colspan="2">
<font color="#ffffff" face="arial,helvetica,sanserif" size="+1">extra info</font>
</td>
</tr>
<xsl:apply-templates select="error:extra"/>
</tbody>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="error:description">
<tr>
<td bgcolor="#0086b2" valign="top">
<font color="#ffffff" face="arial,helvetica,sanserif">description</font>
</td>
<td bgcolor="#ffffff">
<font face="arial,helvetica,sanserif">
<xsl:value-of select="."/>
</font>
</td>
</tr>
</xsl:template>
<xsl:template match="error:message">
<font face="arial,helvetica,sanserif">
<xsl:value-of select="."/>
</font>
</xsl:template>
<xsl:template match="error:extra">
<tr>
<td bgcolor="#0086b2" valign="top">
<font color="#ffffff" face="arial,helvetica,sanserif">
<xsl:value-of select="@description"/>
</font>
</td>
<td bgcolor="#ffffff">
<pre>
<xsl:value-of select="."/>
</pre>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
1.1 xml-cocoon2/webapp.tutorial/stylesheets/system/status2html.xsl
Index: status2html.xsl
===================================================================
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:status="http://apache.org/cocoon/status/2.0">
<xsl:template match="status:statusinfo">
<html>
<head>
<title>Cocoon2 status [<xsl:value-of select="@status:host"/>]</title>
</head>
<body bgcolor="white">
<table bgcolor="#000000" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td>
<table bgcolor="#ffffff" noshade="noshade" cellspacing="0" cellpadding="6" width="100%">
<tr>
<td bgcolor="#0086b2" valign="top" align="left">
<img src="images/cocoon.gif" border="0"/>
</td>
<td bgcolor="#0086b2" valign="top" align="right">
<FONT face="arial,helvetica,sanserif" color="#ffffff">
[<xsl:value-of select="@status:host"/>] <xsl:value-of select="@status:date"/>
</FONT>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table bgcolor="#000000" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td bgcolor="#ffffff" valign="top" align="left" colspan="2" height="12">
</td>
</tr>
</table>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="status:group">
<table bgcolor="#000000" noshade="noshade" border="0" cellspacing="2" cellpadding="6" width="100%">
<tr>
<td bgcolor="#0086b2" valign="top" align="left" colspan="2">
<FONT color="#ffffff" face="arial,helvetica,sanserif" size="+1">
-<xsl:value-of select="@status:name"/>
</FONT>
</td>
</tr>
<tr>
<td bgcolor="ffffff" width="100%" colspan="2">
<table bgcolor="#000000" noshade="noshade" border="0" cellspacing="2" cellpadding="6" bordercolor="black" width="100%">
<xsl:apply-templates />
</table>
</td>
</tr>
</table>
<table bgcolor="#000000" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td bgcolor="#ffffff" valign="top" align="left" colspan="2" height="8">
</td>
</tr>
</table>
</xsl:template>
<xsl:template match="status:value">
<tr>
<td bgcolor="#0086b2" valign="top" align="left">
<FONT face="arial,helvetica,sanserif" color="#ffffff">
<xsl:value-of select="@status:name"/>
</FONT>
</td>
<td bgcolor="ffffff" width="100%">
<FONT face="arial,helvetica,sanserif">
<xsl:value-of select="." />
</FONT>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org