> > Konstantin, > > did you have time to look at the FormBeanBinder code I've > submitted? Does it satisfy the Form symmety requirement > you've placed on the list shortly after the Castor > transformer become available?
Unfortunately I am currently too busy with document reading/reviewing at my work and hadn't time to look at it. I hope that it goes in the right direction. To get more feedback on it it'll be fine if you could create a simple webapp sample and add it to C2 with a brief description/documentation. IMO, generally, people is too lazy to install it and try if they are not interested or don't know what is it for. > > I got feedback from Sam and Michael that the proposed > implementation is not bad start and is worth extending, but I > need more people from the core team to look at it, before I > can continue with more advanced features. Hope, I'll have time to look at it a little later (maybe on the next release ;) ). (Btw, I am not from the core team) Regards, Konstantin > > Thanks, > > Ivelin > > ----- Original Message ----- > From: "Ivelin Ivanov" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Cc: "Dmitri Plotnikov" <[EMAIL PROTECTED]> > Sent: Sunday, March 10, 2002 6:47 AM > Subject: Re: Comitting components > > > > Folks, > > > > I think we might have made one small step towards HTML Form > symmetry > > in Cocoon. The approach I have taken after long discussions > and even > > longer hours before my monitor is enhancing the Cocoon > Action concept > > so that it is coherent with the rest of the framework. > > > > Thanks to the people who built JXPath and Castor (and > CastorTransformer), > > I think we now have a way to elegantly map content to > business logic. > (HTML > > Forms <-> XML/XPath <-> JavaBeans) > > > > The idea has been in circulation for a long time: unmarshal > JavaBeans > > from the buziness layer to XML, so that they can be part of the > > content model > and > > then use XPath expressions for HTML Form elements so that > on POST the > > same JavaBean can be updated and sent back to the business logic. > > > > You can download a scratchpad formatted bundle here: > > http://prdownloads.sourceforge.net/freebuilder/CocoonForm.zip > > I've only used Apache licensed files this time ;) > > The examples are based on the CastorTransformer examples, so they > > should > be > > easy to comprehend. > > > > The code is very simple. I've tried not to touch more advanced > > problems > like > > error handling and reporting, unusual custom mapping and multi page > wizards. > > Thought I should first present to the rest of the group a simple > > prototype for feasibility test . > > > > > > Below I will show just a sample XSL file which takes an XML > > presentation > of > > a JavaBean and renders HTML forms with the appropriate XPath > > expressions. > It > > will hopefully sharpen your apetite enough to make you look at the > > code > and > > participate in the > > discussion: > > > > > > --------------------------- > > - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > version="1.0"> > > <xsl:output method="html" omit-xml-declaration="yes" /> > > - <xsl:template match="/zoo"> > > - <html> > > - <body> > > Please edit and submit: > > <br /> > > <xsl:apply-templates /> > > </body> > > </html> > > </xsl:template> > > - <xsl:template match="animal[1]"> > > - <form method="post" action="test"> > > <xsl:variable name="animalName" select="name" /> > > Animal name: > > <input type="text" name="name" value="{$animalName}" /> > > <br /> > > Kind: > > - <b> > > <xsl:value-of select="personalInfo/@kind" /> > > </b> > > <br /> > > <xsl:variable name="animalScope" select="scope" /> > > Animal scope: > > <input type="text" name="scope" value="{$animalScope}" /> > > <br /> > > <xsl:variable name="preference1" select="preferences[1]" /> > > First Preference: > > <input type="text" name="preferences[1]" value="{$preference1}" /> > > <br /> > > <xsl:variable name="preference2" select="preferences[2]" /> > > Second Preference: > > <input type="text" name="preferences[2]" value="{$preference2}" /> > > <br /> > > <input type="submit" /> > > </form> > > <br /> > > Counter: > > <xsl:value-of select="@count" /> > > </xsl:template> > > <xsl:template match="*" /> > > </xsl:stylesheet> > > ---------------------------------- > > > > > > Looking forward to comments. > > > > Cheers, > > > > Ivelin > > > > > > > > > > > > ----- Original Message ----- > > From: "Ivelin Ivanov" <[EMAIL PROTECTED]> > > To: "Nicola Ken Barozzi" <[EMAIL PROTECTED]>; > <[EMAIL PROTECTED]> > > Cc: <"[dplotnik@"@iname.com > > Sent: Thursday, March 07, 2002 3:57 PM > > Subject: Re: Comitting components > > > > > > > > > > Way cool ! > > > > > > We've been using castor .93 for quite serious xml traffic between > hundreds > > win c++ clients and a java portal. Great performance. > > > > > > Donating this transformer also saved me some work. > > > As I mentioned before I am workin on a little prototype that'll > hopefully > > introduce some HTML Forms symmetry in cocoon. > > > > > > From an earlier email by Konstantin: > > > >It would be also fine to have an action that >performs > the opposite > > > >operation: set properties of JavaBean object(s) with > request param > values > > > >using XPath expressions, e.g.: > > > >customer/firstname = Ozzy > > > >customer/lastname = Osbourne > > > >can be converted to XML: > > > ><customer> > > > > <firstname>Ozzy</firstname> > > > > <lastname>Osbourne</lastname> > > > ></customer> > > > > > > I am working on this with Dmitri's help using his JXPath lib. > > > http://cvs.apache.org/viewcvs/jakarta-commons/jxpath/ > > > > > > It's being used for Jakarta JSTL and Workflow (which says > enough for > > > its > > quality). > > > > > > Let me know if someone else is working in this direction > so that we > don't > > double the work. > > > > > > Regards, > > > > > > Ivelin > > > > > > > > > > > > > > > > > > -----Original Message----- > > > From: "Nicola Ken Barozzi" <[EMAIL PROTECTED]> > > > Date: Thu, 7 Mar 2002 18:03:30 +0100 > > > To: <[EMAIL PROTECTED]> > > > Subject: Re: Comitting components > > > > > > > > > > From: "Matthew Langham" <[EMAIL PROTECTED]> > > > > > > > > > today two new "things" were donated/comitted to the Cocoon > > scratchpad - > > > > the > > > > > Castor Transformer and the POI Serialization code. > > > > > > > > > > It would help people like me (who do not read all the > messages > > > > > or > much > > > > worse > > > > > remember them all) if comitters could add a couple of lines or > > paragraphs > > > > as > > > > > to what can be done with the new components when > sending off the > > > > > announcements. > > > > > > > > You are right. Thank you for the pointer. > > > > Here is a brief explanation. > > > > > > > > ---------------------- > > > > POI Serializer > > > > ---------------------- > > > > > > > > The POI project, now hosted on > http://jakarta.apache.org/poi/ , is > > > > a > > project > > > > that consists of APIs for manipulating various file > formats based > > > > upon Microsoft's OLE 2 Compound Document format using > pure Java. > > > > OLE 2 > > Compound > > > > Document Format based files include most Microsoft Office files > > > > such > as > > XLS > > > > and DOC. > > > > > > > > The HSSFSerializer uses POI's HSSF xls file write API > > > > http://jakarta.apache.org/poi/hssf/index.html , and is now in > > > > Cocoon > > proper > > > > (not scratchpad). > > > > > > > > It makes it possible to output xml following the schema of > > > > gnumeric to > > an > > > > xls file. > > > > Examples are present in the "extra" section, under "legacy file > > formats". > > > > > > > > To install the Cocoon war easily, do: > > > > > > > > build.(sh|bat) clean > > > > build.(sh|bat) installwar > > > > > > > > ---------------------------- > > > > Castor Transformer (in scratchpad) > > > > ---------------------------- > > > > > > > > Marshals a object from the the sitemap, request, session or > > > > Servlet > > Context > > > > into a series of SAX events, and can seek for the java bean > > automaticaly. > > > > TheCastortransformer can be configured with a default mapping. > > > > This > > mapping > > > > is used as long as no other mappings are specified. > > > > > > > > <map:transformer name="CastorTransformer" > > > > > > src="org.apache.cocoontransformation.CastorTransformer"> > > > > <mapping>castor/xmapping.xml</mapping> > > > > </map:transformer> > > > > > > > > A sample for the use: > > > > <root > xmlns:castor="http://castor.exolab.org/cocoontransfomer"> > > > > <castor:InsertBean source="session" key="invoice"/> > > > > <castor:InsertBean source="sitemap" key="product" > > > > mapping="castor/specicalmapping.xml"/> > > > > </root> > > > > > > > > The CastorTransfomer support only one Element > castor:InsertBean. > > > > This element is replaced with the marshalled object. > > > > > > > > Other information can be found in the scratchpad sample > > > > sub-sitemap > > under > > > > docs. > > > > > > > > To install the Cocoon war with scratchpad stuff easily, do: > > > > > > > > build.(sh|bat) clean > > > > build.(sh|bat) installscratchpadwar > > > > > > > > The demo is under http://server:port/cocoon/samples/castor/ > > > > > > > > -- > > > > Nicola Ken Barozzi [EMAIL PROTECTED] > > > > - verba volant, scripta manent - > > > > (discussions get forgotten, just code remains) > > > > > ------------------------------------------------------------------ > > > > --- > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > --- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, email: [EMAIL PROTECTED] > > > > > > > > > > > > > > -- > > > > > > _______________________________________________ > > > Sign-up for your own FREE Personalized E-mail at Mail.com > > > http://www.mail.com/?sr=signup > > > > > > Travelocity.com is giving away two million travel miles. > > > > > > http://ad.doubleclick.net/clk;3969773;6991039;g?http://svc.tra velocity.com/p > romos/millionmiles_main/0,,TRAVELOCITY,00.html > > > > > > -------------------------------------------------------------------- > > - > > 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]