<?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">
            <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">
            <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">
            <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">
            <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>
