<?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.
-->
<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.pc.fieldtypes">
<class name="ArrayCollections" identity-type="application"
    objectid-class="org.apache.jdo.tck.pc.fieldtypes.ArrayCollections$Oid">
<field name="identifier" primary-key="true"/>
<field name="ArrayOfObject0" persistence-modifier="persistent">
    <array serialized-element="true"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
    </array>
</field>
<field name="ArrayOfObject1" persistence-modifier="persistent">
<array embedded-element="false"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</array>
</field>
<field name="ArrayOfSimpleClass2">
<array serialized-element="true"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</array>
</field>
<field name="ArrayOfSimpleClass3">
<array embedded-element="false"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</array>
</field>
<field name="ArrayOfSimpleInterface4" persistence-modifier="persistent">
<array serialized-element="true"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</array>
</field>
<field name="ArrayOfSimpleInterface5" persistence-modifier="persistent">
<array embedded-element="false"
        element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</array>
</field>
<field name="ArrayOfString6" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfString7" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfDate8" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfDate9" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfLocale10" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfLocale11" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfBigDecimal12" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfBigDecimal13" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfBigInteger14" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfBigInteger15" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfByte16" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfByte17" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfDouble18" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfDouble19" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfFloat20" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfFloat21" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfInteger22" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfInteger23" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfLong24" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfLong25" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfShort26" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfShort27" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfSimpleEnum28" serialized="true">
<array embedded-element="false">
</array>
</field>
<field name="ArrayOfSimpleEnum29" >
<array embedded-element="true">
</array>
</field>
<field name="ArrayOfSimpleEnum30" >
<array embedded-element="true">
</array>
</field>
</class>
</package>
</jdo>
