ivelin 02/05/19 23:53:17
Modified: src/java/org/apache/cocoon/transformation
AbstractSAXTransformer.java
src/webapp cocoon.xconf.moved sitemap.xmap
src/webapp/WEB-INF cocoon.xconf web.xml
src/webapp/WEB-INF/db cocoondb.data cocoondb.properties
cocoondb.script
src/webapp/docs/samples sample-apps.xml
src/webapp/docs/samples/formvalidation descriptor.xml
src/webapp/docs/samples/slides clean-page.xml lib-page.xml
page.xml
src/webapp/docs/samples/soap fortune.xml
src/webapp/resources/entities book-cocoon-v10.dtd
changes-v10.dtd document-v10.dtd faq-v10.dtd
javadoc-v04draft.dtd specification-v10.dtd
todo-v10.dtd
src/webapp/resources/icons cocoon.ico
src/webapp/samples/common/resources/icons cocoon.ico
src/webapp/samples/common/style/xsl/html simple-xml2html.xsl
src/webapp/samples/hello-world/content/templates
hello-page.vm
src/webapp/samples/hello-world/style/xsl simple-page2vml.xsl
simple-xml2html.xsl
src/webapp/samples/tutorial/docs/dtd changes-v10.dtd
faq-v10.dtd javadoc-v04draft.dtd
specification-v10.dtd todo-v10.dtd
src/webapp/stylesheets simple-samples2html.xsl
simple-xml2html.xsl svg-samples2html.xsl
src/webapp/stylesheets/page simple-page2vml.xsl
src/webapp/sub/stylesheets simple-samples2html.xsl
src/webapp/templates hello-page.vm
src/webapp/tutorial/docs/dtd changes-v10.dtd faq-v10.dtd
javadoc-v04draft.dtd specification-v10.dtd
todo-v10.dtd
src/webapp/welcome welcome.xhtml
Added: lib/optional commons-jxpath.jar
src/java/org/apache/cocoon/acting AbstractXMLFormAction.java
src/java/org/apache/cocoon/transformation
XMLFormTransformer.java
src/webapp/stylesheets/xmlform xmlform2html.xsl
Removed: src/scratchpad/lib commons-JXPath-20020320.jar
src/scratchpad/src/org/apache/cocoon/acting
AbstractXMLFormAction.java
src/scratchpad/src/org/apache/cocoon/transformation
XMLFormTransformer.java
src/scratchpad/src/org/apache/cocoon/validation Schema.java
SchemaFactory.java Validator.java Violation.java
ZNestedBean.java ZTestBean.java
ZValidationTest.java zxmlform-sch-report-test.xml
src/scratchpad/src/org/apache/cocoon/validation/schematron
ActivePattern.java Assert.java Pattern.java
Phase.java Report.java Rule.java
SchematronFactory.java SchematronSchema.java
SchematronValidator.java ValidationResult.java
src/scratchpad/webapp/mount/xmlform README.txt sitemap.xmap
src/scratchpad/webapp/mount/xmlform/schematron
wizard-xmlform-sch-report.xml
src/scratchpad/webapp/mount/xmlform/stylesheets
wizard2html.xsl xmlform2html.xsl
src/scratchpad/webapp/mount/xmlform/wizard README
confirm.xml deployment.xml end.xml start.xml
system.xml userIdentity.xml
Log:
moved XMLForm from scratchpad to main tree
added link to XMLForm Wizard demo from sample-apps page
Revision Changes Path
1.1 xml-cocoon2/lib/optional/commons-jxpath.jar
<<Binary file>>
1.1
xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java
Index: AbstractXMLFormAction.java
===================================================================
/*
* $Header:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/AbstractXMLFormAction.java,v
1.1 2002/05/20 06:53:14 ivelin Exp $
* $Revision: 1.1 $
* $Date: 2002/05/20 06:53:14 $
*
* ====================================================================
* The Apache Software License, Version 1.1
*
*
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation and was
* originally based on software copyright (c) 2001, Plotnix, Inc,
* <http://www.plotnix.com/>.
* For more information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.cocoon.acting;
// Java classes
import java.util.Map;
import java.util.HashMap;
import java.util.SortedSet;
import java.util.Iterator;
import java.util.Properties;
import java.util.Enumeration;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.File;
// XML classes
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.TransformerException;
import org.xml.sax.InputSource;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
// Framework classes
import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.excalibur.pool.Poolable;
// Cocoon classes
import org.apache.cocoon.Constants;
import org.apache.cocoon.environment.Redirector;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.environment.Source;
import org.apache.cocoon.acting.*;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.Context;
// Schematron classes
import org.apache.cocoon.components.validation.SchemaFactory;
import org.apache.cocoon.components.validation.Schema;
import org.apache.cocoon.components.validation.Validator;
import org.apache.cocoon.components.validation.Violation;
// Cocoon Form
import org.apache.cocoon.components.xmlform.Form;
/**
*
* This is the base action class for
* xmlform handling
*
* This action is Poolable which means that
* subclasses of this class should not be
* concerned about thread safety.
* The framework ensures that only one thread
* has access to a concrete instance at any time.
*
* However once an action is complete, the instance
* will be recycled and reused for another request.
*
*
* Several ideas are borrowed from the original work of
* Torsten Curdt.
*
* @author Ivelin Ivanov <[EMAIL PROTECTED]>
*/
public abstract class AbstractXMLFormAction
extends ConfigurableComposerAction
implements Poolable
{
public static final String OBJECT_MAP_NEXT_PAGE = "page";
/**
* The first method which is called
* when an action is invoked.
*
* It is called before population.
*
*
* @return null if the Action is prepared to continue.
* an objectModel map which will be immediately returned by the action.
*
* This method is a good place to handle buttons with Cancel
* kind of semantics. For example
* <pre>return page("input")</pre>
*
*/
protected abstract Map prepare();
/**
* Invoked during the form population process
*
* Provides default implementation, which
* can be extended or replaced by subclasses
*
* Implementations of this method are responsible
* for creating and
* returning the Form object which the action
* is working on.
*
* @return Form the form object this action works with
*
*/
protected Form getForm ()
{
Form form = Form.lookup( getObjectModel(), getFormId() );
if (form != null) return form;
else // create new form
{
form = new Form( getFormId(), getFormModel() );
Validator v = getFormValidator();
form.setValidator ( v );
form.save ( getObjectModel(), getFormScope() );
return form;
}
}
public Map act(Redirector redirector, SourceResolver resolver, Map
objectModel, String src, Parameters params)
throws java.lang.Exception
{
// populate action state objects
redirector_ = redirector;
resolver_ = resolver;
objectModel_ = objectModel;
src_ = src;
params_ = params;
// find and save the action command
findCommand();
// ensure that there is a form available
// through the rest of the flow
Form form = getForm();
// call the subclass prepare()
// give it a chance to get ready for action
Map prepareResult = prepare();
if ( prepareResult != null ) return prepareResult;
// populate form with request parameters
// population is automatically followed by validation by default.
// If this is not the desired behaviour, the Form class can be
subclassed
form.populate( objectModel );
return perform();
}
/**
* Get the command which was submitted with the form.
* It is extracted from the standard cocoon-action-* request parameter
*
*/
public String getCommand()
{
return command_;
}
protected void findCommand()
{
command_ = null;
Enumeration enum = getRequest().getParameterNames ();
while (enum.hasMoreElements ())
{
String paramName = (String) enum.nextElement ();
// search for the command
if ( paramName.startsWith ( Constants.ACTION_PARAM_PREFIX ) )
{
command_ =
paramName.substring ( Constants.ACTION_PARAM_PREFIX.length(),
paramName.length() );
}
}
}
/**
* @return the @view attribute of the xmlform form tag.
* This attribute is used to identify the part(or view)
* of the model which is used in the specific xmlform
* document.
*
*/
public String getFormView()
{
return getForm().getFormView( getObjectModel() );
}
/**
* Called to determine the exit point of an action.
* The pageName is made available in the objectMap,
* which can be then referenced in the pipeline
* @param pageName logical name for a next page
* @return Map a pipeline objectMap containing the pageName
*
*/
protected Map page( String pageName )
{
Map objectModel = new HashMap();
objectModel.put( OBJECT_MAP_NEXT_PAGE, pageName );
return objectModel;
}
/**
* Invoked after form population
* unless a Cancel button was pressed,
* in which case population is skipped and this method
* is invoked immediately
*
* Semanticly similar to Struts Action.perform()
*
* Take appropriate action based on the command
*
*/
public abstract Map perform ();
protected SourceResolver getSourceResolver()
{
return resolver_;
}
protected Redirector getRedirector()
{
return redirector_;
}
protected Map getObjectModel()
{
return objectModel_;
}
protected Parameters getParameters()
{
return params_;
}
protected String getSrc()
{
return src_;
}
protected Request getRequest()
{
return (Request) ( getObjectModel().get(ObjectModelHelper.REQUEST_OBJECT)
);
}
protected Session getSession( boolean shouldCreateNew )
{
return getRequest().getSession( shouldCreateNew );
}
protected Session getSession()
{
return getSession( true );
}
/**
* Extract action parameters and
* instantiate a new validator based on them.
*
* xmlform-validator-schema-ns
* xmlform-validator-schema
*
* Subclasses may override this method
* to use custom validators
*
*/
protected Validator getFormValidator()
{
try
{
// initialize the Validor with a schema file
String schNS =
getParameters().getParameter("xmlform-validator-schema-ns", null);
String schDoc =
getParameters().getParameter("xmlform-validator-schema", null);
// if validator params are not specified, then
// there is no validation by default
if (schNS == null || schDoc == null ) return null;
Source schemaSrc = getSourceResolver().resolve( schDoc );
InputSource is = schemaSrc.getInputSource ();
SchemaFactory schf = SchemaFactory.lookup ( schNS );
Schema sch = schf.compileSchema ( is );
return sch.newValidator();
}
catch ( Exception e)
{
// couldn't load the validator
throw new CascadingRuntimeException( " Failed loading validating
schema ", e );
}
}
/**
* Extract xmlform-model
* action parameter and
* instantiate a new form model it.
*
*
* Subclasses may override this method
* to use custom model instantiation technique
*
*/
protected Object getFormModel()
{
try
{
String modelClassName = getParameters().getParameter("xmlform-model",
null);
Class modelClass = Class.forName ( modelClassName );
Object o = modelClass.newInstance ();
return o;
}
catch ( Exception e)
{
throw new CascadingRuntimeException( " Failed instantiating form
model ", e );
}
}
protected String getFormId()
{
String formId = getParameters().getParameter("xmlform-id", null);
if ( formId == null )
throw new RuntimeException( " xmlform-id not specified " );
else
return formId;
}
protected String getFormScope()
{
String formScope = getParameters().getParameter("xmlform-scope", null);
if ( formScope == null )
{
// default to request scope
formScope = Form.SCOPE_REQUEST;
}
return formScope;
}
// action state objects
private Redirector redirector_;
private SourceResolver resolver_;
private Map objectModel_;
private Parameters params_;
private String src_;
private Request request_;
private Session session_;
private String command_;
}
1.5 +3 -3
xml-cocoon2/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java
Index: AbstractSAXTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/AbstractSAXTransformer.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractSAXTransformer.java 19 Apr 2002 11:02:57 -0000 1.4
+++ AbstractSAXTransformer.java 20 May 2002 06:53:15 -0000 1.5
@@ -124,7 +124,7 @@
*
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
- * @version CVS $Id: AbstractSAXTransformer.java,v 1.4 2002/04/19 11:02:57
cziegeler Exp $
+ * @version CVS $Id: AbstractSAXTransformer.java,v 1.5 2002/05/20 06:53:15
ivelin Exp $
*/
public abstract class AbstractSAXTransformer
extends AbstractTransformer
@@ -430,7 +430,7 @@
/**
* Start DocumentFragment recording.
- * All invoming events are recorded and not forwarded. The resulting
+ * All invoking events are recorded and not forwarded. The resulting
* DocumentFragment can be obtained by the matching endRecording() call.
*/
public void startRecording()
@@ -452,7 +452,7 @@
/**
* Stop DocumentFragment recording.
- * All invoming events are recorded and not forwarded. This method
returns
+ * All invoking events are recorded and not forwarded. This method
returns
* the resulting DocumentFragment.
*/
public DocumentFragment endRecording()
1.1
xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java
Index: XMLFormTransformer.java
===================================================================
/*
============================================================================
The Apache Software License, Version 1.1
============================================================================
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
4. The names "Apache Cocoon" and "Apache Software Foundation" must not be
used to endorse or promote products derived from this software without
prior written permission. For written permission, please contact
[EMAIL PROTECTED]
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
Stefano Mazzocchi <[EMAIL PROTECTED]>. For more information on the Apache
Software Foundation, please see <http://www.apache.org/>.
*/
package org.apache.cocoon.transformation;
import java.io.IOException;
import java.util.Map;
import java.util.List;
import java.util.Iterator;
import java.util.Collection;
import java.util.SortedSet;
import java.util.Stack;
import java.lang.reflect.Array;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
import org.w3c.dom.DocumentFragment;
import org.apache.log.Logger;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.ProcessingException;
import org.apache.cocoon.precept.acting.AbstractPreceptorAction;
import org.apache.cocoon.caching.CacheValidity;
import org.apache.cocoon.caching.NOPCacheValidity;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.transformation.AbstractTransformer;
import org.apache.cocoon.transformation.AbstractSAXTransformer;
import org.apache.cocoon.xml.dom.DOMStreamer;
import org.apache.cocoon.components.validation.Violation;
import org.apache.cocoon.components.xmlform.Form;
/**
* Transforms a document with XMLForm
* elements into a document in the same namespace,
* but with populated values for the XPath references
* to the form's model attributes
*
* The original code was built by Torsten Curdt as
* part of the Preceptor API
*
* @author: Ivelin Ivanov <[EMAIL PROTECTED]>, May 2002
* @author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002
* @author: Torsten Curdt <[EMAIL PROTECTED]>, March 2002
*/
public class XMLFormTransformer extends AbstractSAXTransformer
{
//implements Cacheable {
public final static String NS = "http://xml.apache.org/cocoon/xmlform/2002";
private final static String NS_PREFIX = "xf";
public final static Attributes NOATTR = new AttributesImpl();
private final static String XMLNS_PREFIX = "xmlns";
/**
* The main tag in the XMLForm namespace
* almost all other tags have to appear within the form tag
* The id attribute refers to a xmlform.Form object
* available in the current Request or Session
*
* <form id="form-feedback">
* <output ref="user/age"/>
* <textbox ref="user/name"/>
* </form>
*/
public final static String TAG_FORM = "form";
public final static String TAG_FORM_ATTR_ID = "id";
/**
* the only tag which can be used outside of the form tag
* with reference to the form id,
* <output ref="user/age" id="form-feedback"/>
*/
public final static String TAG_OUTPUT = "output";
public final static String TAG_OUTPUT_ATTR_FORM = TAG_FORM;
/**
* can be used directly under the form tag
* to enlist all field violations or
* within a field tag to enlist only the violations for the field.
* <br>
* <pre>
* <form id="form-feedback">
* <violations/>
* <textbox ref="user/name">
* <violations/>
* </textbox>
* </form>
* </pre>
*
* When used under the forms tag it is transformed to a set of:
* <br>
* <violation ref="user/age">Age must be a positive number
</violation>
* <br>
* and when used within a field it is transformed to a set of:
* <br>
* <violation>Age must be a positive number </violation>
* <br>
* The only difference is that the ref tag is used in the first case,
* while in the second it is omited.
*
*/
public final static String TAG_INSERTVIOLATIONS = "violations";
/** the name of the elements which replace the violations tag */
public final static String TAG_VIOLATION = "violation";
/** action buttons */
public final static String TAG_SUBMIT = "submit";
public final static String TAG_CANCEL = "cancel";
public final static String TAG_RESET = "reset";
public final static String TAG_CAPTION = "caption";
public final static String TAG_TEXTBOX = "textbox";
public final static String TAG_TEXTAREA = "textarea";
public final static String TAG_PASSWORD = "password";
public final static String TAG_SELECTBOOLEAN = "selectBoolean";
public final static String TAG_SELECTONE = "selectOne";
public final static String TAG_SELECTMANY = "selectMany";
/**
* grouping tag
*
* <pre>
* <group ref="address">
* <caption>Shipping Address</caption>
* <input ref="line_1">
* <caption>Address line 1</caption>
* </input>
* <input ref="line_2">
* <caption>Address line 2</caption>
* </input>
* <input ref="postcode">
* <caption>Postcode</caption>
* </input>
* </group>
* </pre>
*
*
*/
public final static String TAG_GROUP = "group";
/**
* repeat tag
*
* <repeat nodeset="/cart/items/item">
* <input ref="." .../><html:br/>
* </repeat>
*
*
*/
public final static String TAG_REPEAT = "repeat";
/**
* this attribute is used within the
* <code>repeat</code> tag
* to represent an XPath node set selector from
* the underlying xmlform model.
*/
public final static String TAG_REPEAT_ATTR_NODESET = "nodeset";
/**
* The current fully expanded reference
* in the form model.
*
*/
private String cannonicalRef = null;
/**
* Tracks the current repeat tag depth,
* when there is one in scope
*/
private int repeatTagDepth = -1;
/**
* The nodeset selector string of the
* currently processed repeat tag (if any)
*/
private String nodeset = null;
/**
* The flag annotating if the transformer is
* working on a repeat tag
*/
private boolean isRecording = false;
/**
* the ref value of the current field
* used by the violations tag
*/
private Stack refStack = null;
/**
* Tracks the current depth of the XML tree
*/
private int currentTagDepth = 0;
/**
* this attribute is used within all field tags
* to represent an XPath reference to the attribute of
* the underlying model.
*/
public final static String TAG_COMMON_ATTR_REF = "ref";
// the current Form being processed
private Form currentForm;
private Object value_;
/**
* Setup the next round.
* The instance variables are initialised.
* @param resolver The current SourceResolver
* @param objectModel The objectModel of the environment.
* @param src The value of the src attribute in the sitemap.
* @param par The parameters from the sitemap.
*/
public void setup(
SourceResolver resolver,
Map objectModel,
String src,
Parameters par)
throws ProcessingException,
SAXException,
IOException
{
super.setup( resolver, objectModel, src, par );
if (request == null)
{
getLogger().debug("no request object");
throw new ProcessingException("no request object");
}
// set the XMLForm namespace as the one
// this transformer is interested to work on
namespaceURI = NS;
// init tracking parameters
currentForm = null;
cannonicalRef = "";
refStack = new Stack();
currentTagDepth = 0;
repeatTagDepth = -1;
isRecording = false;
nodeset = null;
}
/**
* Start processing elements of our namespace.
* This hook is invoked for each sax event with our namespace.
* @param uri The namespace of the element.
* @param name The local name of the element.
* @param raw The qualified name of the element.
* @param attr The attributes of the element.
*/
public void startTransformingElement(String uri,
String name,
String raw,
Attributes attributes )
throws ProcessingException, IOException, SAXException
{
try
{
// avoid endless loop for elements in our namespace
// when outputting the elements themselves
this.ignoreHooksCount = 1;
if (this.getLogger().isDebugEnabled() == true)
{
this.getLogger().debug("BEGIN startTransformingElement uri=" +
uri + ", name=" + name + ", raw=" + raw + ", attr=" + attributes + ")");
}
// top level element in our namespace
// set an xmlns:xf="XMLForm namespace..." attribute
// to explicitely define the prefix to namespace binding
if (currentTagDepth == 0)
{
AttributesImpl atts;
if (attributes == null || attributes.getLength() == 0) {
atts = new AttributesImpl();
} else {
atts = new AttributesImpl(attributes);
}
atts.addAttribute( null, NS_PREFIX, XMLNS_PREFIX + ":" + NS_PREFIX,
"CDATA", NS);
attributes = atts;
}
// track the tree depth
++currentTagDepth;
// if within a repeat tag, keep recording
// when recording, nothing is actively processed
if (isRecording)
{
// just record the SAX event
super.startElement( uri, name, raw, attributes);
}
// when a new repeat tag is discovered
// start recording
// the repeat will be unrolled after the repeat tag ends
else if (TAG_REPEAT.equals( name) )
{
repeatTagDepth = currentTagDepth;
isRecording = true;
// get the nodeset selector string
nodeset = attributes.getValue(TAG_REPEAT_ATTR_NODESET);
if (nodeset == null)
{
throw new SAXException( name + " element should provide a '" +
TAG_REPEAT_ATTR_NODESET + "' attribute" );
}
// open the repeat tag in the output document
super.startElement( uri, name, raw, attributes);
// and start recording its content
startRecording();
}
else // if not a repeat tag
{
// if this tag has a "ref" attribute, then
// add its value to the refStack
String aref = attributes.getValue( TAG_COMMON_ATTR_REF );
if ( aref != null )
{
// put on top of the ref stack the full ref
// append the new ref to the last stack top if not referencing the
root
cannonicalRef = aref.startsWith ("/") ? aref : ( ((Entry)
refStack.peek()).getValue() + "/" + aref );
Entry entry = new Entry( new Integer(currentTagDepth),
cannonicalRef);
refStack.push( entry );
// replace the ref attribute's value(path) with its full cannonical
form
AttributesImpl atts = new AttributesImpl( attributes );
int refIdx = atts.getIndex ( TAG_COMMON_ATTR_REF );
atts.setValue ( refIdx, cannonicalRef );
attributes = atts;
}
// match tag name and apply transformation logic
if (TAG_FORM.equals(name))
{
startElementForm( uri, name, raw, attributes );
}
else if ( TAG_OUTPUT.equals(name) )
{
startElementOutput( uri, name, raw, attributes );
} // end if TAG_OUTPUT
else if ( TAG_CAPTION.equals( name ) )
{
super.startElement( uri, name, raw, attributes);
this.ignoreHooksCount = 0;
}
// if the currentForm is still not available
// then we can't process nested form tags
else if (currentForm != null)
{
if (TAG_INSERTVIOLATIONS.equals(name))
{
startElementViolations( uri, name, raw, attributes );
} // end if TAG_INSERTVIOLATIONS
else if (
TAG_TEXTBOX.equals(name) ||
TAG_TEXTAREA.equals(name) ||
TAG_PASSWORD.equals(name) ||
TAG_SELECTBOOLEAN.equals(name) ||
TAG_SELECTONE.equals(name))
{
startElementSimpleField( uri, name, raw, attributes,
currentForm );
}
else if (TAG_SELECTMANY.equals(name))
{
startElementSimpleField( uri, name, raw, attributes, currentForm
);
}
else if (
TAG_SUBMIT.equals(name) ||
TAG_CANCEL.equals(name) ||
TAG_RESET.equals(name) )
{
super.startElement(uri, name, raw, attributes);
}
else
{
getLogger().error("unknown element [" + String.valueOf(name) +
"]");
super.startElement(uri, name, raw, attributes);
}
}
} // end else (not a repeat tag)
}
finally
{
// reset ignore counter
this.ignoreHooksCount = 0;
}
if (this.getLogger().isDebugEnabled() == true)
{
this.getLogger().debug("END startTransformingElement");
}
} // end of startTransformingElement
protected void startElementForm(String uri, String name, String raw,
Attributes attributes) throws SAXException
{
String id = attributes.getValue(TAG_FORM_ATTR_ID);
if ( currentForm != null )
{
String error = "Form nodes should not be nested ! Current form [id=" +
currentForm.getId() + "], nested form [id=" + String.valueOf(id) + "]";
getLogger().error( error );
throw new SAXException( error );
}
super.startElement(uri, name, raw, attributes);
// load up the referenced form
currentForm = Form.lookup( objectModel, id );
// if the form wasn't found, we're in trouble
if (currentForm == null)
{
getLogger().error("could not find form [id=" + String.valueOf(id) +
"]");
}
} // end of startElementForm
protected void startElementViolations(String uri, String name, String raw,
Attributes attributes) throws SAXException
{
SortedSet violations = currentForm.getViolations();
// if there are no violations, there is nothing to show
if (violations == null) return;
// if we're immediately under the form tag
// and parent "ref" attribute is not available
if ( refStack.isEmpty () )
{
for (Iterator it = violations.iterator(); it.hasNext();)
{
Violation violation = (Violation) it.next();
// render <violation> tag
// set the ref attribute
AttributesImpl atts;
if (attributes == null || attributes.getLength() == 0) {
atts = new AttributesImpl();
} else {
atts = new AttributesImpl(attributes);
}
// atts.addAttribute( NS, TAG_COMMON_ATTR_REF, NS_PREFIX + ":" +
TAG_COMMON_ATTR_REF, "CDATA", violation.getPath());
atts.addAttribute( null, TAG_COMMON_ATTR_REF, TAG_COMMON_ATTR_REF,
"CDATA", violation.getPath());
// now start the element
super.startElement(uri, TAG_VIOLATION, NS_PREFIX + ":" +
TAG_VIOLATION, atts);
// set message
String vm = violation.getMessage();
super.characters( vm.toCharArray(), 0, vm.length());
super.endElement(uri, TAG_VIOLATION, NS_PREFIX + ":" +
TAG_VIOLATION);
}
} // end if (currentRef_ == null)
else
{
Entry entry = (Entry) refStack.peek ();
String currentRef = (String) entry.getValue ();
Violation v = new Violation();
v.setPath( currentRef );
Collection restViolations = violations.tailSet ( v );
Iterator rviter = restViolations.iterator ();
while ( rviter.hasNext () )
{
Violation nextViolation = (Violation) rviter.next ();
// we're only interested in violations
// with matching reference
if ( !currentRef.equals (nextViolation.getPath () ) ) break;
// render <violation> tag
super.startElement(uri, TAG_VIOLATION, NS_PREFIX + ":" +
TAG_VIOLATION, attributes );
// set message
String vm = nextViolation.getMessage();
super.characters( vm.toCharArray(), 0, vm.length());
super.endElement(uri, TAG_VIOLATION, NS_PREFIX + ":" +
TAG_VIOLATION);
}
}
} // end of startElementViolations
/**
* Since the ouput tag is the only one which can be used
* outside of a form tag, it needs some special treatment
*
*/
protected void startElementOutput(String uri, String name, String raw,
Attributes attributes)
throws SAXException
{
// we will either use the locally referenced form id
// or the global id. At least one of the two must be available
Form form = null;
String formAttr = attributes.getValue( TAG_OUTPUT_ATTR_FORM );
if (formAttr == null)
{
if (currentForm == null)
{
throw new SAXException( "When used outside of a form tag, the
output tag requires an '" + TAG_OUTPUT_ATTR_FORM + "' attribute" );
}
form = currentForm;
}
else
{
form = Form.lookup( objectModel, formAttr );
}
startElementSimpleField( uri, name, raw, attributes, form );
} // end of startElementOutput
protected void startElementSimpleField(String uri, String name, String raw,
Attributes attributes, Form form)
throws SAXException
{
String ref = attributes.getValue(TAG_COMMON_ATTR_REF);
if (ref == null)
{
throw new SAXException( name + " element should provide a '" +
TAG_COMMON_ATTR_REF + "' attribute" );
}
if ( form == null)
{
throw new SAXException( name + " element should be either nested
within a form tag or provide a form attribute" );
}
getLogger().debug("[" + String.valueOf( name ) + "] getting value from
form [id=" + form.getId() + ", ref=" + String.valueOf(ref) + "]");
value_ = form.getValue( ref );
// we will only forward the SAX event once we know
// that the value of the tag is available
super.startElement(uri, name, raw, attributes);
getLogger().debug("Value of form [id=" + form.getId() + ", ref=" +
String.valueOf(ref) + "] = [" + value_ + "]") ;
// render the value subelement(s)
if (value_ instanceof Collection)
{
Iterator i=((Collection) value_).iterator();
while (i.hasNext())
{
renderValueSubElement( i.next() );
}
}
else if ( value_ != null && value_.getClass().isArray () )
{
int len = Array.getLength ( value_ );
for (int i = 0; i < len; i++ )
{
renderValueSubElement( Array.get ( value_, i ) );
}
}
else
{
renderValueSubElement( value_ );
}
} // end of startElementSimpleField
/**
* Outputs a <xf:value> element.
* Used when transforming XMLForm elements
* with reference to the model
*
* @param vobj provides the text content
* within the <xf:value> element
*
*/
protected void renderValueSubElement( Object vobj )
throws SAXException
{
super.startElement( NS, "value", NS_PREFIX + ":" + "value", NOATTR);
if (vobj != null)
{
String v = String.valueOf( vobj );
super.characters(v.toCharArray(),0,v.length());
}
super.endElement( NS, "value", NS_PREFIX + ":" + "value" );
}
/**
* Start processing elements of our namespace.
* This hook is invoked for each sax event with our namespace.
* @param uri The namespace of the element.
* @param name The local name of the element.
* @param raw The qualified name of the element.
*/
public void endTransformingElement(
String uri,
String name,
String raw)
throws ProcessingException, IOException, SAXException
{
if (this.getLogger().isDebugEnabled() == true)
{
this.getLogger().debug("BEGIN endTransformingElement uri=" + uri + ",
name=" + name + ", raw=" + raw + ")");
}
try
{
// avoid endless loop for elements in our namespace
this.ignoreHooksCount = 1;
// when the end of an active repeat tag is reached
// stop recording, unroll the repeat tag content
// for each node in the node set,
// then close the repeat tag
if (TAG_REPEAT.equals( name) && (repeatTagDepth == currentTagDepth))
{
isRecording = false;
DocumentFragment docFragment = endRecording();
unrollRepeatTag( docFragment );
nodeset = null;
// close the repeat tag
super.endElement(uri, name, raw);
}
// if within a repeat tag, keep recording
// when recording, nothing is actively processed
else if (isRecording)
{
// just record the SAX event
super.endElement(uri, name, raw);
}
else // if not a repeat tag
{
// keep the ref stack in synch with the tree navigation
if ( !refStack.isEmpty () )
{
Entry entry = (Entry) refStack.peek();
Integer refDepth = (Integer) entry.getKey ();
if ( currentTagDepth <= refDepth.intValue () )
{
refStack.pop();
cannonicalRef = refStack.isEmpty () ? "" : (String)( (Entry)
(refStack.peek ()) ).getValue();
}
}
if (TAG_INSERTVIOLATIONS.equals(name))
{
// all violations were rendered completely in the startElement
method
}
else if (TAG_FORM.equals(name))
{
// nullify currentForm since we're getting out of its scope
currentForm = null;
super.endElement(uri, name, raw);
}
else if (TAG_OUTPUT.equals(name) ||
TAG_TEXTBOX.equals(name) ||
TAG_PASSWORD.equals(name) ||
TAG_SELECTBOOLEAN.equals(name) ||
TAG_SELECTONE.equals(name) )
{
super.endElement(uri, name, raw);
}
else if (TAG_SELECTMANY.equals(name))
{
super.endElement(uri, name, raw);
}
else if (TAG_SUBMIT.equals(name))
{
super.endElement(uri, name, raw);
}
else if ( TAG_CAPTION.equals( name ) )
{
super.endElement(uri, name, raw);
}
else
{
getLogger().error("unknown element [" + String.valueOf(name) + "]");
super.endElement(uri, name, raw);
}
} // else (not in a recording tag)
}
finally
{
// reset ignore hooks counter
this.ignoreHooksCount = 0;
// track the tree depth
--currentTagDepth;
}
if (this.getLogger().isDebugEnabled() == true)
{
this.getLogger().debug("END endTransformingElement");
}
} // end of endTransformingElement
/**
* Unroll the repeat tag.
* For each node in the repeat tag's nodeset selector result,
* render a <code>group</code> tag with a <code>ref</code>
* attribute which points to the location of the current node
* in the nodeset. Within each <code>group</code> tag,
* output the content of the repeat tag,
* by resolving all form model references within nested xmlform tags,
* relative to the <code>ref</code> attribute of the <code>group</code>
element.
*
* @param docFragment the content of the repeat tag
* @param nodeset the nodeset selector string
*/
protected void unrollRepeatTag( DocumentFragment docFragment )
throws SAXException
{
int oldIgnoreHooksCount = ignoreHooksCount;
try
{
// reset ignore hooks counter
this.ignoreHooksCount = 0;
Collection locations = currentForm.locate( nodeset );
Iterator iter = locations.iterator();
// iterate over each node in the nodeset
while ( iter.hasNext() )
{
String nextNodeLocation = (String) iter.next ();
// set the ref attribute to point to the current node
AttributesImpl atts = new AttributesImpl();
atts.addAttribute( null, TAG_COMMON_ATTR_REF, TAG_COMMON_ATTR_REF,
"CDATA", nextNodeLocation);
super.startElement(NS, TAG_GROUP, NS_PREFIX + ":" + TAG_GROUP, atts);
if (value_ != null)
{
// stream back the recorder repeat content
DOMStreamer streamer = new DOMStreamer( this, this);
streamer.stream( docFragment );
}
super.endElement( NS, TAG_GROUP, NS_PREFIX + ":" + TAG_GROUP );
}
}
finally
{
ignoreHooksCount = oldIgnoreHooksCount;
}
} // unrollRepeatTag
/**
* refStack entry.
*/
private static class Entry implements Map.Entry {
Object key;
Object value;
Entry(Object key, Object value) {
this.key = key;
this.value = value;
}
// Map.Entry Ops
public Object getKey() {
return key;
}
public Object getValue() {
return value;
}
public Object setValue(Object value) {
Object oldValue = this.value;
this.value = value;
return oldValue;
}
public boolean equals(Object o) {
if (!(o instanceof Map.Entry))
return false;
Map.Entry e = (Map.Entry)o;
return (key==null ? e.getKey()==null : key.equals(e.getKey())) &&
(value==null ? e.getValue()==null : value.equals(e.getValue()));
}
public int hashCode() {
return getKey().hashCode () ^ (value==null ? 0 : value.hashCode());
}
public String toString() {
return key+"="+value;
}
}
}
1.2 +1 -1 xml-cocoon2/src/webapp/cocoon.xconf.moved
Index: cocoon.xconf.moved
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/cocoon.xconf.moved,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cocoon.xconf.moved 21 Mar 2002 08:35:27 -0000 1.1
+++ cocoon.xconf.moved 20 May 2002 06:53:15 -0000 1.2
@@ -8,4 +8,4 @@
We apologize for the inconvenience.
-Thank you.
\ No newline at end of file
+Thank you.
1.52 +172 -193 xml-cocoon2/src/webapp/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/sitemap.xmap,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- sitemap.xmap 13 May 2002 18:12:18 -0000 1.51
+++ sitemap.xmap 20 May 2002 06:53:15 -0000 1.52
@@ -1,5 +1,4 @@
-<?xml version="1.0"?>
-
+<?xml version="1.0" encoding="UTF-8"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!--
This is the 'heart' of Cocoon. The sitemap maps URI space to
@@ -53,37 +52,29 @@
-->
<map:generators default="file">
- <map:generator name="file"
src="org.apache.cocoon.generation.FileGenerator"
- label="content,data"
- logger="sitemap.generator.file"
- pool-max="32" pool-min="8" pool-grow="4"/>
-
- <map:generator name="serverpages"
src="org.apache.cocoon.generation.ServerPagesGenerator"
- label="content,data"
- logger="sitemap.generator.serverpages"
- pool-max="32" pool-min="4" pool-grow="2"/>
+ <map:generator label="content,data" logger="sitemap.generator.file"
name="file" pool-grow="4" pool-max="32" pool-min="8"
src="org.apache.cocoon.generation.FileGenerator"/>
+
+ <map:generator label="content,data"
logger="sitemap.generator.serverpages" name="serverpages" pool-grow="2"
pool-max="32" pool-min="4"
src="org.apache.cocoon.generation.ServerPagesGenerator"/>
- <map:generator name="directory"
src="org.apache.cocoon.generation.DirectoryGenerator"
- logger="sitemap.generator.directory"
- label="content,data"
- pool-max="16" pool-min="2" pool-grow="2"/>
-
- <map:generator name="request"
src="org.apache.cocoon.generation.RequestGenerator"
- logger="sitemap.generator.request"
- label="data"
- pool-max="16" pool-min="2" pool-grow="2"/>
-
- <map:generator name="status"
src="org.apache.cocoon.generation.StatusGenerator"
- logger="sitemap.generator.status"
- label="data"
- pool-max="16" pool-min="2" pool-grow="2"/>
-
- <map:generator name="imagedirectory"
logger="sitemap.generator.imagedirectory" label="content,data"
-
src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>
-
- <map:generator name="extractor" logger="sitemap.generator.extractor"
label="data"
-
src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
- </map:generators>
+ <map:generator label="content,data" logger="sitemap.generator.directory"
name="directory" pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.generation.DirectoryGenerator"/>
+
+ <map:generator label="data" logger="sitemap.generator.request"
name="request" pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.generation.RequestGenerator"/>
+
+ <map:generator label="data" logger="sitemap.generator.status"
name="status" pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.generation.StatusGenerator"/>
+
+ <map:generator label="content,data"
logger="sitemap.generator.imagedirectory" name="imagedirectory"
src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>
+
+ <map:generator label="data" logger="sitemap.generator.extractor"
name="extractor" src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
+
+ <map:generator label="content,data" name="html"
src="org.apache.cocoon.generation.HTMLGenerator"/>
+
+ <map:generator label="content,data" name="jsp"
src="org.apache.cocoon.generation.JspGenerator"/>
+ <map:generator label="content,data" name="stream"
src="org.apache.cocoon.generation.StreamGenerator"/>
+
+ <map:generator label="content,data" name="script"
src="org.apache.cocoon.generation.ScriptGenerator"/>
+
+ <map:generator label="content,data" name="velocity"
src="org.apache.cocoon.generation.VelocityGenerator"/>
+</map:generators>
<!--
Transformers can be placed inside the pipeline between the generator
@@ -94,9 +85,7 @@
configuration.
-->
<map:transformers default="xslt">
- <map:transformer name="xslt"
src="org.apache.cocoon.transformation.TraxTransformer"
- logger="sitemap.transformer.xslt"
- pool-max="32" pool-min="8" pool-grow="2">
+ <map:transformer logger="sitemap.transformer.xslt" name="xslt"
pool-grow="2" pool-max="32" pool-min="8"
src="org.apache.cocoon.transformation.TraxTransformer">
<use-request-parameters>false</use-request-parameters>
<use-browser-capabilities-db>false</use-browser-capabilities-db>
<use-deli>false</use-deli>
@@ -114,36 +103,26 @@
<transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory>
</map:transformer-->
- <map:transformer name="log"
src="org.apache.cocoon.transformation.LogTransformer"
- logger="sitemap.transformer.log"
- pool-max="16" pool-min="2" pool-grow="2"/>
+ <map:transformer logger="sitemap.transformer.log" name="log"
pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.transformation.LogTransformer"/>
- <map:transformer name="xinclude"
src="org.apache.cocoon.transformation.XIncludeTransformer"
- logger="sitemap.transformer.xinclude"
- pool-max="16" pool-min="2" pool-grow="2"/>
+ <map:transformer logger="sitemap.transformer.xinclude" name="xinclude"
pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.transformation.XIncludeTransformer"/>
- <map:transformer name="cinclude"
src="org.apache.cocoon.transformation.CIncludeTransformer"
- logger="sitemap.transformer.cinclude"
- pool-max="16" pool-min="2" pool-grow="2"/>
+ <map:transformer logger="sitemap.transformer.cinclude" name="cinclude"
pool-grow="2" pool-max="16" pool-min="2"
src="org.apache.cocoon.transformation.CIncludeTransformer"/>
- <map:transformer name="sql" logger="sitemap.transformer.sql"
- src="org.apache.cocoon.transformation.SQLTransformer"/>
+ <map:transformer logger="sitemap.transformer.sql" name="sql"
src="org.apache.cocoon.transformation.SQLTransformer"/>
- <map:transformer name="extractor"
logger="sitemap.transformer.extractor"
-
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
+ <map:transformer logger="sitemap.transformer.extractor" name="extractor"
src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
- <map:transformer name="filter"
logger="sitemap.transformer.filter"
-
src="org.apache.cocoon.transformation.FilterTransformer"/>
+ <map:transformer logger="sitemap.transformer.filter" name="filter"
src="org.apache.cocoon.transformation.FilterTransformer"/>
- <map:transformer name="writeDOMsession"
logger="sitemap.transformer.writeDOMsession"
-
src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>
+ <map:transformer logger="sitemap.transformer.writeDOMsession"
name="writeDOMsession"
src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>
- <map:transformer name="readDOMsession"
logger="sitemap.transformer.readDOMsession"
-
src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
- <map:transformer name="encodeURL"
logger="sitemap.transformer.encodeURL"
-
src="org.apache.cocoon.transformation.EncodeURLTransformer"/>
+ <map:transformer logger="sitemap.transformer.readDOMsession"
name="readDOMsession"
src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
+ <map:transformer logger="sitemap.transformer.encodeURL" name="encodeURL"
src="org.apache.cocoon.transformation.EncodeURLTransformer"/>
- </map:transformers>
+
+ <map:transformer name="xt"
src="org.apache.cocoon.transformation.XTTransformer"/>
+</map:transformers>
<!--
Readers are an exception to the above rule that a pipline need to
@@ -154,58 +133,55 @@
reader. They are useful for delivering binary content like images.
-->
<map:readers default="resource">
- <map:reader name="resource"
src="org.apache.cocoon.reading.ResourceReader"
- logger="sitemap.reader.resource"
- pool-max="32"/>
- </map:readers>
+ <map:reader logger="sitemap.reader.resource" name="resource"
pool-max="32" src="org.apache.cocoon.reading.ResourceReader"/>
+
+ <map:reader name="jsp" src="org.apache.cocoon.reading.JSPReader"/>
+</map:readers>
<!--
Serializers consume SAX events and produce a character stream. Every
pipeline needs to be terminated by a serializer.
-->
<map:serializers default="html">
- <map:serializer name="links"
src="org.apache.cocoon.serialization.LinkSerializer"
- logger="sitemap.serializer.links"/>
+ <map:serializer logger="sitemap.serializer.links" name="links"
src="org.apache.cocoon.serialization.LinkSerializer"/>
+
+ <map:serializer logger="sitemap.serializer.xml" mime-type="text/xml"
name="xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
- <map:serializer name="xml"
src="org.apache.cocoon.serialization.XMLSerializer"
- mime-type="text/xml"
- logger="sitemap.serializer.xml"/>
-
- <map:serializer name="html"
src="org.apache.cocoon.serialization.HTMLSerializer"
- mime-type="text/html"
- logger="sitemap.serializer.html"
- pool-max="32" pool-min="4" pool-grow="4">
+ <map:serializer logger="sitemap.serializer.html" mime-type="text/html"
name="html" pool-grow="4" pool-max="32" pool-min="4"
src="org.apache.cocoon.serialization.HTMLSerializer">
<buffer-size>1024</buffer-size>
</map:serializer>
- <map:serializer name="vrml" mime-type="model/vrml"
logger="sitemap.serializer.vrml"
- src="org.apache.cocoon.serialization.TextSerializer"/>
+ <map:serializer logger="sitemap.serializer.vrml" mime-type="model/vrml"
name="vrml" src="org.apache.cocoon.serialization.TextSerializer"/>
- <map:serializer name="wml" mime-type="text/vnd.wap.wml"
logger="sitemap.serializer.wml"
- src="org.apache.cocoon.serialization.XMLSerializer">
+ <map:serializer logger="sitemap.serializer.wml"
mime-type="text/vnd.wap.wml" name="wml"
src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
<doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
<encoding>ASCII</encoding>
<omit-xml-declaration>yes</omit-xml-declaration>
</map:serializer>
- <map:serializer name="svgxml" mime-type="image/svg-xml"
logger="sitemap.serializer.svgxml"
- src="org.apache.cocoon.serialization.XMLSerializer">
+ <map:serializer logger="sitemap.serializer.svgxml"
mime-type="image/svg-xml" name="svgxml"
src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
</map:serializer>
- <map:serializer name="xhtml" mime-type="text/html"
logger="sitemap.serializer.xhtml"
- src="org.apache.cocoon.serialization.XMLSerializer"
- pool-max="64" pool-min="2" pool-grow="2">
+ <map:serializer logger="sitemap.serializer.xhtml" mime-type="text/html"
name="xhtml" pool-grow="2" pool-max="64" pool-min="2"
src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
<encoding>UTF-8</encoding>
</map:serializer>
- <map:serializer name="text" mime-type="text/text"
logger="sitemap.serializer.text"
- src="org.apache.cocoon.serialization.TextSerializer"/>
- </map:serializers>
+ <map:serializer logger="sitemap.serializer.text" mime-type="text/text"
name="text" src="org.apache.cocoon.serialization.TextSerializer"/>
+
+ <map:serializer mime-type="application/pdf" name="fo2pdf"
src="org.apache.cocoon.serialization.FOPSerializer"/>
+ <map:serializer mime-type="application/postscript" name="fo2ps"
src="org.apache.cocoon.serialization.FOPSerializer"/>
+ <map:serializer mime-type="vnd.hp-PCL" name="fo2pcl"
src="org.apache.cocoon.serialization.FOPSerializer"/>
+
+ <map:serializer mime-type="image/jpeg" name="svg2jpeg"
src="org.apache.cocoon.serialization.SVGSerializer">
+ <parameter name="quality" type="float" value="0.9"/>
+ </map:serializer>
+ <map:serializer mime-type="image/png" name="svg2png"
src="org.apache.cocoon.serialization.SVGSerializer"/>
+</map:serializers>
<!--
Matchers are executed during pipeline setup. They decide if a
@@ -220,35 +196,26 @@
during pipeline setup.
-->
<map:matchers default="wildcard">
- <map:matcher name="wildcard"
src="org.apache.cocoon.matching.WildcardURIMatcher"
- logger="sitemap.matcher.wildcard"/>
+ <map:matcher logger="sitemap.matcher.wildcard" name="wildcard"
src="org.apache.cocoon.matching.WildcardURIMatcher"/>
- <map:matcher name="regexp"
src="org.apache.cocoon.matching.RegexpURIMatcher"
- logger="sitemap.matcher.regexp"/>
- <map:matcher name="request-parameter"
logger="sitemap.matcher.request-parameter"
- src="org.apache.cocoon.matching.RequestParameterMatcher"/>
+ <map:matcher logger="sitemap.matcher.regexp" name="regexp"
src="org.apache.cocoon.matching.RegexpURIMatcher"/>
+ <map:matcher logger="sitemap.matcher.request-parameter"
name="request-parameter"
src="org.apache.cocoon.matching.RequestParameterMatcher"/>
- <map:matcher name="cookie" logger="sitemap.matcher.cookie"
- src="org.apache.cocoon.matching.CookieMatcher"/>
+ <map:matcher logger="sitemap.matcher.cookie" name="cookie"
src="org.apache.cocoon.matching.CookieMatcher"/>
- <map:matcher name="header" logger="sitemap.matcher.header"
- src="org.apache.cocoon.matching.HeaderMatcher"/>
+ <map:matcher logger="sitemap.matcher.header" name="header"
src="org.apache.cocoon.matching.HeaderMatcher"/>
- <map:matcher name="parameter" logger="sitemap.matcher.parameter"
- src="org.apache.cocoon.matching.ParameterMatcher"/>
+ <map:matcher logger="sitemap.matcher.parameter" name="parameter"
src="org.apache.cocoon.matching.ParameterMatcher"/>
- <map:matcher name="sessionstate" logger="sitemap.matcher.sessionstate"
-
src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
+ <map:matcher logger="sitemap.matcher.sessionstate" name="sessionstate"
src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
<attribute-name>org.apache.cocoon.SessionState</attribute-name>
</map:matcher>
- <map:matcher name="next-page" logger="sitemap.matcher.next-page"
-
src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
+ <map:matcher logger="sitemap.matcher.next-page" name="next-page"
src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
<parameter-name>next-state</parameter-name>
</map:matcher>
- <map:matcher name="referer-match" logger="sitemap.matcher.referer-match"
- src="org.apache.cocoon.matching.WildcardHeaderMatcher">
+ <map:matcher logger="sitemap.matcher.referer-match" name="referer-match"
src="org.apache.cocoon.matching.WildcardHeaderMatcher">
<header-name>referer</header-name>
</map:matcher>
</map:matchers>
@@ -263,8 +230,7 @@
during pipeline setup.
-->
<map:selectors default="browser">
- <map:selector name="browser" logger="sitemap.selector.browser"
- src="org.apache.cocoon.selection.BrowserSelector">
+ <map:selector logger="sitemap.selector.browser" name="browser"
src="org.apache.cocoon.selection.BrowserSelector">
<!-- # 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; ...")
@@ -285,34 +251,28 @@
<browser name="netscape" useragent="Mozilla"/>
</map:selector>
- <map:selector name="request-parameter"
logger="sitemap.selector.request-parameter"
- src="org.apache.cocoon.selection.RequestParameterSelector">
+ <map:selector logger="sitemap.selector.request-parameter"
name="request-parameter"
src="org.apache.cocoon.selection.RequestParameterSelector">
<!-- Define now which request parameter to use; or do it later,
when using this selector, via "parameter-name" parameter.
<parameter-name>myparam</parameter-name>
-->
</map:selector>
- <map:selector name="request-attribute"
logger="sitemap.selector.request-attribute"
- src="org.apache.cocoon.selection.RequestAttributeSelector">
+ <map:selector logger="sitemap.selector.request-attribute"
name="request-attribute"
src="org.apache.cocoon.selection.RequestAttributeSelector">
<!-- <attribute-name>myparam</attribute-name> -->
</map:selector>
- <map:selector name="session-attribute"
logger="sitemap.selector.session-attribute"
- src="org.apache.cocoon.selection.SessionAttributeSelector">
+ <map:selector logger="sitemap.selector.session-attribute"
name="session-attribute"
src="org.apache.cocoon.selection.SessionAttributeSelector">
<!-- <attribute-name>myparam</attribute-name> -->
</map:selector>
- <map:selector name="parameter" logger="sitemap.selector.parameter"
- src="org.apache.cocoon.selection.ParameterSelector"/>
+ <map:selector logger="sitemap.selector.parameter" name="parameter"
src="org.apache.cocoon.selection.ParameterSelector"/>
- <map:selector name="header" logger="sitemap.selector.header"
- src="org.apache.cocoon.selection.HeaderSelector">
+ <map:selector logger="sitemap.selector.header" name="header"
src="org.apache.cocoon.selection.HeaderSelector">
<!-- <header-name>myparam</header-name> -->
</map:selector>
- <map:selector name="host" logger="sitemap.selector.host"
- src="org.apache.cocoon.selection.HostSelector"/>
+ <map:selector logger="sitemap.selector.host" name="host"
src="org.apache.cocoon.selection.HostSelector"/>
</map:selectors>
<!--
@@ -328,35 +288,26 @@
during pipeline setup.
-->
<map:actions>
- <map:action name="add-employee"
src="org.apache.cocoon.acting.DatabaseAddAction"
- logger="sitemap.action.add-employee"/>
+ <map:action logger="sitemap.action.add-employee" name="add-employee"
src="org.apache.cocoon.acting.DatabaseAddAction"/>
- <map:action name="del-employee"
src="org.apache.cocoon.acting.DatabaseDeleteAction"
- logger="sitemap.action.del-employee"/>
+ <map:action logger="sitemap.action.del-employee" name="del-employee"
src="org.apache.cocoon.acting.DatabaseDeleteAction"/>
- <map:action name="upd-employee"
src="org.apache.cocoon.acting.DatabaseUpdateAction"
- logger="sitemap.action.upd-employee"/>
+ <map:action logger="sitemap.action.upd-employee" name="upd-employee"
src="org.apache.cocoon.acting.DatabaseUpdateAction"/>
<!-- LangSelect action is deprecated. Use LocaleAction instead -->
<!-- Locale Action is moved to /samples/i18n/sitemap.xmap -->
- <map:action name="request" logger="sitemap.action.request"
- src="org.apache.cocoon.acting.RequestParamAction"/>
+ <map:action logger="sitemap.action.request" name="request"
src="org.apache.cocoon.acting.RequestParamAction"/>
- <map:action name="form-validator" logger="sitemap.action.form-validator"
- src="org.apache.cocoon.acting.FormValidatorAction"/>
+ <map:action logger="sitemap.action.form-validator" name="form-validator"
src="org.apache.cocoon.acting.FormValidatorAction"/>
- <map:action name="session-state" logger="sitemap.action.session-state"
- src="org.apache.cocoon.acting.SessionStateAction"/>
+ <map:action logger="sitemap.action.session-state" name="session-state"
src="org.apache.cocoon.acting.SessionStateAction"/>
- <map:action name="session-isvalid" logger="sitemap.action.session-isvalid"
- src="org.apache.cocoon.acting.SessionIsValidAction"/>
+ <map:action logger="sitemap.action.session-isvalid"
name="session-isvalid" src="org.apache.cocoon.acting.SessionIsValidAction"/>
- <map:action name="resource-exists" logger="sitemap.action.resource-exists"
- src="org.apache.cocoon.acting.ResourceExistsAction"/>
+ <map:action logger="sitemap.action.resource-exists"
name="resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"/>
- <map:action name="set-header" logger="sitemap.action.set-header"
- src="org.apache.cocoon.acting.HttpHeaderAction"/>
+ <map:action logger="sitemap.action.set-header" name="set-header"
src="org.apache.cocoon.acting.HttpHeaderAction"/>
</map:actions>
</map:components>
@@ -368,16 +319,16 @@
orthogonal to pipelines. Please refer to the docs.
-->
<map:views>
- <map:view name="content" from-label="content">
+ <map:view from-label="content" name="content">
<map:serialize type="xml"/>
</map:view>
- <map:view name="pretty-content" from-label="data">
+ <map:view from-label="data" name="pretty-content">
<map:transform src="stylesheets/simple-xml2html.xsl"/>
<map:serialize type="html"/>
</map:view>
- <map:view name="links" from-position="last">
+ <map:view from-position="last" name="links">
<map:serialize type="links"/>
</map:view>
@@ -404,7 +355,7 @@
</map:resource>
<map:resource name="dynamic-page">
- <map:generate type="serverpages" src="{target}.xsp"/>
+ <map:generate src="{target}.xsp" type="serverpages"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source" value="{target}.xsp"/>
</map:transform>
@@ -414,7 +365,7 @@
<map:resource name="dynamic-page1">
<!-- print all current sitemap parameters to log -->
<map:act type="session-state">
- <map:parameter name="new-state" value="{../0}" />
+ <map:parameter name="new-state" value="{../0}"/>
<!--
use the complete string that was matched as a parameter. Compare
this with the target parameter below. There the third
@@ -440,7 +391,7 @@
</map:resource>
<map:resource name="simple-page">
- <map:generate type="file" src="{target}.xml"/>
+ <map:generate src="{target}.xml" type="file"/>
<map:transform src="stylesheets/page/simple-page2html.xsl">
<map:parameter name="view-source" value="{target}.xml"/>
</map:transform>
@@ -458,9 +409,9 @@
<map:action-sets>
<map:action-set name="employee">
- <map:act type="add-employee" action="Add"/>
- <map:act type="del-employee" action="Delete"/>
- <map:act type="upd-employee" action="Update"/>
+ <map:act action="Add" type="add-employee"/>
+ <map:act action="Delete" type="del-employee"/>
+ <map:act action="Update" type="upd-employee"/>
</map:action-set>
</map:action-sets>
@@ -497,7 +448,7 @@
<!-- MyApp - minimal Cocoon Application Mount -->
<map:pipeline>
<map:match pattern="myapp/**">
- <map:mount uri-prefix="myapp" src="myapp/" check-reload="yes"/>
+ <map:mount check-reload="yes" src="myapp/" uri-prefix="myapp"/>
</map:match>
</map:pipeline>
@@ -526,7 +477,7 @@
-->
<!-- Mount: -->
- <map:mount uri-prefix="sub" src="sub/sitemap.xmap" check-reload="yes"/>
+ <map:mount check-reload="yes" src="sub/sitemap.xmap" uri-prefix="sub"/>
<!--
Sitemaps may be organized hierarchically. Here such a subsitemap
is "mounted" (think: unix filesystems) to be responsible for all
@@ -566,10 +517,10 @@
-->
</map:match>
<map:match pattern="documents/**">
- <map:mount uri-prefix="documents" src="documentation/"
check-reload="yes"/>
+ <map:mount check-reload="yes" src="documentation/"
uri-prefix="documents"/>
</map:match>
<map:match pattern="tutorial/**">
- <map:mount uri-prefix="tutorial/" src="tutorial/" check-reload="yes"/>
+ <map:mount check-reload="yes" src="tutorial/" uri-prefix="tutorial/"/>
</map:match>
</map:pipeline>
@@ -578,13 +529,43 @@
<!-- sample use of regexp equivalent to "**.source" using wildcard
this also shows the '\{' notation to escape sitemap values
substitution -->
<map:match pattern="(.*)\.s\{1}ource" type="regexp">
- <map:generate src="cocoon:/{1}" />
+ <map:generate src="cocoon:/{1}"/>
<map:transform src="stylesheets/simple-xml2html.xsl"/>
<map:serialize/>
</map:match>
<!-- Below goes entries added by Cocoon build system -->
- </map:pipeline>
+
+
+ <!-- XSP pages written in Javascript -->
+ <map:match pattern="xsp-js/*">
+ <map:generate src="docs/samples/xsp-js/{1}.xsp" type="serverpages">
+ <map:parameter name="programming-language" value="js"/>
+ </map:generate>
+ <map:transform src="stylesheets/dynamic-page2html.xsl">
+ <map:parameter name="view-source"
value="docs/samples/xsp-js/{1}.xsp"/>
+ </map:transform>
+ <map:serialize/>
+ </map:match>
+
+
+ <!-- Mount search pages sitemap, for using indexing & searching -->
+ <map:match pattern="search/**">
+ <map:mount check-reload="yes" src="search/" uri-prefix="search"/>
+ </map:match>
+
+
+ <!-- ======================= XML:DB ============================== -->
+ <map:match pattern="xmldb/**">
+ <map:match pattern="xpath" type="request-parameter">
+ <map:generate src="xmldb:xindice://localhost:4080/db/{../1}#{1}"/>
+ <map:serialize type="xml"/>
+ </map:match>
+
+ <map:generate src="xmldb:xindice://localhost:4080/db/{1}"/>
+ <map:serialize type="xml"/>
+ </map:match>
+</map:pipeline>
<!-- "automount" setup
This causes directories added under "mount"
@@ -594,7 +575,7 @@
-->
<map:pipeline>
<map:match pattern="mount/*/**">
- <map:mount uri-prefix="mount/{1}" src="mount/{1}/" check-reload="yes"/>
+ <map:mount check-reload="yes" src="mount/{1}/" uri-prefix="mount/{1}"/>
<!--
This is an example of using a sitemap variable: "{1}" Curly
brackets denote sitemap variables, here the one named "1".
@@ -606,7 +587,7 @@
<map:pipeline>
<!-- protected webapp example pipeline -->
<map:match pattern="protected/**">
- <map:mount uri-prefix="protected" src="protected/" check-reload="yes"/>
+ <map:mount check-reload="yes" src="protected/" uri-prefix="protected"/>
</map:match>
<!-- mount other sample pages -->
@@ -703,7 +684,7 @@
</map:match>
<map:match pattern="welcome-svg-images/*.png">
- <map:generate type="extractor" src="{1}"/>
+ <map:generate src="{1}" type="extractor"/>
<!--
Again, citing the javadocs:
@@ -792,7 +773,7 @@
</map:match>
<map:match pattern="sites/images/*.gif">
- <map:read src="resources/images/{1}.gif" mime-type="image/gif"/>
+ <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
</map:match>
<!-- ================ NEWS =========================== -->
@@ -804,11 +785,11 @@
</map:match>
<map:match pattern="news/**.gif">
- <map:read src="http://images.slashdot.org/topics/{1}.gif"
mime-type="image/gif"/>
+ <map:read mime-type="image/gif"
src="http://images.slashdot.org/topics/{1}.gif"/>
</map:match>
<map:match pattern="news/**.jpg">
- <map:read src="http://images.slashdot.org/topics/{1}.jpg"
mime-type="image/jpg"/>
+ <map:read mime-type="image/jpg"
src="http://images.slashdot.org/topics/{1}.jpg"/>
</map:match>
<map:match pattern="news/moreover.xml">
@@ -856,9 +837,9 @@
Please see docs for further explanations.
-->
- <map:part src="cocoon:/news/slashdot.xml" element="news"
ns="http://foo.bar.com/slashdot"/>
- <map:part src="cocoon:/news/moreover.xml" element="news"
ns="http://foo.bar.com/moreover"/>
- <map:part src="cocoon:/news/xmlhack.xml" element="news"
ns="http://foo.bar.com/xmlhack"/>
+ <map:part element="news" ns="http://foo.bar.com/slashdot"
src="cocoon:/news/slashdot.xml"/>
+ <map:part element="news" ns="http://foo.bar.com/moreover"
src="cocoon:/news/moreover.xml"/>
+ <map:part element="news" ns="http://foo.bar.com/xmlhack"
src="cocoon:/news/xmlhack.xml"/>
</map:aggregate>
<map:transform src="stylesheets/news/news.xsl"/>
<map:serialize/>
@@ -866,7 +847,7 @@
<!-- Aggregation using CInclude transformer -->
<map:match pattern="news/aggregate">
- <map:generate type="serverpages" src="docs/samples/xsp/aggregate.xsp"/>
+ <map:generate src="docs/samples/xsp/aggregate.xsp" type="serverpages"/>
<map:transform type="cinclude"/>
<map:transform src="stylesheets/news/news.xsl"/>
<map:serialize/>
@@ -905,13 +886,13 @@
</map:match>
<map:match pattern="scripts/*">
- <map:generate type="script" src="docs/samples/scripts/{1}"/>
+ <map:generate src="docs/samples/scripts/{1}" type="script"/>
<map:transform src="stylesheets/page/simple-page2html.xsl"/>
<map:serialize type="html"/>
</map:match>
<map:match pattern="templates/*">
- <map:generate type="velocity" src="templates/{1}">
+ <map:generate src="templates/{1}" type="velocity">
<map:parameter name="name" value="Velocity"/>
<map:parameter name="project" value="Cocoon"/>
</map:generate>
@@ -934,28 +915,28 @@
</map:match>
<map:match pattern="slides/style">
- <map:read src="resources/styles/slides-apachecon.css"
mime-type="text/css"/>
+ <map:read mime-type="text/css"
src="resources/styles/slides-apachecon.css"/>
</map:match>
<map:match pattern="style">
- <map:read src="resources/styles/slides-apachecon.css"
mime-type="text/css"/>
+ <map:read mime-type="text/css"
src="resources/styles/slides-apachecon.css"/>
</map:match>
<map:match pattern="slides/**.gif">
- <map:read src="docs/samples/{1}.gif" mime-type="image/gif"/>
+ <map:read mime-type="image/gif" src="docs/samples/{1}.gif"/>
</map:match>
<map:match pattern="slides/**.jpg">
- <map:read src="docs/samples/{1}.jpg" mime-type="image/jpg"/>
+ <map:read mime-type="image/jpg" src="docs/samples/{1}.jpg"/>
</map:match>
<map:match pattern="slides/**.png">
- <map:read src="docs/samples/{1}.png" mime-type="image/png"/>
+ <map:read mime-type="image/png" src="docs/samples/{1}.png"/>
</map:match>
<!-- =========================== Dynamic ================================
-->
<map:match pattern="xsp/*">
- <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
+ <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source" value="docs/samples/xsp/{1}.xsp"/>
<!--
@@ -971,7 +952,7 @@
</map:match>
<map:match pattern="xsp-plain/*">
- <map:generate type="serverpages" src="docs/samples/xsp/{1}.xsp"/>
+ <map:generate src="docs/samples/xsp/{1}.xsp" type="serverpages"/>
<map:serialize/>
</map:match>
@@ -1003,7 +984,7 @@
included if at least one action of this set completes
successfully.
-->
- <map:generate type="serverpages"
src="docs/samples/forms/employee.xsp"/>
+ <map:generate src="docs/samples/forms/employee.xsp"
type="serverpages"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source"
value="docs/samples/forms/employee.xsp"/>
</map:transform>
@@ -1012,7 +993,7 @@
</map:match>
<map:match pattern="forms/*">
- <map:generate type="serverpages" src="docs/samples/forms/{1}.xsp"/>
+ <map:generate src="docs/samples/forms/{1}.xsp" type="serverpages"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source"
value="docs/samples/forms/{1}.xsp"/>
</map:transform>
@@ -1048,28 +1029,28 @@
<map:act type="session-isvalid">
<!-- if session is valid ... -->
- <map:match type="sessionstate" pattern="1">
+ <map:match pattern="1" type="sessionstate">
<!-- if a specific session attribute matches pattern "1" -->
- <map:match type="next-page" pattern="1">
+ <map:match pattern="1" type="next-page">
<map:call resource="dynamic-page1">
<map:parameter name="target"
value="docs/samples/session-state"/>
</map:call>
<!-- by calling this resource, the rest of this fragment here
is irrelevant -->
</map:match>
- <map:match type="next-page" pattern="2">
+ <map:match pattern="2" type="next-page">
<map:call resource="dynamic-page1">
<map:parameter name="target"
value="docs/samples/session-state"/>
</map:call>
</map:match>
</map:match>
- <map:match type="sessionstate" pattern="2">
- <map:match type="next-page" pattern="1">
+ <map:match pattern="2" type="sessionstate">
+ <map:match pattern="1" type="next-page">
<map:call resource="dynamic-page1">
<map:parameter name="target"
value="docs/samples/session-state"/>
</map:call>
</map:match>
- <map:match type="next-page" pattern="2">
+ <map:match pattern="2" type="next-page">
<map:call resource="dynamic-page1">
<map:parameter name="target"
value="docs/samples/session-state"/>
</map:call>
@@ -1090,12 +1071,12 @@
<!-- ========================== referer =================================
-->
<map:match pattern="referer/*">
- <map:match type="referer-match" pattern="http://*/cocoon/referer/a">
+ <map:match pattern="http://*/cocoon/referer/a" type="referer-match">
<map:call resource="simple-page">
<map:parameter name="target"
value="docs/samples/referer/a/{../1}"/>
</map:call>
</map:match>
- <map:match type="referer-match" pattern="http://*/cocoon/referer/b">
+ <map:match pattern="http://*/cocoon/referer/b" type="referer-match">
<map:call resource="simple-page">
<map:parameter name="target"
value="docs/samples/referer/b/{../1}"/>
</map:call>
@@ -1122,24 +1103,24 @@
<!-- ========================== XSP Sources
============================== -->
<map:match pattern="view-source/*">
- <map:read src="docs/samples/slides/{1}" mime-type="text/plain"/>
+ <map:read mime-type="text/plain" src="docs/samples/slides/{1}"/>
</map:match>
<map:match pattern="view-source">
- <map:generate type="serverpages"
src="docs/samples/slides/view-source.xsp"/>
+ <map:generate src="docs/samples/slides/view-source.xsp"
type="serverpages"/>
<map:serialize/>
</map:match>
<!-- ========================== SOAP ============================== -->
<map:match pattern="soap/*">
- <map:generate type="serverpages" src="docs/samples/soap/{1}.xml"/>
+ <map:generate src="docs/samples/soap/{1}.xml" type="serverpages"/>
<map:serialize type="xml"/>
</map:match>
<!-- ======================== XScript Samples =========================
-->
<map:match pattern="xscript/soap-getquote1">
- <map:generate type="serverpages"
src="docs/samples/xscript/soap-getquote1.xsp"/>
+ <map:generate src="docs/samples/xscript/soap-getquote1.xsp"
type="serverpages"/>
<map:transform src="docs/samples/xscript/soap-getquote1.xsl"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source"
value="docs/samples/xscript/soap-getquote1.xsp"/>
@@ -1148,7 +1129,7 @@
</map:match>
<map:match pattern="xscript/*">
- <map:generate type="serverpages" src="docs/samples/xscript/{1}.xsp"/>
+ <map:generate src="docs/samples/xscript/{1}.xsp" type="serverpages"/>
<map:transform src="stylesheets/dynamic-page2html.xsl">
<map:parameter name="view-source"
value="docs/samples/xscript/{1}.xsp"/>
</map:transform>
@@ -1158,7 +1139,7 @@
<!-- ========================== Tidy Samples
============================== -->
<map:match pattern="yahoo">
- <map:generate type="html" src="http://www.yahoo.com">
+ <map:generate src="http://www.yahoo.com" type="html">
<map:parameter name="xpath"
value="/html/body/center/table[1]/tr[1]/td[1]/table[position()=last()]"/>
</map:generate>
<map:transform src="stylesheets/news/news.xsl"/>
@@ -1167,7 +1148,7 @@
<!-- ========================= Server ================================ -->
<map:match pattern="legacyProfiles/**.rdf">
- <map:read src="resources/legacyProfiles/{1}.rdf" mime-type="text/rdf"/>
+ <map:read mime-type="text/rdf" src="resources/legacyProfiles/{1}.rdf"/>
</map:match>
<map:match pattern="request">
@@ -1188,27 +1169,27 @@
</map:match>
<map:match pattern="sites/styles/**.css">
- <map:read src="resources/styles/{1}.css" mime-type="text/css"/>
+ <map:read mime-type="text/css" src="resources/styles/{1}.css"/>
</map:match>
<map:match pattern="**favicon.ico">
- <map:read src="resources/icons/cocoon.ico" mime-type="application/ico"/>
+ <map:read mime-type="application/ico" src="resources/icons/cocoon.ico"/>
</map:match>
<map:match pattern="images/**.gif">
- <map:read src="resources/images/{1}.gif" mime-type="image/gif"/>
+ <map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
</map:match>
<map:match pattern="images/**.jpg">
- <map:read src="resources/images/{1}.jpg" mime-type="image/jpg"/>
+ <map:read mime-type="image/jpg" src="resources/images/{1}.jpg"/>
</map:match>
<map:match pattern="images/**.png">
- <map:read src="resources/images/{1}.png" mime-type="image/png"/>
+ <map:read mime-type="image/png" src="resources/images/{1}.png"/>
</map:match>
<map:match pattern="**/">
- <map:generate type="directory" src="{1}"/>
+ <map:generate src="{1}" type="directory"/>
<map:transform src="stylesheets/system/directory2html.xsl"/>
<map:serialize/>
</map:match>
@@ -1221,6 +1202,4 @@
</map:pipeline>
</map:pipelines>
-</map:sitemap>
-
-<!-- end of file -->
+</map:sitemap><!-- end of file -->
\ No newline at end of file
1.22 +175 -41 xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf
Index: cocoon.xconf
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/cocoon.xconf,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- cocoon.xconf 19 May 2002 19:23:28 -0000 1.21
+++ cocoon.xconf 20 May 2002 06:53:15 -0000 1.22
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<cocoon version="2.0">
<!-- ================ Apache Cocoon configuration file ================== -->
@@ -54,9 +54,7 @@
DocumentBuilderFactory implementation to be used (similar to
sax-parser-factory for DOM).
-->
- <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
- logger="core.xml-parser"
- pool-max="32" pool-min="8" pool-grow="4">
+ <xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
<parameter name="validate" value="false"/>
<parameter name="namespace-prefixes" value="false"/>
<parameter name="stop-on-warning" value="true"/>
@@ -139,8 +137,7 @@
<!-- Xpath Processor:
-->
- <xpath-processor
class="org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl"
- logger="core.xpath-processor"/>
+ <xpath-processor
class="org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl"
logger="core.xpath-processor"/>
<!-- URL Factory:
The url factory adds special url protocols to the system, they are then
@@ -151,10 +148,10 @@
<url-factory logger="core.url-factory">
<!-- Allows access to resources available from the ClassLoader,
using getResource() method. -->
- <protocol name="resource"
class="org.apache.cocoon.components.url.ResourceURLFactory"/>
+ <protocol class="org.apache.cocoon.components.url.ResourceURLFactory"
name="resource"/>
<!-- Allows access to resources available from the servlet context,
using getResource() method. -->
- <protocol name="context"
class="org.apache.cocoon.components.url.ContextURLFactory"/>
+ <protocol class="org.apache.cocoon.components.url.ContextURLFactory"
name="context"/>
<!-- Add here protocol factories for your own protocols -->
</url-factory>
@@ -166,9 +163,17 @@
-->
<source-handler logger="core.source-handler">
<!-- file protocol : this is a WriteableSource -->
- <protocol name="file"
class="org.apache.cocoon.components.source.FileSourceFactory"/>
+ <protocol class="org.apache.cocoon.components.source.FileSourceFactory"
name="file"/>
- </source-handler>
+
+
+ <!-- xmldb pseudo protocol -->
+ <protocol class="org.apache.cocoon.components.source.XMLDBSourceFactory"
name="xmldb">
+ <!-- Xindice driver -->
+ <driver class="org.apache.xindice.client.xmldb.DatabaseImpl"
type="xindice"/>
+ <!-- Add here other XML:DB compliant databases drivers -->
+ </protocol>
+</source-handler>
<!-- Source Factories
Each source factory adds a special uri protocol to the system.
@@ -179,8 +184,19 @@
<component-instance
class="org.apache.cocoon.components.source.impl.ContextSourceFactory"
name="context"/>
<component-instance
class="org.apache.cocoon.components.source.impl.CocoonSourceFactory"
name="cocoon"/>
<!-- file protocol : this is a WriteableSource -->
- <component-instance
class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"
/>
- </source-factories>
+ <component-instance
class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"/>
+
+
+ <!-- xmldb pseudo protocol -->
+ <component-instance
class="org.apache.cocoon.components.source.impl.SourceFactoryWrapper"
name="xmldb">
+ <source-factory
class="org.apache.cocoon.components.source.XMLDBSourceFactory">
+ <!-- Xindice driver -->
+ <driver class="org.apache.xindice.client.xmldb.DatabaseImpl"
type="xindice"/>
+ <!-- Add here other XML:DB compliant databases drivers -->
+ </source-factory>
+ </component-instance>
+
+</source-factories>
<!-- The XMLizer converts different mime-types to XML -->
<xmlizer>
@@ -225,7 +241,7 @@
<!-- Programming Languages: -->
<programming-languages>
- <java-language name="java" logger="core.language.java">
+ <java-language logger="core.language.java" name="java">
<!-- Specifies which formatter to use to format source code.
This parameter is optional.
It is commented out because of bug #5689: Java "code-formatter"
incorrectly formats double values
@@ -233,14 +249,23 @@
-->
<!-- A singleton-like implementation of a ClassLoader -->
<parameter name="class-loader"
value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
- </java-language>
- </programming-languages>
+
+ <!-- Compiler parameter specifies which class to use to compile Java.
+ Possible variants are:
+ Javac. Requires javac.jar (included with JDK as lib/toools.jar).
+ Pizza. Requires pizza.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.Pizza"/>
+</java-language>
+
+ <!-- Interpreted JavaScript language -->
+ <js-language logger="core.language.js" name="js"/>
+</programming-languages>
<!-- Class loader:
A singleton-like implementation of a ClassLoader.
-->
- <classloader
class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"
- logger="core.classloader"/>
+ <classloader
class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"
logger="core.classloader"/>
<!-- Markup Languages:
This section defines several builtin logicsheets. A logicsheet is an XML
@@ -248,7 +273,7 @@
code embedding directives for a given markup language.
-->
<markup-languages>
- <xsp-language name="xsp" logger="core.markup.xsp">
+ <xsp-language logger="core.markup.xsp" name="xsp">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
@@ -363,13 +388,36 @@
</builtin-logicsheet>
</target-language>
- </xsp-language>
+
+ <!-- XSP in Javascript -->
+ <target-language name="js">
+ <parameter name="core-logicsheet"
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/xsp.xsl"/>
+
+ <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/javascript/request.xsl"/>
+ </builtin-logicsheet>
+
+ <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/javascript/response.xsl"/>
+ </builtin-logicsheet>
+
+ <builtin-logicsheet>
+ <parameter name="prefix" value="xsp-session"/>
+ <parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
+ <parameter name="href"
value="resource://org/apache/cocoon/components/language/markup/xsp/javascript/session.xsl"/>
+ </builtin-logicsheet>
+ </target-language>
+</xsp-language>
</markup-languages>
<!-- Datasources: -->
<datasources>
- <jdbc name="personnel" logger="core.datasources.personnel">
+ <jdbc logger="core.datasources.personnel" name="personnel">
<!--
If you have an Oracle database, and are using the the
pool-controller below, you should add the attribute
@@ -380,7 +428,7 @@
That way the test to see if the server has disconnected
the JdbcConnection will function properly.
-->
- <pool-controller min="5" max="10"/>
+ <pool-controller max="10" min="5"/>
<!--
If you need to ensure an autocommit is set to true or
false, then create the "auto-commit" element below.
@@ -389,9 +437,9 @@
The default is true.
-->
- <dburl>@database-url@</dburl>
- <user>@database-user@</user>
- <password>@database-password@</password>
+ <dburl>jdbc:hsqldb:hsql://localhost:9002</dburl>
+ <user>sa</user>
+ <password/>
</jdbc>
</datasources>
@@ -401,9 +449,7 @@
the character stream. Alternatives to CachingStreamPipeline are:
<stream-pipeline
class="org.apache.cocoon.components.pipeline.NonCachingStreamPipeline"/>
-->
- <stream-pipeline
class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
- logger="core.stream-pipeline"
- pool-max="32" pool-min="8" pool-grow="4"/>
+ <stream-pipeline
class="org.apache.cocoon.components.pipeline.CachingStreamPipeline"
logger="core.stream-pipeline" pool-grow="4" pool-max="32" pool-min="8"/>
<!-- Event Pipeline:
Connects the generator and the various transformers and produces a
@@ -412,9 +458,7 @@
<event-pipeline
class="org.apache.cocoon.components.profiler.ProfilingCachingEventPipeline"/>
<event-pipeline
class="org.apache.cocoon.components.profiler.ProfilingNonCachingEventPipeline"/>
-->
- <event-pipeline
class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
- logger="core.event-pipeline"
- pool-max="32" pool-min="8" pool-grow="4"/>
+ <event-pipeline
class="org.apache.cocoon.components.pipeline.CachingEventPipeline"
logger="core.event-pipeline" pool-grow="4" pool-max="32" pool-min="8"/>
<!-- Compiling xml to byte streams.
The xml-serializer "compiles" xml sax events into a byte stream
@@ -423,13 +467,9 @@
may have to change the other one as well, as they might have
a dependency.
-->
- <xml-serializer
class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"
- logger="core.xml-serializer"
- pool-max="32" pool-min="8" pool-grow="4"/>
-
- <xml-deserializer
class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"
- logger="core.xml-deserializer"
- pool-max="32" pool-min="8" pool-grow="4"/>
+ <xml-serializer
class="org.apache.cocoon.components.sax.XMLByteStreamCompiler"
logger="core.xml-serializer" pool-grow="4" pool-max="32" pool-min="8"/>
+
+ <xml-deserializer
class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter"
logger="core.xml-deserializer" pool-grow="4" pool-max="32" pool-min="8"/>
<!-- SAXConnector:
Connects the various pipeline components.
@@ -456,7 +496,7 @@
The Monitor keeps track on changes to a Resource.
-->
<monitor logger="core.monitor">
- <thread priority="5" frequency="10000"/>
+ <thread frequency="10000" priority="5"/>
</monitor>
<!-- ======================== The sitemap ============================== -->
@@ -474,7 +514,101 @@
For development environment, set the check-reload to yes.
For production environment, it is advisable to set the check-reload to
no.
-->
- <sitemap file="sitemap.xmap" check-reload="yes" logger="sitemap"
-
config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml"/>
+ <sitemap check-reload="yes"
config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml"
file="sitemap.xmap" logger="sitemap"/>
+
+
+
+ <!-- Search:
+ These are the components that handle the search.
+
+ Cocoon indexer write into an index.
+ Cocoon searcher reads form an index, returning matched hits.
+ Cocoon crawler crawls all links starting from a given base URI.
+ Lucene xml indexer build a lucene document from XML content.
+ -->
+ <cocoon-indexer logger="core.search.indexer"/>
+ <cocoon-searcher logger="core.search.searcher"/>
+ <cocoon-crawler logger="core.search.crawler"/>
+ <lucene-xml-indexer logger="core.search.lucene"/>
+
+
+ <!-- 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"
logger="core.hsqldb-server" pool-max="1" pool-min="1">
+ <parameter name="port" value="9002"/>
+ <parameter name="silent" value="true"/>
+ <parameter name="trace" value="false"/>
+ </hsqldb-server>
+
+
+ <!-- Entity resolution catalogs:
*********************************************
+ catalog:
+ The default catalog is distributed at /resources/entities/catalog
+ This is the contextual pathname for Cocoon resources.
+ You can override this path, if necessary, using the "catalog" parameter.
+ <parameter name="catalog" value="/resources/entities/catalog"/>
+ However, it is probably desirable to leave this default catalog config
+ and declare your own local catalogs, which are loaded in addition to
+ the system catalog.
+
+ There are various ways to do local configuration (see "Entity Catalogs"
+ documentation). One way is via the CatalogManager.properties file.
+ As an additional method, you can specify the "local-catalog" parameter
here.
+
+ local-catalog:
+ The full filesystem pathname to a single local catalog file.
+ <parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
+
+ verbosity:
+ The level of messages for status/debug (messages go to standard output)
+ The following messages are provided ...
+ 0 = none
+ 1 = ? (... not sure yet)
+ 2 = 1+, Loading catalog, Resolved public, Resolved system
+ 3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
+ 10 = 3+, List all catalog entries when loading a catalog
+ (Cocoon also logs the "Resolved public" messages.)
+ TODO: determine all messages at each level
+ <parameter name="verbosity" value="2"/>
+
+ **************************************************************************
-->
+ <entity-resolver
class="org.apache.cocoon.components.resolver.ResolverImpl"
logger="core.resolver">
+ <parameter name="catalog" value="/resources/entities/catalog"/>
+ <parameter name="verbosity" value="1"/>
+ </entity-resolver>
+
+
+ <!-- Persistent store for the cache. Two store implementations to choose
+ from:
+ * FilesystemStore: Simple. Dependable. Thorougly tested.
+ * JispFilesystemStore: Scalable. New kid on the block. Not
thorougly tested.
+ If you opt in to use JispFilesystemStore, comment out FilesystemStore
+ entry.
+
+ JispFilesystemStore configuration parameters
+ (in addition to common parameters):
+ datafile: name of the store file to use.
+ indexfile: name of the index file to use.
+ order: FIXME: put description here.
+
+ <persistent-store
class="org.apache.cocoon.components.store.JispFilesystemStore"
+ logger="core.store.persistent">
+ <parameter name="use-cache-directory" value="true"/>
+ <parameter name="datafile" value="cocoon-cache.dat"/>
+ <parameter name="indexfile" value="cocoon-cache.idx"/>
+ <parameter name="order" value="1701"/>
+ </persistent-store>
+ -->
-</cocoon>
+
+ <!-- Deli support -->
+ <!-- Uncomment this section to enable DELI
+ <deli class="org.apache.cocoon.components.deli.DeliImpl">
+ <parameter name="deli-config-file"
value="resources/deli/config/deliConfig.xml"/>
+ </deli>
+ -->
+</cocoon>
\ No newline at end of file
1.10 +1 -1 xml-cocoon2/src/webapp/WEB-INF/web.xml
Index: web.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/web.xml,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- web.xml 20 Apr 2002 08:13:20 -0000 1.9
+++ web.xml 20 May 2002 06:53:15 -0000 1.10
@@ -117,7 +117,7 @@
com.ibm.servlet.classloader.Handler -->
<!-- For Database Driver: -->
- @database-driver@
+ org.hsqldb.jdbcDriver
<!-- For parent ComponentManager sample:
org.apache.cocoon.samples.parentcm.Configurator
1.2 +3 -1 xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.data
<<Binary file>>
1.3 +1 -1 xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties
Index: cocoondb.properties
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- cocoondb.properties 19 Apr 2002 12:44:19 -0000 1.2
+++ cocoondb.properties 20 May 2002 06:53:15 -0000 1.3
@@ -1,4 +1,4 @@
#HSQL database
-#Sat Apr 13 23:06:03 EDT 2002
+#Mon May 20 01:42:46 CDT 2002
version=1.6
modified=yes
1.4 +4 -33 xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script
Index: cocoondb.script
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/WEB-INF/db/cocoondb.script,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- cocoondb.script 30 Apr 2002 03:39:32 -0000 1.3
+++ cocoondb.script 20 May 2002 06:53:15 -0000 1.4
@@ -4,8 +4,8 @@
CREATE TABLE GROUPS(GID INTEGER IDENTITY PRIMARY KEY,GNAME
VARCHAR,UNIQUE(GNAME))
CREATE TABLE USER_GROUPS(UID INTEGER,GID INTEGER,UNIQUE(UID,GID),FOREIGN
KEY(UID)REFERENCES USER(UID),FOREIGN KEY(GID)REFERENCES GROUPS(GID))
CREATE TABLE STATE_TAX(CATEGORY VARCHAR NOT NULL,GROSSTAX_COLLECTED DOUBLE
NOT NULL,NETTAX_COLLECTED DOUBLE NOT NULL,YEAR INTEGER NOT NULL)
-GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
GRANT ALL ON CLASS "org.hsqldb.Library" TO PUBLIC
+GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
CREATE USER SA PASSWORD "" ADMIN
CREATE ALIAS DAYNAME FOR "org.hsqldb.Library.dayname"
CREATE ALIAS SPACE FOR "org.hsqldb.Library.space"
@@ -115,36 +115,7 @@
INSERT INTO STATE_TAX VALUES('Horse Racing',1.7921198E7,1.7321198E7,2001)
INSERT INTO STATE_TAX VALUES('Severance',7981539.0,7967438.0,2001)
INSERT INTO STATE_TAX VALUES('School District
Income',1.61257059E8,1.53238001E8,2001)
-/*C3*/CONNECT USER sa PASSWORD ""
-/*C4*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
+/*C1*/CONNECT USER sa PASSWORD ""
+/*C2*/CONNECT USER sa PASSWORD ""
/*C5*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C6*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C7*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C8*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C9*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C10*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C11*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C12*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C13*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
-CONNECT USER sa PASSWORD ""
-/*C14*/CONNECT USER sa PASSWORD ""
-SET AUTOCOMMIT TRUE
+/*C6*/CONNECT U
\ No newline at end of file
1.3 +15 -2 xml-cocoon2/src/webapp/docs/samples/sample-apps.xml
Index: sample-apps.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/sample-apps.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sample-apps.xml 9 Feb 2002 06:21:57 -0000 1.2
+++ sample-apps.xml 20 May 2002 06:53:16 -0000 1.3
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- CVS: $Id: sample-apps.xml,v 1.2 2002/02/09 06:21:57 vgritsenko Exp $ -->
+<!-- CVS: $Id: sample-apps.xml,v 1.3 2002/05/20 06:53:16 ivelin Exp $ -->
<samples xmlns:xlink="http://www.w3.org/1999/xlink">
@@ -29,8 +29,21 @@
</sample>
</group>
+
<group name="Sample Forms">
- <sample name="Manage Employees" href="forms/employee"
xlink:role="dynamic">
+ <sample name="Cocoon Feedback Wizard" href="mount/xmlform/wizard.html"
xlink:role="dynamic">
+ Presents a sophisticated form handling demo -
+ multi page wizard with two way navigation.
+ Features the
+ <link href="#XMLForm Doc!">XMLForm</link> framework which provides
+ <xlink:link
href="http://www.w3.org/MarkUp/Forms/">XForms</xlink:link>
+ based markup,
+ <xlink:a
href="http://www.ascc.net/xml/resource/schematron/schematron.html">Schematron</xlink:a>
+ instance validation and
+ automated binding to
+ <xlink:a
href="http://java.sun.com/products/javabeans/">JavaBeans</xlink:a> and
+ <xlink:a href="http://www.w3.org/DOM/">DOM</xlink:a> instances.
+ </sample> <sample name="Manage Employees" href="forms/employee"
xlink:role="dynamic">
Adds, updates and deletes Employees to the employees table. You
should make sure
that you have a database and table according to the
docs/samples/sql/sql-page.xml.sql
definitions. Don't forget to change the driver information...
1.2 +1 -1
xml-cocoon2/src/webapp/docs/samples/formvalidation/descriptor.xml
Index: descriptor.xml
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/docs/samples/formvalidation/descriptor.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- descriptor.xml 3 Jan 2002 12:31:40 -0000 1.1
+++ descriptor.xml 20 May 2002 06:53:16 -0000 1.2
@@ -11,4 +11,4 @@
<validate name="email"/>
</constraint-set>
-</root>
\ No newline at end of file
+</root>
1.2 +2 -2 xml-cocoon2/src/webapp/docs/samples/slides/clean-page.xml
Index: clean-page.xml
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/clean-page.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- clean-page.xml 3 Jan 2002 12:31:41 -0000 1.1
+++ clean-page.xml 20 May 2002 06:53:16 -0000 1.2
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
-<!-- Version: $Id: clean-page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
+<!-- Version: $Id: clean-page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
<page>
<title>First XSP Page</title>
@@ -62,4 +62,4 @@
provided to you by another XSP page.</p>
<p>Enjoy XSP!</p>
-</page>
\ No newline at end of file
+</page>
1.2 +2 -2 xml-cocoon2/src/webapp/docs/samples/slides/lib-page.xml
Index: lib-page.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/lib-page.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- lib-page.xml 3 Jan 2002 12:31:41 -0000 1.1
+++ lib-page.xml 20 May 2002 06:53:16 -0000 1.2
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
-<!-- Version: $Id: lib-page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
+<!-- Version: $Id: lib-page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
<xsp:page
@@ -70,4 +70,4 @@
<p>Enjoy XSP!</p>
</page>
-</xsp:page>
\ No newline at end of file
+</xsp:page>
1.2 +2 -2 xml-cocoon2/src/webapp/docs/samples/slides/page.xml
Index: page.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/slides/page.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- page.xml 3 Jan 2002 12:31:41 -0000 1.1
+++ page.xml 20 May 2002 06:53:16 -0000 1.2
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- Author: Stefano Mazzocchi "[EMAIL PROTECTED]" -->
-<!-- Version: $Id: page.xml,v 1.1 2002/01/03 12:31:41 giacomo Exp $ -->
+<!-- Version: $Id: page.xml,v 1.2 2002/05/20 06:53:16 ivelin Exp $ -->
<xsp:page
language="java"
@@ -125,4 +125,4 @@
<p>Enjoy XSP!</p>
</page>
-</xsp:page>
\ No newline at end of file
+</xsp:page>
1.2 +1 -1 xml-cocoon2/src/webapp/docs/samples/soap/fortune.xml
Index: fortune.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/docs/samples/soap/fortune.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- fortune.xml 30 Jan 2002 23:32:33 -0000 1.1
+++ fortune.xml 20 May 2002 06:53:16 -0000 1.2
@@ -13,4 +13,4 @@
</m:getAnyFortune>
</soap:call>
</page>
-</xsp:page>
\ No newline at end of file
+</xsp:page>
1.2 +1 -1
xml-cocoon2/src/webapp/resources/entities/book-cocoon-v10.dtd
Index: book-cocoon-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/resources/entities/book-cocoon-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- book-cocoon-v10.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ book-cocoon-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -36,7 +36,7 @@
20011031 Initial version. (DC)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/resources/entities/changes-v10.dtd
Index: changes-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/resources/entities/changes-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- changes-v10.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ changes-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -38,7 +38,7 @@
20000316 Added bugfixing attribute. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.3 +1 -1
xml-cocoon2/src/webapp/resources/entities/document-v10.dtd
Index: document-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/resources/entities/document-v10.dtd,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- document-v10.dtd 28 Mar 2002 01:58:47 -0000 1.2
+++ document-v10.dtd 20 May 2002 06:53:16 -0000 1.3
@@ -54,7 +54,7 @@
20020223 Allowed "figure" at section level (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/resources/entities/faq-v10.dtd
Index: faq-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/resources/entities/faq-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- faq-v10.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ faq-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -36,7 +36,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/resources/entities/javadoc-v04draft.dtd
Index: javadoc-v04draft.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/resources/entities/javadoc-v04draft.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- javadoc-v04draft.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ javadoc-v04draft.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -47,7 +47,7 @@
19991129 Cleaned up DTD. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/resources/entities/specification-v10.dtd
Index: specification-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/resources/entities/specification-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- specification-v10.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ specification-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -31,7 +31,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/resources/entities/todo-v10.dtd
Index: todo-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/resources/entities/todo-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- todo-v10.dtd 3 Jan 2002 12:31:43 -0000 1.1
+++ todo-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -39,7 +39,7 @@
19991225 Added actions element for better structure (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/resources/icons/cocoon.ico
<<Binary file>>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/common/resources/icons/cocoon.ico
<<Binary file>>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-xml2html.xsl
Index: simple-xml2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/common/style/xsl/html/simple-xml2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-xml2html.xsl 18 Mar 2002 19:22:19 -0000 1.1
+++ simple-xml2html.xsl 20 May 2002 06:53:16 -0000 1.2
@@ -381,4 +381,4 @@
<xsl:text> </xsl:text>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/hello-world/content/templates/hello-page.vm
Index: hello-page.vm
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/content/templates/hello-page.vm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- hello-page.vm 27 Mar 2002 10:09:31 -0000 1.1
+++ hello-page.vm 20 May 2002 06:53:16 -0000 1.2
@@ -7,4 +7,4 @@
<para>This is my first Cocoon2 page!</para>
<para>Hi! This page is generated using $name from the $project
project.</para>
</content>
-</page>
\ No newline at end of file
+</page>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2vml.xsl
Index: simple-page2vml.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-page2vml.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-page2vml.xsl 18 Mar 2002 19:22:40 -0000 1.1
+++ simple-page2vml.xsl 20 May 2002 06:53:16 -0000 1.2
@@ -42,4 +42,4 @@
<xsl:apply-templates/>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-xml2html.xsl
Index: simple-xml2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/hello-world/style/xsl/simple-xml2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-xml2html.xsl 18 Mar 2002 19:22:40 -0000 1.1
+++ simple-xml2html.xsl 20 May 2002 06:53:16 -0000 1.2
@@ -381,4 +381,4 @@
<xsl:text> </xsl:text>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.2 +1 -1
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/changes-v10.dtd
Index: changes-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/changes-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- changes-v10.dtd 18 Mar 2002 19:23:08 -0000 1.1
+++ changes-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -38,7 +38,7 @@
20000316 Added bugfixing attribute. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/faq-v10.dtd
Index: faq-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/faq-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- faq-v10.dtd 18 Mar 2002 19:23:08 -0000 1.1
+++ faq-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -36,7 +36,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/javadoc-v04draft.dtd
Index: javadoc-v04draft.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/javadoc-v04draft.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- javadoc-v04draft.dtd 18 Mar 2002 19:23:08 -0000 1.1
+++ javadoc-v04draft.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -47,7 +47,7 @@
19991129 Cleaned up DTD. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/specification-v10.dtd
Index: specification-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/specification-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- specification-v10.dtd 18 Mar 2002 19:23:08 -0000 1.1
+++ specification-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -31,7 +31,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/todo-v10.dtd
Index: todo-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/samples/tutorial/docs/dtd/todo-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- todo-v10.dtd 18 Mar 2002 19:23:08 -0000 1.1
+++ todo-v10.dtd 20 May 2002 06:53:16 -0000 1.2
@@ -39,7 +39,7 @@
19991225 Added actions element for better structure (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.9 +3 -3
xml-cocoon2/src/webapp/stylesheets/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/stylesheets/simple-samples2html.xsl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- simple-samples2html.xsl 7 Mar 2002 21:02:34 -0000 1.8
+++ simple-samples2html.xsl 20 May 2002 06:53:17 -0000 1.9
@@ -6,7 +6,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link rel="SHORTCUT ICON" href="favicon.ico"/>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
@@ -17,7 +17,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -25,7 +25,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +1 -1 xml-cocoon2/src/webapp/stylesheets/simple-xml2html.xsl
Index: simple-xml2html.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/stylesheets/simple-xml2html.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-xml2html.xsl 3 Jan 2002 12:31:46 -0000 1.1
+++ simple-xml2html.xsl 20 May 2002 06:53:17 -0000 1.2
@@ -381,4 +381,4 @@
<xsl:text> </xsl:text>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.6 +3 -3 xml-cocoon2/src/webapp/stylesheets/svg-samples2html.xsl
Index: svg-samples2html.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/stylesheets/svg-samples2html.xsl,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- svg-samples2html.xsl 29 Jan 2002 02:51:45 -0000 1.5
+++ svg-samples2html.xsl 20 May 2002 06:53:17 -0000 1.6
@@ -5,7 +5,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
<table border="0" cellspacing="2" cellpadding="2" align="center"
width="100%">
@@ -15,7 +15,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -23,7 +23,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +1 -1
xml-cocoon2/src/webapp/stylesheets/page/simple-page2vml.xsl
Index: simple-page2vml.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/stylesheets/page/simple-page2vml.xsl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- simple-page2vml.xsl 3 Jan 2002 12:31:46 -0000 1.1
+++ simple-page2vml.xsl 20 May 2002 06:53:17 -0000 1.2
@@ -42,4 +42,4 @@
<xsl:apply-templates/>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
1.1
xml-cocoon2/src/webapp/stylesheets/xmlform/xmlform2html.xsl
Index: xmlform2html.xsl
===================================================================
<?xml version="1.0" encoding="iso-8859-1" ?>
<!--
Generic XMLForm processing stylesheet.
Converts XMLForm tags to HTML tags.
Syntax is borrowed from the XForms standard.
http://www.w3.org/TR/2002/WD-xforms-20020118/
This stylesheet is usually applied at the end of a
transformation process after laying out the xmlform
tags on the page is complete. At this stage xmlform tags
are rendered in device specific format.
author: Ivelin Ivanov, [EMAIL PROTECTED], May 2002
author: Michael Ratliff, [EMAIL PROTECTED] <[EMAIL PROTECTED]>, May 2002
Original Author: Torsten Curdt, [EMAIL PROTECTED], March 2002
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xf="http://xml.apache.org/cocoon/xmlform/2002"
>
<xsl:output method = "html" omit-xml-declaration = "yes" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="xf:form">
<form method="POST">
<xsl:copy-of select="@*"/>
<input type="hidden" name="cocoon-xmlform-view" value="[EMAIL
PROTECTED]"/>
<xsl:apply-templates />
</form>
</xsl:template>
<xsl:template match="xf:output">
[<xsl:value-of select="xf:value/text()"/>]
</xsl:template>
<xsl:template match="xf:textbox">
<input name="[EMAIL PROTECTED]" type="textbox"
value="{xf:value/text()}" />
</xsl:template>
<xsl:template match="xf:password">
<input name="[EMAIL PROTECTED]" type="password"
value="{xf:value/text()}" />
</xsl:template>
<xsl:template match="xf:selectBoolean">
<input name="[EMAIL PROTECTED]" type="checkbox" value="true">
<xsl:if test="xf:value/text() = 'true'">
<xsl:attribute name="checked"/>
</xsl:if>
</input>
</xsl:template>
<xsl:template match="xf:selectOne">
<select name="[EMAIL PROTECTED]">
<xsl:variable name="selected" select="xf:value/text()"/>
<xsl:for-each select="xf:item">
<option value="{xf:value}">
<xsl:if test="$selected = xf:value">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="xf:caption"/>
</option>
</xsl:for-each>
</select>
</xsl:template>
<xsl:template match="xf:selectMany | xf:[EMAIL PROTECTED]'listbox']">
<xsl:variable name="selected" select="xf:value"/>
<select name="[EMAIL PROTECTED]">
<xsl:attribute name="multiple"/>
<xsl:for-each select="xf:item">
<option value="{xf:value}">
<xsl:if test="xf:value = $selected">
<xsl:attribute name="selected"/>
</xsl:if>
<xsl:value-of select="xf:caption"/>
</option>
</xsl:for-each>
</select>
</xsl:template>
<xsl:template match="xf:submit">
<input name="[EMAIL PROTECTED]" type="submit"
value="{xf:caption/text()}" />
</xsl:template>
<xsl:template match="*">
<xsl:copy><xsl:copy-of select="@*" /><xsl:apply-templates /></xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
1.7 +4 -4
xml-cocoon2/src/webapp/sub/stylesheets/simple-samples2html.xsl
Index: simple-samples2html.xsl
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/sub/stylesheets/simple-samples2html.xsl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- simple-samples2html.xsl 9 Feb 2002 06:21:58 -0000 1.6
+++ simple-samples2html.xsl 20 May 2002 06:53:17 -0000 1.7
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<!-- CVS: $Id: simple-samples2html.xsl,v 1.6 2002/02/09 06:21:58 vgritsenko
Exp $ -->
+<!-- CVS: $Id: simple-samples2html.xsl,v 1.7 2002/05/20 06:53:17 ivelin Exp
$ -->
<!-- Author: Nicola Ken Barozzi "[EMAIL PROTECTED]" -->
<!-- Author: Vadim Gritsenko "[EMAIL PROTECTED]" -->
@@ -9,7 +9,7 @@
<xsl:template match="/">
<html>
<head>
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
</head>
<body bgcolor="#ffffff" link="#0086b2" vlink="#00698c" alink="#743e75">
<table border="0" cellspacing="2" cellpadding="2" align="center"
width="100%">
@@ -19,7 +19,7 @@
<tr>
<td width="30%"></td>
<td width="40%" align="center"><img border="0"
src="../images/cocoon.gif"/></td>
- <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version @version@</b></font></td>
+ <td width="30%" align="center"><font face="arial,helvetica,sanserif"
color="#000000"><b>version 2.1-dev</b></font></td>
</tr>
</table>
@@ -27,7 +27,7 @@
<p align="center">
<font size="-1">
- Copyright © @year@ <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
+ Copyright © 1999-2002 <a href="http://www.apache.org">The Apache
Software Foundation</a>.<br/>
All rights reserved.
</font>
</p>
1.2 +1 -1 xml-cocoon2/src/webapp/templates/hello-page.vm
Index: hello-page.vm
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/templates/hello-page.vm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- hello-page.vm 3 Jan 2002 12:31:47 -0000 1.1
+++ hello-page.vm 20 May 2002 06:53:17 -0000 1.2
@@ -7,4 +7,4 @@
<para>This is my first Cocoon2 page!</para>
<para>Hi! This page is generated using $name from the $project
project.</para>
</content>
-</page>
\ No newline at end of file
+</page>
1.2 +1 -1 xml-cocoon2/src/webapp/tutorial/docs/dtd/changes-v10.dtd
Index: changes-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/changes-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- changes-v10.dtd 3 Jan 2002 12:31:48 -0000 1.1
+++ changes-v10.dtd 20 May 2002 06:53:17 -0000 1.2
@@ -38,7 +38,7 @@
20000316 Added bugfixing attribute. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/tutorial/docs/dtd/faq-v10.dtd
Index: faq-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/faq-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- faq-v10.dtd 3 Jan 2002 12:31:48 -0000 1.1
+++ faq-v10.dtd 20 May 2002 06:53:17 -0000 1.2
@@ -36,7 +36,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/tutorial/docs/dtd/javadoc-v04draft.dtd
Index: javadoc-v04draft.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/javadoc-v04draft.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- javadoc-v04draft.dtd 3 Jan 2002 12:31:48 -0000 1.1
+++ javadoc-v04draft.dtd 20 May 2002 06:53:17 -0000 1.2
@@ -47,7 +47,7 @@
19991129 Cleaned up DTD. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1
xml-cocoon2/src/webapp/tutorial/docs/dtd/specification-v10.dtd
Index: specification-v10.dtd
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/specification-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- specification-v10.dtd 3 Jan 2002 12:31:48 -0000 1.1
+++ specification-v10.dtd 20 May 2002 06:53:17 -0000 1.2
@@ -31,7 +31,7 @@
19991129 Initial version. (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.2 +1 -1 xml-cocoon2/src/webapp/tutorial/docs/dtd/todo-v10.dtd
Index: todo-v10.dtd
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/tutorial/docs/dtd/todo-v10.dtd,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- todo-v10.dtd 3 Jan 2002 12:31:48 -0000 1.1
+++ todo-v10.dtd 20 May 2002 06:53:17 -0000 1.2
@@ -39,7 +39,7 @@
19991225 Added actions element for better structure (SM)
COPYRIGHT:
- Copyright (c) @year@ The Apache Software Foundation.
+ Copyright (c) 1999-2002 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
1.5 +2 -2 xml-cocoon2/src/webapp/welcome/welcome.xhtml
Index: welcome.xhtml
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/webapp/welcome/welcome.xhtml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- welcome.xhtml 16 May 2002 09:22:45 -0000 1.4
+++ welcome.xhtml 20 May 2002 06:53:17 -0000 1.5
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>Apache Cocoon @version@</title>
+ <title>Apache Cocoon 2.1-dev</title>
<link href="favicon.ico" rel="SHORTCUT ICON" />
</head>
@@ -25,7 +25,7 @@
<tr>
<td align="center" width="30%">
<font color="#000000" face="arial,helvetica,sanserif">
- <b>version @version@</b>
+ <b>version 2.1-dev</b>
</font>
</td>
</tr>
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]