<?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.
 -->

      <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
       <types>
         <typeDescription>
              <name>test.primitives.Example</name>
              <description></description>
              <supertypeName>uima.tcas.Annotation</supertypeName>
              <features>
         <featureDescription>
           <name>floatFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Float</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>stringFeature</name>
           <description></description>
          <rangeTypeName>uima.cas.String</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>boolFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Boolean</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>byteFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Byte</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>shortFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Short</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>longFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Long</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>doubleFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.Double</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>intArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.IntegerArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>floatArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.FloatArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>stringArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.StringArray</rangeTypeName>
           </featureDescription>
         <featureDescription>
           <name>stringArrayFeatureMultiRef</name>
           <description></description>
           <rangeTypeName>uima.cas.StringArray</rangeTypeName>
           <multipleReferencesAllowed> true </multipleReferencesAllowed>
         </featureDescription>
         <featureDescription>
          <name>otherAnnotation</name>
          <description></description>
          <rangeTypeName>uima.tcas.Annotation</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>boolArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.BooleanArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>byteArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.ByteArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>shortArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.ShortArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>longArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.LongArray</rangeTypeName>
         </featureDescription>
         <featureDescription>
           <name>doubleArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.DoubleArray</rangeTypeName>
         </featureDescription>
	  <featureDescription>
          <name>intListFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.IntegerList</rangeTypeName>
        </featureDescription>
	  <featureDescription>
           <name>floatListFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.FloatList</rangeTypeName>
         </featureDescription>
	   <featureDescription>
           <name>stringListFeature</name>
           <description></description>
          <rangeTypeName>uima.cas.StringList</rangeTypeName>
         </featureDescription>
	   <featureDescription>
           <name>fsListFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.FSList</rangeTypeName>
         </featureDescription>
	   <featureDescription>
          <name>fsArrayFeature</name>
           <description></description>
           <rangeTypeName>uima.cas.FSArray</rangeTypeName>
         </featureDescription>
              </features>
        </typeDescription>
       </types>
      </typeSystemDescription>
