/* * Created on 29.7.2004 */ package net.sf.tomp.xquery.ant; import java.io.File; import java.util.ArrayList; import java.util.List; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; /** * @author tomp * * Very simple Ant task for executing XQuery from within Ant build files. * Simply set the queryfile= and/or some other options such as * File outfile, boolean trace etc.
* Example of an build file using this new (xquery) Ant task:
<project name="XQueryExample" default="main" basedir=".">

    <property name="xmltools.home" value="c:/devel/xml-tools"/>

    <taskdef name="xquery" classname="net.sf.tomp.xquery.ant.XQueryTask">
        <classpath>
            <fileset dir="${xmltools.home}/target/lib">
                <include name="*.jar"/>
            </fileset>
            <pathelement location="${xmltools.home}/target/xml-tools-1.0.jar"/>
        </classpath>
    </taskdef>

    <target name="main">
        <xquery queryfile="tour.xq" outfile="outfile.html" verbose="yes"/>
    </target>

</project>
It will give:
Buildfile: build.xml

main:
   [xquery] net.sf.saxon.Query.main args=[-o, C:\devel\xml-tools\demo\outfile.html,
C:\devel\xml-tools\demo\tour.xq]

BUILD SUCCESSFUL
Total time: 2 seconds
*/ public class XQueryTask extends Task { private boolean verbose = false; /** * @param verbose The verbose to set. */ public void setVerbose(boolean verbose) { this.verbose = verbose; } private File queryfile; private boolean standardtree = false; private boolean explainoptimized = false; private boolean disallowjava = false; private File outfile; private Class uriresolver; private boolean strip = false; private boolean versionandtiming = false; private boolean trace = false; private boolean tracejava = false; private boolean urls = false; private boolean wrap = false; public void execute() throws BuildException { List params = new ArrayList(); if (standardtree) { params.add("-ds"); } if (explainoptimized) { params.add("-e"); } if (disallowjava) { params.add("-noext"); } if (uriresolver != null) { params.add("-r"); params.add(uriresolver.getName()); } if (outfile != null) { params.add("-o"); params.add(outfile.toString()); } if (strip) { params.add("-strip"); } if (versionandtiming) { params.add("-t"); } if (trace) { params.add("-T"); } if (tracejava) { params.add("-TJ"); } if (urls) { params.add("-u"); } if (wrap) { params.add("-wrap"); } if (queryfile != null) { params.add(queryfile.toString()); } if(verbose) { System.out.println("net.sf.saxon.Query.main args="+params); } String[] args = (String[]) params.toArray(new String[0]); try { net.sf.saxon.Query.main(args); } catch (Exception e) { throw new BuildException(e); } } /** * @param disallowjava The disallowjava to set. */ public void setDisallowjava(boolean disallowjava) { this.disallowjava = disallowjava; } /** * @param explainoptimized The explainoptimized to set. */ public void setExplainoptimized(boolean explainoptimized) { this.explainoptimized = explainoptimized; } /** * @param outfile The outfile to set. */ public void setOutfile(File out) { this.outfile = out; } /** * @param queryfile The queryfile to set. */ public void setQueryfile(File query) { this.queryfile = query; } /** * @param standardtree The standardtree to set. */ public void setStandardtree(boolean standardtree) { this.standardtree = standardtree; } /** * @param strip The strip to set. */ public void setStrip(boolean strip) { this.strip = strip; } /** * @param trace The trace to set. */ public void setTrace(boolean trace) { this.trace = trace; } /** * @param tracejava The tracejava to set. */ public void setTracejava(boolean tracejava) { this.tracejava = tracejava; } /** * @param uriresolver The uriresolver to set. */ public void setUriresolver(Class uriresolver) { this.uriresolver = uriresolver; } /** * @param urls The urls to set. */ public void setUrls(boolean urls) { this.urls = urls; } /** * @param versionandtiming The versionandtiming to set. */ public void setVersionandtiming(boolean versionandtiming) { this.versionandtiming = versionandtiming; } /** * @param wrap The wrap to set. */ public void setWrap(boolean wrap) { this.wrap = wrap; } }