Many thanks to you marc for your full description :-)

> -----Urspr�ngliche Nachricht-----
> Von: Marc Portier
> Gesendet: Montag, 22. Dezember 2003 17:12
> An: [EMAIL PROTECTED]
> Betreff: Re: AW: AW: AW: AW: [Woody] Binding problem for missing
> elements in source file
>
>
> oh blast,
> sorry for being so bone-headed, but I really needed your example here...
> you refer to the document-order of the node!
>
> so not just about the creation of the new node, but creating it at a
> very specific place....
>
> only way out (for now) seems to be to get into writing your own custom
> DOMfactory that knows about your specific document
> (see over at o.a.c.util and register that on the JXPAthContext before
> handing it over to the binding using some javascript that looks
> like this:)
>
> example snatched from a recent posting on cocoon-dev:
> see http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=107062994517119&w=2
>
> > in the flow, don't load/save the
> > DOM directly, but through a JXPathContext as follows;
> >
> >   var doc = readDocument(url);
> >   var bindingCtx = createBindingContext(doc);
> >   form.load(bindingCtx);
> >   form.showForm("pipeline");
> >   form.save(bindingCtx);
> >
> > And here's the createBindingContext function:
> >
> > function createBindingContext(document) {
> >    // Create a JXPath context on the document.
> >    var xpathContext =
> > Packages.org.apache.commons.jxpath.JXPathContext.newContext(document);
>
> you should replace this by instantiating your own implementation of the
> Factory interface for jxpath (see here:
> http://jakarta.apache.org/commons/jxpath/apidocs/org/apache/common
> s/jxpath/AbstractFactory.html)
>
> you should find some hints for doing this in the current implementation
> of the generic (but simply adding at the end) DOMFactory implementation
> over at:
> http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/java/org/apache/c
> ocoon/util/jxpath/DOMFactory.java?rev=1.1&view=auto
>
>
> in case you get tempted in doing the generic implementation for any
> possible DTD, then be sure to send in the patch :-)
>
> >    // Set it to lenient
> >    xpathContext.setLenient(true);
> >    // Add the necessary factory create elements and attributes
> as needed
> > on non-existing paths
> >    xpathContext.setFactory(new
> > Packages.org.apache.cocoon.util.jxpath.DOMFactory());
> >    return xpathContext;
> > }
>
>
> HTH,
> -marc=
>
>
>
>
>
> Markus Heussen wrote:
>
> >
> >>-----Urspr�ngliche Nachricht-----
> >>Von: Marc Portier
> >>Gesendet: Montag, 22. Dezember 2003 12:41
> >>An: [EMAIL PROTECTED]
> >>Betreff: Re: AW: AW: AW: [Woody] Binding problem for missing elements in
> >>source file
> >>
> >>
> >>
> >>
> >>Markus Heussen wrote:
> >>
> >>
> >>>Many thanks to you, now everything works fine :-)
> >>>
> >>
> >>yeah, we get there *eventually*
> >>
> >>
> >>>But two questions I still have:
> >>>
> >>>1. Is it possible to control the position where nodes will be
> >>
> >>created within
> >>
> >>>a context? Sometimes this is necessary if the xml schema defines the
> >>>sequence of nodes.
> >>>
> >>
> >>could you be more specific?
> >>
> >>naieve first thought: the @path attribute of the wb:context has
> >>precisely this purpose
> >>
> >>(given your previous questions and remarks that sounds like a too
> >>simplistic answer though)
> >>
> >
> >
> > My source file contains something like this:
> > ...
> > <v:Person Rolle="Versicherungsnehmer">
> >     <v:Anrede Schl�ssel="1"/>
> >     <!-- here a v:Titel node is missing -->
> >     <v:Vorname>firstname</v:Vorname>
> >     <v:Name>name</v:Name>
> >     <v:Anschrift>
> >             <v:Stra�e>street</v:Stra�e>
> >             <v:Plz>12345</v:Plz>
> >             <v:Ort>location</v:Ort>
> >     </v:Anschrift>
> >     <v:Geschlecht Schl�ssel="1"/>
> >     <v:Geburtsdatum>0000-00-00</v:Geburtsdatum>
> >     <v:Familienstand Schl�ssel="1"/>
> >     <v:Staatsangeh�rigkeit>D</v:Staatsangeh�rigkeit>
> >     ...
> > </v:Person>
> > ...
> >
> >
> > And here is my binding:
> > ...
> > <wb:context path="v:Partner/[EMAIL PROTECTED]'Versicherungsnehmer'][1]">
> >     <wb:value id="vn_anrede" path="v:Anrede/@Schl�ssel" lenient="true"/>
> >     <wb:value id="vn_titel" path="v:Titel" lenient="true"/>
> >     <wb:value id="vn_vorname" path="v:Vorname" lenient="true"/>
> >     <wb:value id="vn_name" path="v:Name"/>
> >     <wb:value id="vn_namenszusatz" path="v:Namenszusatz"
> lenient="true"/>
> >     <wb:context path="v:Anschrift">
> >             <wb:value id="vn_strasse" path="v:Stra�e" lenient="true"/>
> >             <wb:value id="vn_plz" path="v:Plz"/>
> >             <wb:value id="vn_ort" path="v:Ort"/>
> >     </wb:context>
> >     ...
> > </wb:context>
> > ...
> >
> >
> > After submission the v:Titel node is recognized as missing and will be
> > created as the last node of the context. So my result looks like this:
> >
> > ...
> > <v:Person Rolle="Versicherungsnehmer">
> >     <v:Anrede Schl�ssel="1"/>
> >     <!-- here the v:Titel node has to be
> > created --><!--<v:Titel>Dr.</v:Titel>-->
> >     <v:Vorname>firstname</v:Vorname>
> >     <v:Name>name</v:Name>
> >     <v:Anschrift>
> >             <v:Stra�e>street</v:Stra�e>
> >             <v:Plz>12345</v:Plz>
> >             <v:Ort>location</v:Ort>
> >     </v:Anschrift>
> >     <v:Geschlecht Schl�ssel="1"/>
> >     <v:Geburtsdatum>0000-00-00</v:Geburtsdatum>
> >     <v:Familienstand Schl�ssel="1"/>
> >     <v:Staatsangeh�rigkeit>D</v:Staatsangeh�rigkeit>
> >     ...
> >     <!-- here the node was created --><v:Titel>Dr.</v:Titel>
> > </v:Person>
> > ...
> >
> >
> > But the W3C schema not allows this position for this node because the
> > sequence of the nodes has to be like this:
> >
> > ...
> > <v:Person Rolle="Versicherungsnehmer">
> >     <v:Anrede Schl�ssel="1"/>
> >     <v:Titel>Dr.</v:Titel>
> >     <v:Vorname>firstname</v:Vorname>
> >     <v:Name>name</v:Name>
> >     <v:Anschrift>
> >             <v:Stra�e>street</v:Stra�e>
> >             <v:Plz>12345</v:Plz>
> >             <v:Ort>location</v:Ort>
> >     </v:Anschrift>
> >     <v:Geschlecht Schl�ssel="1"/>
> >     <v:Geburtsdatum>0000-00-00</v:Geburtsdatum>
> >     <v:Familienstand Schl�ssel="1"/>
> >     <v:Staatsangeh�rigkeit>D</v:Staatsangeh�rigkeit>
> >     ...
> > </v:Person>
> > ...
> >
> >
> > Is there a way woody supports this? A workaround can be a
> transformation of
> > the result message that constructs the xml document that is
> valid against
> > the schema. But that's not my favor :-(
> >
> > Thank you for your help!
> >
> > Markus
> >
> >
> >
> >>>2. If the input of a date form field is for example "31.02.2004" after
> >>>submission this value is automatically set to "02.03.2004". How
> >>
> >>can I change
> >>
> >>>this behavior? Is there a attribute I can set in the woody binding or
> >>>definition file to get the behavior like using the "setLenient(false)"
> >>>method of the class SimpleDateFormat?
> >>>
> >>
> >>not yet, see other thread where you originally posted this...
> >>
> >>
> >>>Thanks for helping me!
> >>>
> >>
> >>de nada,
> >>
> >>-marc=
> >>
> >>
> >>>Greetings, Markus
> >>>
> >>>
> >>>
> >>>>-----Urspr�ngliche Nachricht-----
> >>>>Von: Marc Portier
> >>>>Gesendet: Samstag, 20. Dezember 2003 16:08
> >>>>An: [EMAIL PROTECTED]
> >>>>Betreff: Re: AW: AW: [Woody] Binding problem for missing elements in
> >>>>source file
> >>>>
> >>>>
> >>>>Yo, all.
> >>>>
> >>>>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]
> >>>
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>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]
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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]


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

Reply via email to