<?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="SimpleServer Config XML" default="all" basedir=".">

	<property name="class.path" value="./lib/xbean.jar:./lib/jsr173_1.0_api.jar">
	</property>

	<property name="src.gen.dir" value="./target/xbeans-src" />

	<property name="bin.gen.dir" value="./target/xbeans-bin" />


	<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" 
		classpath="lib/xbean.jar:lib/jsr173_1.0_api.jar" />

	<target name="all">	
		<!-- Bean generation into target dir -->
		<xmlbean classpath="${class.path}" failonerror="true" javasource="1.5" 
			srcgendir="${src.gen.dir}" classgendir="${bin.gen.dir}" 
			schema="./resources/dictionary.xsd" destfile="./lib/dict_annot_xml_types.jar">
		</xmlbean>

        <!-- Delete temporary bin dir -->
        <delete dir="${bin.gen.dir}" />

        <!-- Delete temporary src dir -->
        <delete dir="${src.gen.dir}" />
	</target>

</project>





