Dear Wiki user, You have subscribed to a wiki page or wiki category on "Cocoon Wiki" for change notification.
The following page has been changed by NielsVanKampenhout: http://wiki.apache.org/cocoon/Schema2CocoonForms The comment on the change is: New version that works with Cocoon 2.1.9 ------------------------------------------------------------------------------ = Generating a form from an XML schema = - A returning question on the cocoon user list is "Can I generate a Cocoon Form from an XML schema?". At Hippo (http://www.hippo.nl), we have built several websites that make use of this concept. I have put together a small example that demonstrates transforming an XML schema into a Cocoon Forms definition, template and binding using three similar XSLs: attachment:schema2form_v2.zip. + A returning question on the cocoon user list is "Can I generate a Cocoon Form from an XML schema?". At Hippo (http://www.hippo.nl), we have built several websites that make use of this concept. I have put together a small example that demonstrates transforming an XML schema into a Cocoon Forms definition, template and binding using three similar XSLs. - The XSLs in this example were actually one of my firsts attempts at XSL/Schema/Cocoon, so they are not examples of very good programming. In addition, they can only transform schemas of a certain, very simple and restricted structure. These XSLs should be considered as a proof of concept, rather than an example of how it should be done. + The XSLs in this example were actually one of my firsts attempts at XSL/Schema/Cocoon, so they are not examples of very good programming. In addition, they can only transform schemas of a certain, very simple and restricted structure. These XSLs should be considered as a ''proof of concept'', rather than an example of how it should be done. The difficulty with schemas is that they can contain an implicit structure by means of references to elements. The example XSLs can transform schemas with the following structure: a root element containing references to a number other elements, each having a number of child elements. See the included schema for an example. Try to edit the schema and see the form adapt to it. Making forms has never been easier ;) = Installation notes = + + 1. Install Cocoon 2.1.9 + 2. Create a folder '''schema2form''' under your '''cocoon/webapp''' folder. + 3. Download attachment:schema2form_cocoon_2_1_9.zip and unzip it inside '''schema2form'''. + 4. Start Cocoon + 5. Point your browser to http://localhost:8888/schema2form/form-example The ZIP file contains 8 files: * '''sitemap.xmap''' @@ -20, +26 @@ * '''example.xsd''': an example XML schema that can be transformed into a form * '''example.xml''': empty XML file used to bind the form to - The example expects a directory 'cforms', which includes directories 'resources' and 'messages'. Obviously I did not include them, as they are part of the Cocoon distribution. You may have to change some paths in the sitemap, as well as the resources-uri in forms-*-styling.xsl, to get the example working. - = Remarks = + * The latest version (attachment:schema2form_cocoon_2_1_9.zip) now works with Cocoon 2.1.9 and is easier to install then the previous versions. + - * The new v2 version of the ZIP file contains updated XSLs with limited support for repeaters. Any element with a maxOccurs="unbounded" attribute will result in a repeater in the form. This code was incomplete and commented out in the previous version (attachment:schema2form.zip). + * The v2 version of the ZIP file contains updated XSLs with limited support for repeaters. Any element with a maxOccurs="unbounded" attribute will result in a repeater in the form. This code was incomplete and commented out in the previous version (attachment:schema2form.zip). * I noticed that with large schemas/forms, checking checkboxes or radiobuttons becomes a very frustrating activity, as the time between clicking and seeing the check appear can be more than a second. See my post on the user list at http://marc.theaimsgroup.com/?l=xml-cocoon-users&m=108323069201433&w=2 for a description of the problem. - - * This example was tested with Cocoon 2.1.5. It is reported not to work with more recent Cocoon releases. = Feedback wanted = @@ -36, +40 @@ NielsVanKampenhout - - = Comments = - I think that <hm:label> and <hm:hint> should be replace by <fd:label> and <fd:help> -