<!--
    Copyright 2004 The Apache Software Foundation

    Licensed 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.
-->

<!-- Specifies the download URLs for the various tools that are being compared with XmlBeans for performance -->

castor.url=http://dist.codehaus.org/castor/0.9.5.4/castor-0.9.5.4.jar
castor.lib.name=castor-0.9.5.4.jar

jibx.url=http://easynews.dl.sourceforge.net/sourceforge/jibx/jibx-beta3c.zip
jibx.lib.name=jibx-beta3c.zip

v1.url=http://www.apache.org/dist/xml/xmlbeans/v1.0.3/bin/xmlbeans-1.0.3.zip
v1.lib.name=xmlbeans-1.0.3.zip

xerces.url=http://archive.apache.org/dist/xml/xerces-j/Xerces-J-bin.2.9.0.zip
xerces.lib.name=Xerces-J-bin.2.9.0.zip
xerces.version=xerces-2_9_0

v2.url=http://apache.tradebit.com/pub/xmlbeans/binaries/xmlbeans-2.0.0.zip
v2.lib.name=xmlbeans-2.0.0.zip
saxon81.url=http://prdownloads.sourceforge.net/saxon/saxonb8-1-1.zip?download
saxon81.lib.name=saxonb8-1-1.zip
