This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/cayenne-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new d5a01581a Add version 11 XML schemas
d5a01581a is described below
commit d5a01581a12b121b6e5a451eec304bfe3ea1e4bf
Author: Nikita Timofeev <[email protected]>
AuthorDate: Wed Sep 25 21:27:17 2024 +0400
Add version 11 XML schemas
---
schema/11/cgen.xsd | 52 +++++++
schema/11/dbimport.xsd | 110 ++++++++++++++
schema/11/domain.xsd | 130 +++++++++++++++++
schema/11/graph.xsd | 55 +++++++
schema/11/info.xsd | 29 ++++
schema/11/modelMap.xsd | 364 +++++++++++++++++++++++++++++++++++++++++++++++
schema/11/validation.xsd | 30 ++++
7 files changed, 770 insertions(+)
diff --git a/schema/11/cgen.xsd b/schema/11/cgen.xsd
new file mode 100644
index 000000000..5fb4d233d
--- /dev/null
+++ b/schema/11/cgen.xsd
@@ -0,0 +1,52 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/cgen"
+ elementFormDefault="qualified" version="11"
+ xmlns:cay="http://cayenne.apache.org/schema/11/cgen"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="cgen">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" minOccurs="0" type="xs:string"/>
+ <xs:element name="excludeEntities" minOccurs="0"
type="xs:string"/>
+ <xs:element name="excludeEmbeddables" minOccurs="0"
type="xs:string"/>
+ <xs:element name="destDir" minOccurs="0" type="xs:string"/>
+ <xs:element name="mode" minOccurs="0" type="xs:string"/>
+ <xs:element name="template" minOccurs="0"
type="xs:string"/>
+ <xs:element name="superTemplate" minOccurs="0"
type="xs:string"/>
+ <xs:element name="embeddableTemplate" minOccurs="0"
type="xs:string"/>
+ <xs:element name="embeddableSuperTemplate" minOccurs="0"
type="xs:string"/>
+ <xs:element name="dataMapTemplate" minOccurs="0"
type="xs:string"/>
+ <xs:element name="dataMapSuperTemplate" minOccurs="0"
type="xs:string"/>
+ <xs:element name="outputPattern" minOccurs="0"
type="xs:string"/>
+ <xs:element name="makePairs" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="skipRelationshipsLoading" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="usePkgPath" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="overwrite" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="createPropertyNames" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="superPkg" minOccurs="0"
type="xs:string"/>
+ <xs:element name="createPKProperties" minOccurs="0"
type="xs:boolean"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/schema/11/dbimport.xsd b/schema/11/dbimport.xsd
new file mode 100644
index 000000000..761df994a
--- /dev/null
+++ b/schema/11/dbimport.xsd
@@ -0,0 +1,110 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/dbimport"
+ xmlns:dbi="http://cayenne.apache.org/schema/11/dbimport"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="11">
+
+ <xs:element name="dbImport" substitutionGroup="dbi:config"/>
+ <xs:element name="config">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="dbi:container">
+ <xs:sequence>
+ <xs:element name="catalog" minOccurs="0"
maxOccurs="unbounded" type="dbi:catalog"/>
+ <xs:element name="schema" minOccurs="0"
maxOccurs="unbounded" type="dbi:schema"/>
+ <xs:element name="tableTypes" minOccurs="0"
type="dbi:tableTypes"/>
+
+ <xs:element name="defaultPackage" minOccurs="0"
type="xs:string"/>
+ <xs:element name="forceDataMapCatalog" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="forceDataMapSchema" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="meaningfulPkTables" minOccurs="0"
type="xs:string"/>
+ <xs:element name="namingStrategy" minOccurs="0"
type="xs:string"/>
+ <xs:element name="skipPrimaryKeyLoading" minOccurs="0"
type="xs:boolean"/>
+ <xs:element name="skipRelationshipsLoading"
minOccurs="0" type="xs:boolean"/>
+ <xs:element name="stripFromTableNames" minOccurs="0"
type="xs:string"/>
+ <xs:element name="useJava7Types" minOccurs="0"
type="xs:boolean"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="db-type">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9a-zA-Z$_.]+"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="tableTypes">
+ <xs:sequence>
+ <xs:element name="tableType" type="dbi:db-type"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="includeTable" mixed="true">
+ <xs:sequence>
+ <xs:element name="name" minOccurs="0" type="xs:string"/>
+ <xs:element name="includeColumn" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="excludeColumn" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="container" abstract="true">
+ <xs:sequence>
+ <xs:element name="includeTable" type="dbi:includeTable"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="excludeTable" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="includeColumn" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="excludeColumn" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="includeProcedure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="excludeProcedure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="schema">
+ <xs:complexContent>
+ <xs:extension base="dbi:container">
+ <xs:sequence>
+ <xs:element name="name" type="dbi:db-type"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="catalog">
+ <xs:complexContent>
+ <xs:extension base="dbi:container">
+ <xs:sequence>
+ <xs:element name="name" type="dbi:db-type"/>
+ <xs:element name="schema" type="dbi:schema" minOccurs="0"
maxOccurs="unbounded"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+</xs:schema>
\ No newline at end of file
diff --git a/schema/11/domain.xsd b/schema/11/domain.xsd
new file mode 100644
index 000000000..ebee58ba7
--- /dev/null
+++ b/schema/11/domain.xsd
@@ -0,0 +1,130 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/domain"
+ elementFormDefault="qualified" version="11"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:cay="http://cayenne.apache.org/schema/11/domain">
+
+ <xs:element name="domain">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:property"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="cay:map"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:node"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="project-version" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="property">
+ <xs:annotation>
+ <xs:documentation>A generic property used by other
elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ <xs:attribute name="value" use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="map">
+ <xs:annotation>
+ <xs:documentation>Link to an external file with data
map.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="node">
+ <xs:annotation>
+ <xs:documentation>Data node description.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:map-ref"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:data-source"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ <xs:attribute name="factory" use="required" type="xs:string"/>
+ <xs:attribute name="adapter" type="xs:string"/>
+ <xs:attribute name="schema-update-strategy" type="xs:string"/>
+ <xs:attribute name="parameters" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="map-ref">
+ <xs:annotation>
+ <xs:documentation>A reference to a map.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="data-source">
+ <xs:annotation>
+ <xs:documentation>Data source configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" ref="cay:driver"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="cay:url"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="cay:connectionPool"/>
+ <xs:element minOccurs="0" maxOccurs="1" ref="cay:login"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="driver">
+ <xs:complexType>
+ <xs:attribute name="value" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="url">
+ <xs:complexType>
+ <xs:attribute name="value" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="connectionPool">
+ <xs:complexType>
+ <xs:attribute name="min" use="required" type="xs:int"/>
+ <xs:attribute name="max" use="required" type="xs:int"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="login">
+ <xs:complexType>
+ <xs:attribute name="userName" type="xs:string"/>
+ <xs:attribute name="password" type="xs:string"/>
+ <xs:attribute name="passwordLocation" type="xs:string"/>
+ <xs:attribute name="passwordSource" type="xs:string"/>
+ <xs:attribute name="encoderClass" type="xs:string"/>
+ <xs:attribute name="encoderKey" type="xs:string"/>
+ <xs:attribute name="encoderSalt" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/schema/11/graph.xsd b/schema/11/graph.xsd
new file mode 100644
index 000000000..f0332fa77
--- /dev/null
+++ b/schema/11/graph.xsd
@@ -0,0 +1,55 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/graph"
+ elementFormDefault="qualified" version="11"
+ xmlns:cay="http://cayenne.apache.org/schema/11/graph"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="graphs">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:graph"/>
+ </xs:sequence>
+ <xs:attribute name="selected" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="graph">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:entity"/>
+ </xs:sequence>
+ <xs:attribute name="type" type="xs:string" />
+ <xs:attribute name="scale" type="xs:double" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="entity">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="x" type="xs:double" />
+ <xs:attribute name="y" type="xs:double" />
+ <xs:attribute name="width" type="xs:double" />
+ <xs:attribute name="height" type="xs:double" />
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/schema/11/info.xsd b/schema/11/info.xsd
new file mode 100644
index 000000000..c2c103a44
--- /dev/null
+++ b/schema/11/info.xsd
@@ -0,0 +1,29 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/info"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="11">
+ <xs:element name="property">
+ <xs:complexType>
+ <xs:attribute name="name" use="required" type="xs:string"/>
+ <xs:attribute name="value" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
\ No newline at end of file
diff --git a/schema/11/modelMap.xsd b/schema/11/modelMap.xsd
new file mode 100644
index 000000000..014f419f2
--- /dev/null
+++ b/schema/11/modelMap.xsd
@@ -0,0 +1,364 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!--
+ Cayenne entity map schema
+ Defines format of Cayenne DataMap XML files (*.map.xml). DataMap files
contain
+ the metadata needed for Cayenne object-relational features. Multiple
DataMaps
+ are usually combined in one shared namespace, so the elements of the
DataMap
+ may reference objects from other DataMaps.
+-->
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/modelMap"
+ xmlns:cay="http://cayenne.apache.org/schema/11/modelMap"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="11">
+ <xs:element name="data-map">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:property"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:embeddable"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:procedure"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:db-entity"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:obj-entity"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:db-relationship"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:obj-relationship"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:query"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="project-version" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="db-entity">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded"
ref="cay:db-attribute"/>
+ <xs:element minOccurs="0"
ref="cay:db-key-generator"/>
+
+ <!-- Qualifier for DB Entity -->
+ <xs:element minOccurs="0" ref="cay:qualifier"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="schema" type="xs:string"/>
+ <xs:attribute name="catalog" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="db-attribute">
+ <xs:annotation>
+ <xs:documentation>A database column.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="isMandatory" type="xs:boolean"/>
+ <xs:attribute name="isPrimaryKey" type="xs:boolean">
+ <xs:annotation>
+ <xs:documentation>If true, the value of
attribute is unique and used as a primary key identifier.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="isGenerated" type="xs:boolean"/>
+ <xs:attribute name="length" type="xs:integer"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="scale" type="xs:integer"/>
+ <xs:attribute name="type" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="obj-entity">
+ <xs:annotation>
+ <xs:documentation>A persistent Java class managed by
Cayenne.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="cay:qualifier"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:embedded-attribute"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:obj-attribute"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:attribute-override"/>
+
+ <!-- Callbacks -->
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:post-add"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:pre-persist"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:post-persist"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:pre-update"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:post-update"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:pre-remove"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:post-remove"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:post-load"/>
+
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="className" type="xs:string"/>
+ <xs:attribute name="abstract" type="xs:boolean"/>
+ <xs:attribute name="readOnly" type="xs:boolean"/>
+ <xs:attribute name="dbEntityName" type="xs:string"/>
+ <xs:attribute name="lock-type" type="xs:string"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="superClassName" type="xs:string"/>
+ <xs:attribute name="superEntityName" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="qualifier" type="xs:string"/>
+
+ <xs:element name="obj-attribute">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="db-attribute-path"
type="xs:string"/>
+ <xs:attribute name="lock" type="xs:boolean"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="type" use="required"
type="xs:string"/>
+ <xs:attribute name="lazy" type="xs:boolean"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="attribute-override">
+ <xs:complexType>
+ <xs:attribute name="db-attribute-path"
type="xs:string"/>
+ <xs:attribute name="lock" type="xs:boolean"/>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="db-relationship">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded"
ref="cay:db-attribute-pair"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="source" use="required"
type="xs:string"/>
+ <xs:attribute name="target" use="required"
type="xs:string"/>
+ <xs:attribute name="toDependentPK" type="xs:boolean"/>
+ <xs:attribute name="toMany" type="xs:boolean"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="db-attribute-pair">
+ <xs:complexType>
+ <xs:attribute name="source" use="required"
type="xs:string"/>
+ <xs:attribute name="target" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="obj-relationship">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="db-relationship-path"
use="required" type="xs:string"/>
+ <xs:attribute name="deleteRule" type="xs:string"/>
+ <xs:attribute name="lock" type="xs:boolean"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="source" use="required"
type="xs:string"/>
+ <xs:attribute name="target" use="required"
type="xs:string"/>
+ <xs:attribute name="collection-type" type="xs:string"/>
+ <xs:attribute name="map-key" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="query">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:property"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:sql"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:ejbql"/>
+ <xs:element name="qualifier" minOccurs="0"
maxOccurs="unbounded" type="xs:string"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:ordering"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="cay:prefetch"/>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="type" use="required"
type="xs:string"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="root" type="xs:string"/>
+ <xs:attribute name="root-name" type="xs:string"/>
+ <xs:attribute name="result-entity" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="ordering">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="descending"
type="xs:boolean"/>
+ <xs:attribute name="ignore-case"
type="xs:boolean"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="prefetch">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="type"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="sql">
+ <xs:annotation>
+ <xs:documentation>Defines arbitrary SQL statement. Note
that SQL statement can be customized for different SQL dialects per DbAdapter
class. If no adapter-specific statement is found, the one with no adapter label
is used by default.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="adapter-class"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="ejbql" type="xs:string"/>
+
+ <xs:element name="property">
+ <xs:annotation>
+ <xs:documentation>A generic property used by other
elements.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="value" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="embeddable">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="embeddable-attribute"
minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="name"
use="required" type="xs:string"/>
+ <xs:attribute name="type"
use="required" type="xs:string"/>
+ <xs:attribute
name="db-attribute-name" use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="className" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="embedded-attribute">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
+
ref="cay:embeddable-attribute-override"/>
+ </xs:sequence>
+ <xs:attribute name="type" use="required"
type="xs:string"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="embeddable-attribute-override">
+ <xs:complexType>
+ <xs:attribute name="db-attribute-path" use="required"
type="xs:string"/>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="procedure">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
name="procedure-parameter">
+ <xs:complexType>
+ <xs:attribute name="name"
use="required" type="xs:string"/>
+ <xs:attribute name="type"
use="required" type="xs:string"/>
+ <xs:attribute name="length"
type="xs:integer"/>
+ <xs:attribute name="direction"
use="required" type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="name" use="required"
type="xs:string"/>
+ <xs:attribute name="schema" type="xs:string"/>
+ <xs:attribute name="catalog" type="xs:string"/>
+ <xs:attribute name="returningValue" type="xs:boolean"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pre-update">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="post-persist">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="post-update">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="post-add">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pre-persist">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="post-remove">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="post-load">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="pre-remove">
+ <xs:complexType>
+ <xs:attribute name="method-name" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="db-key-generator">
+ <xs:annotation>
+ <xs:documentation>Used to install the Automatic
Sequence/Key Generation facility for db-entity. This feature is intended for
use with simple (non-compound) integral primary keys.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="db-generator-type"
type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Specifies the
Key Generation Method that will be employed
+ 'ORACLE' - use Oracle's SEQUENCE
+ 'NAMED_SEQUENCE_TABLE' - use USER designated SEQUENCE TABLE. User
specifies the name of a DBMS Table with the schema (sequence INT) which will be
used to hold sequence values (not supported yet)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0"
name="db-generator-name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>For
db-generator-type ORACLE this is the name of the ORACLE SEQUENCE to use. The
SEQUENCE is assumed to already exist in the Database.
+If this is db-generator-type NAMED_SEQUENCE_TABLE Key Generation, this
specifies the name of the SEQUENCE TABLE to use. The NAMED_SEQUENCE_TABLE is
assumed to already exist in the database.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0"
name="db-key-cache-size" type="xs:integer">
+ <xs:annotation>
+ <xs:documentation>Size of key
cache. For db-generator-type ORACLE , this value MUST match the Oracle SEQUENCE
INCREMENT value. If there is a mismatch between this value and the Oracle
SEQUENCE INCREMENT value, then there will likely be duplicate key problems.
+For db-generator-type NAMED_SEQUENCE_TABLE , this tells how many keys the
Container will fetch in a single DBMS call.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/schema/11/validation.xsd b/schema/11/validation.xsd
new file mode 100644
index 000000000..2379dc235
--- /dev/null
+++ b/schema/11/validation.xsd
@@ -0,0 +1,30 @@
+<?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
+ ~
+ ~ https://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.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xs:schema targetNamespace="http://cayenne.apache.org/schema/11/validation"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="11">
+ <xs:element name="validation">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="exclude" minOccurs="0" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
\ No newline at end of file