<?xml version="1.0"?>

<!--
    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.
 -->

<project name="DTDDocAnt" default="main">

  <import file="../../lucene/module-build.xml"/>

    <description>
    This file generates DTDdocumentation
    </description>

    <!-- Tell ant where to find the code of the DTDDoc task.
         Set dtddoc.home property to the directory where DTDdoc is installed on your system
         -->

    <taskdef name="DTDDoc"
             classname="DTDDoc.DTDDocTask"
             classpath="${dtddoc.home}/DTDDoc.jar"/>

    <!-- Execute DTDDoc -->

    <target name="main">


        <DTDDoc showHiddenTags="false"
                showFixmeTags="false"
                sourceDir="."
                destDir="docs"
                docTitle = "Lucene XML Query syntax">
                <include name="org/apache/lucene/queryparser/xml/*.dtd"/>
        </DTDDoc>

    </target>



</project>
