Added: sites/db/content/torque/dtd/database-5-0.xsd
==============================================================================
--- sites/db/content/torque/dtd/database-5-0.xsd (added)
+++ sites/db/content/torque/dtd/database-5-0.xsd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,1157 @@
+<?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: database-4-0.xsd 1629463 2015-00-05 02:11:26Z tfischer $
+-->
+
+<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>
\ No newline at end of file

Added: sites/db/content/torque/dtd/database.dtd
==============================================================================
--- sites/db/content/torque/dtd/database.dtd (added)
+++ sites/db/content/torque/dtd/database.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,195 @@
+<!--
+ 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: database.dtd 584517 2007-10-14 09:00:14Z tfischer $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores and dots are removed, first letter is
+              capitalized, first letter after an underscore
+              is capitalized, first letter after a dot is capitalized,
+              the rest of the letters are converted to lowercase.
+     underscoreOmitSchema - The section of the name before and including
+              the last dot in the name is removed. For the remaining part,
+              underscores are removed, first letter is capitalized,
+              first letter after an underscore is capitalized,
+              the rest of the letters are converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (option*, external-schema*, domain*, table+)>
+<!ATTLIST database
+  name CDATA #REQUIRED
+  defaultIdMethod (idbroker|native|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) 
"underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT option EMPTY>
+<!ATTLIST option
+  key CDATA #REQUIRED
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT external-schema EMPTY>
+<!ATTLIST external-schema
+  filename CDATA #REQUIRED
+>
+
+<!ELEMENT domain EMPTY>
+<!ATTLIST domain
+  name CDATA #REQUIRED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  description CDATA #IMPLIED
+>
+
+
+<!--
+     note: the interface="true", requires that useManagers=true in the
+     properties file.
+-->
+<!ELEMENT table 
(option*,column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  interface CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (option*, inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  protected (true|false) "false"
+  domain CDATA #IMPLIED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) #IMPLIED
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) #IMPLIED
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (option*,reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (option*,index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!-- The index-column's size element is currently ignored
+     and will be removed in a further version. -->
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (option*,unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>

Added: sites/db/content/torque/dtd/database_3_0_0.dtd
==============================================================================
--- sites/db/content/torque/dtd/database_3_0_0.dtd (added)
+++ sites/db/content/torque/dtd/database_3_0_0.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,150 @@
+<!--
+ 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: database.dtd,v 1.10 2001/12/27 20:49:32 jmcnally Exp $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Turbine Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores are removed, First letter is
+              capitalized, first letter after an underscore
+              is capitalized, the rest of the letters are
+              converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (table+)>
+<!ATTLIST database
+  name CDATA #IMPLIED
+  defaultIdMethod (idbroker|native|autoincrement|sequence|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|javaname) "underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT table (column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|autoincrement|sequence|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) "false"
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>

Added: sites/db/content/torque/dtd/database_3_0_1.dtd
==============================================================================
--- sites/db/content/torque/dtd/database_3_0_1.dtd (added)
+++ sites/db/content/torque/dtd/database_3_0_1.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,160 @@
+<!--
+ 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: database.dtd,v 1.13 2002/06/20 23:55:14 jmcnally Exp $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Turbine Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores are removed, First letter is
+              capitalized, first letter after an underscore
+              is capitalized, the rest of the letters are
+              converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (external-schema*, table+)>
+<!ATTLIST database
+  name CDATA #IMPLIED
+  defaultIdMethod (idbroker|native|autoincrement|sequence|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|javaname) "underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT external-schema EMPTY>
+<!ATTLIST external-schema
+  filename CDATA #REQUIRED
+>
+
+<!--
+     note: the interface="true", requires that useManagers=true in the
+     properties file.
+-->
+<!ELEMENT table (column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|autoincrement|sequence|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  interface CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) "false"
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>

Added: sites/db/content/torque/dtd/database_3_1.dtd
==============================================================================
--- sites/db/content/torque/dtd/database_3_1.dtd (added)
+++ sites/db/content/torque/dtd/database_3_1.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,160 @@
+<!--
+ 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: database.dtd,v 1.14 2003/01/08 16:43:57 henning Exp $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores are removed, First letter is
+              capitalized, first letter after an underscore
+              is capitalized, the rest of the letters are
+              converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (external-schema*, table+)>
+<!ATTLIST database
+  name CDATA #IMPLIED
+  defaultIdMethod (idbroker|native|autoincrement|sequence|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|javaname) "underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT external-schema EMPTY>
+<!ATTLIST external-schema
+  filename CDATA #REQUIRED
+>
+
+<!--
+     note: the interface="true", requires that useManagers=true in the
+     properties file.
+-->
+<!ELEMENT table (column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|autoincrement|sequence|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  interface CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) "false"
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>

Added: sites/db/content/torque/dtd/database_3_2.dtd
==============================================================================
--- sites/db/content/torque/dtd/database_3_2.dtd (added)
+++ sites/db/content/torque/dtd/database_3_2.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,187 @@
+<!--
+ 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: database.dtd,v 1.8 2005/06/27 21:34:10 tfischer Exp $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores and dots are removed, first letter is
+              capitalized, first letter after an underscore
+              is capitalized, first letter after a dot is capitalized,
+              the rest of the letters are converted to lowercase.
+     underscoreOmitSchema - The section of the name before and including
+              the last dot in the name is removed. For the remaining part,
+              underscores are removed, first letter is capitalized,
+              first letter after an underscore is capitalized,
+              the rest of the letters are converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (external-schema*, domain*, table+)>
+<!ATTLIST database
+  name CDATA #REQUIRED
+  defaultIdMethod (idbroker|native|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) 
"underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT external-schema EMPTY>
+<!ATTLIST external-schema
+  filename CDATA #REQUIRED
+>
+
+<!ELEMENT domain EMPTY>
+<!ATTLIST domain
+  name CDATA #REQUIRED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  description CDATA #IMPLIED
+>
+
+
+<!--
+     note: the interface="true", requires that useManagers=true in the
+     properties file.
+-->
+<!ELEMENT table (column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  interface CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  protected (true|false) "false"
+  domain CDATA #IMPLIED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) #IMPLIED
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) #IMPLIED
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>

Added: sites/db/content/torque/dtd/database_3_3.dtd
==============================================================================
--- sites/db/content/torque/dtd/database_3_3.dtd (added)
+++ sites/db/content/torque/dtd/database_3_3.dtd Thu Apr 21 09:20:54 2022
@@ -0,0 +1,195 @@
+<!--
+ 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: database.dtd 584517 2007-10-14 09:00:14Z tfischer $
+-->
+
+<!--
+For: database.defaultIdMethod and table.idMethod
+
+Do not use autoincrement or sequence. They are deprecated in favor of
+using native which will use the Connection pool to determine
+which database it is talking to (yes, it knows that) and then use
+whatever native database methodology for insert increments that it can.
+Otherwise, you should use idbroker or none. none is good if you have a
+table that is just a join table. idbroker is good if you want a
+centralized repository for brokering out clumps of id's in a database
+agnostic way.
+-->
+
+<!--
+
+defaultJavaNamingMethod determines how a table or column name,
+from the name attribute in the xml database file, is converted to a
+Java class or method name.
+
+     nochange   - indicates not change is performed.
+     underscore - Underscores and dots are removed, first letter is
+              capitalized, first letter after an underscore
+              is capitalized, first letter after a dot is capitalized,
+              the rest of the letters are converted to lowercase.
+     underscoreOmitSchema - The section of the name before and including
+              the last dot in the name is removed. For the remaining part,
+              underscores are removed, first letter is capitalized,
+              first letter after an underscore is capitalized,
+              the rest of the letters are converted to lowercase.
+     javaname   - same as underscore, but no letters are converted
+              to lowercase.
+-->
+
+<!ELEMENT database (option*, external-schema*, domain*, table+)>
+<!ATTLIST database
+  name CDATA #REQUIRED
+  defaultIdMethod (idbroker|native|none) "none"
+  defaultJavaType (object|primitive) "primitive"
+  package CDATA #IMPLIED
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  defaultJavaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) 
"underscore"
+  heavyIndexing (true|false) "false"
+>
+
+<!ELEMENT option EMPTY>
+<!ATTLIST option
+  key CDATA #REQUIRED
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT external-schema EMPTY>
+<!ATTLIST external-schema
+  filename CDATA #REQUIRED
+>
+
+<!ELEMENT domain EMPTY>
+<!ATTLIST domain
+  name CDATA #REQUIRED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) "VARCHAR"
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  description CDATA #IMPLIED
+>
+
+
+<!--
+     note: the interface="true", requires that useManagers=true in the
+     properties file.
+-->
+<!ELEMENT table 
(option*,column+,(foreign-key|index|unique|id-method-parameter)*)>
+<!ATTLIST table
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  idMethod (idbroker|native|none|null) "null"
+  skipSql (true|false) "false"
+  abstract (true|false) "false"
+  baseClass CDATA #IMPLIED
+  basePeer CDATA #IMPLIED
+  alias CDATA #IMPLIED
+  interface CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|underscoreOmitSchema|javaname) #IMPLIED
+  heavyIndexing (true|false) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT id-method-parameter EMPTY>
+<!ATTLIST id-method-parameter
+  name CDATA "default"
+  value CDATA #REQUIRED
+>
+
+<!ELEMENT column (option*, inheritance*)>
+<!ATTLIST column
+  name CDATA #REQUIRED
+  javaName CDATA #IMPLIED
+  primaryKey (true|false) "false"
+  required (true|false) "false"
+  protected (true|false) "false"
+  domain CDATA #IMPLIED
+  type
+    (
+          BIT  | TINYINT | SMALLINT    | INTEGER    | BIGINT    | FLOAT
+        | REAL | NUMERIC | DECIMAL     | CHAR       | VARCHAR   | LONGVARCHAR
+        | DATE | TIME    | TIMESTAMP   | BINARY     | VARBINARY | LONGVARBINARY
+        | NULL | OTHER   | JAVA_OBJECT | DISTINCT   | STRUCT    | ARRAY
+        | BLOB | CLOB    | REF         | BOOLEANINT | BOOLEANCHAR
+        | DOUBLE
+    ) #IMPLIED
+  javaType (object|primitive) #IMPLIED
+  size CDATA #IMPLIED
+  scale CDATA #IMPLIED
+  default CDATA #IMPLIED
+  autoIncrement (true|false) #IMPLIED
+  inheritance (single|false) "false"
+  inputValidator CDATA #IMPLIED
+  javaNamingMethod (nochange|underscore|javaname) #IMPLIED
+  description CDATA #IMPLIED
+>
+
+<!ELEMENT inheritance EMPTY>
+<!ATTLIST inheritance
+  key CDATA #REQUIRED
+  class CDATA #REQUIRED
+  extends CDATA #IMPLIED
+>
+
+<!ELEMENT foreign-key (option*,reference+)>
+<!ATTLIST foreign-key
+  foreignTable CDATA #REQUIRED
+  name CDATA #IMPLIED
+  onUpdate (cascade|setnull|restrict|none) "none"
+  onDelete (cascade|setnull|restrict|none) "none"
+>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+  local CDATA #REQUIRED
+  foreign CDATA #REQUIRED
+>
+
+<!ELEMENT index (option*,index-column+)>
+<!ATTLIST index
+  name CDATA #IMPLIED
+>
+
+<!-- The index-column's size element is currently ignored
+     and will be removed in a further version. -->
+<!ELEMENT index-column EMPTY>
+<!ATTLIST index-column
+  name CDATA #REQUIRED
+  size CDATA #IMPLIED
+>
+
+<!ELEMENT unique (option*,unique-column+)>
+<!ATTLIST unique
+  name CDATA #IMPLIED
+>
+
+<!ELEMENT unique-column EMPTY>
+<!ATTLIST unique-column
+  name CDATA #REQUIRED
+>


Reply via email to