<?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.
-->
<!DOCTYPE orm PUBLIC
    "-//The Apache Software Foundation//DTD Java Data Objects Mapping Metadata 3.2//EN"
    "https://db.apache.org/jdo/xmlns/orm_3_2.dtd">
<!--
This file contains the schema information when an implementation
has application identity.
-->
<orm>
    <package name="org.apache.jdo.tck.pc.company">

        <class name="Address"/>

        <class name="Company">
            <field name="companyid"/>
            <field name="address"/>
            <field name="departments">
            </field>
        </class>

        <class name="DentalInsurance"/>

        <class name="Department">
            <field name="deptid"/>
            <field name="employees">
            </field>
            <field name="fundedEmps">
            </field>
        </class>

        <class name="Employee">
            <field name="reviewedProjects">
            </field>
            <field name="projects">
            </field>
            <field name="team">
            </field>
            <field name="hradvisees">
            </field>
        </class>

        <class name="FullTimeEmployee"/>

        <class name="Insurance">
            <field name="insid"/>
        </class>

        <class name="MedicalInsurance"
        />

        <class name="PartTimeEmployee"/>

        <class name="Person">
            <field name="personid"/>
            <field name="middlename"/>
            <field name="address"/>
            <field name="phoneNumbers">
            </field>
            <query name="validNotUnique">
                SELECT firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="validUnique">
                SELECT UNIQUE firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.Person 
                WHERE firstname == 'emp1First'
            </query>
            <query name="invalidUnique">
                SELECT UNIQUE firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="unmodifiable" unmodifiable="true">
                SELECT firstname, lastname 
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="packageJDO">
                SELECT FROM org.apache.jdo.tck.pc.company.Person
                WHERE personid > 1
            </query>
            <query name="changeQuery">
                SELECT FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="invalidQuery">
                SeLeCt FrOm org.apache.jdo.tck.pc.company.Person
            </query>
        </class>

        <class name="Project">
            <field name="projid"/>
            <field name="reviewers">
            </field>
            <field name="members">
            </field>
        </class>
    </package>
</orm>
