<?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.
-->
<!--
This file contains the schema information for persistence-aware classes 
and SimpleClass, which is needed for several fieldtypes tests.
-->
<jdo xmlns="https://db.apache.org/jdo/xmlns/jdo"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="https://db.apache.org/jdo/xmlns/jdo
     https://db.apache.org/jdo/xmlns/jdo_3_2.xsd">
    <package name="org.apache.jdo.tck.models.inheritance">
        <class name="FieldWithSameNameInSuperclass" persistence-modifier="persistence-aware"/>
        <class name="NonPersistentFieldsAreNonPersistentInSubclasses" persistence-modifier="persistence-aware"/>
        <class name="NonpersistentSuperClass" persistence-modifier="persistence-aware"/>
        <class name="PersistenceCapableFlexibilityInInheritanceHierarchy" persistence-modifier="persistence-aware"/>
        <class name="PersistentFieldsArePersistentInSubClasses" persistence-modifier="persistence-aware"/>
        <class name="TestParts" persistence-modifier="persistence-aware"/>
        <class name="TransactionalFieldsAreTransactionalInSubclasses" persistence-modifier="persistence-aware"/>
    </package>

    <package name="org.apache.jdo.tck.api.instancecallbacks">
        <class name="AccessingFieldsInPredelete" persistence-modifier="persistence-aware"/>
        <class name="AccessOtherInstancesInPrestore" persistence-modifier="persistence-aware"/>
        <class name="CallingJdoPostload" persistence-modifier="persistence-aware"/>
        <class name="CallingJdoPreclear" persistence-modifier="persistence-aware"/>
        <class name="CallingJdoPredelete" persistence-modifier="persistence-aware"/>
        <class name="CallingJdoPrestore" persistence-modifier="persistence-aware"/>
        <class name="ModificationOfNontransactionalNonpersistentFields" persistence-modifier="persistence-aware"/>
        <class name="NoAccessToFieldsAfterPredelete" persistence-modifier="persistence-aware"/>
        <class name="TestParts" persistence-modifier="persistence-aware"/>
    </package>
    <package name="org.apache.jdo.tck.pc.fieldtypes">
        <class name="SimpleClass" identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.fieldtypes.SimpleClass$Oid">
            <implements name="SimpleInterface"/>
            <field name="id" primary-key="true"/>
        </class>
    </package>
</jdo>
