> -----Original Message-----
> From: Ivelin Ivanov [mailto:[EMAIL PROTECTED]]
> Subject: Re: Parameterizing Sitemap with XMLForms
> 
> The cause for the exception is
> 
> <map:parameter name="xmlform-validator-schema"
> value="forms/{1}/xmlform-sch-report.xml"/>

Yes, that is correct.

> The value should point to a path which the SourceResolver 
> passed to the
> AbstractXMLFormAction can locate and load.

My next step was to jdb through the code.  I'll scrutinize the SourceResolver that is 
passed.  Something must be screwy there.  I haven't looked at SourceResolvers yet, but 
I'm guessing that it is out of your hands, you just ask for a file handle or a stream 
back from the SourceResolver.

> I am not quite sure what is the layout of the directories in 
> your case.

For example, request of /bill2forms/HowtoWizard.html against <map:match 
pattern="bill2forms/*.html"> results in {1} = 'HowtoWizard'.

The /forms/HowtoWizard/xmlform-sch-report.xml exists and is valid (simply the file of 
similar name from the example.

> A sitemap expert should be able to help with this one.
> If I am not mistaken {1} references the first variable in the current
> sitemap,
> while {../1} references the first variable in the parent sitemap.

Yes, that is my experience too.

> What do you think the bug in AbstractXMLFormAction is?

The <map:parameter> entities that are passed into the subclass of 
AbstractXMLFormAction improperly require {1} for the TreeProcessor to work; they 
should properly work with {../1} like the rest of the action.  What I have described 
so far is a problem in the transitive closure of TreeProcessor, which may or may not 
include AbstractXMLFormAction.  I don't know it yet, so I need to learn it.  According 
to http://xml.apache.org/cocoon/userdocs/concepts/actions.html, "Communication Between 
Sitemap and Action", {1} should reference the current map object (the action) and 
{../1} should reference the previous one (the match).  When <map:parameter 
name="xmlform-validator-schema" value="forms/{../1}/xmlform-sch-report.xml"/>, the 
TreeProcessor complains with "org.apache.cocoon.sitemap.PatternException: Error while 
evaluating 'form-{../1}' : not so many levels", when passed {1} for same parameter, 
getFormValidator complains with the original exception.

So there is either a bug in my brain, in the semantics/documentation, or in the code.  
I'm more inclined to believe that AbstractXMLFormAction is being handed a bad 
SourceResolver, but I haven't looked at a single line of AbstractXMLFormAction yet.  
The overall semantics are pretty simple, thereby minimizing that I am just not groking 
it and pointing to a problem somewhere.  But until I can send a patch, the code works 
by definition, right? :)

Gotta get some sleep now.  Don't sweat this too much, I just wanted to see if anyone 
recognized it. I'll work on it soon.

-B

> 
> ----- Original Message -----
> From: "Brian Topping" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, June 06, 2002 5:46 AM
> Subject: Parameterizing Sitemap with XMLForms
> 
> 
> Hi all,
> 
> So I am trying to parameterize a sitemap that I am using with 
> forms and
> running into an interesting situation.  I don't know enough 
> about components
> and actions yet, but this may be a bug in 
> AbstractXMLFormAction.  (I've
> changed the names in the code below, but it's just Heidi's example...)
> 
> Sitemap snippet:
> 
> <map:match pattern="bill2forms/*.html">
> <map:act type="HowtoWizardAction">
> <!-- XMLForm parameters for the HowtoWizardAction -->
> <map:parameter name="xmlform-validator-schema-ns"
> value="http://www.ascc.net/xml/schematron"/>
> <map:parameter name="xmlform-validator-schema"
> value="forms/{1}/xmlform-sch-report.xml"/>
> <map:parameter name="xmlform-id" value="form-{1}"/>
> <map:parameter name="xmlform-scope" value="session"/>
> <map:parameter name="xmlform-model"
> value="com.bill2.site.xmlform.HowtoBean"/>
> <!-- Content transformation logic -->
> <map:generate src="forms/{../1}/{page}.xml"/>
> <map:transform type="xmlform" label="xml"/>
> <map:transform src="forms/{../1}/wizard2html.xsl"/>
> <map:transform src="context://stylesheets/xmlform/xmlform2html.xsl"/>
> <map:serialize type="html"/>
> </map:act>
> </map:match>
> 
> If you look at the parameterization, all of the 
> <map:parameters> use "{1}",
> but all the other components are sent "{../1}".  This is what 
> it takes to
> get the sitemap interpreter to be happy and put the start page on the
> screen.  But when it comes to clicking on the "Start" link on 
> the first form
> page, the following exception is generated:
> 
> org.apache.avalon.framework.CascadingRuntimeException:  Failed loading
> validating schema
> at
> org.apache.cocoon.acting.AbstractXMLFormAction.getFormValidato
> r(AbstractXMLF
> ormAction.java:365)
> at
> org.apache.cocoon.acting.AbstractXMLFormAction.getForm(Abstrac
> tXMLFormAction
> .java:179)
> at
> org.apache.cocoon.acting.AbstractXMLFormAction.act(AbstractXML
> FormAction.jav
> a:202)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode
> .invoke(ActTyp
> eNode.java:133)
> 
> I wouldn't mind submitting the patch, but I'm not confident 
> enough yet of
> the semantics of parameterization to know if I am doing the 
> right thing.  I
> presume that the problem is in AbstractXMLFormAction by the 
> fact that the
> other components weren't changed, but that kind of hunch is not a very
> responsible manner in which to submit a patch...
> 
> If it takes longer to describe than it does to fix, I can 
> wait for the next
> bug in order to put some work in.  But I do want to learn about the
> semantics of parameterization more, and I only really know 
> about {../*} from
> a post that Vadim made a long time back.  Is there a full 
> explanation of
> this anywhere?  (RTFM?)
> 
> best,
> 
> -b
> 
> _________________________________________________________
> If you have some ice cream, I will give it to you.
> If you have no ice cream, I will take it away from you.
>          - Ice Cream Koan
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to