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