<?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.
-->
<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="TreeSetCollections" identity-type="application"
    objectid-class="org.apache.jdo.tck.pc.fieldtypes.TreeSetCollections$Oid">
<field name="identifier" primary-key="true"/>
<field name="TreeSetOfObject0" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</collection>
</field>
<field name="TreeSetOfObject1" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfObject2" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfSimpleClass3" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</collection>
</field>
<field name="TreeSetOfSimpleClass4" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfSimpleClass5" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfSimpleInterface6" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass">
</collection>
</field>
<field name="TreeSetOfSimpleInterface7" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfSimpleInterface8" >
<collection element-type="org.apache.jdo.tck.pc.fieldtypes.SimpleClass" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfString9" >
<collection element-type="java.lang.String">
</collection>
</field>
<field name="TreeSetOfString10" >
<collection element-type="java.lang.String" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfString11" >
<collection element-type="java.lang.String" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfDate12" >
<collection element-type="java.util.Date">
</collection>
</field>
<field name="TreeSetOfDate13" >
<collection element-type="java.util.Date" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfDate14" >
<collection element-type="java.util.Date" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfBigDecimal15" >
<collection element-type="java.math.BigDecimal">
</collection>
</field>
<field name="TreeSetOfBigDecimal16" >
<collection element-type="java.math.BigDecimal" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfBigDecimal17" >
<collection element-type="java.math.BigDecimal" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfBigInteger18" >
<collection element-type="java.math.BigInteger">
</collection>
</field>
<field name="TreeSetOfBigInteger19" >
<collection element-type="java.math.BigInteger" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfBigInteger20" >
<collection element-type="java.math.BigInteger" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfByte21" >
<collection element-type="java.lang.Byte">
</collection>
</field>
<field name="TreeSetOfByte22" >
<collection element-type="java.lang.Byte" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfByte23" >
<collection element-type="java.lang.Byte" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfDouble24" >
<collection element-type="java.lang.Double">
</collection>
</field>
<field name="TreeSetOfDouble25" >
<collection element-type="java.lang.Double" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfDouble26" >
<collection element-type="java.lang.Double" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfFloat27" >
<collection element-type="java.lang.Float">
</collection>
</field>
<field name="TreeSetOfFloat28" >
<collection element-type="java.lang.Float" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfFloat29" >
<collection element-type="java.lang.Float" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfInteger30" >
<collection element-type="java.lang.Integer">
</collection>
</field>
<field name="TreeSetOfInteger31" >
<collection element-type="java.lang.Integer" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfInteger32" >
<collection element-type="java.lang.Integer" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfLong33" >
<collection element-type="java.lang.Long">
</collection>
</field>
<field name="TreeSetOfLong34" >
<collection element-type="java.lang.Long" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfLong35" >
<collection element-type="java.lang.Long" embedded-element="false">
</collection>
</field>
<field name="TreeSetOfShort36" >
<collection element-type="java.lang.Short">
</collection>
</field>
<field name="TreeSetOfShort37" >
<collection element-type="java.lang.Short" embedded-element="true">
</collection>
</field>
<field name="TreeSetOfShort38" >
<collection element-type="java.lang.Short" embedded-element="false">
</collection>
</field>
</class>
</package>
</jdo>
