<?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.
-->
<!--
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>
