<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      https://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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>
