You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Colin Paul Adams <co...@colina.demon.co.uk> on 2004/06/28 15:40:36 UTC

CForms

In the documentation for FormsTemplateTransformer,
it says:

"These widget-XML-descriptions will then typically be translated to
HTML by an XSLT. This XSLT is then however not form-specific, as it
simply needs to know how to translate individual widgets to HTML, and
does not have to create the complete page layout. CForms contains just
such an XSLT so you don't have to write it yourself (except if you
need to do heavy customisation)."

Where and what is this XSLT?
-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms

Posted by Colin Paul Adams <co...@colina.demon.co.uk>.
>>>>> "Vilya" == Vilya Harvey <vi...@lineone.net> writes:

    Vilya> The forms-samples-styling.xsl file *is* actually generic
    Vilya> and is what you want to use, either as-is or as a starting
    Vilya> point for your own transformations.

It doesn't look all that specific to me.
It seems to require that the input is html (not xhtml, which is what I
am writing), and likewise the output must be html, not xhtml.

    Vilya> There is nothing in
    Vilya> them that is specific to the examples that come with
    Vilya> CForms.

OK. I accept that.

Thanks to you and Tim for your help.

It seems I have to write the outer transform from scratch, but maybe I
can reuse the others.
-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms

Posted by Vilya Harvey <vi...@lineone.net>.
Colin Paul Adams wrote:
>     Tim> In the sitemap for the sample forms:
>     Tim> C:\tdl\live\repo\cocoon\cocoon-2.1\src\blocks\forms\samples\sitemap.xmap
>     Tim> you will see transformer lines like this: <map:transform
>     Tim> src="resources/forms-samples-styling.xsl"/> that refer to the
>     Tim> stylesheets here:
>     Tim> cocoon-2.1\src\blocks\forms\samples\resources
> 
>     Tim> HTH, --Tim Larson
> 
> Not really Tim.
> I saw all those.
> But they seem to be samples, specific to the specific examples.
> At least, that is how I read them.

The forms-samples-styling.xsl file *is* actually generic and is what you 
want to use, either as-is or as a starting point for your own 
transformations. There is nothing in them that is specific to the examples 
that come with CForms.

> The documentation was saying you DON'T have to write individual
> stylesheets for each form.
> If that is correct, then what stylesheet DO you use?

You can use forms-samples-styling.xsl or you can write your own equivalent. 
The point that the sentence you're referring to was making is that you only 
have to write one XSL file and it will be applicable to all of your forms, 
rather than having to write one XSL file for each of your forms (where each 
of the XSL files would be very similar to all the others).

Hope that clarifies it a bit for you!

Vil.
-- 
             __
    o|   _. /  \|o._  _  _ ._  _  ._  _ _|_
