> -----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]