<?xml version="1.0" encoding="UTF-8" ?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. | |
--> | |
<!-- | |
Torque XML database schema DTD | |
$Id$ | |
--> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
targetNamespace="http://db.apache.org/torque/5.0/templates/database" | |
xmlns="http://db.apache.org/torque/5.0/templates/database" | |
elementFormDefault="qualified" | |
version="5.0"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The XML schema used by version 5.0 and greater of the Apache Software | |
Foundation Torque project( | |
<a href="http://db.apache.org/torque">http://db.apache.org/torque</a> ) | |
to model SQL database information. This model is used by various Torque | |
utilities for managing the SQL Server info and to build the Java objects | |
to access this data. | |
The basic structure of a model is built using the database element | |
as the root. This will contain references to options, external (include) | |
models, new SQL Domain definitions, and tables. See the Torque project | |
home page for more details. | |
</xs:documentation> | |
</xs:annotation> | |
<!-- ===================================== | |
database element definition | |
===================================== --> | |
<xs:element name="database" type="databaseType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The root element for defining a Torque database schema. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:complexType name="databaseType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The root type definition for a Torque database schema. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A set of key/value options to be passed to custom generator templates. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="include-schema" type="includeSchemaType" | |
minOccurs="0" maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Include another schema file in this schema (as if it were a part of this | |
schema file). | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="external-schema" type="externalSchemaType" | |
minOccurs="0" maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Reference another schema file from this schema (outbound connections only). | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="domain" type="domainType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Domains are used to define common attribute sets for columns. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="table" type="tableType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines a database table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="view" type="viewType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines a database view. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="javaNameType" use="required"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en" > | |
The name used to identify this schema in the generated | |
Java objects and as the default JDBC connection pool to use. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="defaultJavaType" use="optional" | |
type="javaReturnType" default="primitive" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines if the record object property getter / setters will | |
use objects (e.g. Integer) or primitives (e.g. int), defaults | |
to primitive. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="defaultIdMethod" use="optional" type="idMethodType" | |
default="none" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines the defaultIdMethod to use with tables which do not have an idMethod | |
attribute defined. This attribute has 3 possible values, they are: | |
- idbroker | |
Torque's software based id broker system | |
- native | |
The SQL Server's native autoincrement/identifier process | |
- none | |
Don't try to auto assign id numbers | |
- null | |
Use the value previously set or the default value. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
option element definition | |
===================================== --> | |
<xs:complexType name="optionType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
These tags allows a set of key/value options to be passed to custom generator | |
templates. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="key" type="xs:string" use="required" /> | |
<xs:attribute name="value" type="xs:string" use="required" /> | |
</xs:complexType> | |
<!-- ===================================== | |
include-schema element definition | |
===================================== --> | |
<xs:complexType name="includeSchemaType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Include another schema file in this schema (as if it were a part of this | |
schema file). | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="filename" type="xs:string" use="required" /> | |
</xs:complexType> | |
<!-- ===================================== | |
external-schema element definition | |
===================================== --> | |
<xs:complexType name="externalSchemaType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Includes another schema file. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="filename" type="xs:string" use="required" /> | |
</xs:complexType> | |
<!-- ===================================== | |
domain element definition | |
===================================== --> | |
<xs:complexType name="domainType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Domains are used to define attributes for columns. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="name" type="xs:string" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name used to reference this set of column attributes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="type" use="optional" type="sqlDataType" | |
default="VARCHAR" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The SQL Standard data type for the column | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="size" type="xs:decimal" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The size of the field. E.g. Varchar(size) or Numeric(Size). Note that | |
while this still supports the original torque use of using a | |
decimal number (5.2) to indicate the precision | |
and scale in one attribute. Use of the scale attribute is preferred. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="scale" type="xs:integer" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The scale of the field. E.g.decimal(size, scale) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="default" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The default column value | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The description of this domain for documentation purposes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
table element definition | |
===================================== --> | |
<xs:complexType name="tableType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The table element and its relevant attributes. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="column" type="columnType" maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column element and its relevant attributes | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:choice minOccurs="0" maxOccurs="unbounded" > | |
<xs:element name="foreign-key" type="foreignKeyType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a foreign key constraint for this table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="index" type="indexType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines an index for this table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="unique" type="uniqueType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a unique value constraint | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
<xs:element name="id-method-parameter" type="idMethodParameterType"> | |
</xs:element> | |
</xs:choice> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlQualifiedNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The table name of the SQL table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="interface" type="javaQualifiedNameType" | |
use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The interface attribute specifies an interface that should be referenced in | |
the implements section of the generated extension class. If this is a fully | |
qualified class name (i. e. the string contains dots), the interface will | |
simply be implemented by the extension object. If the interface is a simple | |
class name (without dots), an empty interface file will be generated in the | |
extension object package. When this attribute is used, all methods that | |
normally would return the extension object type will now return the interface | |
type. This feature allows to use Torque generated classes in the context of | |
other applications or APIs. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="peerInterface" type="javaQualifiedNameType" | |
use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The interface attribute specifies an interface that should be referenced in | |
the implements section of the generated peer class. If this is a fully | |
qualified class name (i. e. the string contains dots), the interface will | |
simply be implemented by the peer object. If the interface is a simple | |
class name (without dots), an empty interface file will be generated in the | |
peer package. This feature allows to use Torque generated peer classes | |
in the context of other applications or APIs. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="baseClass" type="javaQualifiedNameType" use="optional"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The fully qualified class that the generated Java table | |
record objects will extend. This class does not have to extend | |
org.apache.torque.om.BaseObject. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="basePeer" type="javaQualifiedNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The fully qualified class that the generated Java Peer objects will extend. | |
Unlike baseClass, basePeer should extend BasePeer at some point in the chain, | |
i.e. it needs to be the superclass. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="idMethod" use="optional" type="idMethodType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines the id method to automatically generate ids for this table. | |
This attribute has 3 possible values, they are: | |
- idbroker | |
Torque's software based id broker system | |
- native | |
The SQL Server's native autoincrement / identifier process | |
- none | |
Don't try to auto assign id numbers | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="abstract" use="optional" type="xs:boolean" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether or not to generate the class as Abstract or not | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaName" type="javaNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
This is the Java class name to use when generating the table. If | |
this is missing the Java name is generated from the name attribute. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="skipSql" use="optional" type="xs:boolean" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether or not to skip SQL generation for this reference. Useful for using | |
Views or creating a "subset" of columns in an existing table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A description of this table. Used for documentation and will be included in | |
the table generation SQL if the server type supports this. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
column element definition | |
===================================== --> | |
<xs:complexType name="columnType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column element and its relevant attributes | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="enum-value" type="enumValueType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="inheritance" type="inheritanceType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define an inheritance mapping of records to class by a key column. See the | |
inheritance How To document. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column name | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="type" use="optional" type="sqlDataType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The SQL data type for the column. Is required unless a domain is used. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="size" type="xs:decimal" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The size of the field. E.g. Varchar(size) or Numeric(Size). Note that | |
while this still supports the original torque use of using a | |
decimal number (5.2) to indicate the precision | |
and scale in one attribute. Use of the scale attribute is preferred. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="scale" type="xs:integer" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The scale of the field. E.g.decimal(size, scale) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="default" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The default column value | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="useDatabaseDefaultValue" type="xs:boolean" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether to use the database default value if a new object is saved | |
and the attribute value is equal to the java default value. Default is false. | |
Has no effect on primitive boolean columns. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="primaryKey" use="optional" | |
type="xs:boolean" default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether this column is part of the table's primary key. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="autoIncrement" use="optional" | |
type="xs:boolean" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether or not to auto-increment this field (true or false, defaults to false) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="required" use="optional" type="xs:boolean" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether a value is required in this column (NULL ALLOWED) (true or false, | |
defaults to false) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaName" type="javaNameType" | |
use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The Java property name to use for this column in the record objects. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaType" use="optional" | |
type="javaReturnType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines if the record object property getter / setters will | |
use objects (e.g. Integer) or primitives (e.g. int), defaults | |
to database attribute or primitive | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="domain" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The domain reference name to set common settings. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="inheritance" type="inheritanceAttrType" use="optional" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The inheritance method used (see inheritance documentation) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="protected" use="optional" | |
type="xs:boolean" default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
If true, the setters and getters for this property will be protected rather | |
than public. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="version" use="optional" | |
type="xs:boolean" default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
If true, this column is used as a version number for optimistic locking. | |
I.e. for updates, Torque will check that the version number in the database | |
is equal to the version number of the supplied object | |
and it will automatically increase the version number of the updated row. | |
Setting version to true will only work for numeric columns and will produce | |
code that does not compile if applied to other column types. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="enumType" use="optional" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
If this attribute has a value, the java type for the column is an enum. | |
The name of the enum type is contained in this attribute. It can be either | |
fully qualified or unqualified. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The description of this column for documentation purposes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
inheritance element definition | |
===================================== --> | |
<xs:complexType name="inheritanceType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define an inheritance mapping of records to class by a key column. See the | |
inheritance How To document. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="key" type="xs:string" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A value found in the column marked as the inheritance key column | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="class" type="javaNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The class name for the object that will inherit the record values | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="extends" type="javaQualifiedNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The class that the inheritor class will extend | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
enumValue element definition | |
===================================== --> | |
<xs:complexType name="enumValueType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines a possible value for an enum. If any of these elements occurs | |
for a column, Torque will generate an enum for this column. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="value" type="xs:string" use="required"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The value for the enum. Must be unique. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaName" type="xs:string" use="optional"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The java name for the enum. Must be unique and must not clash | |
with automatically determined javaNames for the same enum. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A description for the enum value. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
foreign-key element definition | |
===================================== --> | |
<xs:complexType name="foreignKeyType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a foreign key constraint for this table. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="reference" type="referenceType" maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a mapping between a local column containing a foreign key value and | |
the foreign table column. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name used to create the foreign key constraint. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="foreignTable" type="sqlQualifiedNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name of the table that contains the foreign key | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="onDelete" use="optional" type="cascadeType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The action to take when the referenced value in foreignTable is deleted. | |
Note this is handled by the database server and not Torque code. Will not | |
work if the DB server does not support this. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="onUpdate" use="optional" type="cascadeType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The action to take when the referenced value in foreignTable is updated. | |
Note this is handled by the database server and not Torque code. Will not | |
work if the DB server does not support this. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
reference element definition | |
===================================== --> | |
<xs:complexType name="referenceType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a mapping between a local column containing a foreign key value and | |
the foreign table column. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="foreign" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column in the foreign table that contains the key. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="local" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column in this table that contains the foreign key. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
index element definition | |
===================================== --> | |
<xs:complexType name="indexType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines an index for this table. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="index-column" type="indexColumnType" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a column to use in a table index. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name used in creating this index in the database. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
reference element definition | |
===================================== --> | |
<xs:complexType name="indexColumnType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a column to use in a table index. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="name" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A column name to use in this index. Must exist in the table. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
unique element definition | |
===================================== --> | |
<xs:complexType name="uniqueType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define a unique value constraint | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="unique-column" type="uniqueColumnType" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Specify a column to use in the unique constraint. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name to use in defining this constraint. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
unique-column element definition | |
===================================== --> | |
<xs:complexType name="uniqueColumnType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Specify a column to use in the unique constraint. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:attribute name="name" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name to use in defining this constraint. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="size" type="xs:decimal" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The size of the field. E.g. columnname(size). Mainly to customize restrictions in bytes/character restrictions without global changes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
id-method-parameter element definition | |
===================================== --> | |
<xs:complexType name="idMethodParameterType"> | |
<xs:attribute name="name" type="xs:string" use="optional" | |
default="default" /> | |
<xs:attribute name="value" type="xs:string" | |
use="required" /> | |
</xs:complexType> | |
<!-- ===================================== | |
view element definition | |
===================================== --> | |
<xs:complexType name="viewType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The view element and its relevant attributes. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="column" type="viewColumnType" maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column element and its relevant attributes | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The name of the SQL view. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="baseClass" type="javaQualifiedNameType" use="optional"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The fully qualified class that the generated Java view | |
record objects will extend. This class does not have to extend | |
org.apache.torque.om.BaseObject. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="basePeer" type="javaQualifiedNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The fully qualified class that the generated Java Peer objects will extend. | |
Unlike baseClass, basePeer should extend BasePeer at some point in the chain, | |
i.e. it needs to be the superclass. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="abstract" use="optional" type="xs:boolean" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether or not to generate the class as Abstract or not | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaName" type="javaNameType" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
This is the Java class name to use when generating the view. If | |
this is missing the Java name is generated from the name attribute. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="sqlSuffix" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The remainder of the sql for the view after column definitions. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="createSql" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The complete SQL for creating the view. Overrides all other means | |
of generating the SQL for view creation. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="skipSql" use="optional" type="xs:boolean" | |
default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Whether or not to skip SQL generation for this reference. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A description of this view. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
view column element definition | |
===================================== --> | |
<xs:complexType name="viewColumnType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column element and its relevant attributes | |
</xs:documentation> | |
</xs:annotation> | |
<xs:sequence> | |
<xs:element name="option" type="optionType" minOccurs="0" | |
maxOccurs="unbounded" /> | |
<xs:element name="inheritance" type="inheritanceType" minOccurs="0" | |
maxOccurs="unbounded" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Define an inheritance mapping of records to class by a key column. See the | |
inheritance How To document. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:element> | |
</xs:sequence> | |
<xs:attribute name="name" type="sqlNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The column name | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="type" use="required" type="sqlDataType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The SQL Standard data type for the column | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="size" type="xs:decimal" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The size of the field. E.g. Varchar(size) or Numeric(Size). Note that | |
while this still supports the original torque use of using a | |
decimal number (5.2) to indicate the precision | |
and scale in one attribute. Use of the scale attribute is preferred. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="scale" type="xs:integer" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The scale of the field. E.g.decimal(size, scale) | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaName" type="javaNameType" | |
use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The Java property name to use for this column in the record objects. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="javaType" use="optional" | |
type="javaReturnType" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Defines if the record object property getter / setters will | |
use objects (e.g. Integer) or primitives (e.g. int), defaults | |
to database attribute or primitive | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="domain" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The domain reference name to set common settings. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="select" type="sqlQualifiedNameType" use="required" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The sql snippet which contains the value to select. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="protected" use="optional" | |
type="xs:boolean" default="false" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
If true, the setters and getters for this property will be protected rather | |
than public. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="description" type="xs:string" use="optional" > | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
The description of this column for documentation purposes. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="enumType" use="optional" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
If this attribute has a value, the java type for the column is an enum. | |
The name of the enum type is contained in this attribute. It can be either | |
fully qualified or unqualified. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<!-- ===================================== | |
Type definitions for attributes | |
===================================== --> | |
<xs:simpleType name="sqlDataType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Standard SQL column data types. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="BIT" /> | |
<xs:enumeration value="TINYINT" /> | |
<xs:enumeration value="SMALLINT" /> | |
<xs:enumeration value="INTEGER" /> | |
<xs:enumeration value="BIGINT" /> | |
<xs:enumeration value="FLOAT" /> | |
<xs:enumeration value="REAL" /> | |
<xs:enumeration value="NUMERIC" /> | |
<xs:enumeration value="DECIMAL" /> | |
<xs:enumeration value="CHAR" /> | |
<xs:enumeration value="VARCHAR" /> | |
<xs:enumeration value="LONGVARCHAR" /> | |
<xs:enumeration value="DATE" /> | |
<xs:enumeration value="TIME" /> | |
<xs:enumeration value="TIMESTAMP" /> | |
<xs:enumeration value="BINARY" /> | |
<xs:enumeration value="VARBINARY" /> | |
<xs:enumeration value="LONGVARBINARY" /> | |
<xs:enumeration value="NULL" /> | |
<xs:enumeration value="OTHER" /> | |
<xs:enumeration value="JAVA_OBJECT" /> | |
<xs:enumeration value="DISTINCT" /> | |
<xs:enumeration value="STRUCT" /> | |
<xs:enumeration value="ARRAY" /> | |
<xs:enumeration value="BLOB" /> | |
<xs:enumeration value="CLOB" /> | |
<xs:enumeration value="REF" /> | |
<xs:enumeration value="BOOLEANINT" /> | |
<xs:enumeration value="BOOLEANCHAR" /> | |
<xs:enumeration value="DOUBLE" /> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="idMethodType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
A schema type for methods to create ids automatically. | |
idbroker = Torque's software based id broker system | |
native = The SQL Server's native method, depends on database used | |
(e.g. autoincrement for MySQL, sequence for postgresql...) | |
none = Don't try to auto assign id numbers | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="idbroker" /> | |
<xs:enumeration value="native" /> | |
<xs:enumeration value="none" /> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="javaReturnType"> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="object" /> | |
<xs:enumeration value="primitive" /> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="cascadeType" > | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="cascade" /> | |
<xs:enumeration value="setnull" /> | |
<xs:enumeration value="restrict" /> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="inheritanceAttrType"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="single" /> | |
<xs:enumeration value="false" /> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="javaNameType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Java identifiers, e.g. [A-Za-z_$]A-Za-z_$0-9]* | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:string"/> | |
</xs:simpleType> | |
<xs:simpleType name="javaQualifiedNameType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
Java fully qualified names (e.g. x.y.x) | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:string"/> | |
</xs:simpleType> | |
<xs:simpleType name="sqlNameType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
SQL Standard non-delimited identifiers. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:string" /> | |
</xs:simpleType> | |
<xs:simpleType name="sqlQualifiedNameType"> | |
<xs:annotation> | |
<xs:documentation xml:lang="en"> | |
SQL Standard non-delimited identifiers. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:restriction base="xs:string" /> | |
</xs:simpleType> | |
</xs:schema> |