Ddl Loose.xsd:
<?xml version="1.0" encoding="UTF-16"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="ddl">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="database" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version" use="required" type="xs:decimal"/>
</xs:complexType>
</xs:element>
<xs:element name="database">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="table"/>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Za-z0-9_$]{1, 64}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="field"/>
<xs:element minOccurs="0" ref="description"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:NCName"/>
<xs:attribute name="className" use="optional" type="xs:NCName"/>
<xs:attribute name="superClassName" use="optional" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="field">
<xs:complexType>
<xs:sequence>
<xs:element ref="data"/>
<xs:element minOccurs="0" ref="setterFunction"/>
<xs:element minOccurs="0" ref="getterFunction"/>
<xs:element minOccurs="0" ref="description"/>
</xs:sequence>
<xs:attribute name="foreignKeyOf" use="optional" type="xs:string"/>
<xs:attribute name="foreignObject" use="optional" type="xs:NCName"/>
<xs:attribute name="name" use="required" type="xs:NCName"/>
<xs:attribute name="primaryKey" use="optional" type="xs:boolean"/>
<xs:attribute name="autoIncrement" use="optional" type="xs:boolean"/>
<xs:attribute name="required" use="optional" type="xs:boolean"/>
<xs:attribute name="unique" use="optional" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element ref="text"/>
<xs:element ref="enum"/>
<xs:element ref="set"/>
<xs:element ref="numeric"/>
<xs:element ref="timeData"/>
</xs:choice>
<xs:element minOccurs="0" ref="defaultValue"/>
<xs:element minOccurs="0" ref="storeFunction"/>
<xs:element minOccurs="0" ref="validationFunction"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="setterFunction" type="xs:NCName"/>
<xs:element name="getterFunction" type="xs:NCName"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="text">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" ref="minimumLength"/>
<xs:element minOccurs="0" maxOccurs="1" ref="maximumLength"/>
<xs:element minOccurs="0" maxOccurs="1" ref="regexp"/>
</xs:sequence>
<xs:attribute name="type" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="date"/>
<xs:enumeration value="time"/>
<xs:enumeration value="datetime"/>
<xs:enumeration value="year"/>
<xs:enumeration value="email"/>
<xs:enumeration value="cleanText"/>
<xs:enumeration value="word"/>
<xs:enumeration value="alpha"/>
<xs:enumeration value="numeric"/>
<xs:enumeration value="default"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="mysqlText"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="mysqlText">
<xs:attribute name="mysqltype" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="varchar"/>
<xs:enumeration value="char"/>
<xs:enumeration value="blob"/>
<xs:enumeration value="text"/>
<xs:enumeration value="tinyblob"/>
<xs:enumeration value="tinytext"/>
<xs:enumeration value="mediumblob"/>
<xs:enumeration value="mediumtext"/>
<xs:enumeration value="longblob"/>
<xs:enumeration value="longtext"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="size" use="optional" type="xs:int"/>
</xs:attributeGroup>
<xs:element name="minimumLength" type="xs:integer"/>
<xs:element name="maximumLength" type="xs:integer"/>
<xs:element name="regexp" type="xs:string"/>
<xs:element name="enum">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="enumValue"/>
</xs:sequence>
<xs:attribute name="boolean" use="optional" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<xs:element name="enumValue">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute use="optional" name="flag" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="set">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="setValue"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="setValue">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string"/>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="numeric">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" ref="minimumValue"/>
<xs:element minOccurs="0" ref="maximumValue"/>
</xs:sequence>
<xs:attribute name="unsigned" type="xs:boolean"/>
<xs:attributeGroup ref="mysqlnumeric"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="mysqlnumeric">
<xs:attribute name="mysqltype" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="tinyint"/>
<xs:enumeration value="smallint"/>
<xs:enumeration value="mediumint"/>
<xs:enumeration value="int"/>
<xs:enumeration value="bigint"/>
<xs:enumeration value="float"/>
<xs:enumeration value="double"/>
<xs:enumeration value="decimal"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="size" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:element name="timeData">
<xs:complexType>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="date"/>
<xs:enumeration value="time"/>
<xs:enumeration value="datetime"/>
<xs:enumeration value="timestamp"/>
<xs:enumeration value="year"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="auto" type="xs:boolean" use="optional" default="false"/>
</xs:complexType>
</xs:element>
<xs:element name="minimumValue" type="xs:decimal"/>
<xs:element name="maximumValue" type="xs:decimal"/>
<xs:element name="storeFunction" type="xs:NCName"/>
<xs:element name="validationFunction" type="xs:NCName"/>
<xs:element name="defaultValue" type="xs:string"/>
</xs:schema>
<!-- $Id: ddl-loose.xsd, v 1.6 2004/12/01 14:46:42 erdincyilmazel Exp $ -->
Other Development Tools Scripts: