<?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.
-->
<!--
Metadata for datastore identity
-->
<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.fieldtypes">
        <class name="ArrayCollections" table="ARRAY_COLLECTIONS">
            <datastore-identity strategy="identity"
                                column="DATASTORE_IDENTITY"/>
            <field name="identifier" column="IDENTIFIER"/>
           <field name="ArrayOfObject0" table="ARRAY_OF_OBJECT0">
                <join column="IDENTIFIER"/>
                <element column="OBJVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfObject1" table="ARRAY_OF_OBJECT1">
                <join column="IDENTIFIER"/>
                <element column="OBJREF"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleClass2" table="ARRAY_OF_SIMPLE_CLASS2">
                <join column="IDENTIFIER"/>
                <element column="OBJVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleClass3" table="ARRAY_OF_SIMPLE_CLASS3">
                <join column="IDENTIFIER"/>
                <element column="OBJREF"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleInterface4"
                   table="ARRAY_OF_SIMPLE_INTERFACE4">
                <join column="IDENTIFIER"/>
                <element column="OBJVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleInterface5"
                   table="ARRAY_OF_SIMPLE_INTERFACE5">
                <join column="IDENTIFIER"/>
                <element column="OBJREF"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfString6" column="ARRAY_OF_STRING6"/>
            <field name="ArrayOfString7" table="ARRAY_OF_STRING7">
                <join column="IDENTIFIER"/>
                <element column="STRINGVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfDate8" column="ARRAY_OF_DATE8"/>
            <field name="ArrayOfDate9" table="ARRAY_OF_DATE9">
                <join column="IDENTIFIER"/>
                <element column="DATEVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfLocale10" column="ARRAY_OF_LOCALE10"/>
            <field name="ArrayOfLocale11" table="ARRAY_OF_LOCALE11">
                <join column="IDENTIFIER"/>
                <element column="LOCALEVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfBigDecimal12" column="ARRAY_OF_BIG_DECIMAL12"/>
            <field name="ArrayOfBigDecimal13" table="ARRAY_OF_BIG_DECIMAL13">
                <join column="IDENTIFIER"/>
                <element column="BIG_DECIMALVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfBigInteger14" column="ARRAY_OF_BIG_INTEGER14"/>
            <field name="ArrayOfBigInteger15" table="ARRAY_OF_BIG_INTEGER15">
                <join column="IDENTIFIER"/>
                <element column="BIG_INTEGERVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfByte16" column="ARRAY_OF_BYTE16"/>
            <field name="ArrayOfByte17" table="ARRAY_OF_BYTE17">
                <join column="IDENTIFIER"/>
                <element column="BYTEVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfDouble18" column="ARRAY_OF_DOUBLE18"/>
            <field name="ArrayOfDouble19" table="ARRAY_OF_DOUBLE19">
                <join column="IDENTIFIER"/>
                <element column="DOUBLEVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfFloat20" column="ARRAY_OF_FLOAT20"/>
            <field name="ArrayOfFloat21" table="ARRAY_OF_FLOAT21">
                <join column="IDENTIFIER"/>
                <element column="FLOATVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfInteger22" column="ARRAY_OF_INTEGER22"/>
            <field name="ArrayOfInteger23" table="ARRAY_OF_INTEGER23">
                <join column="IDENTIFIER"/>
                <element column="INTEGERVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfLong24" column="ARRAY_OF_LONG24"/>
            <field name="ArrayOfLong25" table="ARRAY_OF_LONG25">
                <join column="IDENTIFIER"/>
                <element column="LONGVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfShort26" column="ARRAY_OF_SHORT26"/>
            <field name="ArrayOfShort27" table="ARRAY_OF_SHORT27">
                <join column="IDENTIFIER"/>
                <element column="SHORTVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleEnum28" column="ARRAY_OF_SIMPLEENUM28"/>
            <field name="ArrayOfSimpleEnum29" table="ARRAY_OF_SIMPLEENUM29">
                <join column="IDENTIFIER"/>
                <element column="ENUMVAL"/>
                <order column="ORDER_COL"/>
            </field>
            <field name="ArrayOfSimpleEnum30" table="ARRAY_OF_SIMPLEENUM30">
                <join column="IDENTIFIER"/>
                <element>
                    <column name="ENUMVAL" jdbc-type="NUMERIC" length="2" scale="0"/>
                </element>
                <order column="ORDER_COL"/>
            </field>
        </class>
    </package>
</orm>