\/ ||\/(_|| (|/||| |(/_(_)| |(/_o| |(/_ |_
      /     \__
http://website.lineone.net/~vilya

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms error

Posted by Colin Paul Adams <co...@colina.demon.co.uk>.
>>>>> "Colin" == Colin Paul Adams <co...@colina.demon.co.uk> writes:

    Colin> Oops - I sent the wrong trace.  That one was saxon failing
    Colin> to transform the output of the forms transformer.  So I
    Colin> inserted a serialize step after the form transformer, to
    Colin> tae a look at what is was producing, and I got this:

    Colin> Original Exception: java.lang.NullPointerException at
    Colin> org.apache.xml.serializer.NamespaceMappings.pushNamespace(NamespaceMappings.java:196)
    Colin> at
    Colin> org.apache.xml.serializer.ToStream.startPrefixMapping(ToStream.java:2107)
    Colin> at

Inserting a log transformer between the forms transformer and the
serializer, show it ending thus:

[endElement] uri=http://www.w3.org/1999/xhtml,local=tr,raw=tr
[characters] 
	  
[characters] 
	  
[comment]  The contents of the repeater-widget element is a template that will
	       be applied to each row in the repeater. 
[characters] 
	  
[characters] 
	    
[startPrefixMapping] prefix=null,uri=null

So it looks to me like a bug in the forms transformer.
-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms error

Posted by Colin Paul Adams <co...@colina.demon.co.uk>.
Oops - I sent the wrong trace.
That one was saxon failing to transform the output of the forms
transformer.
So I inserted a serialize step after the form transformer, to tae a
look at what is was producing, and I got this:

Original Exception: java.lang.NullPointerException
	at org.apache.xml.serializer.NamespaceMappings.pushNamespace(NamespaceMappings.java:196)
	at org.apache.xml.serializer.ToStream.startPrefixMapping(ToStream.java:2107)
	at org.apache.xml.serializer.ToStream.startPrefixMapping(ToStream.java:2057)
	at org.apache.xalan.transformer.TransformerIdentityImpl.startPrefixMapping(TransformerIdentityImpl.java:932)
	at org.apache.cocoon.xml.AbstractXMLPipe.startPrefixMapping(AbstractXMLPipe.java:67)
	at org.apache.cocoon.xml.AbstractXMLPipe.startPrefixMapping(AbstractXMLPipe.java:67)
	at org.apache.cocoon.forms.transformation.EffectPipe$Output.startPrefixMapping(EffectPipe.java:181)
	at org.apache.cocoon.forms.transformation.EffectPipe$Output.copy(EffectPipe.java:258)
	at org.apache.cocoon.forms.transformation.EffectWidgetReplacingPipe$NestedHandler.process(EffectWidgetReplacingPipe.java:343)
	at org.apache.cocoon.forms.transformation.EffectPipe.startPrefixMapping(EffectPipe.java:397)
	at org.apache.cocoon.xml.SaxBuffer$StartPrefixMapping.send(SaxBuffer.java:343)
	at org.apache.cocoon.xml.SaxBuffer.toSAX(SaxBuffer.java:170)
	at org.apache.cocoon.forms.transformation.EffectWidgetReplacingPipe$RepeaterWidgetHandler.process(EffectWidgetReplacingPipe.java:461)
	at org.apache.cocoon.forms.transformation.EffectPipe.endElement(EffectPipe.java:417)
	at org.apache.cocoon.components.sax.XMLTeePipe.endElement(XMLTeePipe.java:89)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


CForms error

Posted by Colin Paul Adams <co...@colina.demon.co.uk>.
When i try to run the forms transforer, I'm getting the following
error. I've checked the input template with xmllint - it's well formed
- here it is:

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ft="http://apache.org/cocoon/forms/1.0#template">
  <body>
    <h1>Edit diary events</h1>
    <ft:form-template action="#{$continuation/id}.continue" method="post">
      <div>
	<ft:widget-label id="events"/><br xmlns="http://www.w3.org/1999/xhtml"/>
	<ft:repeater-size id="events"/>
	<table xmlns="http://www.w3.org/1999/xhtml" border="1">
	  <tr>
	    <th><ft:repeater-widget-label id="events" widget-id="date"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="start-time"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="finish-time"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="suppression"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="title"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="location"/></th>
	    <th><ft:repeater-widget-label id="events" widget-id="select"/></th>
	  </tr>
	  
	  <!-- The contents of the repeater-widget element is a template that will
	       be applied to each row in the repeater. -->
	  <ft:repeater-widget id="events">
	    <tr xmlns="http://www.w3.org/1999/xhtml">
	      <!-- Don't show the id
		   <td>[<ft:widget id="id"/>]</td>
	      -->
	      <td><ft:widget id="date"/></td>
	      <td><ft:widget id="start-time"/></td>
	      <td><ft:widget id="finish-time"/></td>
	      <td><ft:widget id="suppression"/></td>
	      <td><ft:widget id="title"/></td>
	      <td><ft:widget id="location"/></td>
	      <td><ft:widget id="select"/></td>
	    </tr>
	  </ft:repeater-widget>
	  
	  <tr >
	    <td colspan="4" align="right">
	      <ft:widget id="addevent"/>
	      <ft:widget id="removeevents"/>
	    </td>
	  </tr>
	</table>
	
	<input xmlns="http://www.w3.org/1999/xhtml" type="submit"/>
      </div>
    </ft:form-template>
  </body>
</html>

So what might be wrong?

An Error Occurred

Failed to execute pipeline.

org.apache.cocoon.ProcessingException: Failed to execute pipeline.: java.lang.NullPointerException

cause: java.lang.NullPointerException

full exception chain stacktrace[hide]

Original Exception: java.lang.NullPointerException
	at net.sf.saxon.om.NamePool.allocateCodeForPrefix(NamePool.java:288)
	at net.sf.saxon.om.NamePool.allocateNamespaceCode(NamePool.java:199)
	at net.sf.saxon.event.ReceivingContentHandler.startPrefixMapping(ReceivingContentHandler.java:112)
	at org.apache.cocoon.xml.AbstractXMLPipe.startPrefixMapping(AbstractXMLPipe.java:67)
	at org.apache.cocoon.xml.AbstractXMLPipe.startPrefixMapping(AbstractXMLPipe.java:67)
	at org.apache.cocoon.forms.transformation.EffectPipe$Output.startPrefixMapping(EffectPipe.java:181)
	at org.apache.cocoon.forms.transformation.EffectPipe$Output.copy(EffectPipe.java:258)
	at org.apache.cocoon.forms.transformation.EffectWidgetReplacingPipe$NestedHandler.process(EffectWidgetReplacingPipe.java:343)
	at org.apache.cocoon.forms.transformation.EffectPipe.startPrefixMapping(EffectPipe.java:397)
	at org.apache.cocoon.xml.SaxBuffer$StartPrefixMapping.send(SaxBuffer.java:343)
	at org.apache.cocoon.xml.SaxBuffer.toSAX(SaxBuffer.java:170)
	at org.apache.cocoon.forms.transformation.EffectWidgetReplacingPipe$RepeaterWidgetHandler.process(EffectWidgetReplacingPipe.java:461)
	at org.apache.cocoon.forms.transformation.EffectPipe.endElement(EffectPipe.java:417)
	at org.apache.cocoon.components.sax.XMLTeePipe.endElement(XMLTeePipe.java:89)
	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:296)
	at org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:315)
	at org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:252)
	at org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:260)
	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:490)
	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
	at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.handleCocoonRedirect(TreeProcessor.java:386)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.access$000(TreeProcessor.java:66)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor$TreeProcessorRedirector.cocoonRedirect(TreeProcessor.java:547)
	at org.apache.cocoon.environment.ForwardRedirector.redirect(ForwardRedirector.java:58)
	at org.apache.cocoon.components.flow.AbstractInterpreter.forwardTo(AbstractInterpreter.java:182)
	at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.forwardTo(FOM_JavaScriptInterpreter.java:837)
	at org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon.forwardTo(FOM_Cocoon.java:1482)
	at org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon.jsFunction_sendPage(FOM_Cocoon.java:265)
	at inv6.invoke()
	at org.mozilla.javascript.FunctionObject.doInvoke(FunctionObject.java:523)
	at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:438)
	at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
	at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:1134)
	at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:190)
	at org.mozilla.javascript.continuations.ContinuationInterpreter.interpret(ContinuationInterpreter.java:138)
	at org.mozilla.javascript.continuations.InterpretedFunctionImpl.call(InterpretedFunctionImpl.java:121)
	at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1244)
	at org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.callFunction(FOM_JavaScriptInterpreter.java:702)
	at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:130)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
	at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
	at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
	at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
	at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
	at org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:107)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
	at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
	at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
	at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
	at org.mortbay.http.HttpServer.service(HttpServer.java:879)
	at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)



