<?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.    
-->

<!-- set the basedir value to point to the top level of the project -->

<project name="Apache UIMA Regular Expression Annotator Documentation" default="all" basedir=".">
  
  <property name="book_name" value="RegexAnnotatorUserGuide"/>
  <property name="artifactId" value="RegularExpressionAnnotator"/>
	
  <import file="${basedir}/../SandboxDocs/sandbox_build.xml"/>  
  
</project>
