cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Wechner <coco...@wyona.org>
Subject Re: [Announcement] re: HTML Form <-> XML <-> JavaBeans Binding [was: Re: Comitting components]
Date Mon, 11 Mar 2002 11:18:04 GMT
Could Schematron also be (re)used as a HTML Form Editor, running
on the server side?

Thanks

Michael





Ivelin Ivanov wrote:

>The next thing I plan to work on is a customized Schematron meta-stylesheet
>for Cocoon, which will be used for validation of HTML Forms (can be also
>applied to SOAP messages).
>
>Before I do that though, I'd like to ask for a vote to verify the interest
>in such a feature.
>Please vote if you have opinions on this subject.
>
>The idea is basicly described by this state flow:
>
>server side JavaBean -> cocoon -> html form -> browser -> http post ->
>Xpath/JavaBean (the same one) -> XML -> Schematron Validation -> (next
>action | back to same html form with errors )
>
>Schematron is an alternative to Martin and Christian's FormValidatorAction
>and Descriptor.xml.
>It's designed to:
>1) provide easy to write XML structure assertions based on XPath
>2) user-friendly error reporting mechanism
>3) Complimentary to XML Schema
>
>Based on the proposed CastorTransformer and FormBeanBinder, a Schematron
>trasnformer is a logical next step.
>Schematron has been polished and it is stable for about a year now. Has a
>working XSLT implementation.
>Proved successful for various applications. Under a truly open source
>license (zlib/libpng
>http://www.ascc.net/xml/resource/schematron/copyright.txt). Hosted on
>SourceForge.
>
>Here are some referenes:
>home page: http://www.ascc.net/xml/resource/schematron/
>sf page: http://sourceforge.net/projects/schematron
>tutorial: http://www.zvon.org/xxl/SchematronTutorial/General/contents.html
>articles:
>http://www.xml.com/pub/a/2002/01/23/perl-schematron.html
>http://www.xmlhack.com/read.php?item=945
>http://www.ibiblio.org/xml/slides/xmlonelondon2001/schemas/67.html
>
>
>Looking forward to your comments.
>
>Ivelin
>
>
>
>----- Original Message -----
>From: "Ivelin Ivanov" <ivelin@iname.com>
>To: <cocoon-dev@xml.apache.org>
>Cc: "Dmitri Plotnikov" <dmitri@plotnix.com>
>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" <ivelin@iname.com>
>>To: "Nicola Ken Barozzi" <nicolaken@apache.org>;
>>
><cocoon-dev@xml.apache.org>
>
>>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" <nicolaken@apache.org>
>>>Date: Thu, 7 Mar 2002 18:03:30 +0100
>>>To:  <cocoon-dev@xml.apache.org>
>>>Subject: Re: Comitting components
>>>
>>>
>>>>From: "Matthew Langham" <mlangham@s-und-n.de>
>>>>
>>>>>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                   nicolaken@apache.org
>>>>            - verba volant, scripta manent -
>>>>   (discussions get forgotten, just code remains)
>>>>---------------------------------------------------------------------
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
>>>>For additional commands, email: cocoon-dev-help@xml.apache.org
>>>>
>>>>
>>>--
>>>
>>>_______________________________________________
>>>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.travelocity.com/p
>
>>romos/millionmiles_main/0,,TRAVELOCITY,00.html
>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
>>>For additional commands, email: cocoon-dev-help@xml.apache.org
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
>>For additional commands, email: cocoon-dev-help@xml.apache.org
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
>For additional commands, email: cocoon-dev-help@xml.apache.org
>
>


Mime
View raw message