-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms

Posted by Tim Larson <ti...@keow.org>.
On Mon, Jun 28, 2004 at 03:35:08PM +0100, Colin Paul Adams wrote:
> >>>>> "Tim" == Tim Larson <ti...@keow.org> writes:
>     Tim> In the sitemap for the sample forms:
>     Tim> C:\tdl\live\repo\cocoon\cocoon-2.1\src\blocks\forms\samples\sitemap.xmap
>     Tim> you will see transformer lines like this: <map:transform
>     Tim> src="resources/forms-samples-styling.xsl"/> that refer to the
>     Tim> stylesheets here:
>     Tim> cocoon-2.1\src\blocks\forms\samples\resources
> 
>     Tim> HTH, --Tim Larson
> 
> Not really Tim.
> I saw all those.
> But they seem to be samples, specific to the specific examples.
> At least, that is how I read them.

While these stylesheets are included with the samples, they are not
specific to the individual samples.  To be a little clearer:

forms-samples-styling.xsl - top-level xslt that includes the others
forms-page-styling.xsl    - does page-level styling
forms-field-styling.xsl   - does simple, minimal field styling
forms-advanced-field-styling.xsl - does fancy field styling, in part
                                 - by including the two xslt's below
forms-calendar-styling.xsl - calendar picker styling
forms-htmlarea-styling.xsl - html editor styling

