http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjEntityHandlerTest.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjEntityHandlerTest.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjEntityHandlerTest.xml
new file mode 100644
index 0000000..3547aa6
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjEntityHandlerTest.xml
@@ -0,0 +1,38 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~   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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<obj-entity name="ArtistCallback" 
className="org.apache.cayenne.testdo.testmap.ArtistCallback" 
dbEntityName="ARTIST_CT"
+            abstract="true" superEntityName="Artist" 
superClassName="super.class" clientClassName="client.class" 
clientSuperClassName="client.super.class"
+            lock-type="optimistic" readOnly="true" serverOnly="true">
+    <embedded-attribute 
type="org.apache.cayenne.testdo.embeddable.Embeddable1" name="embeddable1">
+        <embeddable-attribute-override db-attribute-path="test.path" 
name="test"/>
+    </embedded-attribute>
+    <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="NAME" lock="true"/>
+    <obj-attribute name="dateOfBirth" type="java.util.Date" />
+    <attribute-override name="name" type="int" 
db-attribute-path="parent.child.name"/>
+
+    <post-add method-name="postAddEntityObjEntity"/>
+    <pre-persist method-name="prePersistEntityObjEntity"/>
+    <post-persist method-name="postPersistEntityObjEntity"/>
+    <pre-update method-name="preUpdateEntityObjEntity"/>
+    <post-update method-name="postUpdateEntityObjEntity"/>
+    <pre-remove method-name="preRemoveEntityObjEntity"/>
+    <post-remove method-name="postRemoveEntityObjEntity"/>
+    <post-load method-name="postLoadEntityObjEntity"/>
+</obj-entity>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjRelationshipHandlerTest.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjRelationshipHandlerTest.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjRelationshipHandlerTest.xml
new file mode 100644
index 0000000..a6255f5
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/ObjRelationshipHandlerTest.xml
@@ -0,0 +1,20 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~   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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<obj-relationship name="artistArray" source="ArtGroup" target="Artist" 
collection-type="java.util.Map" map-key="artistName" deleteRule="Cascade" 
db-relationship-path="artistGroupArray" lock="true"/>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig1.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig1.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig1.xml
new file mode 100644
index 0000000..0171ef2
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig1.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="10">
+       
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig2.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig2.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig2.xml
new file mode 100644
index 0000000..8d841a5
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig2.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="10">
+       <map name="testConfigMap2" location="testConfigMap2.map.xml"/>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig3.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig3.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig3.xml
new file mode 100644
index 0000000..71f687a
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/cayenne-testConfig3.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domain project-version="10">
+       <map name="testConfigMap3_1" location="testConfigMap3_1.map.xml" />
+       <map name="testConfigMap3_2" location="testConfigMap3_2.map.xml" />
+
+       <node name="testConfigNode3" adapter="org.example.test.Adapter"
+               factory="org.example.test.DataSourceFactory" 
schema-update-strategy="org.example.test.SchemaUpdateStartegy">
+               <map-ref name="testConfigMap3_2" />
+               <data-source>
+                       <connectionPool min="1" max="1" />
+                       <login />
+               </data-source>
+       </node>
+</domain>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap2.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap2.map.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap2.map.xml
new file mode 100644
index 0000000..9adb762
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap2.map.xml
@@ -0,0 +1,26 @@
+<?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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+       project-version="10">
+
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_1.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_1.map.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_1.map.xml
new file mode 100644
index 0000000..9adb762
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_1.map.xml
@@ -0,0 +1,26 @@
+<?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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+       project-version="10">
+
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_2.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_2.map.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_2.map.xml
new file mode 100644
index 0000000..9adb762
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap3_2.map.xml
@@ -0,0 +1,26 @@
+<?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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+       project-version="10">
+
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap4.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap4.map.xml
 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap4.map.xml
new file mode 100644
index 0000000..71c2d15
--- /dev/null
+++ 
b/cayenne-server/src/test/resources/org/apache/cayenne/configuration/xml/testConfigMap4.map.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.testmap"/>
+       <property name="defaultCatalog" value="TEST_CATALOG"/>
+       <property name="defaultSuperclass" 
value="org.apache.cayenne.CayenneDataObject"/>
+       <property name="clientSupported" value="true"/>
+       <property name="defaultClientPackage" value="test.client"/>
+       <property name="defaultClientSuperclass" 
value="org.apache.cayenne.PersistentObject"/>
+       <embeddable className="org.apache.cayenne.testdo.Embeddable">
+               <embeddable-attribute name="test" type="int" 
db-attribute-name="TEST"/>
+       </embeddable>
+       <procedure name="cayenne_tst_out_proc" returningValue="true">
+               <procedure-parameter name="in_param" type="INTEGER" 
direction="in"/>
+               <procedure-parameter name="out_param" type="INTEGER" 
direction="out"/>
+       </procedure>
+       <procedure name="cayenne_tst_select_proc">
+               <procedure-parameter name="aName" type="VARCHAR" length="254" 
direction="in"/>
+               <procedure-parameter name="paintingPrice" type="INTEGER" 
direction="in"/>
+       </procedure>
+       <procedure name="cayenne_tst_upd_proc">
+               <procedure-parameter name="paintingPrice" type="INTEGER" 
direction="in"/>
+       </procedure>
+       <procedure name="cayenne_tst_upd_proc2"/>
+       <db-entity name="ARTGROUP">
+               <db-attribute name="GROUP_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" isMandatory="true" 
length="100"/>
+               <db-attribute name="PARENT_GROUP_ID" type="INTEGER"/>
+               <qualifier><![CDATA[name = "test"]]></qualifier>
+       </db-entity>
+       <db-entity name="ARTIST">
+               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" 
length="254"/>
+               <db-attribute name="DATE_OF_BIRTH" type="DATE"/>
+       </db-entity>
+       <db-entity name="ARTIST_CT">
+               <db-attribute name="ARTIST_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" 
length="254"/>
+               <db-attribute name="DATE_OF_BIRTH" type="DATE"/>
+       </db-entity>
+       <db-entity name="ARTIST_EXHIBIT">
+               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="EXHIBIT_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="ARTIST_GROUP">
+               <db-attribute name="ARTIST_ID" type="BIGINT" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="GROUP_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="EXHIBIT">
+               <db-attribute name="CLOSING_DATE" type="TIMESTAMP" 
isMandatory="true"/>
+               <db-attribute name="EXHIBIT_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="GALLERY_ID" type="INTEGER" 
isMandatory="true"/>
+               <db-attribute name="OPENING_DATE" type="TIMESTAMP" 
isMandatory="true"/>
+       </db-entity>
+       <db-entity name="GALLERY">
+               <db-attribute name="GALLERY_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="GALLERY_NAME" type="VARCHAR" 
isMandatory="true" length="100"/>
+               <db-key-generator>
+                       <db-generator-type>ORACLE</db-generator-type>
+                       <db-generator-name>gallery_seq</db-generator-name>
+                       <db-key-cache-size>20</db-key-cache-size>
+               </db-key-generator>
+       </db-entity>
+       <db-entity name="GENERATED_COLUMN">
+               <db-attribute name="GENERATED_COLUMN" type="INTEGER" 
isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="250"/>
+       </db-entity>
+       <db-entity name="NULL_TEST">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isGenerated="true" isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="100"/>
+       </db-entity>
+       <db-entity name="PAINTING">
+               <db-attribute name="ARTIST_ID" type="BIGINT"/>
+               <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" 
scale="2"/>
+               <db-attribute name="GALLERY_ID" type="INTEGER"/>
+               <db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" 
length="255"/>
+               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="PAINTING_TITLE" type="VARCHAR" 
isMandatory="true" length="255"/>
+       </db-entity>
+       <db-entity name="PAINTING1">
+               <db-attribute name="ARTIST_ID" type="BIGINT"/>
+               <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" 
scale="2"/>
+               <db-attribute name="GALLERY_ID" type="INTEGER"/>
+               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="PAINTING_TITLE" type="VARCHAR" 
isMandatory="true" length="255"/>
+       </db-entity>
+       <db-entity name="PAINTING_INFO">
+               <db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/>
+               <db-attribute name="PAINTING_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/>
+       </db-entity>
+       <obj-entity name="ArtGroup" 
className="org.apache.cayenne.testdo.testmap.ArtGroup" dbEntityName="ARTGROUP">
+               <embedded-attribute name="test" 
type="org.apache.cayenne.testdo.Embeddable">
+                       <embeddable-attribute-override name="test" 
db-attribute-path="NAME"/>
+               </embedded-attribute>
+       </obj-entity>
+       <obj-entity name="Artist" 
className="org.apache.cayenne.testdo.testmap.Artist" dbEntityName="ARTIST">
+               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="ARTIST_NAME"/>
+               <obj-attribute name="dateOfBirth" type="java.util.Date" 
db-attribute-path="DATE_OF_BIRTH"/>
+       </obj-entity>
+       <obj-entity name="ArtistCallback" 
className="org.apache.cayenne.testdo.testmap.ArtistCallback" 
lock-type="optimistic" dbEntityName="ARTIST_CT">
+               <obj-attribute name="artistName" type="java.lang.String"/>
+               <obj-attribute name="dateOfBirth" type="java.util.Date"/>
+               <post-add method-name="prePersistEntityObjEntity"/>
+               <post-persist method-name="postPersistEntityObjEntity"/>
+               <pre-update method-name="preUpdateEntityObjEntity"/>
+               <post-update method-name="postUpdateEntityObjEntity"/>
+               <pre-remove method-name="preRemoveEntityObjEntity"/>
+               <post-remove method-name="postRemoveEntityObjEntity"/>
+               <post-load method-name="postLoadEntityObjEntity"/>
+       </obj-entity>
+       <obj-entity name="ArtistExhibit" 
className="org.apache.cayenne.testdo.testmap.ArtistExhibit" 
dbEntityName="ARTIST_EXHIBIT"/>
+       <obj-entity name="CompoundPainting" 
className="org.apache.cayenne.testdo.testmap.CompoundPainting" 
dbEntityName="PAINTING">
+               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="toArtist.ARTIST_NAME"/>
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="galleryName" type="java.lang.String" 
db-attribute-path="toGallery.GALLERY_NAME"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
+       </obj-entity>
+       <obj-entity name="CompoundPaintingLongNames" 
className="org.apache.cayenne.testdo.testmap.CompoundPaintingLongNames" 
clientClassName="test.client.CompoundPaintingLongNames" dbEntityName="PAINTING" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject">
+               <obj-attribute name="artistLongName" type="java.lang.String" 
db-attribute-path="toArtist.ARTIST_NAME"/>
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="galleryLongName" type="java.lang.String" 
db-attribute-path="toGallery.GALLERY_NAME"/>
+               <obj-attribute name="paintingDescription" 
type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+               <obj-attribute name="textLongReview" type="java.lang.String" 
db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
+       </obj-entity>
+       <obj-entity name="Exhibit" 
className="org.apache.cayenne.testdo.testmap.Exhibit" dbEntityName="EXHIBIT">
+               <obj-attribute name="closingDate" type="java.util.Date" 
db-attribute-path="CLOSING_DATE"/>
+               <obj-attribute name="openingDate" type="java.util.Date" 
db-attribute-path="OPENING_DATE"/>
+       </obj-entity>
+       <obj-entity name="Gallery" 
className="org.apache.cayenne.testdo.testmap.Gallery" dbEntityName="GALLERY">
+               <qualifier><![CDATA[galleryName = "test"]]></qualifier>
+               <obj-attribute name="galleryName" type="java.lang.String" 
db-attribute-path="GALLERY_NAME"/>
+       </obj-entity>
+       <obj-entity name="MeaningfulGeneratedColumnTestEntity" 
className="org.apache.cayenne.testdo.testmap.MeaningfulGeneratedColumnTestEntity"
 dbEntityName="GENERATED_COLUMN">
