<?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>