I published a first version and documentation for creating base lzx.xsd +
project.xsd files, published here:

http://code.google.com/p/openlaszlo-schemagenerator/

Demo Video:
http://www.youtube.com/watch?v=9a2A8zy57a0

The JAR contains tasks to generate a XSD from your project LZX files, by
doing that:

   - You have full Schema Validation in Eclipse and it will show you all
   your XML schema errors
   - The validation is aware of ALL tags and attributes: The LZX
   base-components(+incubator) *and* your project specific code
   - You get content-sensitive drop down menus for Tags and Attributes
   - The XSD Schema also contains type-restriction, defaultvalues and
   documentation for Tags and Attributes parsed from your source files
   - there is a task to trim the schema from your files again as the
   OpenLaszlo compiler does not accept schema and prefixes (yet ;))

So your LZX file looks like that:

<?xml version="1.0" encoding="UTF-8"?>
<canvas
    xmlns="http://localhost/openlaszlo/lzx";

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

    xmlns:project="http://localhost/openlaszlo/project";
    xsi:schemaLocation="http://localhost/openlaszlo/lzx ../lzx.xsd

    http://localhost/openlaszlo/project ../project.xsd"
    >
   <project:externalClass myPublicProperty="false"></project:externalClass>
</library>


... actually what needs to be done now is to wrap my library in an Eclipse
Project so that the steps that I currently do using ANT are automatically
done by the IDE.

There is also a hook in the JAR-library to transfer an existing
"Non-XSD-aware" project into a XSD aware project. I will publish something
about that soon.

Based on the XSD you could also generate Java files with JAXB, for example
you can create a whole Java representative of the LFC and your project ...
or you could potentially create some data-services that automatically
generate LZX from Java and vice verca...

Sebastian

-- 
Sebastian Wagner
http://www.openmeetings.de
http://www.webbase-design.de
http://www.wagner-sebastian.com
[email protected]

Reply via email to