=============================================================== ! 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(.) < 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]