Code Generator for Eclipse Code
Brought to you by:
hotzst
--- a/trunk/ch.sahits.codegen.java/fragments/codegenserilisation.xsd +++ b/trunk/ch.sahits.codegen.java/fragments/codegenserilisation.xsd @@ -1,87 +1,178 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="utf-8" ?> +<!--Created with Liquid XML Studio - FREE Community Edition 7.0.5.906 (http://www.liquid-technologies.com)--> <!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Andi Hotz (SAHITS) --> <!--W3C Schema generated by XMLSPY v2004 rel. 2 U (http://www.xmlspy.com)--> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - <xs:element name="class"> - <xs:complexType> - <xs:sequence> - <xs:element ref="interface"/> - </xs:sequence> - <xs:attribute name="name" type="xs:string" use="required"/> - <xs:attribute name="package" type="xs:string" use="required"/> - <xs:attribute name="superclass" type="xs:string" use="required"/> - <xs:attribute name="abstract" type="xs:boolean" use="required"/> - <xs:attribute name="final" type="xs:boolean" use="required"/> - <xs:attribute name="visibility" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="database"> - <xs:complexType> - <xs:sequence> - <xs:element ref="port"/> - <xs:element ref="host"/> - <xs:element ref="dbname"/> - <xs:element ref="username"/> - <xs:element ref="password"/> - <xs:element ref="tablename"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <xs:element name="databaseproduct" type="xs:string"/> - <xs:element name="dbname" type="xs:string"/> - <xs:element name="generatedclass"> - <xs:complexType> - <xs:sequence> - <xs:element ref="srcFolder"/> - <xs:element ref="class"/> - <xs:element ref="generation"/> - <xs:element ref="database"/> - </xs:sequence> - <xs:attribute name="version" type="xs:decimal" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="generation"> - <xs:complexType> - <xs:sequence> - <xs:element ref="inputfile"/> - <xs:element ref="jetemplate"/> - <xs:element ref="generator"/> - <xs:element ref="referenceImplementation"/> - <xs:element ref="databaseproduct"/> - </xs:sequence> - <xs:attribute name="type" type="xs:string" use="required"/> - <xs:attribute name="base" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="generator"> - <xs:complexType> - <xs:attribute name="inPlugin" type="xs:boolean" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="host" type="xs:string"/> - <xs:element name="inputfile" type="xs:string"/> - <xs:element name="interface"> - <xs:complexType> - <xs:attribute name="class" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="jetemplate"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="inPlugin" type="xs:boolean" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="password" type="xs:string"/> - <xs:element name="port" type="xs:string"/> - <xs:element name="referenceImplementation" type="xs:string"/> - <xs:element name="srcFolder"> - <xs:complexType> - <xs:attribute name="path" type="xs:string" use="required"/> - </xs:complexType> - </xs:element> - <xs:element name="tablename" type="xs:string"/> - <xs:element name="username" type="xs:string"/> -</xs:schema> +<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="class"> + <xs:complexType> + <xs:sequence> + <xs:element ref="interface" /> + </xs:sequence> + <xs:attribute name="name" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="package" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="superclass" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="abstract" type="xs:boolean" use="required" /> + <xs:attribute name="final" type="xs:boolean" use="required" /> + <xs:attribute name="visibility" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="PUBLIC" /> + <xs:enumeration value="PROTECTED" /> + <xs:enumeration value="PACKAGE" /> + <xs:enumeration value="DEFAULT" /> + <xs:enumeration value="PRIVATE" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="database"> + <xs:complexType> + <xs:sequence> + <xs:element ref="port" /> + <xs:element ref="host" /> + <xs:element ref="dbname" /> + <xs:element ref="username" /> + <xs:element ref="password" /> + <xs:element ref="tablename" /> + <xs:element ref="schema" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="databaseproduct" type="xs:string" /> + <xs:element name="dbname" type="xs:string" /> + <xs:element name="generatedclass"> + <xs:complexType> + <xs:sequence> + <xs:element ref="srcFolder" /> + <xs:element ref="class" /> + <xs:element ref="generation" /> + <xs:element ref="database" /> + </xs:sequence> + <xs:attribute name="version" use="required"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <!-- <xs:enumeration value="1.0" /> + <xs:enumeration value="1.1" />--> + <xs:enumeration value="2.0" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="generation"> + <xs:complexType> + <xs:sequence> + <xs:element ref="inputfile" /> + <xs:element ref="jetemplate" /> + <xs:element ref="generator" /> + <xs:element ref="referenceImplementation" /> + <xs:element ref="databaseproduct" /> + </xs:sequence> + <xs:attribute name="type" type="xs:string" use="required" /> + <xs:attribute name="base" type="xs:string" use="required" /> + <xs:attribute name="genClass" use="optional"> + <!-- optional iff base is 1 or 2 --> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="generator"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="inPlugin" type="xs:boolean" use="optional" /> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="host" type="xs:string" /> + <xs:element name="inputfile" type="xs:string" /> + <xs:element name="interface"> + <xs:complexType> + <xs:attribute name="class" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="jetemplate"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="inPlugin" type="xs:boolean" use="optional" /> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="password" type="xs:string" /> + <xs:element name="port" type="xs:int" /> + <xs:element name="referenceImplementation"> + <xs:complexType> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + <xs:element name="srcFolder"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="path" type="xs:string" use="required" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="tablename" type="xs:string" /> + <xs:element name="username" type="xs:string" /> + <xs:element name="schema"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*" /> + </xs:restriction> + </xs:simpleType> + </xs:element> +</xs:schema> \ No newline at end of file
--- a +++ b/trunk/ch.sahits.codegen.java/fragments/javaserialisation.xsd @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!--Created with Liquid XML Studio - FREE Community Edition 7.0.5.906 (http://www.liquid-technologies.com)--> +<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="classType"> + <xs:sequence minOccurs="1" maxOccurs="unbounded"> + <xs:element name="interface"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="class" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="name" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="package" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="superclass" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="abstract" type="xs:boolean" use="required" /> + <xs:attribute name="final" type="xs:boolean" use="required" /> + <xs:attribute name="visibility" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="PUBLIC" /> + <xs:enumeration value="PROTECTED" /> + <xs:enumeration value="PACKAGE" /> + <xs:enumeration value="DEFAULT" /> + <xs:enumeration value="PRIVATE" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="generationType"> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="inputfile" type="xs:string" /> + <xs:element name="jetemplate"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="inPlugin" type="xs:boolean" use="optional" /> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="generator"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="inPlugin" type="xs:boolean" use="optional" /> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="referenceImplementation"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="pluginID" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="databaseproduct" type="xs:string" /> + </xs:sequence> + <xs:attribute name="type" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="JETEMPATE" /> + <xs:enumeration value="GENERATE_JETEMPLATE" /> + <xs:enumeration value="AST_IMPLEMENTATION" /> + <xs:enumeration value="JET_AST_GENERATION" /> + <xs:enumeration value="JETEMPLATE_AST_IMPROVEMENT" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="base" type="xs:int" use="required" /> + <xs:attribute name="genClass" use="optional"> + <!-- optional iff base is 1 or 2 --> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="[a-zA-Z]*[\.a-zA-Z_0-9]*" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="databaseType"> + <xs:sequence minOccurs="1" maxOccurs="1"> + <xs:element name="port" type="xs:string" /> + <xs:element name="host" type="xs:string" /> + <xs:element name="dbname" type="xs:string" /> + <xs:element name="username" type="xs:string" /> + <xs:element name="password" type="xs:string" /> + <xs:element name="tablename" type="xs:string" /> + <xs:element name="schema" type="xs:string" /> + </xs:sequence> + </xs:complexType> + <xs:element name="generatedclass"> + <xs:complexType> + <xs:sequence> + <xs:element name="srcFolder"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="path" type="xs:string" use="required" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="class" type="classType" /> + <xs:element name="generation" type="generationType" /> + <xs:element name="database" type="databaseType" /> + </xs:sequence> + <xs:attribute name="version" use="required"> + <xs:simpleType> + <xs:restriction base="xs:decimal"> + <xs:pattern value="2.0" /> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> +</xs:schema> \ No newline at end of file