<?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">
	<name>TutorialTypeSystem</name>
	<description>Type System Definition for the tutorial examples - as of Exercise 4</description>
	<vendor>The Apache Software Foundation</vendor>
	<version>1.0</version>
	<types>
		<typeDescription>
			<name>org.apache.uima.tutorial.RoomNumber</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
			<features>
				<featureDescription>
					<name>building</name>
					<description>Building containing this room</description>
					<rangeTypeName>uima.cas.String</rangeTypeName>
				</featureDescription>
			</features>
		</typeDescription>
		<typeDescription>
			<name>org.apache.uima.tutorial.DateTimeAnnot</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
			<features>
				<featureDescription>
					<name>shortDateString</name>
					<description />
					<rangeTypeName>uima.cas.String</rangeTypeName>
				</featureDescription>
			</features>
		</typeDescription>
		<typeDescription>
			<name>org.apache.uima.tutorial.TimeAnnot</name>
			<description></description>
			<supertypeName>org.apache.uima.tutorial.DateTimeAnnot</supertypeName>
			<features></features>
		</typeDescription>
		<typeDescription>
			<name>org.apache.uima.tutorial.DateAnnot</name>
			<description></description>
			<supertypeName>org.apache.uima.tutorial.DateTimeAnnot</supertypeName>
			<features></features>
		</typeDescription>
		<typeDescription>
			<name>org.apache.uima.tutorial.Meeting</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
			<features>
				<featureDescription>
					<name>room</name>
					<description></description>
					<rangeTypeName>org.apache.uima.tutorial.RoomNumber</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>date</name>
					<description></description>
					<rangeTypeName>org.apache.uima.tutorial.DateAnnot</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>startTime</name>
					<description></description>
					<rangeTypeName>org.apache.uima.tutorial.TimeAnnot</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>endTime</name>
					<description></description>
					<rangeTypeName>org.apache.uima.tutorial.TimeAnnot</rangeTypeName>
				</featureDescription>
			</features>
		</typeDescription>
        <typeDescription>
			<name>org.apache.uima.examples.tokenizer.Token</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
        </typeDescription>
		<typeDescription>
			<name>org.apache.uima.examples.tokenizer.Sentence</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>
	</types>
</typeSystemDescription>