<?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.
-->
<orm xmlns="https://db.apache.org/jdo/xmlns/orm"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="https://db.apache.org/jdo/xmlns/orm
     https://db.apache.org/jdo/xmlns/orm_3_2.xsd">
    <package name="org.apache.jdo.tck.pc.inheritance">
        <class name="AllPersist" table="AllPersist">
            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
            <inheritance strategy="new-table">
                <discriminator strategy="class-name" column="DISCRIMINATOR"/>
            </inheritance>
            <field name="intB" column="INT_B"/>
            <field name="doubleB" column="DOUBLE_B"/>
            <field name="keyValue" column="KEY_VALUE"/>
        </class>

        <class name="AllPersist2">
            <inheritance strategy="superclass-table"/>
            <field name="floatE" column="FLOAT_E"/>
        </class>

        <class name="AllPersist3">
            <inheritance strategy="superclass-table"/>
            <field name="shortF" column="SHORT_F"/>
            <field name="secondObj" column="SECOND_OBJ"/>
            <field name="thirdObj" column="THIRD_OBJ"/>
        </class>

        <class name="AllPersist4">
            <inheritance strategy="superclass-table"/>
            <field name="intH" column="INT_H"/>
        </class>

        <class name="TopNonPersistB" table="TopNonPersistB">
            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
            <inheritance strategy="new-table">
                <discriminator strategy="class-name" column="DISCRIMINATOR"/>
            </inheritance>
            <field name="keyValue" column="KEY_VALUE"/>
            <field name="doubleB" column="DOUBLE_B"/>
            <field name="intB" column="INT_B"/>
        </class>

        <class name="TopNonPersistE">
            <inheritance strategy="superclass-table"/>
            <field name="floatE" column="FLOAT_E"/>
        </class>

        <class name="TopNonPersistF">
            <inheritance strategy="superclass-table"/>
            <field name="shortF" column="SHORT_F"/>
            <field name="secondObj" column="SECOND_OBJ"/>
            <field name="thirdObj" column="THIRD_OBJ"/>
        </class>

        <class name="TopNonPersistH">
            <inheritance strategy="superclass-table"/>
            <field name="intH" column="INT_H"/>
        </class>

        <class name="TopPersist" table="TopPersist">
            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
            <inheritance strategy="new-table">
                <discriminator strategy="class-name" column="DISCRIMINATOR"/>
            </inheritance>
            <field name="doubleB" column="DOUBLE_B"/>
            <field name="intB" column="INT_B"/>
            <field name="keyValue" column="KEY_VALUE"/>
        </class>

        <class name="TopPersistE">
            <inheritance strategy="superclass-table"/>
            <field name="floatE" column="FLOAT_E"/>
        </class>

        <class name="TopPersistF">
            <inheritance strategy="superclass-table"/>
            <field name="shortF" column="SHORT_F"/>
            <field name="secondObj" column="SECOND_OBJ"/>
            <field name="thirdObj" column="THIRD_OBJ"/>
        </class>

        <class name="TopPersistH">
            <inheritance strategy="superclass-table"/>
            <field name="intH" column="INT_H"/>
        </class>

        <class name="FieldSameName" table="FieldSameName">
            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
            <inheritance strategy="new-table">
                <discriminator strategy="class-name" column="DISCRIMINATOR"/>
            </inheritance>
            <field name="n2" column="N2"/>
            <field name="n3" column="N3"/>
            <field name="keyValue" column="KEY_VALUE"/>
        </class>

        <class name="FieldSameName2">
            <inheritance strategy="superclass-table"/>
            <field name="n3" column="FSN2_N3"/>
        </class>

        <class name="FieldSameName3">
            <inheritance strategy="superclass-table"/>
            <field name="n1" column="FSN3_N1"/>
            <field name="n2" column="FSN3_N2"/>
            <field name="n3" column="FSN3_N3"/>
        </class>

        <class name="FieldSameName4">
            <inheritance strategy="superclass-table"/>
            <field name="n3" column="FSN4_N3"/>
        </class>

</package>
</orm>