> The documentation was saying you DON'T have to write individual
> stylesheets for each form.
> If that is correct, then what stylesheet DO you use?

Note that the form-specific xslt's are kept elsewhere, for example:
  cocoon-2.1\src\blocks\forms\samples\xsl\carfilter.xsl

HTH more :)
--Tim Larson

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms

Posted by Colin Paul Adams <co...@colina.demon.co.uk>.
>>>>> "Tim" == Tim Larson <ti...@keow.org> writes:

    Tim> On Mon, Jun 28, 2004 at 02:40:36PM +0100, Colin Paul Adams
    Tim> wrote:
    >> In the documentation for FormsTemplateTransformer, it says:
    >> 
    >> "These widget-XML-descriptions will then typically be
    >> translated to HTML by an XSLT. This XSLT is then however not
    >> form-specific, as it simply needs to know how to translate
    >> individual widgets to HTML, and does not have to create the
    >> complete page layout. CForms contains just such an XSLT so you
    >> don't have to write it yourself (except if you need to do heavy
    >> customisation)."
    >> 
    >> Where and what is this XSLT?

    Tim> In the sitemap for the sample forms:
    Tim> C:\tdl\live\repo\cocoon\cocoon-2.1\src\blocks\forms\samples\sitemap.xmap
    Tim> you will see transformer lines like this: <map:transform
    Tim> src="resources/forms-samples-styling.xsl"/> that refer to the
    Tim> stylesheets here:
    Tim> cocoon-2.1\src\blocks\forms\samples\resources

    Tim> HTH, --Tim Larson

Not really Tim.
I saw all those.
But they seem to be samples, specific to the specific examples.
At least, that is how I read them.

The documentation was saying you DON'T have to write individual
stylesheets for each form.
If that is correct, then what stylesheet DO you use?
-- 
Colin Paul Adams
Preston Lancashire

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: CForms

Posted by Tim Larson <ti...@keow.org>.
On Mon, Jun 28, 2004 at 02:40:36PM +0100, Colin Paul Adams wrote:
> In the documentation for FormsTemplateTransformer,
> it says:
> 
> "These widget-XML-descriptions will then typically be translated to
> HTML by an XSLT. This XSLT is then however not form-specific, as it
> simply needs to know how to translate individual widgets to HTML, and
> does not have to create the complete page layout. CForms contains just
> such an XSLT so you don't have to write it yourself (except if you
> need to do heavy customisation)."
> 
> Where and what is this XSLT?

In the sitemap for the sample forms:
  C:\tdl\live\repo\cocoon\cocoon-2.1\src\blocks\forms\samples\sitemap.xmap
you will see transformer lines like this:
  <map:transform src="resources/forms-samples-styling.xsl"/>
that refer to the stylesheets here:
  cocoon-2.1\src\blocks\forms\samples\resources

HTH,
--Tim Larson

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org