+               <obj-attribute name="generatedColumn" type="java.lang.Integer" 
db-attribute-path="GENERATED_COLUMN" />
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <obj-entity name="NullTestEntity" 
className="org.apache.cayenne.testdo.testmap.NullTestEntity" 
dbEntityName="NULL_TEST">
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <obj-entity name="Painting" 
className="org.apache.cayenne.testdo.testmap.Painting" dbEntityName="PAINTING" 
superClassName="org.apache.cayenne.testdo.testmap.ArtDataObject">
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="paintingDescription" 
type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+       </obj-entity>
+       <obj-entity name="Painting1" 
className="org.apache.cayenne.testdo.testmap.Painting1" 
dbEntityName="PAINTING1">
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+       </obj-entity>
+       <obj-entity name="PaintingInfo" 
className="org.apache.cayenne.testdo.testmap.PaintingInfo" 
dbEntityName="PAINTING_INFO">
+               <obj-attribute name="imageBlob" type="byte[]" 
db-attribute-path="IMAGE_BLOB"/>
+               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="TEXT_REVIEW"/>
+       </obj-entity>
+       <obj-entity name="ROArtist" 
className="org.apache.cayenne.testdo.testmap.ROArtist" readOnly="true" 
dbEntityName="ARTIST">
+               <obj-attribute name="artistName" type="java.lang.String" 
db-attribute-path="ARTIST_NAME"/>
+               <obj-attribute name="dateOfBirth" type="java.sql.Date" 
db-attribute-path="DATE_OF_BIRTH"/>
+       </obj-entity>
+       <obj-entity name="ROPainting" 
className="org.apache.cayenne.testdo.testmap.ROPainting" readOnly="true" 
dbEntityName="PAINTING">
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+       </obj-entity>
+       <obj-entity name="RWCompoundPainting" 
className="org.apache.cayenne.testdo.testmap.RWCompoundPainting" 
dbEntityName="PAINTING">
+               <obj-attribute name="estimatedPrice" 
type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+               <obj-attribute name="paintingTitle" type="java.lang.String" 
db-attribute-path="PAINTING_TITLE"/>
+               <obj-attribute name="textReview" type="java.lang.String" 
db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
+       </obj-entity>
+       <obj-entity name="SubPainting" superEntityName="Painting" 
abstract="true" serverOnly="true" 
className="org.apache.cayenne.testdo.testmap.SubPainting" 
lock-type="optimistic">
+               <attribute-override name="paintingTitle" 
db-attribute-path="PAINTING_TITLE"/>
+       </obj-entity>
+       <db-relationship name="artistGroupArray" source="ARTGROUP" 
target="ARTIST_GROUP" toMany="true">
+               <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
+       </db-relationship>
+       <db-relationship name="toChildGroups" source="ARTGROUP" 
target="ARTGROUP" toMany="true">
+               <db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/>
+       </db-relationship>
+       <db-relationship name="toParentGroup" source="ARTGROUP" 
target="ARTGROUP">
+               <db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/>
+       </db-relationship>
+       <db-relationship name="artistExhibitArray" source="ARTIST" 
target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="artistGroupArray" source="ARTIST" 
target="ARTIST_GROUP" toMany="true">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="paintingArray" source="ARTIST" target="PAINTING" 
toMany="true">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="toArtist" source="ARTIST_EXHIBIT" 
target="ARTIST">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="toExhibit" source="ARTIST_EXHIBIT" 
target="EXHIBIT">
+               <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
+       </db-relationship>
+       <db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP">
+               <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
+       </db-relationship>
+       <db-relationship name="artistExhibitArray" source="EXHIBIT" 
target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
+               <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
+       </db-relationship>
+       <db-relationship name="toGallery" source="EXHIBIT" target="GALLERY">
+               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+       </db-relationship>
+       <db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" 
toMany="true">
+               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+       </db-relationship>
+       <db-relationship name="paintingArray" source="GALLERY" 
target="PAINTING" toMany="true">
+               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+       </db-relationship>
+       <db-relationship name="toArtist" source="PAINTING" target="ARTIST">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="toGallery" source="PAINTING" target="GALLERY">
+               <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+       </db-relationship>
+       <db-relationship name="toPaintingInfo" source="PAINTING" 
target="PAINTING_INFO" toDependentPK="true">
+               <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
+       </db-relationship>
+       <db-relationship name="toArtist" source="PAINTING1" target="ARTIST">
+               <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+       </db-relationship>
+       <db-relationship name="painting" source="PAINTING_INFO" 
target="PAINTING">
+               <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
+       </db-relationship>
+       <obj-relationship name="artistArray" source="ArtGroup" target="Artist" 
collection-type="java.util.Map" lock="true" deleteRule="Cascade" 
db-relationship-path="artistGroupArray.toArtist">
+               <info:property 
xmlns:info="http://cayenne.apache.org/schema/10/info"; name="comment" 
value="artistGroupArray.toArtist"/>
+       </obj-relationship>
+       <obj-relationship name="childGroupsArray" source="ArtGroup" 
target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/>
+       <obj-relationship name="toParentGroup" source="ArtGroup" 
target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/>
+       <obj-relationship name="artistExhibitArray" source="Artist" 
target="ArtistExhibit" deleteRule="Cascade" 
db-relationship-path="artistExhibitArray"/>
+       <obj-relationship name="groupArray" source="Artist" target="ArtGroup" 
deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/>
+       <obj-relationship name="paintingArray" source="Artist" 
target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/>
+       <obj-relationship name="toArtist" source="ArtistExhibit" 
target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="toExhibit" source="ArtistExhibit" 
target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/>
+       <obj-relationship name="toArtist" source="CompoundPainting" 
target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="toGallery" source="CompoundPainting" 
target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
+       <obj-relationship name="toPaintingInfo" source="CompoundPainting" 
target="PaintingInfo" deleteRule="Cascade" 
db-relationship-path="toPaintingInfo"/>
+       <obj-relationship name="toArtist" source="CompoundPaintingLongNames" 
target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="toArtist1" source="CompoundPaintingLongNames" 
target="ROArtist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="toGallery" source="CompoundPaintingLongNames" 
target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
+       <obj-relationship name="toPaintingInfo" 
source="CompoundPaintingLongNames" target="PaintingInfo" deleteRule="Nullify" 
db-relationship-path="toPaintingInfo"/>
+       <obj-relationship name="artistExhibitArray" source="Exhibit" 
target="ArtistExhibit" deleteRule="Cascade" 
db-relationship-path="artistExhibitArray"/>
+       <obj-relationship name="toGallery" source="Exhibit" target="Gallery" 
deleteRule="Nullify" db-relationship-path="toGallery"/>
+       <obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" 
deleteRule="Cascade" db-relationship-path="exhibitArray"/>
+       <obj-relationship name="paintingArray" source="Gallery" 
target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
+       <obj-relationship name="toArtist" source="Painting" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="toGallery" source="Painting" target="Gallery" 
deleteRule="Nullify" db-relationship-path="toGallery"/>
+       <obj-relationship name="toPaintingInfo" source="Painting" 
target="PaintingInfo" deleteRule="Cascade" 
db-relationship-path="toPaintingInfo"/>
+       <obj-relationship name="toArtist" source="Painting1" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <obj-relationship name="painting" source="PaintingInfo" 
target="Painting" deleteRule="Nullify" db-relationship-path="painting"/>
+       <obj-relationship name="paintingArray" source="ROArtist" 
target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
+       <obj-relationship name="toArtist" source="ROPainting" target="Artist" 
deleteRule="Nullify" db-relationship-path="toArtist"/>
+       <query name="EjbqlQueryTest" type="EJBQLQuery">
+               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
+               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
+               <ejbql><![CDATA[select a from Artist a]]></ejbql>
+       </query>
+       <query name="NonSelectingQuery" type="SQLTemplate" root="data-map" 
root-name="testConfigMap4">
+               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
+               <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, 
PAINTING_TITLE, ESTIMATED_PRICE)
+VALUES (512, 'No Painting Like This', 12.5)]]></sql>
+               <sql 
adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO 
PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) VALUES (512, 'No 
Painting Like This', 12.5)]]></sql>
+       </query>
+       <query name="ObjectQuery" type="SelectQuery" root="obj-entity" 
root-name="Painting">
+               <qualifier><![CDATA[toArtist = $artist]]></qualifier>
+               <ordering><![CDATA[paintingTitle]]></ordering>
+       </query>
+       <query name="ParameterizedNonSelectingQuery" type="SQLTemplate" 
root="data-map" root-name="testConfigMap4">
+               <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, 
PAINTING_TITLE, ESTIMATED_PRICE)
+VALUES (#bind($id), #bind($title), #bind($price))]]></sql>
+               <sql 
adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO 
PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) values (#bind($id), 
#bind($title), #bind($price))]]></sql>
+       </query>
+       <query name="ParameterizedQueryWithLocalCache" type="SelectQuery" 
root="obj-entity" root-name="Artist">
+               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="LOCAL_CACHE"/>
+               <qualifier><![CDATA[artistName like $name]]></qualifier>
+       </query>
+       <query name="ParameterizedQueryWithSharedCache" type="SelectQuery" 
root="obj-entity" root-name="Artist">
+               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
+               <qualifier><![CDATA[artistName like $name]]></qualifier>
+       </query>
+       <query name="ProcedureQuery" type="ProcedureQuery" root="procedure" 
root-name="cayenne_tst_select_proc" result-entity="Artist"/>
+       <query name="QueryWithLocalCache" type="SelectQuery" root="obj-entity" 
root-name="Artist">
+               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="LOCAL_CACHE"/>
+       </query>
+       <query name="QueryWithOrdering" type="SelectQuery" root="obj-entity" 
root-name="Artist">
+               <ordering descending="true" 
ignore-case="true"><![CDATA[artistName]]></ordering>
+               <ordering><![CDATA[dateOfBirth]]></ordering>
+       </query>
+       <query name="QueryWithPrefetch" type="SelectQuery" root="obj-entity" 
root-name="Gallery">
+               <prefetch>paintingArray</prefetch>
+       </query>
+       <query name="QueryWithQualifier" type="SelectQuery" root="obj-entity" 
root-name="Artist">
+               <qualifier><![CDATA[artistName = $param1]]></qualifier>
+       </query>
+       <query name="QueryWithSharedCache" type="SelectQuery" root="obj-entity" 
root-name="Artist">
+               <property name="cayenne.GenericSelectQuery.cacheStrategy" 
value="SHARED_CACHE"/>
+       </query>
+       <query name="SelectTestLower" type="SQLTemplate" root="data-map" 
root-name="testConfigMap4">
+               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="LOWER"/>
+               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
+               <sql><![CDATA[select * from ARTIST]]></sql>
+       </query>
+       <query name="SelectTestUpper" type="SQLTemplate" root="data-map" 
root-name="testConfigMap4">
+               <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
+               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
+               <sql><![CDATA[select * from ARTIST]]></sql>
+       </query>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/people.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/people.map.xml 
b/cayenne-server/src/test/resources/people.map.xml
index c62eeed..c3b7d97 100644
--- a/cayenne-server/src/test/resources/people.map.xml
+++ b/cayenne-server/src/test/resources/people.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.inheritance_people"/>
        <db-entity name="ADDRESS">
                <db-attribute name="ADDRESS_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
@@ -61,7 +61,7 @@
        <obj-entity name="PersonNotes" 
className="org.apache.cayenne.testdo.inheritance_people.PersonNotes" 
dbEntityName="PERSON_NOTES">
                <obj-attribute name="notes" type="java.lang.String" 
db-attribute-path="NOTES"/>
        </obj-entity>
-       <db-relationship name="toPerson" source="ADDRESS" target="PERSON" 
toMany="false">
+       <db-relationship name="toPerson" source="ADDRESS" target="PERSON">
                <db-attribute-pair source="PERSON_ID" target="PERSON_ID"/>
        </db-relationship>
        <db-relationship name="representatives" source="CLIENT_COMPANY" 
target="PERSON" toMany="true">
@@ -70,7 +70,7 @@
        <db-relationship name="employees" source="DEPARTMENT" target="PERSON" 
toMany="true">
                <db-attribute-pair source="DEPARTMENT_ID" 
target="DEPARTMENT_ID"/>
        </db-relationship>
-       <db-relationship name="toManager" source="DEPARTMENT" target="PERSON" 
toMany="false">
+       <db-relationship name="toManager" source="DEPARTMENT" target="PERSON">
                <db-attribute-pair source="MANAGER_ID" target="PERSON_ID"/>
        </db-relationship>
        <db-relationship name="employeeAddresses" source="PERSON" 
target="ADDRESS" toMany="true">
@@ -82,13 +82,13 @@
        <db-relationship name="notes" source="PERSON" target="PERSON_NOTES" 
toMany="true">
                <db-attribute-pair source="PERSON_ID" target="PERSON_ID"/>
        </db-relationship>
-       <db-relationship name="toClientCompany" source="PERSON" 
target="CLIENT_COMPANY" toMany="false">
+       <db-relationship name="toClientCompany" source="PERSON" 
target="CLIENT_COMPANY">
                <db-attribute-pair source="CLIENT_COMPANY_ID" 
target="CLIENT_COMPANY_ID"/>
        </db-relationship>
-       <db-relationship name="toDepartment" source="PERSON" 
target="DEPARTMENT" toMany="false">
+       <db-relationship name="toDepartment" source="PERSON" 
target="DEPARTMENT">
                <db-attribute-pair source="DEPARTMENT_ID" 
target="DEPARTMENT_ID"/>
        </db-relationship>
-       <db-relationship name="person" source="PERSON_NOTES" target="PERSON" 
toMany="false">
+       <db-relationship name="person" source="PERSON_NOTES" target="PERSON">
                <db-attribute-pair source="PERSON_ID" target="PERSON_ID"/>
        </db-relationship>
        <obj-relationship name="notes" source="AbstractPerson" 
target="PersonNotes" deleteRule="Nullify" db-relationship-path="notes"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/primitive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/primitive.map.xml 
b/cayenne-server/src/test/resources/primitive.map.xml
index d5e83dc..8173637 100644
--- a/cayenne-server/src/test/resources/primitive.map.xml
+++ b/cayenne-server/src/test/resources/primitive.map.xml
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.primitive"/>
-    <property name="defaultSuperclass" 
value="org.apache.cayenne.CayenneDataObject"/>
-    <property name="clientSupported" value="true"/>
-    <property name="defaultClientPackage" value="test.client"/>
-    <property name="defaultClientSuperclass" 
value="org.apache.cayenne.PersistentObject"/>
-    <db-entity name="PRIMITIVES_TEST">
-        <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="INT_COLUMN" type="INTEGER"/>
-    </db-entity>
-    <obj-entity name="PrimitivesTestEntity" 
className="org.apache.cayenne.testdo.primitive.PrimitivesTestEntity" 
dbEntityName="PRIMITIVES_TEST">
-        <obj-attribute name="booleanColumn" type="boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
-        <obj-attribute name="intColumn" type="int" 
db-attribute-path="INT_COLUMN"/>
-    </obj-entity>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.primitive"/>
+       <property name="defaultSuperclass" 
value="org.apache.cayenne.CayenneDataObject"/>
+       <property name="clientSupported" value="true"/>
+       <property name="defaultClientPackage" value="test.client"/>
+       <property name="defaultClientSuperclass" 
value="org.apache.cayenne.PersistentObject"/>
+       <db-entity name="PRIMITIVES_TEST">
+               <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="INT_COLUMN" type="INTEGER"/>
+       </db-entity>
+       <obj-entity name="PrimitivesTestEntity" 
className="org.apache.cayenne.testdo.primitive.PrimitivesTestEntity" 
dbEntityName="PRIMITIVES_TEST">
+               <obj-attribute name="booleanColumn" type="boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
+               <obj-attribute name="intColumn" type="int" 
db-attribute-path="INT_COLUMN"/>
+       </obj-entity>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/qualified.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/qualified.map.xml 
b/cayenne-server/src/test/resources/qualified.map.xml
index 0a30f4a..fb854cd 100644
--- a/cayenne-server/src/test/resources/qualified.map.xml
+++ b/cayenne-server/src/test/resources/qualified.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.qualified"/>
        <property name="quoteSqlIdentifiers" value="true"/>
        <db-entity name="TEST_QUALIFIED1">
@@ -29,7 +29,7 @@
        <db-relationship name="qualified2s" source="TEST_QUALIFIED1" 
target="TEST_QUALIFIED2" toMany="true">
                <db-attribute-pair source="ID" target="QUALIFIED1_ID"/>
        </db-relationship>
-       <db-relationship name="qualified1" source="TEST_QUALIFIED2" 
target="TEST_QUALIFIED1" toMany="false">
+       <db-relationship name="qualified1" source="TEST_QUALIFIED2" 
target="TEST_QUALIFIED1">
                <db-attribute-pair source="QUALIFIED1_ID" target="ID"/>
        </db-relationship>
        <obj-relationship name="qualified2s" source="Qualified1" 
target="Qualified2" db-relationship-path="qualified2s"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/quoted-identifiers.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/quoted-identifiers.map.xml 
b/cayenne-server/src/test/resources/quoted-identifiers.map.xml
index 16d6713..13e638b 100644
--- a/cayenne-server/src/test/resources/quoted-identifiers.map.xml
+++ b/cayenne-server/src/test/resources/quoted-identifiers.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.quotemap"/>
        <property name="quoteSqlIdentifiers" value="true"/>
        <db-entity name="QUOTED_ADDRESS">
@@ -30,10 +30,10 @@
                <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
                <obj-attribute name="salary" type="java.lang.Integer" 
db-attribute-path="salary"/>
        </obj-entity>
-       <db-relationship name="personRel" source="QUOTED_ADDRESS" target="quote 
Person" toMany="false">
+       <db-relationship name="personRel" source="QUOTED_ADDRESS" target="quote 
Person">
                <db-attribute-pair source="ADDRESS ID" target="address_id"/>
        </db-relationship>
-       <db-relationship name="addressRel" source="quote Person" 
target="QUOTED_ADDRESS" toMany="false">
+       <db-relationship name="addressRel" source="quote Person" 
target="QUOTED_ADDRESS">
                <db-attribute-pair source="address_id" target="ADDRESS ID"/>
        </db-relationship>
        <obj-relationship name="person_Rel" source="QuoteAdress" 
target="Quote_Person" deleteRule="Nullify" db-relationship-path="personRel"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/reflexive.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/reflexive.map.xml 
b/cayenne-server/src/test/resources/reflexive.map.xml
index fc8ed64..043f31d 100644
--- a/cayenne-server/src/test/resources/reflexive.map.xml
+++ b/cayenne-server/src/test/resources/reflexive.map.xml
@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.reflexive"/>
-    <property name="clientSupported" value="true"/>
-    <property name="defaultClientPackage" 
value="org.apache.cayenne.testdo.reflexive"/>
-    <db-entity name="REFLEXIVE">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="NAME" type="VARCHAR" isMandatory="true" 
length="200"/>
-        <db-attribute name="PARENT_ID" type="INTEGER"/>
-    </db-entity>
-    <obj-entity name="Reflexive" 
className="org.apache.cayenne.testdo.reflexive.Reflexive" 
clientClassName="org.apache.cayenne.testdo.reflexive.ClientReflexive" 
dbEntityName="REFLEXIVE">
-        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-    </obj-entity>
-    <db-relationship name="children" source="REFLEXIVE" target="REFLEXIVE" 
toMany="true">
-        <db-attribute-pair source="ID" target="PARENT_ID"/>
-    </db-relationship>
-    <db-relationship name="toParent" source="REFLEXIVE" target="REFLEXIVE" 
toMany="false">
-        <db-attribute-pair source="PARENT_ID" target="ID"/>
-    </db-relationship>
-    <obj-relationship name="children" source="Reflexive" target="Reflexive" 
db-relationship-path="children"/>
-    <obj-relationship name="toParent" source="Reflexive" target="Reflexive" 
db-relationship-path="toParent"/>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.reflexive"/>
+       <property name="clientSupported" value="true"/>
+       <property name="defaultClientPackage" 
value="org.apache.cayenne.testdo.reflexive"/>
+       <db-entity name="REFLEXIVE">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" isMandatory="true" 
length="200"/>
+               <db-attribute name="PARENT_ID" type="INTEGER"/>
+       </db-entity>
+       <obj-entity name="Reflexive" 
className="org.apache.cayenne.testdo.reflexive.Reflexive" 
clientClassName="org.apache.cayenne.testdo.reflexive.ClientReflexive" 
dbEntityName="REFLEXIVE">
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <db-relationship name="children" source="REFLEXIVE" target="REFLEXIVE" 
toMany="true">
+               <db-attribute-pair source="ID" target="PARENT_ID"/>
+       </db-relationship>
+       <db-relationship name="toParent" source="REFLEXIVE" target="REFLEXIVE">
+               <db-attribute-pair source="PARENT_ID" target="ID"/>
+       </db-relationship>
+       <obj-relationship name="children" source="Reflexive" target="Reflexive" 
db-relationship-path="children"/>
+       <obj-relationship name="toParent" source="Reflexive" target="Reflexive" 
db-relationship-path="toParent"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-activity.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-activity.map.xml 
b/cayenne-server/src/test/resources/relationships-activity.map.xml
index 59e72f3..d8c283d 100644
--- a/cayenne-server/src/test/resources/relationships-activity.map.xml
+++ b/cayenne-server/src/test/resources/relationships-activity.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_activity"/>
        <db-entity name="X_ACTIVITY">
                <db-attribute name="ACTIVITY_ID" type="VARCHAR" 
isPrimaryKey="true" isMandatory="true" length="50"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-child-master.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/relationships-child-master.map.xml 
b/cayenne-server/src/test/resources/relationships-child-master.map.xml
index a803e72..530ec52 100644
--- a/cayenne-server/src/test/resources/relationships-child-master.map.xml
+++ b/cayenne-server/src/test/resources/relationships-child-master.map.xml
@@ -1,29 +1,27 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_child_master"/>
-    <db-entity name="CHILD">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="MASTER_ID" type="INTEGER"/>
-    </db-entity>
-    <db-entity name="MASTER">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="NAME" type="VARCHAR" length="100"/>
-    </db-entity>
-    <obj-entity name="Child" 
className="org.apache.cayenne.testdo.relationships_child_master.Child" 
dbEntityName="CHILD">
-    </obj-entity>
-    <obj-entity name="Master" 
className="org.apache.cayenne.testdo.relationships_child_master.Master" 
dbEntityName="MASTER">
-        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-    </obj-entity>
-    <db-relationship name="master" source="CHILD" target="MASTER" 
toMany="false">
-        <db-attribute-pair source="MASTER_ID" target="ID"/>
-    </db-relationship>
-    <db-relationship name="children" source="MASTER" target="CHILD" 
toMany="true">
-        <db-attribute-pair source="ID" target="MASTER_ID"/>
-    </db-relationship>
-    <obj-relationship name="master" source="Child" target="Master" 
deleteRule="Nullify" db-relationship-path="master"/>
-    <obj-relationship name="children" source="Master" target="Child" 
deleteRule="Deny" db-relationship-path="children"/>
-
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_child_master"/>
+       <db-entity name="CHILD">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="MASTER_ID" type="INTEGER"/>
+       </db-entity>
+       <db-entity name="MASTER">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="100"/>
+       </db-entity>
+       <obj-entity name="Child" 
className="org.apache.cayenne.testdo.relationships_child_master.Child" 
dbEntityName="CHILD"/>
+       <obj-entity name="Master" 
className="org.apache.cayenne.testdo.relationships_child_master.Master" 
dbEntityName="MASTER">
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <db-relationship name="master" source="CHILD" target="MASTER">
+               <db-attribute-pair source="MASTER_ID" target="ID"/>
+       </db-relationship>
+       <db-relationship name="children" source="MASTER" target="CHILD" 
toMany="true">
+               <db-attribute-pair source="ID" target="MASTER_ID"/>
+       </db-relationship>
+       <obj-relationship name="master" source="Child" target="Master" 
deleteRule="Nullify" db-relationship-path="master"/>
+       <obj-relationship name="children" source="Master" target="Child" 
deleteRule="Deny" db-relationship-path="children"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-clob.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-clob.map.xml 
b/cayenne-server/src/test/resources/relationships-clob.map.xml
index 550b1a5..bdafd09 100644
--- a/cayenne-server/src/test/resources/relationships-clob.map.xml
+++ b/cayenne-server/src/test/resources/relationships-clob.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_clob"/>
        <db-entity name="CLOB_DETAIL">
                <db-attribute name="CLOB_DETAIL_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
@@ -21,7 +21,7 @@
                <obj-attribute name="clobColumn" type="java.lang.String" 
db-attribute-path="CLOB_COLUMN"/>
                <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
        </obj-entity>
-       <db-relationship name="master" source="CLOB_DETAIL" 
target="CLOB_MASTER" toMany="false">
+       <db-relationship name="master" source="CLOB_DETAIL" 
target="CLOB_MASTER">
                <db-attribute-pair source="CLOB_MASTER_ID" 
target="CLOB_MASTER_ID"/>
        </db-relationship>
        <db-relationship name="details" source="CLOB_MASTER" 
target="CLOB_DETAIL" toMany="true">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml 
b/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
index 29a96cb..6876cea 100644
--- a/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
+++ b/cayenne-server/src/test/resources/relationships-collection-to-many.map.xml
@@ -1,26 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_collection_to_many"/>
-    <db-entity name="COLLECTION_TO_MANY">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="COLLECTION_TO_MANY_TARGET">
-        <db-attribute name="COLLECTION_TO_MANY_ID" type="INTEGER"/>
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <obj-entity name="CollectionToMany" 
className="org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToMany"
 dbEntityName="COLLECTION_TO_MANY">
-    </obj-entity>
-    <obj-entity name="CollectionToManyTarget" 
className="org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToManyTarget"
 dbEntityName="COLLECTION_TO_MANY_TARGET">
-    </obj-entity>
-    <db-relationship name="targets" source="COLLECTION_TO_MANY" 
target="COLLECTION_TO_MANY_TARGET" toMany="true">
-        <db-attribute-pair source="ID" target="COLLECTION_TO_MANY_ID"/>
-    </db-relationship>
-    <db-relationship name="collectionToMany" 
source="COLLECTION_TO_MANY_TARGET" target="COLLECTION_TO_MANY" toMany="false">
-        <db-attribute-pair source="COLLECTION_TO_MANY_ID" target="ID"/>
-    </db-relationship>
-    <obj-relationship name="targets" source="CollectionToMany" 
target="CollectionToManyTarget" collection-type="java.util.Collection" 
db-relationship-path="targets"/>
-    <obj-relationship name="collectionToMany" source="CollectionToManyTarget" 
target="CollectionToMany" db-relationship-path="collectionToMany"/>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_collection_to_many"/>
+       <db-entity name="COLLECTION_TO_MANY">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+       </db-entity>
+       <db-entity name="COLLECTION_TO_MANY_TARGET">
+               <db-attribute name="COLLECTION_TO_MANY_ID" type="INTEGER"/>
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+       </db-entity>
+       <obj-entity name="CollectionToMany" 
className="org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToMany"
 dbEntityName="COLLECTION_TO_MANY"/>
+       <obj-entity name="CollectionToManyTarget" 
className="org.apache.cayenne.testdo.relationships_collection_to_many.CollectionToManyTarget"
 dbEntityName="COLLECTION_TO_MANY_TARGET"/>
+       <db-relationship name="targets" source="COLLECTION_TO_MANY" 
target="COLLECTION_TO_MANY_TARGET" toMany="true">
+               <db-attribute-pair source="ID" target="COLLECTION_TO_MANY_ID"/>
+       </db-relationship>
+       <db-relationship name="collectionToMany" 
source="COLLECTION_TO_MANY_TARGET" target="COLLECTION_TO_MANY">
+               <db-attribute-pair source="COLLECTION_TO_MANY_ID" target="ID"/>
+       </db-relationship>
+       <obj-relationship name="targets" source="CollectionToMany" 
target="CollectionToManyTarget" collection-type="java.util.Collection" 
db-relationship-path="targets"/>
+       <obj-relationship name="collectionToMany" 
source="CollectionToManyTarget" target="CollectionToMany" 
db-relationship-path="collectionToMany"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/relationships-delete-rules.map.xml 
b/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
index b875d45..5a7cd1a 100644
--- a/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
+++ b/cayenne-server/src/test/resources/relationships-delete-rules.map.xml
@@ -1,71 +1,66 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_delete_rules"/>
-    <db-entity name="DELETE_RULE_FLATA">
-        <db-attribute name="FLATA_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="DELETE_RULE_FLATB">
-        <db-attribute name="FLATB_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="DELETE_RULE_JOIN">
-        <db-attribute name="FLATA_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="FLATB_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="DELETE_RULE_TEST1">
-        <db-attribute name="DEL_RULE_TEST1_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-        <db-attribute name="TEST2_ID" type="INTEGER" isMandatory="true"/>
-    </db-entity>
-    <db-entity name="DELETE_RULE_TEST2">
-        <db-attribute name="DEL_RULE_TEST2_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-    </db-entity>
-    <db-entity name="DELETE_RULE_TEST3">
-        <db-attribute name="DELETE_RULE_TEST_3_FK" type="INTEGER"/>
-        <db-attribute name="DELETE_RULE_TEST_3_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
-    </db-entity>
-    <obj-entity name="DeleteRuleFlatA" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatA"
 dbEntityName="DELETE_RULE_FLATA">
-    </obj-entity>
-    <obj-entity name="DeleteRuleFlatB" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatB"
 dbEntityName="DELETE_RULE_FLATB">
-    </obj-entity>
-    <obj-entity name="DeleteRuleTest1" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest1"
 dbEntityName="DELETE_RULE_TEST1">
-    </obj-entity>
-    <obj-entity name="DeleteRuleTest2" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest2"
 dbEntityName="DELETE_RULE_TEST2">
-    </obj-entity>
-    <obj-entity name="DeleteRuleTest3" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest3"
 dbEntityName="DELETE_RULE_TEST3">
-    </obj-entity>
-    <db-relationship name="joins" source="DELETE_RULE_FLATA" 
target="DELETE_RULE_JOIN" toDependentPK="true" toMany="true">
-        <db-attribute-pair source="FLATA_ID" target="FLATA_ID"/>
-    </db-relationship>
-    <db-relationship name="joins" source="DELETE_RULE_FLATB" 
target="DELETE_RULE_JOIN" toDependentPK="true" toMany="true">
-        <db-attribute-pair source="FLATB_ID" target="FLATB_ID"/>
-    </db-relationship>
-    <db-relationship name="toFlatA" source="DELETE_RULE_JOIN" 
target="DELETE_RULE_FLATA" toMany="false">
-        <db-attribute-pair source="FLATA_ID" target="FLATA_ID"/>
-    </db-relationship>
-    <db-relationship name="toFlatB" source="DELETE_RULE_JOIN" 
target="DELETE_RULE_FLATB" toMany="false">
-        <db-attribute-pair source="FLATB_ID" target="FLATB_ID"/>
-    </db-relationship>
-    <db-relationship name="deleteRuleTest3Array" source="DELETE_RULE_TEST1" 
target="DELETE_RULE_TEST3" toMany="true">
-        <db-attribute-pair source="DEL_RULE_TEST1_ID" 
target="DELETE_RULE_TEST_3_FK"/>
-    </db-relationship>
-    <db-relationship name="test2" source="DELETE_RULE_TEST1" 
target="DELETE_RULE_TEST2" toMany="false">
-        <db-attribute-pair source="TEST2_ID" target="DEL_RULE_TEST2_ID"/>
-    </db-relationship>
-    <db-relationship name="deleteRuleTest3Array" source="DELETE_RULE_TEST2" 
target="DELETE_RULE_TEST3" toMany="true">
-        <db-attribute-pair source="DEL_RULE_TEST2_ID" 
target="DELETE_RULE_TEST_3_FK"/>
-    </db-relationship>
-    <db-relationship name="test1Array" source="DELETE_RULE_TEST2" 
target="DELETE_RULE_TEST1" toMany="true">
-        <db-attribute-pair source="DEL_RULE_TEST2_ID" target="TEST2_ID"/>
-    </db-relationship>
-    <db-relationship name="toDeleteRuleTest2" source="DELETE_RULE_TEST3" 
target="DELETE_RULE_TEST2" toMany="false">
-        <db-attribute-pair source="DELETE_RULE_TEST_3_FK" 
target="DEL_RULE_TEST2_ID"/>
-    </db-relationship>
-    <obj-relationship name="flatB" source="DeleteRuleFlatA" 
target="DeleteRuleFlatB" db-relationship-path="joins.toFlatB"/>
-    <obj-relationship name="untitledRel" source="DeleteRuleFlatB" 
target="DeleteRuleFlatA" db-relationship-path="joins.toFlatA"/>
-    <obj-relationship name="test2" source="DeleteRuleTest1" 
target="DeleteRuleTest2" deleteRule="Deny" db-relationship-path="test2"/>
-    <obj-relationship name="deleteRuleTest3Array" source="DeleteRuleTest2" 
target="DeleteRuleTest3" db-relationship-path="deleteRuleTest3Array"/>
-    <obj-relationship name="test1Array" source="DeleteRuleTest2" 
target="DeleteRuleTest1" deleteRule="Nullify" 
db-relationship-path="test1Array"/>
-    <obj-relationship name="toDeleteRuleTest2" source="DeleteRuleTest3" 
target="DeleteRuleTest2" db-relationship-path="toDeleteRuleTest2"/>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_delete_rules"/>
+       <db-entity name="DELETE_RULE_FLATA">
+               <db-attribute name="FLATA_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="DELETE_RULE_FLATB">
+               <db-attribute name="FLATB_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="DELETE_RULE_JOIN">
+               <db-attribute name="FLATA_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="FLATB_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="DELETE_RULE_TEST1">
+               <db-attribute name="DEL_RULE_TEST1_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+               <db-attribute name="TEST2_ID" type="INTEGER" 
isMandatory="true"/>
+       </db-entity>
+       <db-entity name="DELETE_RULE_TEST2">
+               <db-attribute name="DEL_RULE_TEST2_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="DELETE_RULE_TEST3">
+               <db-attribute name="DELETE_RULE_TEST_3_FK" type="INTEGER"/>
+               <db-attribute name="DELETE_RULE_TEST_3_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <obj-entity name="DeleteRuleFlatA" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatA"
 dbEntityName="DELETE_RULE_FLATA"/>
+       <obj-entity name="DeleteRuleFlatB" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleFlatB"
 dbEntityName="DELETE_RULE_FLATB"/>
+       <obj-entity name="DeleteRuleTest1" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest1"
 dbEntityName="DELETE_RULE_TEST1"/>
+       <obj-entity name="DeleteRuleTest2" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest2"
 dbEntityName="DELETE_RULE_TEST2"/>
+       <obj-entity name="DeleteRuleTest3" 
className="org.apache.cayenne.testdo.relationships_delete_rules.DeleteRuleTest3"
 dbEntityName="DELETE_RULE_TEST3"/>
+       <db-relationship name="joins" source="DELETE_RULE_FLATA" 
target="DELETE_RULE_JOIN" toDependentPK="true" toMany="true">
+               <db-attribute-pair source="FLATA_ID" target="FLATA_ID"/>
+       </db-relationship>
+       <db-relationship name="joins" source="DELETE_RULE_FLATB" 
target="DELETE_RULE_JOIN" toDependentPK="true" toMany="true">
+               <db-attribute-pair source="FLATB_ID" target="FLATB_ID"/>
+       </db-relationship>
+       <db-relationship name="toFlatA" source="DELETE_RULE_JOIN" 
target="DELETE_RULE_FLATA">
+               <db-attribute-pair source="FLATA_ID" target="FLATA_ID"/>
+       </db-relationship>
+       <db-relationship name="toFlatB" source="DELETE_RULE_JOIN" 
target="DELETE_RULE_FLATB">
+               <db-attribute-pair source="FLATB_ID" target="FLATB_ID"/>
+       </db-relationship>
+       <db-relationship name="deleteRuleTest3Array" source="DELETE_RULE_TEST1" 
target="DELETE_RULE_TEST3" toMany="true">
+               <db-attribute-pair source="DEL_RULE_TEST1_ID" 
target="DELETE_RULE_TEST_3_FK"/>
+       </db-relationship>
+       <db-relationship name="test2" source="DELETE_RULE_TEST1" 
target="DELETE_RULE_TEST2">
+               <db-attribute-pair source="TEST2_ID" 
target="DEL_RULE_TEST2_ID"/>
+       </db-relationship>
+       <db-relationship name="deleteRuleTest3Array" source="DELETE_RULE_TEST2" 
target="DELETE_RULE_TEST3" toMany="true">
+               <db-attribute-pair source="DEL_RULE_TEST2_ID" 
target="DELETE_RULE_TEST_3_FK"/>
+       </db-relationship>
+       <db-relationship name="test1Array" source="DELETE_RULE_TEST2" 
target="DELETE_RULE_TEST1" toMany="true">
+               <db-attribute-pair source="DEL_RULE_TEST2_ID" 
target="TEST2_ID"/>
+       </db-relationship>
+       <db-relationship name="toDeleteRuleTest2" source="DELETE_RULE_TEST3" 
target="DELETE_RULE_TEST2">
+               <db-attribute-pair source="DELETE_RULE_TEST_3_FK" 
target="DEL_RULE_TEST2_ID"/>
+       </db-relationship>
+       <obj-relationship name="flatB" source="DeleteRuleFlatA" 
target="DeleteRuleFlatB" db-relationship-path="joins.toFlatB"/>
+       <obj-relationship name="untitledRel" source="DeleteRuleFlatB" 
target="DeleteRuleFlatA" db-relationship-path="joins.toFlatA"/>
+       <obj-relationship name="test2" source="DeleteRuleTest1" 
target="DeleteRuleTest2" deleteRule="Deny" db-relationship-path="test2"/>
+       <obj-relationship name="deleteRuleTest3Array" source="DeleteRuleTest2" 
target="DeleteRuleTest3" db-relationship-path="deleteRuleTest3Array"/>
+       <obj-relationship name="test1Array" source="DeleteRuleTest2" 
target="DeleteRuleTest1" deleteRule="Nullify" 
db-relationship-path="test1Array"/>
+       <obj-relationship name="toDeleteRuleTest2" source="DeleteRuleTest3" 
target="DeleteRuleTest2" db-relationship-path="toDeleteRuleTest2"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-flattened.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-flattened.map.xml 
b/cayenne-server/src/test/resources/relationships-flattened.map.xml
index d5a0ee5..b62e3f3 100644
--- a/cayenne-server/src/test/resources/relationships-flattened.map.xml
+++ b/cayenne-server/src/test/resources/relationships-flattened.map.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-        xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-        project-version="9">
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
        <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_flattened"/>
        <db-entity name="COMPLEX_JOIN">
                <db-attribute name="EXTRA_COLUMN" type="VARCHAR" length="50"/>
@@ -45,8 +45,7 @@
                <db-attribute name="FT5_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
                <db-attribute name="NAME" type="VARCHAR" isMandatory="true" 
length="100"/>
        </db-entity>
-       <obj-entity name="FlattenedCircular" 
className="org.apache.cayenne.testdo.relationships_flattened.FlattenedCircular" 
dbEntityName="FLATTENED_CIRCULAR">
-       </obj-entity>
+       <obj-entity name="FlattenedCircular" 
className="org.apache.cayenne.testdo.relationships_flattened.FlattenedCircular" 
dbEntityName="FLATTENED_CIRCULAR"/>
        <obj-entity name="FlattenedTest1" 
className="org.apache.cayenne.testdo.relationships_flattened.FlattenedTest1" 
dbEntityName="FLATTENED_TEST_1">
                <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
        </obj-entity>
@@ -62,16 +61,16 @@
        <obj-entity name="FlattenedTest5" 
className="org.apache.cayenne.testdo.relationships_flattened.FlattenedTest5" 
dbEntityName="FLATTENED_TEST_5">
                <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
        </obj-entity>
-       <db-relationship name="toFT1" source="COMPLEX_JOIN" 
target="FLATTENED_TEST_1" toMany="false">
+       <db-relationship name="toFT1" source="COMPLEX_JOIN" 
target="FLATTENED_TEST_1">
                <db-attribute-pair source="FT1_FK" target="FT1_ID"/>
        </db-relationship>
-       <db-relationship name="toFT3" source="COMPLEX_JOIN" 
target="FLATTENED_TEST_3" toMany="false">
+       <db-relationship name="toFT3" source="COMPLEX_JOIN" 
target="FLATTENED_TEST_3">
                <db-attribute-pair source="FT3_FK" target="FT3_ID"/>
        </db-relationship>
-       <db-relationship name="toFT1" source="COMPLEX_JOIN2" 
target="FLATTENED_TEST_1" toMany="false">
+       <db-relationship name="toFT1" source="COMPLEX_JOIN2" 
target="FLATTENED_TEST_1">
                <db-attribute-pair source="FT1_FK" target="FT1_ID"/>
        </db-relationship>
-       <db-relationship name="toFT5" source="COMPLEX_JOIN2" 
target="FLATTENED_TEST_5" toMany="false">
+       <db-relationship name="toFT5" source="COMPLEX_JOIN2" 
target="FLATTENED_TEST_5">
                <db-attribute-pair source="FT5_FK" target="FT5_ID"/>
        </db-relationship>
        <db-relationship name="side1s" source="FLATTENED_CIRCULAR" 
target="FLATTENED_CIRCULAR_JOIN" toDependentPK="true" toMany="true">
@@ -80,10 +79,10 @@
        <db-relationship name="side2s" source="FLATTENED_CIRCULAR" 
target="FLATTENED_CIRCULAR_JOIN" toDependentPK="true" toMany="true">
                <db-attribute-pair source="ID" target="SIDE1_ID"/>
        </db-relationship>
-       <db-relationship name="side1" source="FLATTENED_CIRCULAR_JOIN" 
target="FLATTENED_CIRCULAR" toMany="false">
+       <db-relationship name="side1" source="FLATTENED_CIRCULAR_JOIN" 
target="FLATTENED_CIRCULAR">
                <db-attribute-pair source="SIDE1_ID" target="ID"/>
        </db-relationship>
-       <db-relationship name="side2" source="FLATTENED_CIRCULAR_JOIN" 
target="FLATTENED_CIRCULAR" toMany="false">
+       <db-relationship name="side2" source="FLATTENED_CIRCULAR_JOIN" 
target="FLATTENED_CIRCULAR">
                <db-attribute-pair source="SIDE2_ID" target="ID"/>
        </db-relationship>
        <db-relationship name="complexJoins" source="FLATTENED_TEST_1" 
target="COMPLEX_JOIN" toMany="true">
@@ -98,7 +97,7 @@
        <db-relationship name="ft3Array" source="FLATTENED_TEST_2" 
target="FLATTENED_TEST_3" toMany="true">
                <db-attribute-pair source="FT2_ID" target="FT2_ID"/>
        </db-relationship>
-       <db-relationship name="toFT1" source="FLATTENED_TEST_2" 
target="FLATTENED_TEST_1" toMany="false">
+       <db-relationship name="toFT1" source="FLATTENED_TEST_2" 
target="FLATTENED_TEST_1">
                <db-attribute-pair source="FT1_ID" target="FT1_ID"/>
        </db-relationship>
        <db-relationship name="complexJoins" source="FLATTENED_TEST_3" 
target="COMPLEX_JOIN" toMany="true">
@@ -107,13 +106,13 @@
        <db-relationship name="ft4Array" source="FLATTENED_TEST_3" 
target="FLATTENED_TEST_4" toMany="true">
                <db-attribute-pair source="FT3_ID" target="FT3_ID"/>
        </db-relationship>
-       <db-relationship name="toFT2" source="FLATTENED_TEST_3" 
target="FLATTENED_TEST_2" toMany="false">
+       <db-relationship name="toFT2" source="FLATTENED_TEST_3" 
target="FLATTENED_TEST_2">
                <db-attribute-pair source="FT2_ID" target="FT2_ID"/>
        </db-relationship>
-       <db-relationship name="toFT3" source="FLATTENED_TEST_4" 
target="FLATTENED_TEST_3" toMany="false">
+       <db-relationship name="toFT3" source="FLATTENED_TEST_4" 
target="FLATTENED_TEST_3">
                <db-attribute-pair source="FT3_ID" target="FT3_ID"/>
        </db-relationship>
-       <db-relationship name="complexJoin2" source="FLATTENED_TEST_5" 
target="COMPLEX_JOIN2" toMany="false">
+       <db-relationship name="complexJoin2" source="FLATTENED_TEST_5" 
target="COMPLEX_JOIN2">
                <db-attribute-pair source="FT5_ID" target="FT5_FK"/>
        </db-relationship>
        <obj-relationship name="side1s" source="FlattenedCircular" 
target="FlattenedCircular" db-relationship-path="side1s.side1"/>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/test/resources/relationships-set-to-many.map.xml 
b/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
index 882d8d4..fedc4b6 100644
--- a/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
+++ b/cayenne-server/src/test/resources/relationships-set-to-many.map.xml
@@ -1,26 +1,24 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_set_to_many"/>
-    <db-entity name="SET_TO_MANY">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="SET_TO_MANY_TARGET">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="SET_TO_MANY_ID" type="INTEGER"/>
-    </db-entity>
-    <obj-entity name="SetToMany" 
className="org.apache.cayenne.testdo.relationships_set_to_many.SetToMany" 
dbEntityName="SET_TO_MANY">
-    </obj-entity>
-    <obj-entity name="SetToManyTarget" 
className="org.apache.cayenne.testdo.relationships_set_to_many.SetToManyTarget" 
dbEntityName="SET_TO_MANY_TARGET">
-    </obj-entity>
-    <db-relationship name="targets" source="SET_TO_MANY" 
target="SET_TO_MANY_TARGET" toMany="true">
-        <db-attribute-pair source="ID" target="SET_TO_MANY_ID"/>
-    </db-relationship>
-    <db-relationship name="setToMany" source="SET_TO_MANY_TARGET" 
target="SET_TO_MANY" toMany="false">
-        <db-attribute-pair source="SET_TO_MANY_ID" target="ID"/>
-    </db-relationship>
-    <obj-relationship name="targets" source="SetToMany" 
target="SetToManyTarget" collection-type="java.util.Set" 
db-relationship-path="targets"/>
-    <obj-relationship name="setToMany" source="SetToManyTarget" 
target="SetToMany" db-relationship-path="setToMany"/>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_set_to_many"/>
+       <db-entity name="SET_TO_MANY">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+       </db-entity>
+       <db-entity name="SET_TO_MANY_TARGET">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="SET_TO_MANY_ID" type="INTEGER"/>
+       </db-entity>
+       <obj-entity name="SetToMany" 
className="org.apache.cayenne.testdo.relationships_set_to_many.SetToMany" 
dbEntityName="SET_TO_MANY"/>
+       <obj-entity name="SetToManyTarget" 
className="org.apache.cayenne.testdo.relationships_set_to_many.SetToManyTarget" 
dbEntityName="SET_TO_MANY_TARGET"/>
+       <db-relationship name="targets" source="SET_TO_MANY" 
target="SET_TO_MANY_TARGET" toMany="true">
+               <db-attribute-pair source="ID" target="SET_TO_MANY_ID"/>
+       </db-relationship>
+       <db-relationship name="setToMany" source="SET_TO_MANY_TARGET" 
target="SET_TO_MANY">
+               <db-attribute-pair source="SET_TO_MANY_ID" target="ID"/>
+       </db-relationship>
+       <obj-relationship name="targets" source="SetToMany" 
target="SetToManyTarget" collection-type="java.util.Set" 
db-relationship-path="targets"/>
+       <obj-relationship name="setToMany" source="SetToManyTarget" 
target="SetToMany" db-relationship-path="setToMany"/>
 </data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c58b6f40/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml 
b/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
index 1c8257a..69c6496 100644
--- a/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
+++ b/cayenne-server/src/test/resources/relationships-to-many-fk.map.xml
@@ -1,48 +1,48 @@
 <?xml version="1.0" encoding="utf-8"?>
-<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap";
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-          xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap 
http://cayenne.apache.org/schema/9/modelMap.xsd";
-          project-version="9">
-    <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_to_many_fk"/>
-    <db-entity name="TO_MANY_FKDEP">
-        <db-attribute name="DEP_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="NAME" type="VARCHAR" length="200"/>
-        <db-attribute name="OTHER_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-    </db-entity>
-    <db-entity name="TO_MANY_FKROOT">
-        <db-attribute name="FK_ID" type="INTEGER"/>
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="NAME" type="VARCHAR" length="100"/>
-    </db-entity>
-    <db-entity name="TO_MANY_ROOT2">
-        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
-        <db-attribute name="NAME" type="VARCHAR" length="100"/>
-    </db-entity>
-    <obj-entity name="ToManyFkDep" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkDep" 
dbEntityName="TO_MANY_FKDEP">
-        <obj-attribute name="depId" type="java.lang.Integer" 
db-attribute-path="DEP_ID"/>
-        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-    </obj-entity>
-    <obj-entity name="ToManyFkRoot" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkRoot" 
dbEntityName="TO_MANY_FKROOT">
-        <obj-attribute name="depId" type="java.lang.Integer" 
db-attribute-path="FK_ID"/>
-        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-    </obj-entity>
-    <obj-entity name="ToManyRoot2" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyRoot2" 
dbEntityName="TO_MANY_ROOT2">
-        <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
-    </obj-entity>
-    <db-relationship name="root" source="TO_MANY_FKDEP" 
target="TO_MANY_FKROOT" toMany="false">
-        <db-attribute-pair source="DEP_ID" target="FK_ID"/>
-    </db-relationship>
-    <db-relationship name="root2" source="TO_MANY_FKDEP" 
target="TO_MANY_ROOT2" toMany="false">
-        <db-attribute-pair source="OTHER_ID" target="ID"/>
-    </db-relationship>
-    <db-relationship name="deps" source="TO_MANY_FKROOT" 
target="TO_MANY_FKDEP" toMany="true">
-        <db-attribute-pair source="FK_ID" target="DEP_ID"/>
-    </db-relationship>
-    <db-relationship name="deps" source="TO_MANY_ROOT2" target="TO_MANY_FKDEP" 
toDependentPK="true" toMany="true">
-        <db-attribute-pair source="ID" target="OTHER_ID"/>
-    </db-relationship>
-    <obj-relationship name="root" source="ToManyFkDep" target="ToManyFkRoot" 
db-relationship-path="root"/>
-    <obj-relationship name="root2" source="ToManyFkDep" target="ToManyRoot2" 
db-relationship-path="root2"/>
-    <obj-relationship name="deps" source="ToManyFkRoot" target="ToManyFkDep" 
db-relationship-path="deps"/>
-    <obj-relationship name="deps" source="ToManyRoot2" target="ToManyFkDep" 
db-relationship-path="deps"/>
+<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap";
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+        xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap 
http://cayenne.apache.org/schema/10/modelMap.xsd";
+        project-version="10">
+       <property name="defaultPackage" 
value="org.apache.cayenne.testdo.relationships_to_many_fk"/>
+       <db-entity name="TO_MANY_FKDEP">
+               <db-attribute name="DEP_ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="200"/>
+               <db-attribute name="OTHER_ID" type="INTEGER" 
isPrimaryKey="true" isMandatory="true"/>
+       </db-entity>
+       <db-entity name="TO_MANY_FKROOT">
+               <db-attribute name="FK_ID" type="INTEGER"/>
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="100"/>
+       </db-entity>
+       <db-entity name="TO_MANY_ROOT2">
+               <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="NAME" type="VARCHAR" length="100"/>
+       </db-entity>
+       <obj-entity name="ToManyFkDep" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkDep" 
dbEntityName="TO_MANY_FKDEP">
+               <obj-attribute name="depId" type="java.lang.Integer" 
db-attribute-path="DEP_ID"/>
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <obj-entity name="ToManyFkRoot" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyFkRoot" 
dbEntityName="TO_MANY_FKROOT">
+               <obj-attribute name="depId" type="java.lang.Integer" 
db-attribute-path="FK_ID"/>
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <obj-entity name="ToManyRoot2" 
className="org.apache.cayenne.testdo.relationships_to_many_fk.ToManyRoot2" 
dbEntityName="TO_MANY_ROOT2">
+               <obj-attribute name="name" type="java.lang.String" 
db-attribute-path="NAME"/>
+       </obj-entity>
+       <db-relationship name="root" source="TO_MANY_FKDEP" 
target="TO_MANY_FKROOT">
+               <db-attribute-pair source="DEP_ID" target="FK_ID"/>
+       </db-relationship>
+       <db-relationship name="root2" source="TO_MANY_FKDEP" 
target="TO_MANY_ROOT2">
+               <db-attribute-pair source="OTHER_ID" target="ID"/>
+       </db-relationship>
+       <db-relationship name="deps" source="TO_MANY_FKROOT" 
target="TO_MANY_FKDEP" toMany="true">
+               <db-attribute-pair source="FK_ID" target="DEP_ID"/>
+       </db-relationship>
+       <db-relationship name="deps" source="TO_MANY_ROOT2" 
target="TO_MANY_FKDEP" toDependentPK="true" toMany="true">
+               <db-attribute-pair source="ID" target="OTHER_ID"/>
+       </db-relationship>
+       <obj-relationship name="root" source="ToManyFkDep" 
target="ToManyFkRoot" db-relationship-path="root"/>
+       <obj-relationship name="root2" source="ToManyFkDep" 
target="ToManyRoot2" db-relationship-path="root2"/>
+       <obj-relationship name="deps" source="ToManyFkRoot" 
target="ToManyFkDep" db-relationship-path="deps"/>
+       <obj-relationship name="deps" source="ToManyRoot2" target="ToManyFkDep" 
db-relationship-path="deps"/>
 </data-map>

Reply via email to