answer is in the combination of using
- @lenient (for surviving reads from paths that don't exist yet)
- and the o.a.c.util.jxpath.DOMFactory (for creating new paths on the target XML)
for some mysterious reason one of my commits messed up the auto-registry of that factory on Nodes, fixed now.
regards, -marc=
Markus Heussen wrote:
-----Urspr�ngliche Nachricht----- Von: Upayavira [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 18. Dezember 2003 12:12 An: [EMAIL PROTECTED] Betreff: Re: AW: [Woody] Binding problem for missing elements in source file
Markus Heussen wrote:
-----Ursprungliche Nachricht----- Von: Upayavira Gesendet: Mittwoch, 17. Dezember 2003 16:49 An: [EMAIL PROTECTED] Betreff: Re: [Woody] Binding problem for missing elements in source file
Markus Heussen wrote:
Hi all.
I'm new to the Woody framework but till now it works fine for me. But I
have
one problem I don't know how to solve at best :-(
I get the following exception when I submit the form:
org.apache.cocoon.woody.binding.BindingException: Problem binding field vn_titel (parent = "") to xpath v:Titel (context xpath = "/soap-env:Envelope[1]/soap-env:Body[1]/v:Versicherung[1]/v:Par
tner[1]/v:P
er
son[1]")
org.apache.commons.jxpath.JXPathException: No value for xpath: v:Titel
The field is defined in the form definition file and a binding is also defined in the woody binding file. But in one case there is no
corresponding
XML tag in my source file. In other case there is one. I have to create
the
element if it is missing. So how can I manage this situation at best?
Who can point me to the right direction?
Not sure if I'm right here, but I think you need 'lenient' jxpath within binding - this means that, if jxpath doesn't find a node, it ignores it, rather than causing an exception.
But this is not exactly what I have to do. If there is no node
in the source
file I have to create this node before the binding saves it back to the source. How can I manage this at best? I have no experience in using the woody framework. When I set @readonly to true within the binding I get no exceptions because there is no saving process. But in fact I have to save it. I tried something around <wb:insert-node/> but it didn't work :-( <wb:delete-node/> does what I expected.
Anyone there who can give me a hint? I really need this feature.
I'm no expert either, and I've never used binding. I am talking about 'lenient' not 'readonly' or 'direction'. It was committed into CVS this morning, here's a snippet from the status.xml file:
<action dev="MPO" type="add" > Changed semantics on the cforms binding. Added a @direction (which replaces the @read-only) and a @lenient attribute on all binding implementations in the pool. </action>
Still don't know if this is what you're after.
Regards, Upayavira
I spend some time learning more about this lenient thing and meanwhile I use a current developer version (about two hours old) for my application.
But still it doesn't work :-( Maybe somebody can explain what I'm doing wrong. I have something like this:
woody binding: <wb:value id="vn_titel" path="v:Titel" lenient="true"/>
woody field: <wd:field id="vn_titel" required="false"> <wd:label>Titel</wd:label> <wd:datatype base="string"/> </wd:field>
On submit I get the following exception:
org.apache.commons.jxpath.JXPathException: Exception trying to create xpath v:Titel; Factory is not set on the JXPathContext - cannot create path: /soap-env:Envelope[1]/soap-env:Body[1]/v:Versicherung[1]/v:Partner[1]/v:Pers on[1]
Though it was recognized that the v:Titel node is not present in my source file. But what's my mistake? I also tried to set the lenient attribute on the parent context element but I still get the exception.
I need your help because this feature is very basic for me.
Thanks for your help.
Markus
Markus
There has been discussion on the dev list about adding this over the last couple of days. I'm not sure if it is in CVS Cocoon yet, but I suspect it will be within a day or so.
Regards, Upayavira
Thanks for your help, Markus.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Marc Portier http://outerthought.org/ Outerthought - Open Source, Java & XML Competence Support Center Read my weblog at http://blogs.cocoondev.org/mpo/ [EMAIL PROTECTED] [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
