<?xml version="1.0"?>

<!-- ===================================================================

Read the README file for build instruction.

Authors:
  Stefano Mazzocchi <stefano@apache.org>
  Anupam Bagchi     <abagchi@apache.org>
  Andy Clark, IBM

Copyright:
  Copyright (c) 2000-2005 The Apache Software Foundation.

   $Id$

==================================================================== -->

<project default="usage" basedir=".">

  <!-- enable compilation under IBM JDK 1.4 -->
  <taskdef name="xjavac" classname="org.apache.xerces.util.XJavac"/>

  <!-- Allow properties following these statements to be overridden -->
  <!-- Note that all of these don't have to exist.  They've just been defined
       incase they are used. -->
  <property file="build.properties"/>
  <property file=".ant.properties"/>
  <property file="${user.home}/.ant.properties"/>
  <property file="default.properties"/>  
 
  <target name="init">
    <property name='parser.Name' value='Xerces-J'/>
    <property name='parser.name' value='xerces-j'/>
    <property name='parser.shortname' value='xerces'/>
    <property name='parser.Version' value='2.7.1'/>
    <property name='parser.version' value='2.7.1'/>
    <property name='parser_version' value='2_7_1'/>

    <property name='deprecatedjar.parser' value='xerces.jar'/>
    <property name='jar.apis' value='xml-apis.jar'/>
    <property name='jar.parser' value='xercesImpl.jar'/>
    <property name='jar.samples' value='xercesSamples.jar'/>
    <property name='jar.dv' value='xercesDV.jar'/>
    <property name='jar.resolver' value='resolver.jar'/>
    
    <property name='default.parser.config.name' value='XIncludeAwareParserConfiguration'/>
    <property name='default.parser.config.qualified' value='org.apache.xerces.parsers.XIncludeAwareParserConfiguration'/>

    <property name="year" value="1999-2005"/>
    <property name="copyright" value="Copyright &#169; ${year} Apache XML Project. All Rights Reserved."/>

    <echo message= "---------------- ${parser.Name} ${parser.Version} [${year}] ---------------"/>
    <!-- changed made to synchronize with a patch from Sam Ruby (<rubys@apache.org>) to Xerces1
    <property name="build.compiler" value="classic"/> -->
    <property name="debug" value="off"/>
    <property name="optimize" value="on"/>
    <property name="deprecation" value="off"/>

    <property name="src.dir" value="./src"/>
    <property name="tools.dir" value="./tools"/>
    <property name="docs.dir" value="./docs"/>
    <property name="data.dir" value="./data"/>
    <property name="samples.dir" value="./samples"/>
    <property name="tests.dir" value="./tests"/>
    <property name="tools.dir" value="./tools"/>
    <property name="docs.book" value="${docs.dir}/docs-book.xml"/>

    <property name="packages" value="org.*"/>

    <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
    <property name="doc.generator.package" value="${tools.dir}/stylebook-1.0-b2.jar"/>

    <property name="build.dir" value="./build"/>
    <property name="build.src" value="${build.dir}/src"/>
    <property name="build.dest" value="${build.dir}/classes"/>
    <property name="build.docs" value="${build.dir}/docs"/>
    <property name="build.samples" value="${build.dir}/samples"/>
    <property name="build.tests" value="${build.dir}/tests"/>
    <property name="build.data" value="${build.dir}/data"/>
    <property name="build.javadocs" value="${build.dir}/docs/javadocs"/>

    <property name="distsrc.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
    <property name="disttools.dir" value="${build.dir}/tools"/>
    <property name="distbin.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
    <property name='src.apis.zip' value="${tools.dir}/xml-commons-external-src.zip"/>

    <filter token="year" value="${year}"/>
    <filter token="version" value="${parser.Version}"/>
    <filter token="date" value="${TODAY}"/>
    <filter token="log" value="true"/>
    <filter token="verbose" value="true"/>

  </target>

  <!-- =================================================================== -->
  <!-- Help on usage                                                       -->
  <!-- =================================================================== -->
  <target name="usage" depends="init">
    <echo message=""/>
    <echo message=""/>
    <echo message="${parser.Name} Build instructions"/>
    <echo message="-------------------------------------------------------------"/>
    <echo message=""/>
    <echo message=" available targets are:"/>
    <echo message=""/>
    
    <echo message=" jar      --> generates the xercesImpl.jar file"/>
    <echo message=" sampjar  --> generates the xercesSamples.jar file"/>
    <echo message=" jars --> generates xercesImpl &amp; xercesSamples jars"/>
    <echo message=" jar-schema11 --> 'jar' + XML Schema 1.1 support"/>
    <echo message=" jars-schema11 --> 'jars' + XML Schema 1.1 support"/>
    <echo message=" docs     --> generates the HTML documentation"/>
    <echo message=" javadocs --> generates the API docs (needs Java 1.2 or higher)"/>
    <echo message=" samples  --> compiles the samples source code"/>
    <echo message=" compile  --> compiles the source code"/>
    <echo message=" deprecatedjar  --> generates the xerces.jar file"/>
    <echo message=" tests    --> compiles the tests source code"/>
    <echo message=" deprecatedjars --> generates xerces.jar and samples jar"/>
    <echo message=" dtdjars --> generates xercesImpl containing no schema support or WML/HTML DOM and xercesSamples &amp; xmlParserAPIs jars"/>
    <echo message=" dvjar --> generates a Schema datatype jar"/>
    <echo message=" pack-tools --> generates the tools distributions (zip and tar.gz)"/>
    <echo message=" pack-src   --> generates the source distributions (zip and tar.gz)"/>
    <echo message=" deprecated-bin --> generates the binary distributions (zip and tar.gz)"/>
    <echo message=" pack-bin --> generates the binary distributions (zip and tar.gz)"/>
    <echo message=" all      --> generates the binary, source and tools distributions"/>
    <echo message=" deprecatedall --> generates the binary, source and tools distributions with the xerces.jar"/>
    <echo message=" test     --> runs a sanity test on the sample files"/>
    <echo message=" clean    --> cleans up all generated files and directories"/>
    <echo message=" usage    --> provides help on using the build tool (default)"/>
    <echo message=""/>
    <echo message=" See comments inside the build.xml file for more details."/>
    <echo message="-------------------------------------------------------------"/>
    <echo message=""/>
    <echo message=""/>
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the build directory                                        -->
  <!-- =================================================================== -->
  <target name="prepare" depends="init">
    <mkdir dir="${build.dir}"/>
  </target>

  <!-- =================================================================== -->
  <!-- directory creation and file copying common to all configurations    -->
  <!-- =================================================================== -->
  <target name="prepare-common" depends="prepare">
    <!-- create directories -->
    <mkdir dir="${build.src}"/>
    <mkdir dir="${build.dest}"/>
    <mkdir dir="${build.dest}/META-INF"/>
    <mkdir dir="${build.dest}/META-INF/services"/>

    <copy file="${src.dir}/org/apache/xerces/jaxp/javax.xml.parsers.DocumentBuilderFactory"
      tofile="${build.dest}/META-INF/services/javax.xml.parsers.DocumentBuilderFactory"/>

    <copy file="${src.dir}/org/apache/xerces/jaxp/javax.xml.parsers.SAXParserFactory"
      tofile="${build.dest}/META-INF/services/javax.xml.parsers.SAXParserFactory"/>
  	
    <copy file="${src.dir}/org/apache/xerces/jaxp/datatype/javax.xml.datatype.DatatypeFactory"
      tofile="${build.dest}/META-INF/services/javax.xml.datatype.DatatypeFactory"/>
  	
    <copy file="${src.dir}/org/apache/xerces/jaxp/validation/javax.xml.validation.SchemaFactory"
      tofile="${build.dest}/META-INF/services/javax.xml.validation.SchemaFactory"/>

    <copy file="${src.dir}/org/apache/xerces/parsers/org.xml.sax.driver"
      tofile="${build.dest}/META-INF/services/org.xml.sax.driver"/>
    
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the source code                                            -->
  <!-- =================================================================== -->
  <target name="prepare-src" depends="prepare-common">
  	
  	<!-- Do not include this file in xercesImpl.jar. It prevents applications further down the 
  	     classpath from overriding the parser's default and may also cause an incompatible mix 
  	     of classes to be loaded leading to a failure such as a NoSuchMethodError. -->
  	<!-- <copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.XMLParserConfiguration"
      tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/> -->
      
    <copy file="${src.dir}/org/apache/xerces/dom/org.w3c.dom.DOMImplementationSourceList"
      tofile="${build.dest}/META-INF/services/org.w3c.dom.DOMImplementationSourceList"/>

    <!-- copy src files -->
    <copy todir="${build.src}">
        <fileset 
            dir="${src.dir}"
            includes="org/apache/**
                org/w3c/dom/html/HTMLDOMImplementation.java"
            excludes="**/classfiles_updated **/CVS* **/.#* **/XMLMessages.java
                       **/DatatypeContentModel.java **/ComplexTypeInfo.java
                       **/v1/** **/v2/**
                       javax.xml.parsers.ConvertToURI.java">
        </fileset>
    </copy>

    <!-- now deal with API's:  -->
    <unzip src="${src.apis.zip}" dest="${build.src}">
        <patternset
            includes="org/xml/sax/** 
    	        javax/xml/**
    	        javax/xml/datatype/**
    	        javax/xml/namespace/**
                javax/xml/parsers/**
    	        javax/xml/transform/**
    	        javax/xml/validation/**
    	        javax/xml/xpath/**
                org/w3c/dom/*
                org/w3c/dom/events/**
                org/w3c/dom/html/**
                org/w3c/dom/ls/**
                org/w3c/dom/ranges/**
                org/w3c/dom/traversal/**
        	    org/w3c/dom/xpath/**"
        />
    </unzip>
    
    <!-- substitute tokens as needed -->
    <replace file="${build.dir}/src/org/apache/xerces/impl/Version.java" 
             token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the source directory                                       -->
  <!-- =================================================================== -->
  <target name="compile" depends="prepare-src">
    <copy todir="${build.dest}">
      <fileset dir="${build.src}"
        includes="**/*.res, **/*.properties">
      </fileset>
    </copy>

    <xjavac srcdir="${build.src}"
           destdir="${build.dest}"
           classpath="${build.dir}/classes:${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           excludes="org/xml/sax/** 
                javax/xml/**
                org/w3c/dom/*
                org/w3c/dom/events/**
                org/w3c/dom/ls/**
                org/w3c/dom/html/**
                org/w3c/dom/ranges/**
                org/w3c/dom/traversal/**
                org/w3c/dom/xpath/**"
           />
  </target>

  <!-- =================================================================== -->
  <!-- Creates the omnibus class package                                   -->
  <!-- =================================================================== -->
  <target name="deprecatedjar" depends="compile">
    <jar jarfile="${build.dir}/${deprecatedjar.parser}"
         basedir="${build.dest}"
         compress="true"
         includes="org/**, javax/**,META-INF/**"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the implementation class package, including DOM Level 3     -->
  <!-- =================================================================== -->
  <target name="jar" depends="compile">
    <!-- take care of manifest file -->
    <filter token="java.version" value="${java.version}"/>
    <filter token="java.vendor" value="${java.vendor}"/>
    <filter token="impl.name" value="${parser.Name} ${parser.Version}"/>
    <filter token="impl.version" value="${parser.Version}"/>   
    <copy todir="${build.dir}" file="${src.dir}/manifest.xerces" filtering="true"/>
    <jar jarfile="${build.dir}/${jar.parser}"
         basedir="${build.dest}"
         compress="true"
         includes="org/apache/**, META-INF/**
                   org/w3c/dom/html/HTMLDOMImplementation.class"
         manifest="${build.dir}/manifest.xerces">
      <manifest>
        <attribute name="Ant-Version" value="${ant.version}"/>
      </manifest>
    </jar>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the samples                                                -->
  <!-- =================================================================== -->
  <target name="samples" depends="compile">
    <mkdir dir="${build.samples}"/>
    <copy todir="${build.samples}" >
        <fileset dir="${samples.dir}"/>
    </copy>
    <xjavac srcdir="${build.samples}"
           destdir="${build.dest}"
           classpath="${build.dir}/classes:${tools.dir}/${jar.apis}"
           debug="${debug}"
           includeAntRuntime="false"
           includeJavaRuntime="true"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the tests                                                  -->
  <!-- =================================================================== -->
  <target name="tests" depends="samples">
    <mkdir dir="${build.tests}"/>
    <copy todir="${build.tests}">
        <fileset dir="${tests.dir}"
         excludes="dom/rename/**" />
    </copy>
    <xjavac srcdir="${build.tests}"
           destdir="${build.dest}"
           classpath="${tools.dir}/${jar.apis}:${build.dir}/classes:./tools/junit.jar"
           debug="${debug}"
           includeAntRuntime="false"
           includeJavaRuntime="true"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the samples package                                         -->
  <!-- =================================================================== -->
  <target name="sampjar" depends="samples">
    <jar jarfile="${build.dir}/${jar.samples}"
         basedir="${build.dest}"
         compress="true"
         includes="dom/**,sax/**,jaxp/**,socket/**,ui/**,xni/**,xs/**"/>
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the docs                                                   -->
  <!-- =================================================================== -->
  <target name="prepare-docs" depends="init"> 
    <mkdir dir="${build.docs}"/>
    <mkdir dir="${build.dir}/xdocs"/>
    <copy todir="${build.dir}/xdocs">
        <fileset dir="${docs.dir}"/>
    </copy>
    <replace file="${build.dir}/xdocs/dtd/entities.ent" 
             token="@@VERSION@@" value="${parser.Version}"/>
    <replace file="${build.dir}/xdocs/dtd/entities.ent" 
             token="@@version@@" value="${parser.version}"/>
    <replace file="${build.dir}/xdocs/dtd/entities.ent" 
             token="@@_version_@@" value="${parser_version}"/>
    <replace file="${build.dir}/xdocs/dtd/entities.ent" 
             token="@@DEFAULT_CONFIG@@" value="${default.parser.config.name}"/>
    <replace file="${build.dir}/xdocs/dtd/entities.ent" 
             token="@@DEFAULT_CONFIG_LONG@@" value="${default.parser.config.qualified}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Generate HTML docs                                                  -->
  <!-- =================================================================== -->
  <target name="docs" depends="prepare, prepare-docs">
    <echo message="Building docs for ${parser.Name} ${parser.Version} ..." />
    <java fork="yes"
          classpath="${java.class.path}:${doc.generator.package}:./tools/xalan.jar"
          classname="${doc.generator}"
          failOnError="yes">
      <arg value="targetDirectory=${build.docs}"/>
      <arg value="${build.dir}/xdocs/docs-book.xml"/>
      <arg value="${build.dir}/xdocs/style"/>
    </java>

    <copy file="${docs.dir}/download.cgi" tofile="${build.docs}/download.cgi"/>
    
  </target>


  <target name="javadoc-replace" unless="additional.param">
    <replace token="@xerces.internal" dir="${build.src}">
      <replacevalue><![CDATA[<DL><DT><H1 style="font-size:110%">INTERNAL:</H1><DD>Usage of this class is not supported. It may be altered or removed at any time.</DD></DT></DL>]]></replacevalue>
    </replace>
  	
    <replace token="@xerces.experimental" dir="${build.src}">
      <replacevalue><![CDATA[<DL><DT><H1 style="font-size:150%">EXPERIMENTAL:</H1><DD>This class should not be considered stable. It is likely to be altered or replaced in the future.</DD></DT></DL>]]></replacevalue>
    </replace>
  </target>
	
  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->
  <target name="javadocs" depends="prepare-src">	
  		
    <condition property="additional.param" value=" -taglet org.apache.xerces.util.ExperimentalTaglet -taglet org.apache.xerces.util.InternalTaglet -tagletpath ${tools.dir}/bin/xerces2taglets.jar">
      <available classname="com.sun.tools.doclets.Taglet"/>
    </condition>
  	
    <antcall target="javadoc-replace" />
  	
    <condition property="additional.param" value="">
      <not>
        <available classname="com.sun.tools.doclets.Taglet"/>
      </not>
    </condition>
  	
    <mkdir dir='${build.dir}/docs/javadocs/api'/>
    <javadoc packagenames='javax.xml.*,org.w3c.*,org.xml.*'
      locale='en_US'
      sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/api'
      author='true' version='true'
      windowtitle='XML Standard API' doctitle='XML Standard API'
      bottom='${copyright}'
      additionalparam='${additional.param}'
      />
    <mkdir dir='${build.dir}/docs/javadocs/xni'/>
    <javadoc packagenames='org.apache.xerces.xni.*'
      locale='en_US'
      sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/xni'
      author='true' version='true'
      windowtitle='Xerces Native Interface' 
      doctitle='Xerces Native Interface'
      bottom='${copyright}'
      additionalparam='${additional.param}'
      />
    <mkdir dir='${build.dir}/docs/javadocs/xs'/>
    <javadoc packagenames='org.apache.xerces.xs, org.apache.xerces.xs.datatypes'
      locale='en_US'
      sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/xs'
      author='true' version='true'
      windowtitle='XML Schema API' 
      doctitle='XML Schema API'
      bottom='${copyright}'
      additionalparam='${additional.param}'
      />
    
    <mkdir dir='${build.dir}/docs/javadocs/xerces2'/>
    <javadoc packagenames='org.apache.xerces.dom.*,
                           org.apache.xerces.impl.*,
                           org.apache.xerces.jaxp.*,
                           org.apache.xerces.parsers,
                           org.apache.xerces.util,
                           org.apache.xerces.xinclude,
                           org.apache.xerces.xpointer'
      locale='en_US'
      sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/xerces2'
      classpath='${tools.dir}/${jar.resolver}'
      author='true' version='true'
      windowtitle='Xerces2 Implementation' 
      doctitle='Xerces2 Implementation'
      bottom='${copyright}'
      additionalparam='${additional.param}'
      />
    <mkdir dir='${build.dir}/docs/javadocs/other'/>
    <javadoc packagenames='org.apache.html.*,
                           org.apache.wml.*,
                           org.apache.xml.serialize.*'
      locale='en_US'
      sourcepath='${build.src}' destdir='${build.dir}/docs/javadocs/other'
      author='true' version='true'
      windowtitle='Other Classes' doctitle='Other Classes'
      bottom='${copyright}'
      additionalparam='${additional.param}'
      />
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the source distribution                                    -->
  <!-- =================================================================== -->
  <target name="pack-src" depends="init">
    <echo message="Building the source distribution files (zip,tar)"/>
    <delete dir="${distbin.dir}"/>

    <mkdir dir="${distsrc.dir}"/>
    <mkdir dir="${distsrc.dir}/src"/>
    <mkdir dir="${distsrc.dir}/data"/>
    <mkdir dir="${distsrc.dir}/docs"/>
    <mkdir dir="${distsrc.dir}/samples"/>

    <copy todir="${distsrc.dir}/src" >
        <fileset
            dir="${src.dir}"  
            includes="org/**, dom3/**, javax/**, manifest.xerces"
            excludes="**/CVS*, **/.#*, **/*.class
                      **/v1/** **/v2/**"
        />
    </copy>


    <copy todir="${distsrc.dir}/data" >
        <fileset
            dir="${data.dir}"  
            excludes="**/CVS*, **/.#*"
        />
    </copy>

    <copy todir="${distsrc.dir}/docs" >
        <fileset
            dir="${docs.dir}" 
            excludes="**/CVS*, **/*.#*, pdf/**, html/**, **/javadocs*"
        />
    </copy>

    <copy todir="${distsrc.dir}/samples" >
        <fileset
            dir="${samples.dir}"  
            excludes="**/CVS*, **/*.#*"
        />
    </copy>

    <copy file="LICENSE" tofile="${distsrc.dir}/LICENSE"/>
    <copy file="NOTICE" tofile="${distsrc.dir}/NOTICE"/>    
    <copy file="LICENSE.DOM-documentation.html" tofile="${distsrc.dir}/LICENSE.DOM-documentation.html"/>
    <copy file="LICENSE.DOM-software.html" tofile="${distsrc.dir}/LICENSE.DOM-software.html"/>
    <copy file="LICENSE-SAX.html" tofile="${distsrc.dir}/LICENSE-SAX.html"/>
    <copy file="LICENSE.resolver.txt" tofile="${distsrc.dir}/LICENSE.resolver.txt"/>
    <copy file="README" tofile="${distsrc.dir}/README"/>
    <copy file="Readme.html" tofile="${distsrc.dir}/Readme.html"/>
    <copy file="STATUS" tofile="${distsrc.dir}/STATUS"/>
    <copy file="TODO" tofile="${distsrc.dir}/TODO"/>
    <copy file="ISSUES" tofile="${distsrc.dir}/ISSUES"/>
    <copy file="build.xml" tofile="${distsrc.dir}/build.xml"/>
    <copy file="${basedir}/build.sh" tofile="${distsrc.dir}/build.sh" />
    <chmod file="${distsrc.dir}/build.sh" perm="ugo+rx" />
    <copy file="${basedir}/build.bat" tofile="${distsrc.dir}/build.bat" />

    <zip zipfile="${build.dir}/${parser.Name}-src.${parser.version}.zip" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" excludes="*.class"/>

    <tar tarfile="${build.dir}/${parser.Name}-src.${parser.version}.tar" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" excludes="*.class"/>
    <gzip zipfile="${build.dir}/${parser.Name}-src.${parser.version}.tar.gz"
          src="${build.dir}/${parser.Name}-src.${parser.version}.tar" />
    <!-- and why not get rid of the un-gzip'd tarball and save ourselves 15 Mb? -->
    <delete file="${build.dir}/${parser.Name}-src.${parser.version}.tar"/>
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the tools distribution                                     -->
  <!-- =================================================================== -->
  <target name="pack-tools" depends="init">
    <echo message="Building the tools distribution files (zip,tar)"/>
    <mkdir dir="${disttools.dir}"/>

    <copy todir="${disttools.dir}" >
        <fileset
            dir="${tools.dir}"  
            includes="**/*.txt, **/*.bat, **/*.jar, **/*.zip, **/*.opt"
            excludes="**/CVS*, **/.#*, **/*.class"
        />
    </copy>

    <zip zipfile="${build.dir}/${parser.Name}-tools.${parser.version}.zip" 
         basedir="${build.dir}"
         includes="tools/**"/>

    <tar tarfile="${build.dir}/${parser.Name}-tools.${parser.version}.tar" 
         basedir="${build.dir}"
         includes="tools/**"/>
    <gzip zipfile="${build.dir}/${parser.Name}-tools.${parser.version}.tar.gz"
          src="${build.dir}/${parser.Name}-tools.${parser.version}.tar" />
    <!-- and why not get rid of the un-gzip'd tarball and save ourselves Mb? -->
    <delete file="${build.dir}/${parser.Name}-tools.${parser.version}.tar"/>
    <!-- and delete the directory:  -->
    <delete dir="${disttools.dir}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Prepares common parts of the binary distributions                   -->
  <!-- =================================================================== -->
  <target name="pack-bin-common" depends="javadocs, docs, sampjar">

    <echo message="Building the binary distribution files (zip,tar)"/>
    <delete dir="${distbin.dir}"/>
    <mkdir dir="${distbin.dir}"/>
    <mkdir dir="${distbin.dir}/data"/>
    <mkdir dir="${distbin.dir}/docs"/>
    <mkdir dir="${distbin.dir}/docs/javadocs"/>
    <mkdir dir="${distsrc.dir}/samples"/>

    <copy todir="${distbin.dir}/data" >
        <fileset
            dir="${data.dir}"
            excludes="**/CVS*, **/*.#*"
        />
    </copy>

    <copy todir="${distbin.dir}/docs" >
        <fileset dir="${build.docs}" />
    </copy>

    <copy todir="${distbin.dir}/docs/javadocs/api" >
        <fileset dir="${build.dir}/docs/javadocs/api" />
    </copy>
    <copy todir="${distbin.dir}/docs/javadocs/xni" >
        <fileset dir="${build.dir}/docs/javadocs/xni" />
    </copy>
    <copy todir="${distbin.dir}/docs/javadocs/xerces2" >
        <fileset dir="${build.dir}/docs/javadocs/xerces2" />
    </copy>
    <copy todir="${distbin.dir}/docs/javadocs/other" >
        <fileset dir="${build.dir}/docs/javadocs/other" />
    </copy>

    <copy file="LICENSE" tofile="${distbin.dir}/LICENSE"/>
    <copy file="NOTICE" tofile="${distsrc.dir}/NOTICE"/>
    <copy file="LICENSE.DOM-documentation.html" tofile="${distsrc.dir}/LICENSE.DOM-documentation.html"/>
    <copy file="LICENSE.DOM-software.html" tofile="${distsrc.dir}/LICENSE.DOM-software.html"/>
    <copy file="LICENSE-SAX.html" tofile="${distbin.dir}/LICENSE-SAX.html"/>
    <copy file="LICENSE.resolver.txt" tofile="${distbin.dir}/LICENSE.resolver.txt"/>
    <copy file="Readme.html" tofile="${distbin.dir}/Readme.html"/>

    <copy file="${build.dir}/${jar.samples}" tofile="${distbin.dir}/${jar.samples}"/>

    <copy todir="${distsrc.dir}/samples" >
        <fileset
            dir="${samples.dir}"
            excludes="**/CVS*, **/*.#*"
        />
    </copy>

    <copydir src="${samples.dir}" dest="${distsrc.dir}/samples" excludes="**/CVS*, **/*.#*"/>
  </target>

  <!-- =================================================================== -->
  <!-- Prepares the binary distribution                                    -->
  <!-- =================================================================== -->
  <target name="pack-bin" depends="pack-bin-common, jars">
    <copy file="${build.dir}/${jar.parser}" tofile="${distbin.dir}/${jar.parser}"/>
    <!-- support xml-commons APIs -->
    <copy file="${tools.dir}/${jar.apis}" tofile="${distbin.dir}/${jar.apis}"/>
    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${distbin.dir}/${jar.resolver}"/>

    <zip zipfile="${build.dir}/${parser.Name}-bin.${parser.version}.zip" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" 
         excludes="*.class, **/${deprecatedjar.parser}"/>
    <tar tarfile="${build.dir}/${parser.Name}-bin.${parser.version}.tar" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" 
         excludes="*.class, **/${deprecatedjar.parser}"/>
    <gzip zipfile="${build.dir}/${parser.Name}-bin.${parser.version}.tar.gz"
          src="${build.dir}/${parser.Name}-bin.${parser.version}.tar" />
    <!-- as before, let's kill of the ungzip'd tarball! -->
    <delete file="${build.dir}/${parser.Name}-bin.${parser.version}.tar"/>

  </target>

  <!-- =================================================================== -->
  <!-- Prepares the deprecated binary distribution                         -->
  <!-- =================================================================== -->
  <target name="deprecated-bin" depends="pack-bin-common, deprecatedjars">
    <copy file="${build.dir}/${deprecatedjar.parser}" tofile="${distbin.dir}/${deprecatedjar.parser}"/>
    
    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${distbin.dir}/${jar.resolver}"/>

    <zip zipfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.zip" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" 
         excludes="*.class, **/${jar.parser}, **/${jar.apis}"/>
    <tar tarfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar" 
         basedir="${build.dir}"
         includes="${parser.shortname}-${parser_version}/**" 
         excludes="*.class, **/${jar.parser}, **/${jar.apis}"/>
    <gzip zipfile="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar.gz"
          src="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar" />
    <!-- as before, let's kill of the ungzip'd tarball! -->
    <delete file="${build.dir}/deprecated${parser.Name}-bin.${parser.version}.tar"/>

  </target>

  <!-- =================================================================== -->
  <!-- Do a sanity test using samples                                      -->
  <!-- =================================================================== -->
  <target name="test" depends="tests">
    <echo message="Performing sanity test for ${parser.Name} ${parser.Version} ..." />
    <echo message="Using classpath=&apos;${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes&apos;" />
    <echo message="Running sax.Counter ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="sax.Counter"
          failOnError="yes">
       <arg value="${data.dir}/personal.xml"/>
    </java>
    <echo message="Running sax.Writer ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes" 
          classname="sax.Writer"
          failOnError="yes">
       <arg value="${data.dir}/personal.xml"/>
    </java>
    <echo message="Running dom.Counter ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.Counter"
          failOnError="yes">
       <arg value="${data.dir}/personal.xml"/>
    </java>
    <echo message="Running dom.Writer ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes" 
          classname="dom.Writer"
          failOnError="yes">
       <arg value="${data.dir}/personal.xml"/>
    </java>
    <echo message="Running thread.Test dom" />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="thread.Test"
          failOnError="yes">
           <arg value="-dom"/>
           <arg value="-threads"/>
           <arg value="20"/>
           <arg value="-time"/>
           <arg value="10"/>
           <arg value="${data.dir}/personal-schema.xml"/>

    </java>
    <echo message="Running thread.Test sax" />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="thread.Test"
          failOnError="yes">
           <arg value="-threads"/>
           <arg value="20"/>
           <arg value="-time"/>
           <arg value="10"/>
           <arg value="${data.dir}/personal-schema.xml"/>

    </java>



    <!--
    <echo message="Running DOMFilter ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.DOMFilter"
          args="-p dom.wrappers.DOMParser ${data.dir}/personal.xml"/>
    -->
    <!-- The following are samples but not command-line applications.
    <echo message="Running IteratorView ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.traversal.IteratorView"
          failOnError="yes"
          args="${data.dir}/personal.xml"/>
    <echo message="Running TreeWalkerView ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.traversal.TreeWalkerView"
          failOnError="yes"
          args="${data.dir}/personal.xml"/>
    <echo message="Running TreeViewer ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.TreeViewer"
          failOnError="yes"
          args="${data.dir}/personal.xml"/>
     -->
    <echo message="Running dom.DTest ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.DTest"
          failOnError="yes">
    </java>
    <echo message="Running dom.mem.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.mem.Test"
          failOnError="yes">
    </java>
    <echo message="Running dom.range.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.range.Test"
          failOnError="yes">
		<arg value="all"/>
    </java>

    <echo message="Running dom.ids.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.ids.Test"
          failOnError="yes">
    </java>
    <echo message="Running dom.serialization.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.serialization.Test"
          failOnError="yes">
           <arg value="${data.dir}/personal-schema.xml"/>
           <arg value="out.xml"/>
    </java>
    <echo message="Running schema.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="schema.Test"
          failOnError="yes">
    </java>
    <echo message="Running jaxp.PropertyTest ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="jaxp.PropertyTest"
          failOnError="yes">
    </java>
    <echo message="Running jaxp.JAXPSpecTest ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="jaxp.JAXPSpecTest"
          failOnError="yes">
           <arg value="testSchemaLanguageSAX"/>
           <arg value="testSchemaSourceSAX"/>
           <arg value="testSchemaLanguageDOM"/>
           <arg value="testSchemaSourceDOM"/>
    </java>
    <echo message="Running xinclude.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="xinclude.Test"
          failOnError="yes">
    </java>
    <echo message="Running dom.registry.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.registry.Test"
          failOnError="yes">
    </java>
    <echo message="Running dom.dom3.Test ..." />
    <java fork="yes"
          classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${build.dir}/classes"
          classname="dom.dom3.Test"
          failOnError="yes">
    </java>    
  </target>

  <!-- =================================================================== -->
  <!-- Builds both deprecated xerces and sample jar files                  -->
  <!-- =================================================================== -->
  <target name="deprecatedjars" depends="deprecatedjar, sampjar">
    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${build.dir}/${jar.resolver}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Builds xercesImpl, xmlParserAPIs and sample jar files               -->
  <!-- =================================================================== -->
  <target name="jars" depends="jar, sampjar">
    <!-- support xml-commons APIs -->
    <copy file="${tools.dir}/${jar.apis}" tofile="${build.dir}/${jar.apis}"/>

    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${build.dir}/${jar.resolver}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Builds and packages tools, sources and binary distributions         -->
  <!-- =================================================================== -->
  <target name="all" depends="pack-bin, pack-src, pack-tools">
  </target>

  <!-- =================================================================== -->
  <!-- Builds and packages tools, sources and binary distributions         -->
  <!-- =================================================================== -->
  <target name="deprecatedall" depends="pack-src, deprecated-bin, pack-tools">
  </target>

  <!-- =================================================================== -->
  <!-- Cleans everything                                                   -->
  <!-- =================================================================== -->
  <target name="clean" depends="init">
    <delete dir="${build.dir}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the dtd implementation class package                       -->
  <!-- (that is, with no schema support or WML/HTML DOM.)                  -->
  <!-- =================================================================== -->
  <target name="dtdjar" depends="dtdcompile">
    <jar jarfile="${build.dir}/dtd-${jar.parser}"
         basedir="${build.dest}"
         compress="true"
         includes="org/apache/**, META-INF/**
                   org/w3c/dom/html/HTMLDOMImplementation.class
                   org/w3c/dom/ls/**
                   org/w3c/dom/DOMError.class
                   org/w3c/dom/DOMErrorHandler.class
                   org/w3c/dom/DOMImplementationSource.class
                   org/w3c/dom/DOMImplementationRegistry.class
                   org/w3c/dom/DOMLocator.class
                   org/w3c/dom/UserDataHandler.class"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the dtd source directory                                  -->
  <!-- =================================================================== -->
  <target name="dtdcompile" depends="dtdprepare-src">
    <copy todir="${build.dest}">
      <fileset dir="${build.src}"
        includes="**/*.res, **/*.properties">
      </fileset>
    </copy>

    <xjavac srcdir="${build.src}"
           destdir="${build.dest}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}"
           includeAntRuntime="false"
           includeJavaRuntime="true"
           classpath="${tools.dir}/${jar.resolver}"/>
  </target>


  <!-- =================================================================== -->
  <!-- Compiles the dtd source code package                               -->
  <!-- =================================================================== -->
  <target name="dtdprepare-src" depends="prepare-common">
    <copy file="${src.dir}/org/apache/xerces/parsers/org.apache.xerces.xni.parser.DTDConfiguration"
      tofile="${build.dest}/META-INF/services/org.apache.xerces.xni.parser.XMLParserConfiguration"/>
      
    <copy file="${src.dir}/org/apache/xerces/dom/org.apache.xerces.dom.DOMImplementationSourceImpl"
      tofile="${build.dest}/META-INF/services/org.w3c.dom.DOMImplementationSourceList"/>

    <!-- copy src files -->
    <copy todir="${build.src}">
        <fileset 
            dir="${src.dir}"
            includes="javax/**, org/**" 
            excludes="**/classfiles_updated **/CVS* **/.#* **/XMLMessages.java
                       **/DatatypeContentModel.java **/ComplexTypeInfo.java
                       **/v1/** **/v2/**
                        javax.xml.parsers.ConvertToURI.java
                        org/apache/xerces/dom/DOMXSImplementationSourceImpl.java
                        org/apache/xerces/impl/xs/*.java
                        org/apache/xerces/impl/dv/xs/**
                        org/apache/xerces/impl/xs/identity/**
                        org/apache/xerces/impl/xs/traversers/**
                        org/apache/xerces/impl/xs/models/**
                        org/apache/xerces/impl/xs/opti/**
                        org/apache/xerces/impl/xs/util/NSItemListImpl.java                      
                        org/apache/xerces/impl/xs/util/XInt.java
                        org/apache/xerces/impl/xs/util/XIntPool.java
                        org/apache/xerces/impl/xs/util/XSNamedMap4Types.java
                        org/apache/xerces/impl/xs/util/XSNamedMapImpl.java
                        org/apache/xerces/impl/xs/util/XSGrammarPool.java
                        org/apache/xerces/impl/xs/dom/**
                        org/apache/xerces/impl/xpath/**
                        org/apache/xerces/impl/xpath/regex/**
                        org/apache/xerces/impl/dv/Schema*.java
                        org/apache/xerces/impl/msg/XMLSchema**
                        org/apache/xerces/parsers/DOMASBuilderImpl.java
                        org/apache/xerces/parsers/StandardParserConfiguration.java
                        org/apache/xerces/parsers/IntegratedParserConfiguration.java
                        org/apache/xerces/parsers/XIncludeParserConfiguration.java
                        org/apache/xerces/parsers/SecurityConfiguration.java
                        org/apache/xerces/parsers/XML11Configurable.java
                        org/apache/xerces/parsers/XML11Configuration.java
                        org/apache/xerces/parsers/XML11DTDConfiguration.java
                        org/apache/xerces/parsers/XML11NonValidatingConfiguration.java
                        org/apache/xerces/parsers/XMLGrammarCachingConfiguration.java
                        org/apache/xerces/parsers/CachingParserPool.java
                        org/apache/xerces/xinclude/**
                        org/apache/xerces/xpointer/**
                        org/apache/xerces/dom/ASModelImpl.java
                        org/apache/xerces/dom/ASDOMImplementationImpl.java
                        org/apache/xerces/impl/XML11D*.java
                        org/apache/xerces/impl/XML11NamespaceBinder.java
                        org/apache/xerces/impl/XML11NSDocumentScannerImpl.java
                        org/apache/xerces/impl/XMLVersionDetector.java
                        org/apache/xerces/util/DOMUtil.java
                        org/apache/html/**
                        org/apache/wml/**
           ">
        </fileset>
    </copy>
    
    <!-- copy src files -->
    <copy todir="${build.src}">
        <fileset 
            dir="${src.dir}"
            includes="org/apache/xerces/xs/**,
                      org/apache/xerces/impl/xs/XSTypeDecl.java
                     ">
        </fileset>
    </copy>

    <!-- HACK: DOM implementation now is aware of type information
         and thus is imports XSSimpleTypeDecl (for XML Schema type support)
         Since in DTD jars we never going to have XSSimpleTypeDecl we can safely
         replace it by String. The code after replacement may look a bit strange.. 
         but there is nothing we can do at this point-->
    <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
             token="import org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl;" value=""/>
    <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
             token="XSSimpleTypeDecl" value="String"/>
    <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
             token="return ((String)type).getName();" value="return (String)type;"/>
    <replace file="${build.dir}/src/org/apache/xerces/dom/AttrNSImpl.java" 
             token="return ((String)type).getNamespace();" value="return null;"/>
             
    <!-- HACK: Remove reference to XML11Configurable from SAX parser -->
    <replace file="${build.dir}/src/org/apache/xerces/parsers/AbstractSAXParser.java"
             token="return (fConfiguration instanceof XML11Configurable);" value="return false;"/>
 
    <!-- now deal with API's:  -->
    <unzip src="${src.apis.zip}" dest="${build.src}">
        <patternset
            includes="org/xml/sax/** 
                javax/xml/parsers/**
                org/w3c/dom/*
                org/w3c/dom/events/**
                org/w3c/dom/html/**
                org/w3c/dom/ranges/**
                org/w3c/dom/traversal/**"
        />
    </unzip>


    <!-- substitute tokens as needed -->
    <replace file="${build.dir}/src/org/apache/xerces/impl/Version.java" 
             token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Builds xercesImpl (dtd), xmlParserAPIs, and sample jars            -->
  <!-- =================================================================== -->
  <target name="dtdjars" depends="dtdjar, sampjar">
    <!-- support xml-commons APIs -->
    <copy file="${tools.dir}/${jar.apis}" tofile="${build.dir}/${jar.apis}"/>
    
    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${build.dir}/${jar.resolver}"/>
       
  </target>

  <!-- =================================================================== -->
  <!-- Build xercesDV jar                                                  -->
  <!-- =================================================================== -->
  <target name="dvjar" depends="dvcompile">
    <jar jarfile="${build.dir}/${jar.dv}"
         basedir="${build.dest}"
         compress="true"
         includes="org/apache/xerces/**"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the dv source directory                                    -->
  <!-- =================================================================== -->
  <target name="dvcompile" depends="dvprepare-src">
    <copy todir="${build.dest}">
      <fileset dir="${build.src}"
        includes="**/*.properties">
      </fileset>
    </copy>

    <xjavac srcdir="${build.src}"
           destdir="${build.dest}"
    	   classpath="${build.dir}/classes:${tools.dir}/${jar.apis}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}"
           includeAntRuntime="false"
           includeJavaRuntime="true"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the dv source code package                                 -->
  <!-- =================================================================== -->
  <target name="dvprepare-src" depends="prepare">

    <!-- copy src files -->
    <copy todir="${build.src}">
        <fileset 
            dir="${src.dir}"
            includes="org/apache/xerces/impl/Constants.java
        	          org/apache/xerces/impl/dv/**
                      org/apache/xerces/impl/msg/XMLSchema**
                      org/apache/xerces/impl/xpath/regex/**
		      org/apache/xerces/impl/xs/util/ShortListImpl.java,
        	          org/apache/xerces/impl/xs/SchemaSymbols.java
                      org/apache/xerces/impl/xs/XSTypeDecl.java
        	org/apache/xerces/jaxp/datatype/*.java
			org/apache/xerces/xs/XSException.java
			org/apache/xerces/xs/StringList.java
			org/apache/xerces/xs/ShortList.java
			org/apache/xerces/xs/XSAnnotation.java
			org/apache/xerces/xs/XSAttributeDeclaration.java
			org/apache/xerces/xs/XSAttributeGroupDefinition.java
			org/apache/xerces/xs/XSAttributeUse.java
			org/apache/xerces/xs/XSComplexTypeDefinition.java
			org/apache/xerces/xs/XSConstants.java
			org/apache/xerces/xs/XSElementDeclaration.java
			org/apache/xerces/xs/XSIDCDefinition.java
			org/apache/xerces/xs/XSModel.java
			org/apache/xerces/xs/XSModelGroup.java
			org/apache/xerces/xs/XSModelGroupDefinition.java
			org/apache/xerces/xs/XSNamedMap.java
			org/apache/xerces/xs/XSNamespaceItem.java
			org/apache/xerces/xs/XSNamespaceItemList.java
			org/apache/xerces/xs/XSNotationDeclaration.java
			org/apache/xerces/xs/XSObject.java
			org/apache/xerces/xs/XSObjectList.java
			org/apache/xerces/xs/XSParticle.java
			org/apache/xerces/xs/XSSimpleTypeDefinition.java
			org/apache/xerces/xs/XSTerm.java
			org/apache/xerces/xs/XSTypeDefinition.java
			org/apache/xerces/xs/XSWildcard.java
			org/apache/xerces/xs/XSFacet.java
                      org/apache/xerces/xs/XSMultiValueFacet.java
                      org/apache/xerces/xs/datatypes/*.java
                      org/apache/xerces/impl/xs/util/StringListImpl.java
                      org/apache/xerces/impl/xs/util/XSObjectListImpl.java
                      org/apache/xerces/util/DatatypeMessageFormatter.java
                      org/apache/xerces/util/ObjectFactory.java
                      org/apache/xerces/util/SecuritySupport.java
                      org/apache/xerces/util/SecuritySupport12.java
                      org/apache/xerces/util/SymbolHash.java
                      org/apache/xerces/util/URI.java
                      org/apache/xerces/util/XMLChar.java
                      org/apache/xerces/xni/NamespaceContext.java
                      org/apache/xerces/xni/QName.java
                     "
            excludes="org/apache/xerces/impl/dv/DatatypeValidator.java
                      org/apache/xerces/impl/dv/DTDDVFactory.java
                      org/apache/xerces/impl/dv/dtd/**
                      org/apache/xerces/impl/dv/xs/SchemaDVFactoryImpl.java
                     ">
        </fileset>
    </copy>
    
    <!-- substitute tokens as needed -->
    <replace file="${build.src}/org/apache/xerces/impl/dv/SchemaDVFactory.java" 
             token="SchemaDVFactoryImpl" value="FullDVFactory"/>
  </target>


  <!-- =================================================================== -->
  <!--  Retrieve the XML Conformance test suite from sourceforge           -->
  <!-- =================================================================== -->
  <target name="get-conftests" depends="init">
    <mkdir dir="tests/conformance"/>
    <get src="http://prdownloads.sourceforge.net/xmlconf/utilities.jar" dest="tests/conformance/utilties.jar" verbose="true" usetimestamp="true"/>
    <cvspass cvsroot=":pserver:anonymous@cvs.xmlconf.sourceforge.net:/cvsroot/xmlconf" password=""/>
    <cvs cvsRoot=":pserver:anonymous@cvs.xmlconf.sourceforge.net:/cvsroot/xmlconf" package="xml" dest="tests/conformance"/>
  </target>

  <!-- =================================================================== -->
  <!-- Run the XML Conformance test suite from sourceforge                 -->
  <!-- =================================================================== -->
  <target name="run-conftests" depends="init">
    <java classname="xml.testing.Driver" output="tests/conformance/report-nv.html">
      <arg value="tests/conformance/xml/suite/xmlconf.xml"/>
      <arg value="org.apache.xerces.parsers.SAXParser"/>
      <arg value="tests/conformance/xml/template.xml"/>
      <arg value="nv"/>
      <arg value="${parser.version}"/>
      <classpath>
        <pathelement location="tests/conformance/utilities.jar"/>
        <pathelement location="build/xmlParserAPIs.jar"/>
        <pathelement location="build/xercesImpl.jar"/>
      </classpath>
    </java>

    <java classname="xml.testing.Driver" output="tests/conformance/report-val.html">
      <arg value="tests/conformance/xml/suite/xmlconf.xml"/>
      <arg value="org.apache.xerces.parsers.SAXParser"/>
      <arg value="tests/conformance/xml/template.xml"/>
      <arg value="val"/>
      <arg value="${parser.version}"/>
      <classpath>
        <pathelement location="tests/conformance/utilities.jar"/>
        <pathelement location="build/xmlParserAPIs.jar"/>
        <pathelement location="build/xercesImpl.jar"/>
      </classpath>
    </java>



  </target>

  <!-- =================================================================== -->
  <!-- Prepares the source code with Schema 1.1 support                    -->
  <!-- =================================================================== -->
  <target name="prepare-src-schema11" depends="prepare-src">
  	<replace file="${build.src}/org/apache/xerces/impl/Constants.java"
  		token="SCHEMA_1_1_SUPPORT = false" value="SCHEMA_1_1_SUPPORT = true"/>
  	<replace file="${build.src}/org/apache/xerces/xs/XSConstants.java"
  	    token="public static final short UNAVAILABLE_DT            = 45;"
  	    value="public static final short UNAVAILABLE_DT            = 45;&#xA;
      &#xA;    public static final short YEARMONTHDURATION_DT      = 46;&#xA;
      &#xA;    public static final short DAYTIMEDURATION_DT        = 47;&#xA;
      &#xA;    public static final short PRECISIONDECIMAL_DT       = 48;&#xA;
      &#xA;    public static final short ANYATOMICTYPE_DT          = 49;"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the source directory with Schema 1.1 support               -->
  <!-- =================================================================== -->
  <target name="compile-schema11" depends="prepare-src-schema11">
        <copy todir="${build.dest}">
          <fileset dir="${build.src}"
            includes="**/*.res, **/*.properties">
          </fileset>
        </copy>

        <xjavac srcdir="${build.src}"
               destdir="${build.dest}"
               classpath="${build.dir}/classes:${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}"
               debug="${debug}"
               deprecation="${deprecation}"
               optimize="${optimize}"
               includeAntRuntime="false"
               includeJavaRuntime="false"
               excludes="org/xml/sax/** 
                    javax/xml/**
                    org/w3c/dom/*
                    org/w3c/dom/events/**
                    org/w3c/dom/html/**
                    org/w3c/dom/ranges/**
                    org/w3c/dom/traversal/**
                    org/w3c/dom/xpath/**"
               />
  	</target>
  
  <!-- =================================================================== -->
  <!-- Creates the implementation class package with Schema 1.1 support    -->
  <!-- =================================================================== -->
  <target name="jar-schema11" depends="compile-schema11">
    <!-- take care of manifest file -->
    <filter token="java.version" value="${java.version}"/>
    <filter token="java.vendor" value="${java.vendor}"/>
    <filter token="impl.name" value="${parser.Name} ${parser.Version}"/>
    <filter token="impl.version" value="${parser.Version}"/>   
    <copy todir="${build.dir}" file="${src.dir}/manifest.xerces" filtering="true"/>
    <jar jarfile="${build.dir}/schema11-${jar.parser}"
         basedir="${build.dest}"
         compress="true"
         includes="org/apache/**, META-INF/**
                    org/w3c/dom/html/HTMLDOMImplementation.class
                   org/w3c/dom/ls/**
                   org/w3c/dom/DOMError.class
                   org/w3c/dom/DOMErrorHandler.class
                   org/w3c/dom/DOMImplementationSource.class
                   org/w3c/dom/DOMImplementationRegistry.class
                   org/w3c/dom/DOMLocator.class
                   org/w3c/dom/UserDataHandler.class"
         manifest="${build.dir}/manifest.xerces">
      <manifest>
        <attribute name="Ant-Version" value="${ant.version}"/>
      </manifest>
    </jar>
  </target>	

  <!-- =================================================================== -->
  <!-- Builds xercesImpl, xml-apis and sample jars with Schema 1.1 support -->
  <!-- =================================================================== -->
  <target name="jars-schema11" depends="jar-schema11, sampjar">
    <!-- support xml-commons APIs -->
    <copy file="${tools.dir}/${jar.apis}" tofile="${build.dir}/${jar.apis}"/>

    <!-- support xml-commons resolver -->
    <copy file="${tools.dir}/${jar.resolver}" tofile="${build.dir}/${jar.resolver}"/>
  </target>
</project>
