<?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>PlainTextTypeSystem</name>
  <description/>
  <version>1.0</version>
  <vendor/>
  <types>
    <typeDescription>
      <name>org.apache.uima.ruta.type.Line</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.AnyLine</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.Paragraph</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.WSLine</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.EmptyLine</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.EmptyLine</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.AnyLine</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.AnyLine</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
    </typeDescription>
  </types>
</typeSystemDescription>
