Author: gk Date: Tue Oct 6 08:57:04 2020 New Revision: 1066449 Log: - add new and backward compatible schema path.
Added: websites/production/db/content/torque/torque-4.0/generator/ websites/production/db/content/torque/torque-4.0/generator/configuration.xsd websites/production/db/content/torque/torque-4.0/generator/outlet.xsd websites/production/db/content/torque/xsd/ websites/production/db/content/torque/xsd/configuration.xsd websites/production/db/content/torque/xsd/database-4-0-strict.xsd websites/production/db/content/torque/xsd/database-4-0.xsd websites/production/db/content/torque/xsd/database-5-0-strict.xsd websites/production/db/content/torque/xsd/database-5-0.xsd websites/production/db/content/torque/xsd/outlet.xsd Added: websites/production/db/content/torque/torque-4.0/generator/configuration.xsd ============================================================================== --- websites/production/db/content/torque/torque-4.0/generator/configuration.xsd (added) +++ websites/production/db/content/torque/torque-4.0/generator/configuration.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,340 @@ +<?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. +--> + +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:configuration="http://db.apache.org/torque/4.0/generator/configuration" + targetNamespace="http://db.apache.org/torque/4.0/generator/configuration" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <!-- use HTTP location, will be resolved locally by entity resolver --> + <include schemaLocation="http://db.apache.org/torque/4.0/generator/outlet.xsd"/> + + <simpleType name="loglevelType"> + <annotation> + <documentation> + The possible log levels for the generator. + </documentation> + </annotation> + <restriction base="string"> + <enumeration value="trace"/> + <enumeration value="debug"/> + <enumeration value="info"/> + <enumeration value="warn"/> + <enumeration value="error"/> + </restriction> + </simpleType> + + <complexType name="baseOptions" abstract="true"> + <annotation> + <documentation> + A reference to a options file. + </documentation> + </annotation> + </complexType> + + <complexType name="xmlOptions"> + <annotation> + <documentation> + A reference to a options file in java properties XML format. + See the javadoc of java.util.Properties for more information about + this format. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:baseOptions"> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="path" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="propertiesOptions"> + <annotation> + <documentation> + A reference to a options file in java properties format (key=value). + </documentation> + </annotation> + <complexContent> + <extension base="configuration:baseOptions"> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="path" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="entityReference"> + <annotation> + <documentation> + Where to find external resources which are referenced by a key. + Typically this will be XSD files where the key is the systemId. + </documentation> + </annotation> + <attribute name="systemId" type="string" use="required"/> + <attribute name="resource" type="string" use="required"/> + </complexType> + + <complexType name="output"> + <sequence> + <element name="filenameOutlet" type="configuration:baseOutlet" minOccurs="0"/> + <element name="source" type="configuration:source"/> + <element name="outlet" type="configuration:outletReference"/> + <element name="postprocessor" type="configuration:postprocessor" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="name" type="string" use="required"> + <annotation> + <documentation> + The name by which this output can be identified. + Must be unique over one project. + </documentation> + </annotation> + </attribute> + <attribute name="file" type="string" use="optional"> + <annotation> + <documentation> + Contains the name of the generated file. + Relative paths are relative to the target directory. + If the file name is not fixed, omit this attribute and use + the child element filenameOutlet instead. + </documentation> + </annotation> + </attribute> + <attribute name="encoding" type="string" use="optional"> + <annotation> + <documentation> + The character encoding in which this file is written. + Default is the platform's default encoding. + </documentation> + </annotation> + </attribute> + <attribute name="existingTargetStrategy" use="optional"> + <annotation> + <documentation> + What to do when a file which is about to be generated already exists. + Default is "replace". + </documentation> + </annotation> + <simpleType> + <restriction base="string"> + <enumeration value="replace"/> + <enumeration value="skip"/> + <enumeration value="append"/> + <enumeration value="merge"/> + </restriction> + </simpleType> + </attribute> + <attribute name="type" use="optional"> + <annotation> + <documentation> + The type of the output, e.g. java, html, xml, unknown. + Default is "unknown" + </documentation> + </annotation> + <simpleType> + <restriction base="string"> + <enumeration value="java"/> + <enumeration value="html"/> + <enumeration value="xml"/> + <enumeration value="properties"/> + <enumeration value="unknown"/> + </restriction> + </simpleType> + </attribute> + <attribute name="outputDirKey" type="string" use="optional"> + <annotation> + <documentation> + The key for the base directory into which the output is written + (The corresponding directory for the key is defined when running + the generator). + If not set, the default targetDirKey is used. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="source" abstract="true"> + <annotation> + <documentation> + A collection of sources for a generation process. + Typically this will be one or more files, but can virtually be anything. + </documentation> + </annotation> + <sequence> + <element name="transformer" type="configuration:transformer" minOccurs="0" maxOccurs="unbounded"> + <annotation> + <documentation> + The transformers which are applied to the source. + Transformers transform (change) the source graph before generation + starts. + </documentation> + </annotation> + </element> + </sequence> + <attribute name="elements" type="string" use="optional"> + <annotation> + <documentation> + The path to the source elements for which an own output file should + be created. + </documentation> + </annotation> + </attribute> + <attribute name="skipDecider" type="string" use="optional"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.source.skipDecider.SkipDecider + interface. This class decides whether to proceed + with the current generation or not after the source has been loaded. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="fileSource"> + <annotation> + <documentation> + A collection of source files. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:source"> + <sequence> + <element name="include" type="string" minOccurs="0" maxOccurs="unbounded"/> + <element name="exclude" type="string" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="format" type="string" use="optional"/> + <attribute name="combineFiles" type="boolean" use="optional"> + <annotation> + <documentation> + Whether to combine all source files in a single source tree. + Default is false. If true, the name of the source tree's root + element will be source. Each loaded source file will be put + into a child element with element name file. The root element + of the single file will be the only child element of the file + element. The name of the file will be put into the attribute + path of the file element. + </documentation> + </annotation> + </attribute> + </extension> + </complexContent> + </complexType> + + <complexType name="jdbcMetadataSource"> + <annotation> + <documentation> + A source read from the jbdc metadata of a database. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:source"> + <attribute name="driverOption" type="string" use="required"/> + <attribute name="urlOption" type="string" use="required"/> + <attribute name="usernameOption" type="string" use="optional"/> + <attribute name="passwordOption" type="string" use="optional"/> + <attribute name="schemaOption" type="string" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="transformer"> + <annotation> + <documentation> + Configures a transformer which transforms the source tree before + generation starts. The transformer can be configured by adding + nested elements where the element name is the property name + and the text content the property value. + </documentation> + </annotation> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="class" type="string" use="required"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.source.transform.SourceTransformer + interface. Instances of this interface transform (change) + the source graph. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="outletReference"> + <annotation> + <documentation> + Points to an outlet defined in the outlet definition directory. + </documentation> + </annotation> + <attribute name="name" type="string" use="required"/> + </complexType> + + <complexType name="postprocessor"> + <annotation> + <documentation> + Configures a postprocessor which transforms the generated output + after the generation. The postprocessor can be configured by adding + nested elements where the element name is the property name + and the text content the property value. + </documentation> + </annotation> + <sequence> + <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="class" type="string" use="required"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.processor.string.StringProcessor + interface. Instances of this interface can process strings, + in this case the generated content is transformed. + </documentation> + </annotation> + </attribute> + </complexType> + + <element name="control"> + <annotation> + <documentation> + The root element of the control configuration. + </documentation> + </annotation> + <complexType> + <sequence> + <element name="options" type="configuration:baseOptions" minOccurs="0" maxOccurs="unbounded"/> + <element name="entityReference" type="configuration:entityReference" minOccurs="0" maxOccurs="unbounded"/> + <element name="output" type="configuration:output" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="loglevel" type="configuration:loglevelType" use="optional"> + <annotation> + <documentation> + The loglevel defines the log level during the generation process. + The default loglevel is info. + </documentation> + </annotation> + </attribute> + </complexType> + </element> +</schema> \ No newline at end of file Added: websites/production/db/content/torque/torque-4.0/generator/outlet.xsd ============================================================================== --- websites/production/db/content/torque/torque-4.0/generator/outlet.xsd (added) +++ websites/production/db/content/torque/torque-4.0/generator/outlet.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,170 @@ +<?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. +--> + +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:configuration="http://db.apache.org/torque/4.0/generator/configuration" + targetNamespace="http://db.apache.org/torque/4.0/generator/configuration" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <element name="outlets"> + <complexType> + <sequence> + <element name="outlet" type="configuration:baseOutlet" maxOccurs="unbounded"/> + <!-- + The mergepoints defined here must be fully qualified with the name of the outlet. + The mergepoint must already be known at this time. This is only ensured if the + outlet is defined in the same file (then the definition of the mergepoint + outside the outlet does not make sense) or in a parent module. + The mergepoint definition here overrides any previous definition. + --> + <element name="mergepoint" type="configuration:mergepoint" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + </complexType> + </element> + + <complexType name="baseOutlet" abstract="true"> + <sequence> + <element name="input" type="configuration:input" minOccurs="0"/> + <element name="mergepoint" type="configuration:mergepoint" minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <!-- + name can be optional, e.g. for filenameOutlets and for template outlets. + --> + <attribute name="name" type="string" use="optional"/> + </complexType> + + <complexType name="javaOutlet"> + <complexContent> + <extension base="configuration:baseOutlet"> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="class" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="velocityOutlet"> + <complexContent> + <extension base="configuration:baseOutlet"> + <attribute name="path" type="string" use="required"/> + <attribute name="optionsInContext" type="string" use="optional"/> + <attribute name="sourceAttributesInContext" type="string" use="optional"/> + <attribute name="variablesInContext" type="string" use="optional"/> + <attribute name="encoding" type="string" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="groovyOutlet"> + <complexContent> + <extension base="configuration:baseOutlet"> + <attribute name="path" type="string" use="required"/> + <attribute name="optionsInBinding" type="string" use="optional"/> + <attribute name="sourceAttributesInBinding" type="string" use="optional"/> + <attribute name="variablesInBinding" type="string" use="optional"/> + <attribute name="encoding" type="string" use="optional"/> + <!-- + Whether the outlet is a script(false) or template (true) + If not set, the type is retrieved from the path ending. + If the path ends with ".groovy" it is a script, + in all other cases it is a template; + --> + <attribute name="template" type="boolean" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="copyOutlet"> + <complexContent> + <extension base="configuration:baseOutlet"> + <attribute name="path" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <!-- Defines the input accepted by the outlet. + Either the name of a source element (in case of an untyped model) + or the class name of a model class (in the case of a typed model) + must be given. + --> + <complexType name="input"> + <!-- Exactly one of the attributes must be set --> + <attribute name="elementName" use="optional" /> + <attribute name="class" use="optional" /> + </complexType> + + <complexType name="mergepoint"> + <sequence> + <element name="action" type="configuration:baseAction" minOccurs="0" maxOccurs="unbounded" /> + </sequence> + <attribute name="name" use="required" /> + </complexType> + + <complexType name="baseAction" abstract="true"> + </complexType> + + <complexType name="applyAction"> + <complexContent> + <extension base="configuration:baseAction"> + <attribute name="outlet" type="string" use="required"/> + <attribute name="acceptNotSet" type="boolean" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="optionAction"> + <complexContent> + <extension base="configuration:baseAction"> + <attribute name="option" type="string" use="required"/> + <attribute name="acceptNotSet" type="boolean" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="outputAction"> + <complexContent> + <extension base="configuration:baseAction"> + <attribute name="value" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="sourceElementAttributeAction"> + <complexContent> + <extension base="configuration:baseAction"> + <attribute name="element" type="string" use="required"/> + <attribute name="attribute" type="string" use="optional"/> + <attribute name="acceptNotSet" type="boolean" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="traverseAllAction"> + <complexContent> + <extension base="configuration:baseAction"> + <attribute name="element" type="string" use="required"/> + <attribute name="outlet" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + +</schema> \ No newline at end of file Added: websites/production/db/content/torque/xsd/configuration.xsd ============================================================================== --- websites/production/db/content/torque/xsd/configuration.xsd (added) +++ websites/production/db/content/torque/xsd/configuration.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,340 @@ +<?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. +--> + +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:configuration="http://db.apache.org/torque/4.0/generator/configuration" + targetNamespace="http://db.apache.org/torque/4.0/generator/configuration" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <!-- use HTTP location, will be resolved locally by entity resolver --> + <include schemaLocation="http://db.apache.org/torque/4.0/generator/outlet.xsd"/> + + <simpleType name="loglevelType"> + <annotation> + <documentation> + The possible log levels for the generator. + </documentation> + </annotation> + <restriction base="string"> + <enumeration value="trace"/> + <enumeration value="debug"/> + <enumeration value="info"/> + <enumeration value="warn"/> + <enumeration value="error"/> + </restriction> + </simpleType> + + <complexType name="baseOptions" abstract="true"> + <annotation> + <documentation> + A reference to a options file. + </documentation> + </annotation> + </complexType> + + <complexType name="xmlOptions"> + <annotation> + <documentation> + A reference to a options file in java properties XML format. + See the javadoc of java.util.Properties for more information about + this format. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:baseOptions"> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="path" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="propertiesOptions"> + <annotation> + <documentation> + A reference to a options file in java properties format (key=value). + </documentation> + </annotation> + <complexContent> + <extension base="configuration:baseOptions"> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="path" type="string" use="required"/> + </extension> + </complexContent> + </complexType> + + <complexType name="entityReference"> + <annotation> + <documentation> + Where to find external resources which are referenced by a key. + Typically this will be XSD files where the key is the systemId. + </documentation> + </annotation> + <attribute name="systemId" type="string" use="required"/> + <attribute name="resource" type="string" use="required"/> + </complexType> + + <complexType name="output"> + <sequence> + <element name="filenameOutlet" type="configuration:baseOutlet" minOccurs="0"/> + <element name="source" type="configuration:source"/> + <element name="outlet" type="configuration:outletReference"/> + <element name="postprocessor" type="configuration:postprocessor" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="name" type="string" use="required"> + <annotation> + <documentation> + The name by which this output can be identified. + Must be unique over one project. + </documentation> + </annotation> + </attribute> + <attribute name="file" type="string" use="optional"> + <annotation> + <documentation> + Contains the name of the generated file. + Relative paths are relative to the target directory. + If the file name is not fixed, omit this attribute and use + the child element filenameOutlet instead. + </documentation> + </annotation> + </attribute> + <attribute name="encoding" type="string" use="optional"> + <annotation> + <documentation> + The character encoding in which this file is written. + Default is the platform's default encoding. + </documentation> + </annotation> + </attribute> + <attribute name="existingTargetStrategy" use="optional"> + <annotation> + <documentation> + What to do when a file which is about to be generated already exists. + Default is "replace". + </documentation> + </annotation> + <simpleType> + <restriction base="string"> + <enumeration value="replace"/> + <enumeration value="skip"/> + <enumeration value="append"/> + <enumeration value="merge"/> + </restriction> + </simpleType> + </attribute> + <attribute name="type" use="optional"> + <annotation> + <documentation> + The type of the output, e.g. java, html, xml, unknown. + Default is "unknown" + </documentation> + </annotation> + <simpleType> + <restriction base="string"> + <enumeration value="java"/> + <enumeration value="html"/> + <enumeration value="xml"/> + <enumeration value="properties"/> + <enumeration value="unknown"/> + </restriction> + </simpleType> + </attribute> + <attribute name="outputDirKey" type="string" use="optional"> + <annotation> + <documentation> + The key for the base directory into which the output is written + (The corresponding directory for the key is defined when running + the generator). + If not set, the default targetDirKey is used. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="source" abstract="true"> + <annotation> + <documentation> + A collection of sources for a generation process. + Typically this will be one or more files, but can virtually be anything. + </documentation> + </annotation> + <sequence> + <element name="transformer" type="configuration:transformer" minOccurs="0" maxOccurs="unbounded"> + <annotation> + <documentation> + The transformers which are applied to the source. + Transformers transform (change) the source graph before generation + starts. + </documentation> + </annotation> + </element> + </sequence> + <attribute name="elements" type="string" use="optional"> + <annotation> + <documentation> + The path to the source elements for which an own output file should + be created. + </documentation> + </annotation> + </attribute> + <attribute name="skipDecider" type="string" use="optional"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.source.skipDecider.SkipDecider + interface. This class decides whether to proceed + with the current generation or not after the source has been loaded. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="fileSource"> + <annotation> + <documentation> + A collection of source files. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:source"> + <sequence> + <element name="include" type="string" minOccurs="0" maxOccurs="unbounded"/> + <element name="exclude" type="string" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="format" type="string" use="optional"/> + <attribute name="combineFiles" type="boolean" use="optional"> + <annotation> + <documentation> + Whether to combine all source files in a single source tree. + Default is false. If true, the name of the source tree's root + element will be source. Each loaded source file will be put + into a child element with element name file. The root element + of the single file will be the only child element of the file + element. The name of the file will be put into the attribute + path of the file element. + </documentation> + </annotation> + </attribute> + </extension> + </complexContent> + </complexType> + + <complexType name="jdbcMetadataSource"> + <annotation> + <documentation> + A source read from the jbdc metadata of a database. + </documentation> + </annotation> + <complexContent> + <extension base="configuration:source"> + <attribute name="driverOption" type="string" use="required"/> + <attribute name="urlOption" type="string" use="required"/> + <attribute name="usernameOption" type="string" use="optional"/> + <attribute name="passwordOption" type="string" use="optional"/> + <attribute name="schemaOption" type="string" use="optional"/> + </extension> + </complexContent> + </complexType> + + <complexType name="transformer"> + <annotation> + <documentation> + Configures a transformer which transforms the source tree before + generation starts. The transformer can be configured by adding + nested elements where the element name is the property name + and the text content the property value. + </documentation> + </annotation> + <sequence> + <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="class" type="string" use="required"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.source.transform.SourceTransformer + interface. Instances of this interface transform (change) + the source graph. + </documentation> + </annotation> + </attribute> + </complexType> + + <complexType name="outletReference"> + <annotation> + <documentation> + Points to an outlet defined in the outlet definition directory. + </documentation> + </annotation> + <attribute name="name" type="string" use="required"/> + </complexType> + + <complexType name="postprocessor"> + <annotation> + <documentation> + Configures a postprocessor which transforms the generated output + after the generation. The postprocessor can be configured by adding + nested elements where the element name is the property name + and the text content the property value. + </documentation> + </annotation> + <sequence> + <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="class" type="string" use="required"> + <annotation> + <documentation> + The fully qualified class name of a java class implementing the + org.apache.torque.generator.processor.string.StringProcessor + interface. Instances of this interface can process strings, + in this case the generated content is transformed. + </documentation> + </annotation> + </attribute> + </complexType> + + <element name="control"> + <annotation> + <documentation> + The root element of the control configuration. + </documentation> + </annotation> + <complexType> + <sequence> + <element name="options" type="configuration:baseOptions" minOccurs="0" maxOccurs="unbounded"/> + <element name="entityReference" type="configuration:entityReference" minOccurs="0" maxOccurs="unbounded"/> + <element name="output" type="configuration:output" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + <attribute name="loglevel" type="configuration:loglevelType" use="optional"> + <annotation> + <documentation> + The loglevel defines the log level during the generation process. + The default loglevel is info. + </documentation> + </annotation> + </attribute> + </complexType> + </element> +</schema> \ No newline at end of file Added: websites/production/db/content/torque/xsd/database-4-0-strict.xsd ============================================================================== --- websites/production/db/content/torque/xsd/database-4-0-strict.xsd (added) +++ websites/production/db/content/torque/xsd/database-4-0-strict.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,90 @@ +<?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-strict.xsd 1622915 2014-09-06 19:21:17Z tfischer $ +--> + +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://db.apache.org/torque/4.0/templates/database" + xmlns="http://db.apache.org/torque/4.0/templates/database" + elementFormDefault="qualified" + version="4.0"> + + <xs:annotation> + <xs:documentation xml:lang="en"> +The XML schema used by version 4.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 restricts the available characters in java names and sql names +as compared to the standard database.xsd + </xs:documentation> + </xs:annotation> + + <xs:redefine schemaLocation="http://db.apache.org/torque/torque-4.0/documentation/orm-reference/database-4-0.xsd"> + <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="javaNameType"> + <xs:pattern value="[A-Za-z_$][A-Za-z_$0-9]*" /> + </xs:restriction> + </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="javaQualifiedNameType"> + <xs:pattern + value="([A-Za-z_$][A-Za-z_$0-9]*[.])*[A-Za-z_$][A-Za-z_$0-9]*" /> + </xs:restriction> + </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="sqlNameType"> + <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*" /> + </xs:restriction> + </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="sqlQualifiedNameType"> + <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*(\.[A-Za-z$#][A-Za-z_$#0-9]*)?" /> + </xs:restriction> + </xs:simpleType> + </xs:redefine> + +</xs:schema> \ No newline at end of file Added: websites/production/db/content/torque/xsd/database-4-0.xsd ============================================================================== --- websites/production/db/content/torque/xsd/database-4-0.xsd (added) +++ websites/production/db/content/torque/xsd/database-4-0.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,1096 @@ +<?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 2014-10-05 02:11:26Z tfischer $ +--> + +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://db.apache.org/torque/4.0/templates/database" + xmlns="http://db.apache.org/torque/4.0/templates/database" + elementFormDefault="qualified" + version="4.0"> + + <xs:annotation> + <xs:documentation xml:lang="en"> +The XML schema used by version 4.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="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="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> + +<!-- ===================================== + 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> + +<!-- ===================================== + 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: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: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: websites/production/db/content/torque/xsd/database-5-0-strict.xsd ============================================================================== --- websites/production/db/content/torque/xsd/database-5-0-strict.xsd (added) +++ websites/production/db/content/torque/xsd/database-5-0-strict.xsd Tue Oct 6 08:57:04 2020 @@ -0,0 +1,90 @@ +<?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-strict.xsd 1622915 2014-09-06 19:21:17Z 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 restricts the available characters in java names and sql names +as compared to the standard database.xsd + </xs:documentation> + </xs:annotation> + + <xs:redefine schemaLocation="http://db.apache.org/torque/torque-5.0/documentation/orm-reference/database-5-0.xsd"> + <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="javaNameType"> + <xs:pattern value="[A-Za-z_$][A-Za-z_$0-9]*" /> + </xs:restriction> + </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="javaQualifiedNameType"> + <xs:pattern + value="([A-Za-z_$][A-Za-z_$0-9]*[.])*[A-Za-z_$][A-Za-z_$0-9]*" /> + </xs:restriction> + </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="sqlNameType"> + <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*" /> + </xs:restriction> + </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="sqlQualifiedNameType"> + <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*(\.[A-Za-z$#][A-Za-z_$#0-9]*)?" /> + </xs:restriction> + </xs:simpleType> + </xs:redefine> + +</xs:schema> \ No newline at end of file