<?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.
-->
<!--
This file contains the schema information when an implementation has application-id.
-->
<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.building">
        <class name="Kitchen" table="KITCHEN">
            <field name="id" column="KITCHEN_ID"/>
            <field name="oven">
                <embedded null-indicator-column="OVEN_MAKE">
                    <discriminator column="OVEN_DISCRIM"/>
                    <field name="make" column="OVEN_MAKE"/>
                    <field name="model" column="OVEN_MODEL"/>
                </embedded>
            </field>
        </class>

        <class name="Oven">
            <inheritance>
                <discriminator strategy="class-name" column="DISCRIM"/>
            </inheritance>
            <field name="make" column="MAKE"/>
            <field name="model" column="MODEL"/>
        </class>

        <class name="MultifunctionOven">
            <field name="microwave" column="MICROWAVE"/>
            <field name="capabilities" column="CAPABILITIES"/>
        </class>
    </package>
</orm>
