Ivelin Ivanov wrote:
> 
> ===============================================================
> ! The HTML Form symmetry loop is closed: !
> ===============================================================
> HTML Forms <-> XPath <-> JavaBeans <-> XML -> Schematron -> HTML Forms
> ===============================================================
> 
> Just released the next version of the symmetric Form binding and validation
> toolkit ( a CocoonBlock wannabe :).
> In addition to the form-binding it now has integrated Schematron validation
> support.
> 
> The zip file can be downloaded from:
> http://prdownloads.sourceforge.net/freebuilder/CocoonForm_0-6.zip
> 
> With this in place one can provide form binding with just a few lines of
> code (~5 lines) and Sophisticated form validation with 0! lines of Java
> code.
> 
> Let me walk you quickly through the sitemap of the example provided in the
> distribution:
> 
> #########
> #sitemap:#
> ########
> ...
> 
>  <map:pipelines>
>   <map:pipeline>
>    <map:match pattern="*">
> 1.    <map:act type="FormBinderAction"/>           <!-- ### Uses The
> FormBeanBinder tool to bind the html form elements to an underlying JavaBean
> model through XPath based form element names -->
> 2.    <map:generate src="insertFormBean.xml"/>  <!--  ### This is a very
> short
> files simply inserting the form bean    -->
> 3.    <map:transform type="castor"/>                <!-- ###
> CastorTransformer converts the bean into an XML stream -->
> 4.    <map:transform src="schematron/xmlform-sch-report.xsl"/> <!-- ### A
> Schematron schema validates the form and adds the validation results in the
> stream, while preserving the original form stream -->
> 5.    <map:transform src="formbean2html.xsl"/>   <!-- ### Renders the HTML
> file
> using the XML form and the validation errors from the input document -->
>     <map:serialize type="html"/>
>    </map:match>
>   </map:pipeline>
>  </map:pipelines>
> ...
> 
> ######################
> #xmlform-sch-report.xml: #
> ######################
> 
> The validation schema is really simple and intuitive. The one in the example
> is over simplified.
> Schematron however supports i18n and validation in phases (useful for
> wizards).
> 
> ...
> <schema ns="http://xml.apache.cocoon/xmlform";
> xmlns="http://www.ascc.net/xml/schematron";>
>  <title>Schema for the XML Form example</title>
>  <pattern name="A Simple Form Validation Pattern">
>   <rule context="name">
>    <assert  test="string-length(.) > 3">Animal name should be at least 4
> characters.</assert>
>    <assert  test="string-length(.) &lt; 10">Animal name should be less than
> 10 characters.</assert>
>   </rule>
>   <rule context="scope">
>    <assert test="normalize-space(.) = 'session' or normalize-space(.) =
> 'request'">Scope should be request or session.</assert>
>   </rule>
>  </pattern>
> </schema>
> 
> =====================================
> 
> That's all folks !
> 
> All sources and xml documents are provided in the example.
> 
> I will be working with Torsten on a more sophisticated wizard example
> and a best practices document.
> 
> Cocoon is really close to becoming a full-blown web-app server,
> which enforces a pure separation in BOTH directions !
> 
> I know everyone on this team is extremely busy, but even one line feedback
> is of great help for me, so
> 
> Feedback please !
> 
> Cheers,
> 
> Ivelin

Way cool! I'll be glad to have it in the scratchpad as soon as you have
a cool sample to show the users.

Keep up the great work!

-- 
Stefano Mazzocchi      One must still have chaos in oneself to be
                          able to give birth to a dancing star.
<[EMAIL PROTECTED]>                             Friedrich Nietzsche
--------------------------------------------------------------------

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

Reply via email to