summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2009-03-04 17:31:40 +0000
committerPaul Buetow <paul@buetow.org>2009-03-04 17:31:40 +0000
commit9129838d208c0df7293e5b757661125545cd6df8 (patch)
treecde0b095a7ad120b68450f705d8fc16d278bfff8
parente2c501ba5aaffd9d5ace6bc1706353d9f83329b7 (diff)
flib added
-rw-r--r--libs/FLib/JCalendar/License.txt123
-rw-r--r--libs/FLib/JCalendar/README.txt27
-rw-r--r--libs/FLib/JCalendar/build.xml121
-rw-r--r--libs/FLib/JCalendar/doc-templates/License.html180
-rw-r--r--libs/FLib/JCalendar/doc/example/Example1.java181
-rw-r--r--libs/FLib/JCalendar/doc/example/Example2.java173
-rw-r--r--libs/FLib/JCalendar/doc/examples.html66
-rw-r--r--libs/FLib/JCalendar/doc/features.html58
-rw-r--r--libs/FLib/JCalendar/doc/images/Logo.pngbin0 -> 38186 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-meta-noedit.gifbin0 -> 5036 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-metal-all.gifbin0 -> 6029 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin1.gifbin0 -> 12423 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin2.gifbin0 -> 12928 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-combo-skin3.gifbin0 -> 7246 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-panel-metal-all.gifbin0 -> 5131 bytes
-rw-r--r--libs/FLib/JCalendar/doc/images/screenshot-panel-metal-french.gifbin0 -> 4746 bytes
-rw-r--r--libs/FLib/JCalendar/doc/index.html64
-rw-r--r--libs/FLib/JCalendar/doc/resources.html81
-rw-r--r--libs/FLib/JCalendar/doc/screenshots.html65
-rw-r--r--libs/FLib/JCalendar/doc/stylesheet.css48
-rw-r--r--libs/FLib/JCalendar/doc/tutorial.html149
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/Bundle.properties45
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/DateEvent.java86
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/DateListener.java46
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/JCalendar.java1681
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/JCalendarCombo.java1448
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Back16.gifbin0 -> 130 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Back24.gifbin0 -> 164 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward16.gifbin0 -> 200 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward24.gifbin0 -> 279 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward16.gifbin0 -> 186 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward24.gifbin0 -> 247 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind16.gifbin0 -> 200 bytes
-rw-r--r--libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind24.gifbin0 -> 279 bytes
-rw-r--r--libs/FLib/JCalendar/project.dtd5193
-rw-r--r--libs/FLib/JWizard/License.txt123
-rw-r--r--libs/FLib/JWizard/README.txt26
-rw-r--r--libs/FLib/JWizard/build.xml112
-rw-r--r--libs/FLib/JWizard/doc-templates/License.html180
-rw-r--r--libs/FLib/JWizard/doc/example/Example1.gifbin0 -> 12623 bytes
-rw-r--r--libs/FLib/JWizard/doc/example/Example1.java701
-rw-r--r--libs/FLib/JWizard/doc/examples.html69
-rw-r--r--libs/FLib/JWizard/doc/features.html62
-rw-r--r--libs/FLib/JWizard/doc/images/Logo.pngbin0 -> 36725 bytes
-rw-r--r--libs/FLib/JWizard/doc/images/screenshot-metal.gifbin0 -> 23563 bytes
-rw-r--r--libs/FLib/JWizard/doc/images/screenshot-skin1.gifbin0 -> 46845 bytes
-rw-r--r--libs/FLib/JWizard/doc/images/screenshot-skin2.gifbin0 -> 51570 bytes
-rw-r--r--libs/FLib/JWizard/doc/images/screenshot-skin3.gifbin0 -> 43363 bytes
-rw-r--r--libs/FLib/JWizard/doc/images/screenshot-windows.gifbin0 -> 48207 bytes
-rw-r--r--libs/FLib/JWizard/doc/index.html64
-rw-r--r--libs/FLib/JWizard/doc/resources.html58
-rw-r--r--libs/FLib/JWizard/doc/screenshots.html55
-rw-r--r--libs/FLib/JWizard/doc/stylesheet.css48
-rw-r--r--libs/FLib/JWizard/doc/tutorial.html200
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/Bundle.properties31
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/JWizardDialog.java1015
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/JWizardPanel.java429
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/images/Back16.gifbin0 -> 183 bytes
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/images/Forward16.gifbin0 -> 183 bytes
-rw-r--r--libs/FLib/JWizard/org/freixas/jwizard/images/Help16.gifbin0 -> 661 bytes
-rw-r--r--libs/FLib/JWizard/project.dtd5193
-rw-r--r--libs/FLib/NOTES.txt35
-rw-r--r--libs/FLib/TableLayout/License.txt123
-rw-r--r--libs/FLib/TableLayout/README.txt34
-rw-r--r--libs/FLib/TableLayout/build.xml120
-rw-r--r--libs/FLib/TableLayout/doc-templates/License.html180
-rw-r--r--libs/FLib/TableLayout/doc/example/Example1.java180
-rw-r--r--libs/FLib/TableLayout/doc/example/TableExplorer.java1230
-rw-r--r--libs/FLib/TableLayout/doc/examples.html76
-rw-r--r--libs/FLib/TableLayout/doc/features.html55
-rw-r--r--libs/FLib/TableLayout/doc/images/Logo.pngbin0 -> 62326 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/screenshot1.pngbin0 -> 2523 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/screenshot2.pngbin0 -> 3997 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial1.pngbin0 -> 1245 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial2.pngbin0 -> 1724 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial3.pngbin0 -> 1797 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial4.pngbin0 -> 1765 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial5.pngbin0 -> 1433 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial6.pngbin0 -> 1048 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial7.pngbin0 -> 821 bytes
-rw-r--r--libs/FLib/TableLayout/doc/images/tutorial8.pngbin0 -> 923 bytes
-rw-r--r--libs/FLib/TableLayout/doc/index.html64
-rw-r--r--libs/FLib/TableLayout/doc/resources.html68
-rw-r--r--libs/FLib/TableLayout/doc/screenshots.html48
-rw-r--r--libs/FLib/TableLayout/doc/stylesheet.css48
-rw-r--r--libs/FLib/TableLayout/doc/tutorial.html338
-rw-r--r--libs/FLib/TableLayout/org/freixas/tablelayout/TableLayout.java2049
-rw-r--r--libs/FLib/TableLayout/project.dtd5193
-rw-r--r--libs/FLib/build.xml79
-rw-r--r--libs/FLib/images/Logo.pngbin0 -> 30782 bytes
-rw-r--r--libs/FLib/index.html56
-rw-r--r--libs/FLib/project.dtd5193
92 files changed, 33370 insertions, 0 deletions
diff --git a/libs/FLib/JCalendar/License.txt b/libs/FLib/JCalendar/License.txt
new file mode 100644
index 0000000..be12e9d
--- /dev/null
+++ b/libs/FLib/JCalendar/License.txt
@@ -0,0 +1,123 @@
+ Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to
+make reasonable modifications.
+
+Definitions:
+
+ * "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ * "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of
+ the Copyright Holder.
+
+ * "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ * "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ * "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people
+ involved, and so on. (You will not be required to justify it to
+ the Copyright Holder, but only to the computing community at
+ large as a market that must bear the fee.)
+
+ * "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A
+ Package modified in such a way shall still be considered the
+ Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you
+ do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to
+ Usenet or an equivalent medium, or placing the modifications on
+ a major archive site such as ftp.uu.net, or by allowing the
+ Copyright Holder to include your modifications in the Standard
+ Version of the Package.
+
+ b) use the modified Package only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not
+ conflict with standard executables, which must also be
+ provided, and provide a separate manual page for each
+ non-standard executable that clearly documents how it differs
+ from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the
+ following:
+
+ a) distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or
+ equivalent) on where to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard
+ executables non-standard names, and clearly documenting the
+ differences in manual pages (or equivalent), together with
+ instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this
+ Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever
+ generated them, and may be sold commercially, and may be aggregated
+ with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.
+
+8. Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+The End
diff --git a/libs/FLib/JCalendar/README.txt b/libs/FLib/JCalendar/README.txt
new file mode 100644
index 0000000..8c51360
--- /dev/null
+++ b/libs/FLib/JCalendar/README.txt
@@ -0,0 +1,27 @@
+ JCalendar
+
+This package provides a Calendar component for use in Java programs.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Artistic License. You should have received a
+copy of the Artistic License along with this program (in file
+License.txt). If not, a copy is available at
+
+ http://opensource.org/licenses/artistic-license.php
+
+To build it you'll need Ant. I used version 1.6.2. Use
+
+ ant all
+
+This will create build/jcalendar.jar. To create the API documentation, use
+
+ ant javadoc
+
+To view all the documentation, view doc/index.html.
+
+There is a tutorial in doc/tutorial.html. There are also two sample
+Java program that uses the JCalendar package. You can build and run
+these programs with
+
+ ant runExample1
+ ant runExample2
diff --git a/libs/FLib/JCalendar/build.xml b/libs/FLib/JCalendar/build.xml
new file mode 100644
index 0000000..1bef6f7
--- /dev/null
+++ b/libs/FLib/JCalendar/build.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
+
+<project basedir="." default="all" name="JCalendar">
+
+ <!-- Set up the classpath for compilation and execution -->
+
+ <path id="project.class.path">
+ <pathelement location="."/>
+ <!-- <pathelement location="../../../MediaTracker/Jars/skinlf.jar"/> -->
+ </path>
+
+ <!-- Common settings for all targets -->
+
+ <target name="init" description="Initialize.">
+ <tstamp/>
+ </target>
+
+ <!-- Compile everything -->
+
+ <target depends="init" name="compile" description="Compile the project.">
+ <javac debug="true" deprecation="true" destdir="." srcdir=".">
+ <include name="org/freixas/**"/>
+ <include name="doc/example/**"/>
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+
+ <!-- Place the class files in a jar file -->
+
+ <target depends="compile" name="jar" description="Create a jar file.">
+ <mkdir dir="build"/>
+ <jar basedir="." compress="false" jarfile="build/jcalendar.jar">
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <section name="JCalendar">
+ <attribute name="Specification-Title" value="JCalendar Library"/>
+ <attribute name="Specification-Version" value="${version}"/>
+ <attribute name="Implementation-Title" value="JCalendar"/>
+ <attribute name="Implementation-Version" value="${version} ${TODAY}"/>
+ </section>
+ </manifest>
+ <exclude name="**/*.java"/>
+ <exclude name="doc"/>
+ <exclude name="build"/>
+ <include name="org/freixas/jcalendar/*.class"/>
+ <include name="**/*.gif"/>
+ <include name="**/*.properties"/>
+ </jar>
+ </target>
+
+ <!-- Build all -->
+
+ <target depends="jar" name="all" description="Build everything.">
+ <echo message="JCalendar library built."/>
+ </target>
+
+ <!-- Run Example1 -->
+
+ <target depends="compile" name="runExample1" description="Run Example1.">
+ <java classname="doc.example.Example1" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Run Example2 -->
+
+ <target depends="compile" name="runExample2" description="Run Example2.">
+ <java classname="doc.example.Example2" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Build the documentation -->
+
+ <target depends="init" name="javadoc" description="Javadoc for JCalendar.">
+ <mkdir dir="doc/api"/>
+ <copy todir="doc/api">
+ <fileset dir="doc-templates">
+ <include name="**/*.html"/>
+ </fileset>
+ </copy>
+ <javadoc
+ sourcepath="org"
+ destdir="doc/api"
+ use="true"
+ author="true"
+ windowtitle="JCalendar"
+ footer="&lt;small&gt;Copyright &#169; 2004-2005 Antonio Freixas&lt;br&gt;Licensed under the &lt;a href='{@docRoot}/License.html' target='_top'&gt;Artistic License&lt;/a&gt;&lt;/small&gt;">
+ <classpath refid="project.class.path"/>
+ <packageset dir=".">
+ <include name="org/freixas/**"/>
+ </packageset>
+ <link href="http://java.sun.com/j2se/1.5/docs/api/" />
+ </javadoc>
+ </target>
+
+ <!-- Clean the build tree -->
+
+ <target depends="init" name="clean" description="Clean all build products.">
+ <delete>
+ <fileset dir="org/freixas">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete>
+ <fileset dir="doc/example">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete dir="build"/>
+ <delete dir="doc/api"/>
+ </target>
+
+ <!-- Generate a DTD for this buildfile -->
+
+ <target name="dtd" description="Generate a DTD">
+ <antstructure output="project.dtd"/>
+ </target>
+
+</project>
diff --git a/libs/FLib/JCalendar/doc-templates/License.html b/libs/FLib/JCalendar/doc-templates/License.html
new file mode 100644
index 0000000..d5fbdc1
--- /dev/null
+++ b/libs/FLib/JCalendar/doc-templates/License.html
@@ -0,0 +1,180 @@
+<html>
+ <style type="text/css">
+ body {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ h1 {
+ text-align: center;
+ font-weight: bold;
+ font-size: 145%;
+ }
+
+ h2 {
+ text-align: left;
+ font-weight: bold;
+ font-size: 120%;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ ol ol {
+ list-style-type: lower-alpha;
+ }
+
+ li {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+
+ </style>
+</head>
+
+ <body>
+
+ <h1>Artistic License</h1>
+
+ <h2>Preamble</h2>
+
+ <p>The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package,
+ while giving the users of the package the right to use and distribute
+ the Package in a more-or-less customary fashion, plus the right to
+ make reasonable modifications.</p>
+
+ <h2>Definitions:</h2>
+
+ <ul>
+
+ <li>"Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files created
+ through textual modification.</li>
+
+ <li>"Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of the
+ Copyright Holder.</li>
+
+ <li>"Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.</li>
+
+ <li>"You" is you, if you're thinking about copying or distributing
+ this Package.</li>
+
+ <li>"Reasonable copying fee" is whatever you can justify on the basis
+ of media cost, duplication charges, time of people involved, and so
+ on. (You will not be required to justify it to the Copyright Holder,
+ but only to the computing community at large as a market that must
+ bear the fee.)</li>
+
+ <li>"Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item. It
+ also means that recipients of the item may redistribute it under the
+ same conditions they received it.</li>
+
+ </ul>
+
+ <hr>
+
+ <ol>
+
+ <li>You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.</li>
+
+ <li>You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A Package
+ modified in such a way shall still be considered the Standard
+ Version.</li>
+
+ <li>You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you do
+ at least ONE of the following:
+
+ <ol>
+
+ <li>place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to Usenet
+ or an equivalent medium, or placing the modifications on a major
+ archive site such as ftp.uu.net, or by allowing the Copyright Holder
+ to include your modifications in the Standard Version of the Package.</li>
+
+ <li>use the modified Package only within your corporation or
+ organization.</li>
+
+ <li>rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide a
+ separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ <ol>
+
+ <li>distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or equivalent)
+ on where to get the Standard Version.</li>
+
+ <li>accompany the distribution with the machine-readable source of the
+ Package with your modifications.</li>
+
+ <li>accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard executables
+ non-standard names, and clearly documenting the differences in manual
+ pages (or equivalent), together with instructions on where to get the
+ Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this Package
+ as a product of your own.</li>
+
+ <li>The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever generated
+ them, and may be sold commercially, and may be aggregatedwith this
+ Package.</li>
+
+ <li>r perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.</li>
+
+ <li>Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.</li>
+
+ <li>The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.</li>
+
+ <li>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+
+ </ol>
+
+ <p>The End</p>
+ </body>
+</html>
diff --git a/libs/FLib/JCalendar/doc/example/Example1.java b/libs/FLib/JCalendar/doc/example/Example1.java
new file mode 100644
index 0000000..57e3b87
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/example/Example1.java
@@ -0,0 +1,181 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import java.util.Calendar;
+import java.util.Locale;
+import org.freixas.jcalendar.*;
+
+/**
+ * This example shows various instances of the JCalendar class.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+public class Example1
+ extends JFrame
+{
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example1();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create various instances of a JCalendar.
+ */
+
+public
+Example1()
+{
+ // Set up the frame
+
+ setTitle("Example1");
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
+
+ Container contentPane = getContentPane();
+ contentPane.setLayout(new GridLayout(2, 2, 5, 5));
+
+ // Create a border for all calendars
+
+ Border etchedBorder =
+ BorderFactory.createEtchedBorder();
+ Border emptyBorder =
+ BorderFactory.createEmptyBorder(10, 10, 10, 10);
+ Border compoundBorder =
+ BorderFactory.createCompoundBorder(etchedBorder, emptyBorder);
+
+ // Create a date listener to be used for all calendars
+
+ MyDateListener listener = new MyDateListener();
+
+ // Display date and time using the default calendar and locale.
+ // Display today's date at the bottom.
+
+ JCalendar calendar1 =
+ new JCalendar(
+ JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
+ true);
+ calendar1.addDateListener(listener);
+ calendar1.setBorder(compoundBorder);
+
+ // Set fonts rather than using defaults
+
+ calendar1.setTitleFont(new Font("Serif", Font.BOLD|Font.ITALIC, 24));
+ calendar1.setDayOfWeekFont(new Font("SansSerif", Font.ITALIC, 12));
+ calendar1.setDayFont(new Font("SansSerif", Font.BOLD, 16));
+ calendar1.setTimeFont(new Font("DialogInput", Font.PLAIN, 10));
+ calendar1.setTodayFont(new Font("Dialog", Font.PLAIN, 14));
+
+ // Display date only
+
+ JCalendar calendar2 = new JCalendar(JCalendar.DISPLAY_DATE, false);
+ calendar2.addDateListener(listener);
+ calendar2.setBorder(compoundBorder);
+
+ // Display time only and set the time pattern to use as a duration
+ // from 00:00 to 23:59
+
+ JCalendar calendar3 =
+ new JCalendar(
+ Calendar.getInstance(),
+ Locale.getDefault(),
+ JCalendar.DISPLAY_TIME,
+ false,
+ "HH:mm");
+ calendar3.addDateListener(listener);
+ calendar3.setBorder(compoundBorder);
+
+ // Display a French calendar
+
+ JCalendar calendar4 =
+ new JCalendar(
+ Calendar.getInstance(Locale.FRENCH),
+ Locale.FRENCH,
+ JCalendar.DISPLAY_DATE | JCalendar.DISPLAY_TIME,
+ false);
+ calendar4.addDateListener(listener);
+ calendar4.setBorder(compoundBorder);
+
+ // Add all the calendars to the content pane
+
+ JPanel panel1 = new JPanel(new FlowLayout());
+ panel1.add(calendar1);
+ contentPane.add(panel1);
+
+ JPanel panel2 = new JPanel(new FlowLayout());
+ panel2.add(calendar2);
+ contentPane.add(panel2);
+
+ JPanel panel3 = new JPanel(new FlowLayout());
+ panel3.add(calendar3);
+ contentPane.add(panel3);
+
+ JPanel panel4 = new JPanel(new FlowLayout());
+ panel4.add(calendar4);
+ contentPane.add(panel4);
+
+ // Make the window visible
+
+ pack();
+ setVisible(true);
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+private class MyDateListener
+ implements DateListener
+{
+
+public void
+dateChanged(
+ DateEvent e)
+{
+ Calendar c = e.getSelectedDate();
+ if (c != null) {
+ System.out.println(c.getTime());
+ }
+ else {
+ System.out.println("No time selected.");
+ }
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JCalendar/doc/example/Example2.java b/libs/FLib/JCalendar/doc/example/Example2.java
new file mode 100644
index 0000000..0866447
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/example/Example2.java
@@ -0,0 +1,173 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.Calendar;
+import java.util.Locale;
+import java.text.SimpleDateFormat;
+import org.freixas.jcalendar.*;
+
+/**
+ * This example shows various instances of the JCalendarCombo class.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+class Example2
+ extends JFrame
+{
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example2();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create various instances of a JCalendarCombo.
+ */
+
+public
+Example2()
+{
+ // Set up the frame
+
+ setTitle("Example2");
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
+
+ Container contentPane = getContentPane();
+ contentPane.setLayout(new GridLayout(2, 2, 5, 5));
+
+ // Create a date listener to be used for all calendars
+
+ MyDateListener listener = new MyDateListener();
+
+ // Display date and time using the default calendar and locale.
+ // Display today's date at the bottom. Allow editing
+
+ JCalendarCombo calendar1 =
+ new JCalendarCombo(
+ JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME,
+ true);
+ calendar1.setEditable(true);
+ calendar1.addDateListener(listener);
+
+ // Set fonts rather than using defaults
+
+ calendar1.setFont(new Font("DialogInput", Font.PLAIN, 16));
+
+ calendar1.setTitleFont(new Font("Serif", Font.BOLD|Font.ITALIC, 24));
+ calendar1.setDayOfWeekFont(new Font("SansSerif", Font.ITALIC, 12));
+ calendar1.setDayFont(new Font("SansSerif", Font.BOLD, 16));
+ calendar1.setTimeFont(new Font("DialogInput", Font.PLAIN, 10));
+ calendar1.setTodayFont(new Font("Dialog", Font.PLAIN, 14));
+
+ // Display date only
+
+ JCalendarCombo calendar2 =
+ new JCalendarCombo(JCalendarCombo.DISPLAY_DATE, false);
+ calendar2.addDateListener(listener);
+
+ // Display time only and set the time pattern to use as a duration
+ // from 00:00 to 23:59
+
+ JCalendarCombo calendar3 =
+ new JCalendarCombo(
+ Calendar.getInstance(),
+ Locale.getDefault(),
+ JCalendarCombo.DISPLAY_TIME,
+ false,
+ "HH:mm:ss");
+ calendar3.setDateFormat(new SimpleDateFormat("HH:mm:ss"));
+ calendar3.addDateListener(listener);
+
+ // Display a French calendar
+
+ JCalendarCombo calendar4 =
+ new JCalendarCombo(
+ Calendar.getInstance(Locale.FRENCH),
+ Locale.FRENCH,
+ JCalendarCombo.DISPLAY_DATE | JCalendarCombo.DISPLAY_TIME,
+ false);
+ calendar4.addDateListener(listener);
+
+ // Add all the calendars to the content pane
+
+ JPanel panel1 = new JPanel(new BorderLayout());
+ panel1.add(calendar1, BorderLayout.NORTH);
+ contentPane.add(panel1);
+
+ JPanel panel2 = new JPanel(new BorderLayout());
+ panel2.add(calendar2, BorderLayout.NORTH);
+ contentPane.add(panel2);
+
+ JPanel panel3 = new JPanel(new BorderLayout());
+ panel3.add(calendar3, BorderLayout.NORTH);
+ contentPane.add(panel3);
+
+ JPanel panel4 = new JPanel(new BorderLayout());
+ panel4.add(calendar4, BorderLayout.NORTH);
+ contentPane.add(panel4);
+
+ // Make the window visible
+
+ pack();
+ setVisible(true);
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+private class MyDateListener
+ implements DateListener
+{
+
+public void
+dateChanged(
+ DateEvent e)
+{
+ Calendar c = e.getSelectedDate();
+ if (c != null) {
+ System.out.println(c.getTime());
+ }
+ else {
+ System.out.println("No time selected.");
+ }
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JCalendar/doc/examples.html b/libs/FLib/JCalendar/doc/examples.html
new file mode 100644
index 0000000..b741ca1
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/examples.html
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Examples</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Examples</h1>
+ <p>There are two example programs provided for JCalendar. The two programs
+ are similar except one uses the JCalendar component and the other uses
+ the JCalendarCombo component.</p>
+ <p>View the <a href="example/Example1.java">Example1</a> program. View the
+ <a href="example/Example2.java">Example2</a> program. </p>
+ <p>If you download the FLib source, you can use Ant to build and run
+ the example programs:</p>
+ <pre>cd JCalendar
+ant runExample1
+ant runExample2</pre>
+ <p>Four calendars appear in each example. The upper-left calendar is used
+ to select a date and time. Today's date is displayed at the bottom of
+ the calendar. In Example2, it is the only one of the four combo box calendars
+ which is editable.</p>
+ <p>The upper-right calendar selects just a date. The lower-left calendar
+ selects just a time.</p>
+ <p>The lower-right calendar uses the French locale (all the others use the
+ default locale). Because the JCalendar component takes advantage of the
+ localization in the Calendar class, we get a French-version of the Gregorian
+ calendar. The month and weekday names are in French. The week starts on
+ a Monday. The time uses a 24-hour clock.</p>
+ <p>The JCalendar package is not completely localized for French. For instance,
+ the tool tips on the calendar buttons appear in English. See the <a href="tutorial.html">tutorial</a>
+ for instructions on fully localizing the package.</p>
+ <p>When you run either example, each date selection will be echoed to the
+ window from which you ran the <code>ant</code> command.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/doc/features.html b/libs/FLib/JCalendar/doc/features.html
new file mode 100644
index 0000000..2e3c824
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/features.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Features</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Features</h1>
+ <p>The main features of JCalendar are:</p>
+ <ul>
+ <li>Easy to use.</li>
+ <li>Can input the date, time or both.</li>
+ <li>Can set entry format for time selection.</li>
+ <li>Can optionally display today's date.</li>
+ <li>Can use as a panel (JCalendar) or combo-box (JCalendarCombo).</li>
+ <li>The combo-box can be editable.</li>
+ <li>Can select date format for selected date in combo-box.</li>
+ <li>Can select the font to use for all display elements.</li>
+ <li>Can optionally allow null date (no date) to be selected.</li>
+ <li>Keyboard access to all functionality.</li>
+ <li>Combo-box can adopt current L&amp;F (requires modifications for new
+ L&amp;F's). </li>
+ <li>Fully internationalized and ready for localization. Most localization
+ is already done by taking advantage of the localization in the Java
+ Calendar class.</li>
+ </ul>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/doc/images/Logo.png b/libs/FLib/JCalendar/doc/images/Logo.png
new file mode 100644
index 0000000..774900e
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/Logo.png
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-combo-meta-noedit.gif b/libs/FLib/JCalendar/doc/images/screenshot-combo-meta-noedit.gif
new file mode 100644
index 0000000..46a9ed5
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-combo-meta-noedit.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-combo-metal-all.gif b/libs/FLib/JCalendar/doc/images/screenshot-combo-metal-all.gif
new file mode 100644
index 0000000..7e9889c
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-combo-metal-all.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-combo-skin1.gif b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin1.gif
new file mode 100644
index 0000000..1a22a98
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin1.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-combo-skin2.gif b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin2.gif
new file mode 100644
index 0000000..848f520
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin2.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-combo-skin3.gif b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin3.gif
new file mode 100644
index 0000000..91d2e98
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-combo-skin3.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-all.gif b/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-all.gif
new file mode 100644
index 0000000..a10a5f3
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-all.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-french.gif b/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-french.gif
new file mode 100644
index 0000000..15a5f9f
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/images/screenshot-panel-metal-french.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/doc/index.html b/libs/FLib/JCalendar/doc/index.html
new file mode 100644
index 0000000..8059eeb
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/index.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Introduction</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Introduction</h1>
+ <p>Hi! My name is Tony Freixas and I am currently working on an application
+ that I intend to release as Open Source. In the process of building the
+ application, I am using as many Open Source classes and components as
+ I can find.</p>
+ <p>In some cases, I have been disappointed with what I have found on the
+ web:</p>
+ <ul>
+ <li>Classes that are not free.</li>
+ <li>Classes with restrictive licensing.</li>
+ <li>Classes which ignore internationalization.</li>
+ <li>Classes which are not easy to use.</li>
+ <li>Components which are limited with respect to the Look &amp; Feel that
+ can be used.</li>
+ </ul>
+ <p>When I have not found a suitable Java class, I have implemented my own.
+ I have decided to release these for use by others as part of a library
+ I call FLib.</p>
+ <p>Currently, there are three components available in FLib and I have chosen
+ to make them completely independent of each other. In the future, you
+
+ may have to load some common code in order to use the FLib classes.</p>
+ <p>These web pages are for the Swing-based JCalendar component. Use the
+ links on the left to learn more.</p>
+ <p><a href="http://sourceforge.net/donate/index.php?group_id=113939"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" title=""/></a></p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/doc/resources.html b/libs/FLib/JCalendar/doc/resources.html
new file mode 100644
index 0000000..a384e20
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/resources.html
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Other Resources</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Other Resources</h1>
+ <p>I think it's only fair to note some of the other Java calendar component
+ implementations. Some of these have appeared since I wrote my version.
+ You may do a Google search to find yet other versions.</p>
+ <p>I tried the JCalendarCombo from <a href="http://in.geocities.com/onlyjava2003/">OnlyJava</a>.
+ It looked nice at first, but I had several problems with it:</p>
+ <ul>
+ <li>You had to set start/end years since the year was chosen from a combo
+ box.</li>
+ <li>The combo box (textfield and down-arrow) always had the Metal L&amp;F.</li>
+ <li>The component was not internationalized.</li>
+ <li>The license does not allow for derivative works.</li>
+ </ul>
+ <p>The JCalendar from <a href="http://www.toedter.com/en/jcalendar/index.html">toedter.com</a>
+ looks promising. There doesn't seem to be an option for a combo-box version,
+ though. It uses the LGPL license.</p>
+ <p>A <a href="http://pachome1.pacific.net.sg/%7Ewongkw/CalendarPanel.html">CalendarPanel</a>
+ was written by Wong Kok Wai. It also lacks combo-box entry. I'm not sure
+ about the license.</p>
+ <p>There are a number of commercial products you could try if you're willing
+ to pay:</p>
+ <ul>
+ <li><a href="http://www.javadatepicker.com/">JavaDatePicker</a> starts
+ at $119 for a single-developer license.</li>
+ <li><a href="http://www.zfqjava.com/docs-calendar.html">ExtremeComponent</a>
+ offers a JCalendar component binary license for $19. I didn't see a
+ combo-box option.</li>
+ <li><a href="http://www.lavantech.com/datetimepicker/">LavanTech</a> has
+ a pretty fancy date/time selector starting at $75 for a single-user
+ license. It does provide a combo-box selection, but I'm not sure how
+ well it adapts to the various L&amp;F's.</li>
+ <li><a href="http://www.jproductivity.com/products/components/component-calendar.htm">jProductivity</a>
+ offers a calendar with a lot of options, including a combo-box version.
+ Again, I'm not sure how it adapts to various L&amp;F's since the only
+ way I've found to do it is to modify the code for each L&amp;F.</li>
+ </ul>
+ <p>There are some less-fancy calendar selectors which might be useful for
+ applets. <a href="http://www.javaside.com/asp/mus.asp?page=/us/tcaldate.shtml">tCalDate</a>
+ is free for personal use and appears to only require registration for
+ professional use. <a href="http://scand.com/products/awtx/calendar/">Scand
+ LLC</a> offers two versions of a calendar: one for free and an advanced
+ version for $29.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/doc/screenshots.html b/libs/FLib/JCalendar/doc/screenshots.html
new file mode 100644
index 0000000..9b3f70e
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/screenshots.html
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Screen Shots</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Screen Shots</h1>
+ <p>The following are screen shots of JCalendar components using various
+ look-and-feels:</p>
+ <p align="center"><img src="images/screenshot-panel-metal-all.gif" width="329" height="239" /></p>
+ <p align="center">A JCalendar from the Example1 program using the Metal
+ L&amp;F. Both date and time are input and today's date is displayed on
+ the bottom.</p>
+ <p align="center"><img src="images/screenshot-panel-metal-french.gif" width="330" height="223" /></p>
+ <p align="center">A JCalendar from the Example1 program using the French
+ locale. Note that the week starts on a Monday and that the time entry
+ uses a 24-hour clock.</p>
+ <p align="center"><img src="images/screenshot-combo-metal-all.gif" width="324" height="263" /></p>
+ <p align="center">An editable JCalendarCombo from the Example2 program with
+ the calendar pop-up displayed.</p>
+ <p align="center"><img src="images/screenshot-combo-meta-noedit.gif" width="324" height="219" /></p>
+ <p align="center">A non-editable JCalendarCombo from the Example2 program.
+ Only the date (not the time) is requested.</p>
+ <p align="center"><img src="images/screenshot-combo-skin1.gif" width="314" height="200" /></p>
+ <p align="center">An editable JCalendarCombo using the Skin L&amp;F with
+ the <em>Aqua</em> package.</p>
+ <p align="center"><img src="images/screenshot-combo-skin2.gif" width="314" height="200" /></p>
+ <p align="center">An editable JCalendarCombo using the Skin L&amp;F with
+ the <em>Modern</em> package.</p>
+ <p align="center"><img src="images/screenshot-combo-skin3.gif" width="314" height="200" /></p>
+ <p align="center">An editable JCalendarCombo using the Skin L&amp;F with
+ the <em>XPLuna</em> package.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/doc/stylesheet.css b/libs/FLib/JCalendar/doc/stylesheet.css
new file mode 100644
index 0000000..dc693da
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/stylesheet.css
@@ -0,0 +1,48 @@
+body {
+ font-family: Arial, Helvetica, sans-serif;
+ background: white:
+ color: black;
+}
+
+td {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+th {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+#sidebar {
+ font-family: "Times New Roman", Times, serif;
+ font-weight: bold;
+ font-style: italic;
+ font-size: 20px;
+}
+
+#content {
+ font-size: 100%;
+}
+
+a:visited {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:link {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #C00000;
+ text-decoration: none;
+}
+
+a:active {
+ color: #C00000;
+ text-decoration: none;
+}
+
+pre {
+ margin-left: 1em;
+}
diff --git a/libs/FLib/JCalendar/doc/tutorial.html b/libs/FLib/JCalendar/doc/tutorial.html
new file mode 100644
index 0000000..6fd8422
--- /dev/null
+++ b/libs/FLib/JCalendar/doc/tutorial.html
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JCalendar.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JCalendar - Tutorial</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Tutorial</h1>
+ <h2>JCalendar</h2>
+ <p>JCalendar is the generic name for two Java components: one is called
+ JCalendar and the other is called JCalendarCombo. They both share common
+ features, particularly the ability to select a date and/or time. The former
+ accomplishes this with a panel and the latter with a combo-box.</p>
+ <h3>Creating the Components</h3>
+ <p>The simplest constructors for JCalendar and JCalendarCombo have no arguments.
+ They create calendar components that allow a date to be selected from
+ the default calendar in the default locale.</p>
+ <p>The next step is to select the specific Calendar and Locale classes to
+ use (but the JCalendar components have only been tested with the Gregorian
+ calendar). There are three more parameters that can be specified:</p>
+ <ul>
+ <li>Whether to select a date, a time or both.</li>
+ <li>Whether to display today's date at the bottom of the component.</li>
+ <li>The SimpleDateFormat pattern to use in displaying the time selection
+ field.</li>
+ </ul>
+ <p>Normally, the calendar components allow you to select a null date/time
+ (press Delete or Backspace to set a null selection). This is useful for
+ cases where the user has an option of not specifying a date/time. You
+ can turn this off by calling <code>setNullAllowed(false)</code>.</p>
+ <p>For the JCalendarCombo, you also have the option of making the combo-box
+ editable (as with any combo-box). You can control the date format that
+ appears in the combo-box field with <code>setDateFormat()</code>.</p>
+ <h3>Date Selections</h3>
+ <p>You can set the selected date with <code>setDate()</code>. The default
+ date/time selection will be today's date/time unless you explicitly set
+ a date. You can read the currently selected date at any time using <code>getDate()</code>
+ or <code>getCalendar()</code>. Finally, you can add a DateListener to
+ listen for date changes. Each time the date/time changes, the listener
+ is called. </p>
+
+ <h3>Fonts</h3>
+ <p>You may specify the font to use for each elements that makes
+ up a calendar component. The elements are:</p>
+ <ul>
+ <li>The month-year title.</li>
+ <li>The day-of-week labels (Mon, Tue, etc.).</li>
+ <li>The day buttons.</li>
+ <li>The time spinner.</li>
+ <li>The today's date message.</li>
+ </ul>
+ <p>In addition, the combo box text can be changed in the usual
+ way&mdash;by calling setFont() on the combo box component.</p>
+ <h3>Keyboard Control</h3>
+ <p>The calendar appears with buttons that allow the user to move a month
+ or year backwards or forward. You can use the arrow keys to do the same:</p>
+ <ul>
+ <li>Left Arrow - Move back a month.</li>
+ <li>Right Arrow - Move forward a month.</li>
+ <li>Shift Left Arrow - Move back a year.</li>
+ <li>Shift Right Arrow - Move forward a year.</li>
+ </ul>
+ <p>In addition, you can use Delete or Backspace to select a null date (if
+ null dates are allowed).</p>
+ <p>As normal, you can tab through the various buttons (including the day
+ buttons) and press Enter to activate the button.</p>
+ <p>If there is a time field, it can be a little problematic. Once it has
+ focus, the up/down arrow keys increment/decrement portions of the time
+ field. The left/right keys select the portion of the time to increment/decrement.
+ You will need to tab out of the time field or use the mouse to select
+ a button elsewhere in the calendar in order to restore the normal keyboard
+ controls.</p>
+ <p>The JCalendarCombo has some additional keyboard controls. The down arrow
+ pops up a calendar if one is not visible. The up arrow hides the calendar
+ pop-up (as does the Enter key). The Escape key also hides the calendar,
+ but restores the date to the value it had before the calendar was popped
+ up.</p>
+ <h3>Internationalization</h3>
+ <p>The JCalendar components take advantage of the internationalization and
+ localization work done by the Calendar class. In order to fully localize
+ JCalendar to other than US English, you will need to obtain the source
+ code for JCalendar and create a org.freixas.jcalendar.Bundle_<em>&lt;locale&gt;</em>.properties
+ file which translates the text in org.freixas.jcalendar.Bundle.properties,
+ where <em>&lt;locale&gt;</em> is a two-letter country code.</p>
+ <p>The main thing in this file are the tooltips for the various buttons
+ and the text for displaying today's date as well as some error messages.</p>
+ <h3>Look-and-Feel</h3>
+ <p>It was important for my own use that the JCalendar combo-box adopt the
+ current Java Look-and-Feel (L&amp;F). As it turns out, it is impossible
+ to design a class that can automatically do this for all possible L&amp;F's.
+ If you need to use a L&amp;F other than Metal, Windows or Motif, you will
+ need to obtain the JCalendar source code and make some changes.</p>
+ <p>In the <code>updateUI()</code> method of JCalendarCombo.java, you will
+ need to add some code that looks like this:</p>
+ <pre>else if (cui instanceof SomeComboBoxUI) {
+ cui = new SomeDateComboBoxUI();
+}</pre>
+
+ <p>Then in the inner class section of the code, add a new inner class:</p>
+ <pre>class SomeDateComboBoxUI
+ extends SomeComboBoxUI
+{
+ protected ComboPopup createPopup() {
+ return new CalendarComboPopup();
+ }
+}
+</pre>
+ <p>Of course, the word &quot;Some&quot; would be replaced by the name of
+ your L&amp;F (Metal, Motif, etc.). When your L&amp;F is installed, the
+ JCalendarCombo combo-box will now look the same as a normal JComboBox.</p>
+ <h3>Summary</h3>
+ <p>The JCalendar components are designed to be easy to use&#8212;create
+ the component you want, set up a few options and register a DateListener
+ and you're in business. </p>
+ <p>After reading this tutorial, you should examine the <a href="examples.html">example
+ programs</a> provided which exercise many of the features of JCalendar
+ components.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/Bundle.properties b/libs/FLib/JCalendar/org/freixas/jcalendar/Bundle.properties
new file mode 100644
index 0000000..5d6f641
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/Bundle.properties
@@ -0,0 +1,45 @@
+# org.freixas.jcalendar Resource Bundle
+
+# Arg 0 is today's date
+Today=Today''s date is {0, date, medium}'
+
+# Arg 0 is the month and arg 1 is the year. This is used to display
+# the month/year of the calendar page
+MonthYearTitle={0} {1}
+
+# The following are the navigation buttons
+#
+# Images must be placed in the image directory and should be supplied
+# in gif format in 16x16 (name ends with 16) and 24x24 sizes (name
+# ends with 24). Only the base name is given; for example
+# images/Sample16.gif would be named Sample
+
+YearDecrButton=
+YearDecrButtonMnemonic=
+YearDecrButtonAccelerator=
+YearDecrButtonImage=Rewind
+YearDecrButtonShort=Back one year
+YearDecrButtonLong=Back one year
+
+MonthDecrButton=
+MonthDecrButtonMnemonic=
+MonthDecrButtonAccelerator=
+MonthDecrButtonImage=Back
+MonthDecrButtonShort=Back one month
+MonthDecrButtonLong=Back one month.
+
+MonthIncrButton=
+MonthIncrButtonMnemonic=
+MonthIncrButtonAccelerator=
+MonthIncrButtonImage=Forward
+MonthIncrButtonShort=Forward one month
+MonthIncrButtonLong=Forward one month.
+
+YearIncrButton=
+YearIncrButtonMnemonic=
+YearIncrButtonAccelerator=
+YearIncrButtonImage=FastForward
+YearIncrButtonShort=Forward one year
+YearIncrButtonLong=Forward one year.
+
+IllegalStateException=You must display the date and/or the time.
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/DateEvent.java b/libs/FLib/JCalendar/org/freixas/jcalendar/DateEvent.java
new file mode 100644
index 0000000..dfd4f9f
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/DateEvent.java
@@ -0,0 +1,86 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jcalendar;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.util.EventObject;
+import java.util.Calendar;
+
+/**
+ * This class holds information related to a date change in a
+ * calendar.
+ *
+ * @see JCalendar
+ * @see JCalendarCombo
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2003 Antonio Freixas
+// All Rights Reserved.
+
+public class DateEvent
+ extends EventObject
+{
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+private Calendar selectedDate;
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create a date event.
+ *
+ * @param source The object on which the event occurred.
+ * @param selectedDate The selected date.
+ */
+
+public
+DateEvent(
+ Object source,
+ Calendar selectedDate)
+{
+ super(source);
+ this.selectedDate = selectedDate;
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Return the selected date.
+ *
+ * @return The selected date.
+ */
+
+public Calendar
+getSelectedDate()
+{
+ return selectedDate;
+}
+
+//The default equals and hashCode methods are acceptable.
+
+/**
+ * {@inheritDoc}
+ */
+
+public String
+toString()
+{
+ return
+ super.toString() + ",selectedDate=" +
+ selectedDate.getTime().toString();
+}
+
+}
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/DateListener.java b/libs/FLib/JCalendar/org/freixas/jcalendar/DateListener.java
new file mode 100644
index 0000000..7d3f723
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/DateListener.java
@@ -0,0 +1,46 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jcalendar;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.util.EventListener;
+
+/**
+ * Listen for date changes.
+ *
+ * @see JCalendar
+ * @see JCalendarCombo
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2003 Antonio Freixas
+// All Rights Reserved.
+
+public interface DateListener
+ extends EventListener
+{
+
+//**********************************************************************
+// Public Constants
+//**********************************************************************
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * This method is called each time a date in a calendar changes.
+ *
+ * @param e The date event information.
+ */
+
+public void
+dateChanged(
+ DateEvent e);
+
+}
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendar.java b/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendar.java
new file mode 100644
index 0000000..5e305f1
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendar.java
@@ -0,0 +1,1681 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jcalendar;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.event.*;
+
+import java.text.*;
+import java.net.URL;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+/**
+ * This class displays a panel through which a user can select a date
+ * and/or time. A time-only selection can be used to select a
+ * duration, as long as the duration is no longer than 23 hours, 59
+ * minutes and 59 seconds.
+ * <p>
+ * The date is selected using a calendar display. The time is selected
+ * using a date spinner.
+ * <p>
+ * In reality, both date and time are part of the same Date returned
+ * by getDate() or getCalendar(). If you are selecting only the date,
+ * you should ignore the time portion of the Date or Calendar. If you
+ * are selecting only the time, ignore the date portion.
+ * <p>
+ * You can set the pattern used to display the time in the date
+ * spinner. The pattern is the same as used by SimpleDateFormat. The
+ * default format displays hours, minutes and seconds in a
+ * locale-specific way (some locales use AM/PM, some use a 24-hour
+ * clock). If you want to get a time duration, you will want to use a
+ * pattern such as "HH:mm:ss" to eliminate the possibility of an AM/PM
+ * field appearing. You can also use setTimePattern() to reduce the
+ * precision of the time obtained (e.g. "HH:mm").
+ * <p>
+ * You may specify a font for each of the elements that make up the
+ * calendar. If you do not specify a font (or specify a null font), a
+ * reasonable default will be generated based on the current Look
+ * &amp; Feel.
+ * <p>
+ * When the calendar has focus, the following key bindings are
+ * supported:
+ * <ul>
+ * <li>Left Arrow - Move back a month.
+ * <li>Right Arrow - Move forward a month.
+ * <li>Shift Left Arrow - Move back a year.
+ * <li>Shift Right Arrow - Move forward a year.
+ * <li>Delete - Unselect all dates (only if isNullAllowed() is true).
+ * <li>Backspace - Same as Delete.
+ * </ul>
+ * This is in addition to using Tab and Enter to move through and
+ * select the buttons.
+ * <p>
+ * The time field is divided into hour, minute, second and AM/PM
+ * portions. You can select any portion and use the spinner arrows on
+ * the right side of the field to increment or decrement that portion.
+ * However, the entire time is being incremented or decremented, so
+ * that incrementing 1:59:59 by one second will generate 2:00:00.
+ * <p>
+ * Due to a design limitation in JFormatedTextField, incrementing
+ * 24:59:59 will <b>not</b> increment the day. A value in a
+ * JFormatedTextField (which is what the time field is), only
+ * calculates a date from the fields displayed. Since usually we
+ * display a HH:mm:ss pattern, the JFormattedTextField will set the
+ * date to a default value, not influenced by the date in the calendar
+ * <p>
+ * It is possible to pass in a time pattern that displays more than just
+ * the time -- this is not advisable since the date portion displayed
+ * in the JFormatedTextField will be ignored by the JCalendar
+ * component.
+ * <p>
+ * When the time field has focus, the up/down arrow keys increment or
+ * decrement the currently selected time portion, just like the
+ * spinner keys. The left and right arrow keys can be used to move to
+ * the next or previous portion.
+ *
+ * @see Calendar
+ * @see Date
+ * @see DateFormat
+ * @see SimpleDateFormat
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2003 Antonio Freixas
+// All Rights Reserved.
+
+public class JCalendar
+ extends JPanel
+{
+
+//**********************************************************************
+// Public Constants
+//**********************************************************************
+
+/**
+ * Used to indicate that this component should display the date.
+ */
+
+public static final int DISPLAY_DATE = 0x01;
+
+/**
+ * Used to indicate that this component should display the time.
+ */
+
+public static final int DISPLAY_TIME = 0x02;
+
+//**********************************************************************
+// Private Constants
+//**********************************************************************
+
+private static final int MONTH_DECR_BUTTON = 0;
+private static final int MONTH_INCR_BUTTON = 1;
+private static final int YEAR_DECR_BUTTON = 2;
+private static final int YEAR_INCR_BUTTON = 3;
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+// This determines the components being displayed: the calendar, the
+// time spinner, or both
+
+private int selectedComponents;
+
+// The calendar containing a selected day. The selected day may not be
+// always be displayed
+
+private Calendar selectedCalendar;
+private int selectedYear = -1;
+private int selectedMonth = -1;
+private int selectedDay = -1;
+private int selectedHour = -1;
+private int selectedMinute = -1;
+private int selectedSecond = -1;
+
+// The calendar we display
+
+private Calendar displayCalendar;
+private int displayYear;
+private int displayMonth;
+
+// The locale to use
+
+private Locale locale;
+
+// True if we display today's date
+
+private boolean isTodayDisplayed = false;
+
+// A null date is equivalent to having no date selected. Note that the
+// constructor selects the current date (today)
+
+private boolean isNullAllowed = true;
+private boolean isNullDate = true;
+
+// The time pattern used to set the format of the time spinner
+
+private String timePattern;
+
+// Components
+
+private JButton yearDecrButton;
+private JButton monthDecrButton;
+private JLabel monthYearLabel;
+private JButton monthIncrButton;
+private JButton yearIncrButton;
+
+private JLabel[] dayOfWeekLabels;
+private JToggleButton[][] dayButtons;
+private JToggleButton offScreenButton;
+private ButtonGroup dayGroup;
+
+private SpinnerDateModel spinnerDateModel;
+private JSpinner spinner;
+
+private JLabel todaysLabel;
+
+// Fonts
+
+private Font titleFont;
+private Font dayOfWeekFont;
+private Font dayFont;
+private Font timeFont;
+private Font todayFont;
+
+// Date formats
+
+private DateFormat formatMonth;
+private DateFormat formatWeekDay;
+
+private String lastMonth;
+private String lastYear;
+
+// These maps are used to bind keyboard keys to methods
+
+static InputMap inputMap = new InputMap();
+static ActionMap actionMap = new ActionMap();
+
+// The input map maps a key to a name. The action map maps a name to
+// an action. The actions below map the action to a method call
+
+private static Action yearBackward = new AbstractAction("yearBackward") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).yearBackward();
+ }
+};
+
+private static Action yearForward = new AbstractAction("yearForward") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).yearForward();
+ }
+};
+
+private static Action monthBackward = new AbstractAction("montBackward") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).monthBackward();
+ }
+};
+
+private static Action monthForward = new AbstractAction("monthForward") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).monthForward();
+ }
+};
+
+private static Action setNullDate = new AbstractAction("setNullDate") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).setDate(null);
+ }
+};
+
+// The resource bundle
+
+private static ResourceBundle bundle =
+ ResourceBundle.getBundle("org.freixas.jcalendar.Bundle");
+
+//**********************************************************************
+// Static Constructors
+//**********************************************************************
+
+static
+{
+ // Set up the input map that will be shared by all instances
+
+ inputMap.put(KeyStroke.getKeyStroke("BACK_SPACE"), "setNullDate");
+ inputMap.put(KeyStroke.getKeyStroke("DELETE"), "setNullDate");
+ inputMap.put(KeyStroke.getKeyStroke("shift LEFT"), "yearBackward");
+ inputMap.put(KeyStroke.getKeyStroke("shift RIGHT"), "yearForward");
+ inputMap.put(KeyStroke.getKeyStroke("LEFT"), "monthBackward");
+ inputMap.put(KeyStroke.getKeyStroke("RIGHT"), "monthForward");
+
+ actionMap.put("setNullDate", setNullDate);
+ actionMap.put("yearBackward", yearBackward);
+ actionMap.put("yearForward", yearForward);
+ actionMap.put("monthBackward", monthBackward);
+ actionMap.put("monthForward", monthForward);
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create an instance of JCalendar using the default calendar and
+ * locale. Display the date but not the time. Don't display today's
+ * date at the bottom of the panel.
+ */
+
+public
+JCalendar()
+{
+ this(Calendar.getInstance(),
+ Locale.getDefault(),
+ DISPLAY_DATE,
+ false,
+ null);
+}
+
+/**
+ * Create an instance of JCalendar using the default calendar and
+ * locale. Display a calendar and/or a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Use the defult pattern to display the time in the
+ * time spinner field (if there is one).
+ *
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed at
+ * the bottom of the panel.
+ */
+
+public
+JCalendar(
+ int selectedComponents,
+ boolean isTodayDisplayed)
+{
+ this(Calendar.getInstance(),
+ Locale.getDefault(),
+ selectedComponents,
+ isTodayDisplayed,
+ null);
+}
+
+/**
+ * Create an instance of JCalendar using the given calendar and
+ * locale. Display a calendar and/or a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Use the default pattern to display the time in the
+ * time spinner field (if there is one).
+ *
+ * @param calendar The calendar to use.
+ * @param locale The locale to use.
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed at
+ * the bottom of the panel.
+ */
+
+public
+JCalendar(
+ Calendar calendar,
+ Locale locale,
+ int selectedComponents,
+ boolean isTodayDisplayed)
+{
+ this(calendar,
+ locale,
+ selectedComponents,
+ isTodayDisplayed,
+ null);
+}
+
+/**
+ * Create an instance of JCalendar using the given calendar and
+ * locale. Display a calendar and/or a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Set the pattern used to display the time in the time
+ * spinner field (if there is one). If null, use the default MEDIUM
+ * format for the given locale. Patterns are from DateFormat and
+ * SimpleDateFormat.
+ *
+ * @param calendar The calendar to use.
+ * @param locale The locale to use.
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed at
+ * the bottom of the panel.
+ * @param timePattern The pattern used to display the time in the time
+ * spinner field.
+ * @see DateFormat
+ * @see SimpleDateFormat
+ */
+
+public
+JCalendar(
+ Calendar calendar,
+ Locale locale,
+ int selectedComponents,
+ boolean isTodayDisplayed,
+ String timePattern)
+{
+ this.selectedCalendar = (Calendar)calendar.clone();
+ this.displayCalendar = (Calendar)selectedCalendar.clone();
+ this.selectedComponents = selectedComponents;
+ if ((selectedComponents & (DISPLAY_DATE | DISPLAY_TIME)) == 0) {
+ throw new IllegalStateException(
+ bundle.getString("IllegalStateException"));
+ }
+
+ this.locale = locale;
+ this.isTodayDisplayed = isTodayDisplayed;
+
+ if ((selectedComponents & DISPLAY_TIME) > 0) {
+ if (timePattern == null) {
+ DateFormat timeFormat =
+ DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);
+ this.timePattern = "HH:mm:ss";
+ if (timeFormat instanceof SimpleDateFormat) {
+ this.timePattern = ((SimpleDateFormat)timeFormat).toPattern();
+ }
+ }
+ else {
+ this.timePattern = timePattern;
+ }
+ }
+
+ createCalendarComponents();
+ setDate(new Date());
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Add a date listener. This listener will receive events each time
+ * the selected date changes.
+ *
+ * @param listener The date listener to add.
+ */
+
+public void
+addDateListener(
+ DateListener listener)
+{
+ listenerList.add(DateListener.class, listener);
+}
+
+/**
+ * Remove a date listener.
+ *
+ * @param listener The date listener to remove.
+ */
+
+public void
+removeDateListener(
+ DateListener listener)
+{
+ listenerList.remove(DateListener.class, listener);
+}
+
+/**
+ * Get whether a null date is allowed.
+ *
+ * @return Whether a null date is allowed.
+ */
+
+public boolean
+isNullAllowed()
+{
+ return isNullAllowed;
+}
+
+/**
+ * Set whether a null date is allowed. A null date means that no date
+ * is selected. The user can select a null date by pressing DELETE
+ * anywhere within the calendar.
+ * <p>
+ * If nulls are not allowed, a setDate(null) will be ignored without
+ * error. The DELETE key will do nothing.
+ * <p>
+ * If you switch from allowing nulls to not allowing nulls and the
+ * current date is null, it will remain null until a date is selected.
+ * <p>
+ * The component default is to allow nulls.
+ *
+ * @param isNullAllowed Whether a null date is allowed.
+ */
+
+public void
+setNullAllowed(
+ boolean isNullAllowed)
+{
+ this.isNullAllowed = isNullAllowed;
+}
+
+/**
+ * Get the date currently displayed by the calendar panel. If no date
+ * is selected, null is returned.
+ *
+ * @return The date currently displayed.
+ * @see #getCalendar
+ */
+
+public Date
+getDate()
+{
+ if (isNullDate) return null;
+ return selectedCalendar.getTime();
+}
+
+/**
+ * Set the calendar panel to display the given date. This will fire a
+ * DateEvent. The date may be null. If isNullAllowed() is true, then
+ * all dates will be unselected. If isNullAllowed() is false, a null
+ * date is ignored.
+ *
+ * @param date The date to set.
+ */
+
+public void
+setDate(
+ Date date)
+{
+ if (date == null) {
+
+ // Ignore nulls if nulls aren't allowed
+
+ if (!isNullAllowed) return;
+
+ if (!isNullDate) {
+ isNullDate = true;
+ selectedYear = -1;
+ selectedMonth = -1;
+ selectedDay = -1;
+ selectedCalendar.set(Calendar.YEAR, 9999);
+ selectedCalendar.set(Calendar.MONTH, 9);
+ selectedCalendar.set(Calendar.DATE, 9);
+ selectedCalendar.set(Calendar.HOUR_OF_DAY, 0);
+ selectedCalendar.set(Calendar.MINUTE, 0);
+ selectedCalendar.set(Calendar.SECOND, 0);
+ updateCalendarComponents();
+ fireDateChange();
+ }
+ }
+
+ else {
+ int oldYear = selectedYear;
+ int oldMonth = selectedMonth;
+ int oldDay = selectedDay;
+ int oldHour = selectedHour;
+ int oldMinute = selectedMinute;
+ int oldSecond = selectedSecond;
+
+ selectedCalendar.setTime(date);
+ selectedYear = selectedCalendar.get(Calendar.YEAR);
+ selectedMonth = selectedCalendar.get(Calendar.MONTH);
+ selectedDay = selectedCalendar.get(Calendar.DATE);
+ selectedHour = selectedCalendar.get(Calendar.HOUR_OF_DAY);
+ selectedMinute = selectedCalendar.get(Calendar.MINUTE);
+ selectedSecond = selectedCalendar.get(Calendar.SECOND);
+
+ if ((((selectedComponents & DISPLAY_DATE) > 0) &&
+ oldDay != selectedDay ||
+ oldMonth != selectedMonth ||
+ oldYear != selectedYear) ||
+
+ (((selectedComponents & DISPLAY_TIME) > 0) &&
+ oldHour != selectedHour ||
+ oldMinute != selectedMinute ||
+ oldSecond != selectedSecond)) {
+
+ isNullDate = false;
+ displayCalendar.setTime(date);
+ updateCalendarComponents();
+ fireDateChange();
+ }
+ }
+}
+
+/**
+ * Reset the displayed date without changing the selected date. No
+ * event occurs. A null date will reset to today's date. The display
+ * date simply selects the calendar page (month/year) to display.
+ *
+ * @param date The date to display.
+ */
+
+public void
+setDisplayDate(
+ Date date)
+{
+ if (date == null) date = new Date();
+
+ displayCalendar.setTime(date);
+ int oldMonth = displayCalendar.get(Calendar.MONTH);
+ int oldYear = displayCalendar.get(Calendar.YEAR);
+ if (oldMonth != displayMonth || oldYear != displayYear) {
+ updateCalendarComponents();
+ }
+}
+
+/**
+ * Get the pattern used to display the time in the time selection
+ * spinner. This is null if the time is not displayed.
+ *
+ * @return The pattern used to display the time in the time selection
+ * spinner.
+ */
+
+public String
+getTimePattern()
+{
+ if ((selectedComponents & DISPLAY_TIME) != 0) {
+ return timePattern;
+ }
+ return null;
+}
+
+/**
+ * Get a copy of the calendar used by this JCalendar. This calendar
+ * will be set to the currently selected date, so it is an alternative
+ * to the getDate() method. If no date is selected (getDate() returns
+ * null), the calendar's selected date is 9/9/9999 and should not be
+ * used.
+ *
+ * @return A copy of the calendar used by JCalendar.
+ * @see #getDate
+ */
+
+public Calendar
+getCalendar()
+{
+ return (Calendar)selectedCalendar.clone();
+}
+
+/**
+ * Return the locale used by this JCalendar.
+ *
+ * @return The locale used by this JCalendar.
+ */
+
+public Locale
+getLocale()
+{
+ return locale;
+}
+
+/**
+ * Return the components being displayed:
+ * <code>
+ * (getSelectedComponents() & DISPLAY_DATE) > 0
+ * </code>
+ * means that the date calendar is being displayed.
+ * <code>
+ * (getSelectedComponents() & DISPLAY_TIME) > 0
+ * </code>
+ * menas that the time spinner field is being displayed.
+ *
+ * @return The selected components.
+ */
+
+public int
+getSelectedComponents()
+{
+ return selectedComponents;
+}
+
+
+/**
+ * Returns true if today's date is displayed at the bottom of the
+ * calendar.
+ *
+ * @return True if today's date is displayed at the bottom of the
+ * calendar.
+ */
+
+public boolean
+isTodayDisplayed()
+{
+ return isTodayDisplayed;
+}
+
+/**
+ * Get the title font.
+ *
+ * @return The title font.
+ */
+
+public Font
+getTitleFont()
+{
+ return titleFont;
+}
+
+/**
+ * If the font is set to null, then the title font (for the Month Year
+ * title) will default to the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the title font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTitleFont(
+ Font font)
+{
+ if (font == null && titleFont != null ||
+ !font.equals(titleFont)) {
+
+ titleFont = font;
+ if (isDisplayable()) setupTitleFont();
+ }
+}
+
+/**
+ * Get the day-of-week font (Mon, Tue, etc.).
+ *
+ * @return The day-of-week font.
+ */
+
+public Font
+getDayOfWeekFont()
+{
+ return dayOfWeekFont;
+}
+
+/**
+ * If the font is set to null, then the day-of-week font (Mon, Tue,
+ * etc.) will default to 9/11th's of the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the day-of-week font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setDayOfWeekFont(
+ Font font)
+{
+ if (font == null && dayOfWeekFont != null ||
+ !font.equals(dayOfWeekFont)) {
+
+ dayOfWeekFont = font;
+ if (isDisplayable()) setupDayOfWeekFonts();
+ }
+}
+
+/**
+ * Get the day font.
+ *
+ * @return The day font.
+ */
+
+public Font
+getDayFont()
+{
+ return dayFont;
+}
+
+/**
+ * If the font is set to null, then the day font will default to
+ * 9/11th's of the L&amp;F's Button default font.
+ * <p>
+ * Otherwise, the day font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setDayFont(
+ Font font)
+{
+ if (font == null && dayFont != null ||
+ !font.equals(dayFont)) {
+
+ dayFont = font;
+ if (isDisplayable()) setupDayFonts();
+ }
+}
+
+/**
+ * Get the time spinner font.
+ *
+ * @return The time spinner font.
+ */
+
+public Font
+getTimeFont()
+{
+ return timeFont;
+}
+
+/**
+ * If the font is set to null, then the time spinner font will default
+ * to the L&amp;F's Spinner default font.
+ * <p>
+ * Otherwise, the time spinner font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTimeFont(
+ Font font)
+{
+ if (font == null && timeFont != null ||
+ !font.equals(timeFont)) {
+
+ timeFont = font;
+ if (isDisplayable()) setupTimeFont();
+ }
+}
+
+/**
+ * Get the font used to display today's date as text.
+ *
+ * @return The font used to display today's date.
+ */
+
+public Font
+getTodayFont()
+{
+ return todayFont;
+}
+
+/**
+ * If the font is set to null, then the font used to display today's
+ * date as text will default to the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the font used to display today's date is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTodayFont(
+ Font font)
+{
+ if (font == null && todayFont != null ||
+ !font.equals(todayFont)) {
+
+ todayFont = font;
+ if (isDisplayable()) setupTodayFont();
+ }
+}
+
+/**
+ * {@inheritDoc}
+ */
+
+public void
+setEnabled(
+ boolean b)
+{
+ if (b != isEnabled()) {
+ super.setEnabled(b);
+
+ if ((selectedComponents & DISPLAY_DATE) > 0) {
+ yearDecrButton.setEnabled(b);
+ monthDecrButton.setEnabled(b);
+ monthYearLabel.setEnabled(b);
+ monthIncrButton.setEnabled(b);
+ yearIncrButton.setEnabled(b);
+
+ for (int day = 0; day < 7; day++) {
+ dayOfWeekLabels[day].setEnabled(b);
+ }
+
+ for (int row = 0; row < 6; row++) {
+ for (int day = 0; day < 7; day++) {
+ if (dayButtons[row][day].getText().length() > 0) {
+ dayButtons[row][day].setEnabled(b);
+ }
+ }
+ }
+ }
+
+ if ((selectedComponents & DISPLAY_TIME) > 0) {
+ spinner.setEnabled(b);
+ }
+ }
+}
+
+/**
+ * {@inheritDoc}
+ */
+
+public void
+addNotify()
+{
+ // We don't try to do anything with the fonts until we know the
+ // component is displayable
+
+ setupTitleFont();
+ setupDayOfWeekFonts();
+ setupDayFonts();
+ setupTimeFont();
+ setupTodayFont();
+
+ super.addNotify();
+}
+
+// The default equals and hashCode methods are acceptable. In
+// general, two components are never equal unless they are the same
+// component.
+
+/**
+ * {@inheritDoc}
+ */
+
+protected String
+paramString()
+{
+ String curDate;
+ if ((selectedComponents & DISPLAY_DATE) == DISPLAY_DATE) {
+ curDate = DateFormat.getDateInstance(
+ DateFormat.FULL, locale).format(getDate());
+ }
+ else if ((selectedComponents & DISPLAY_TIME) == DISPLAY_TIME) {
+ curDate = DateFormat.getTimeInstance(
+ DateFormat.FULL, locale).format(getDate());
+ }
+ else {
+ curDate = DateFormat.getDateTimeInstance(
+ DateFormat.FULL, DateFormat.FULL, locale).format(getDate());
+ }
+
+ return super.paramString() + ",selectedDate=" + curDate;
+}
+
+//**********************************************************************
+// Package Public
+//**********************************************************************
+
+private JCalendarCombo comboCalendar;
+
+/**
+ * Get the JCalendarCombo component which uses this JCalendar in its
+ * combo popup.
+ *
+ * @return The JCalendarCombo component which uses this JCalendar in
+ * its combo popup.
+ * @see JCalendarCombo
+ */
+
+JCalendarCombo
+getJCalendarComboParent()
+{
+ return comboCalendar;
+}
+
+/**
+ * Set the JCalendarCombo component which uses this JCalendar in its
+ * combo popup.
+ *
+ * @param comboCalendar The JCalendarCombo component which uses this
+ * JCalendar in its combo popup.
+ * @see JCalendarCombo
+ */
+
+void
+setJCalendarComboParent(
+ JCalendarCombo comboCalendar)
+{
+ this.comboCalendar = comboCalendar;
+}
+
+/**
+ * Add the given input/action maps to the spinner.
+ */
+
+void
+addSpinnerMaps(
+ InputMap sim,
+ ActionMap sam)
+{
+ sim.setParent(spinner.getInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT));
+ spinner.setInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, sim);
+ sam.setParent(spinner.getActionMap());
+ spinner.setActionMap(sam);
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+/**
+ * Fire a date change. This notifies all listeners that the date has
+ * changed.
+ */
+
+protected void
+fireDateChange()
+{
+ // Guaranteed to return a non-null array
+
+ Object[] listeners = listenerList.getListenerList();
+
+ // Process the listeners last to first, notifying
+ // those that are interested in this event
+
+ for (int i = listeners.length - 2; i >= 0; i -= 2) {
+ if (listeners[i] == DateListener.class) {
+ DateEvent dateEvent;
+ if (isNullDate) {
+ dateEvent = new DateEvent(this, null);
+ }
+ else {
+ dateEvent = new DateEvent(this, selectedCalendar);
+ }
+ ((DateListener)listeners[i + 1]).dateChanged(dateEvent);
+ }
+ }
+}
+
+/**
+ * Set the title's font.
+ */
+
+protected void
+setupTitleFont()
+{
+ Font font;
+ if (monthYearLabel == null) return;
+
+ // If not null, use what the user gave us
+
+ if (titleFont != null) {
+ monthYearLabel.setFont(titleFont);
+ }
+
+ // Otherwise, use the L&F default for a label
+
+ else {
+ font = UIManager.getFont("Label.font");
+ monthYearLabel.setFont(font);
+ }
+}
+
+/**
+ * Set the day-of-week labels' font.
+ */
+
+protected void
+setupDayOfWeekFonts()
+{
+ Font font;
+ if (dayOfWeekLabels == null) return;
+
+ // If not null, use what the user gave us
+
+ font = dayOfWeekFont;
+
+ // Otherwise, use 9/11 of the L&F default for a label
+
+ if (font == null) {
+ font = UIManager.getFont("Label.font");
+ font = font.deriveFont((float)(font.getSize2D() * 9.0 / 11.0));
+ }
+
+ // Set the day of week labels' font
+
+ for (int day = 0; day < 7; day++) {
+ dayOfWeekLabels[day].setFont(font);
+ }
+}
+
+/**
+ * Set the day labels' font.
+ */
+
+protected void
+setupDayFonts()
+{
+ Font font;
+ if (dayButtons == null) return;
+
+ // If null, use what the user gave us
+
+ font = dayFont;
+
+ // Otherwise, use 9/11 of the L&F default for a button
+
+ if (font == null) {
+ font = UIManager.getFont("Button.font");
+ font = font.deriveFont((float)(font.getSize2D() * 9.0 / 11.0));
+ }
+
+ // Set the day labels' font
+
+ for (int row = 0; row < 6; row++) {
+ for (int day = 0; day < 7; day++) {
+ dayButtons[row][day].setFont(font);
+ }
+ }
+}
+
+/**
+ * Set the time spinner's font.
+ */
+
+protected void
+setupTimeFont()
+{
+ Font font;
+ if (spinner == null) return;
+
+ // If not null, use what the user gave us
+
+ if (timeFont != null) {
+ spinner.setFont(timeFont);
+ }
+ else {
+ font = UIManager.getFont("Spinner.font");
+ spinner.setFont(font);
+ }
+}
+
+/**
+ * Set the font used to display today's date as text.
+ */
+
+protected void
+setupTodayFont()
+{
+ Font font;
+ if (todaysLabel == null) return;
+
+ // If not null, use what the user gave us
+
+ if (todayFont != null) {
+ todaysLabel.setFont(todayFont);
+ }
+ else {
+ font = UIManager.getFont("Label.font");
+ todaysLabel.setFont(font);
+ }
+}
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * Set up the calendar panel with the basic layout and components.
+ * These are not date specific.
+ */
+
+private void
+createCalendarComponents()
+{
+ // The date panel will hold the calendar and/or the time spinner
+
+ JPanel datePanel = new JPanel(new BorderLayout(2, 2));
+
+ // Create the calendar if we are displaying a calendar
+
+ if ((selectedComponents & DISPLAY_DATE) > 0) {
+ formatMonth = new SimpleDateFormat("MMM", locale);
+ formatWeekDay = new SimpleDateFormat("EEE", locale);
+
+ // Set up the shared keyboard bindings
+
+ setInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
+ setActionMap(actionMap);
+
+ // Set up the decrement buttons
+
+ yearDecrButton =
+ new JButton(
+ new ButtonAction(
+ "YearDecrButton",
+ "YearDecrButtonMnemonic", "YearDecrButtonAccelerator",
+ "YearDecrButtonImage",
+ "YearDecrButtonShort", "YearDecrButtonLong",
+ YEAR_DECR_BUTTON));
+ monthDecrButton =
+ new JButton(
+ new ButtonAction(
+ "MonthDecrButton",
+ "MonthDecrButtonMnemonic", "MonthDecrButtonAccelerator",
+ "MonthDecrButtonImage",
+ "MonthDecrButtonShort", "MonthDecrButtonLong",
+ MONTH_DECR_BUTTON));
+ JPanel decrPanel =
+ new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 0));
+ decrPanel.add(yearDecrButton);
+ decrPanel.add(monthDecrButton);
+
+ // Set up the month/year label
+
+ monthYearLabel = new JLabel();
+ monthYearLabel.setHorizontalAlignment(JLabel.CENTER);
+
+ // Set up the increment buttons
+
+ monthIncrButton =
+ new JButton(
+ new ButtonAction(
+ "MonthIncrButton",
+ "MonthIncrButtonMnemonic", "MonthIncrButtonAccelerator",
+ "MonthIncrButtonImage",
+ "MonthIncrButtonShort", "MonthIncrButtonLong",
+ MONTH_INCR_BUTTON));
+ yearIncrButton =
+ new JButton(
+ new ButtonAction(
+ "YearIncrButton",
+ "YearIncrButtonMnemonic", "YearIncrButtonAccelerator",
+ "YearIncrButtonImage",
+ "YearIncrButtonShort", "YearIncrButtonLong",
+ YEAR_INCR_BUTTON));
+ JPanel incrPanel =
+ new JPanel(new FlowLayout(FlowLayout.LEFT, 2, 0));
+ incrPanel.add(monthIncrButton);
+ incrPanel.add(yearIncrButton);
+
+ // Put them all together
+
+ JPanel monthYearNavigator = new JPanel(new BorderLayout(2, 2));
+ monthYearNavigator.add(decrPanel, BorderLayout.WEST);
+ monthYearNavigator.add(monthYearLabel);
+ monthYearNavigator.add(incrPanel, BorderLayout.EAST);
+
+ // Set up the day panel
+
+ JPanel dayPanel = new JPanel(new GridLayout(7, 7));
+ int firstDay = displayCalendar.getFirstDayOfWeek();
+
+ // Get the week day labels. The following technique is used so
+ // that we can start the calendar on the right day of the week and
+ // we can get the week day labels properly localized
+
+ Calendar temp = Calendar.getInstance(locale);
+ temp.set(2000, Calendar.MARCH, 15);
+ while (temp.get(Calendar.DAY_OF_WEEK) != firstDay) {
+ temp.add(Calendar.DATE, 1);
+ }
+ dayOfWeekLabels = new JLabel[7];
+ for (int i = 0; i < 7; i++) {
+ Date date = temp.getTime();
+ String dayOfWeek = formatWeekDay.format(date);
+ dayOfWeekLabels[i] = new JLabel(dayOfWeek);
+ dayOfWeekLabels[i].setHorizontalAlignment(JLabel.CENTER);
+ dayPanel.add(dayOfWeekLabels[i]);
+ temp.add(Calendar.DATE, 1);
+ }
+
+ // Add all the day buttons
+
+ dayButtons = new JToggleButton[6][7];
+ dayGroup = new ButtonGroup();
+ DayListener dayListener = new DayListener();
+ for (int row = 0; row < 6; row++) {
+ for (int day = 0; day < 7; day++) {
+ dayButtons[row][day] = new JToggleButton();
+ dayButtons[row][day].addItemListener(dayListener);
+ dayPanel.add(dayButtons[row][day]);
+ dayGroup.add(dayButtons[row][day]);
+ }
+ }
+
+ // We add this special button to the button group, so we have a
+ // way of unselecting all the visible buttons
+
+ offScreenButton = new JToggleButton("X");
+ dayGroup.add(offScreenButton);
+
+ // Combine the navigators and days
+
+ datePanel.add(monthYearNavigator, BorderLayout.NORTH);
+ datePanel.add(dayPanel);
+ }
+
+ // Create the time spinner field if we are displaying the time
+
+ if ((selectedComponents & DISPLAY_TIME) > 0) {
+
+ // Create the time component
+
+ spinnerDateModel = new SpinnerDateModel();
+ spinnerDateModel.addChangeListener(new TimeListener());
+ spinner = new JSpinner(spinnerDateModel);
+
+ JSpinner.DateEditor dateEditor =
+ new JSpinner.DateEditor(spinner, timePattern);
+ dateEditor.getTextField().setEditable(false);
+ dateEditor.getTextField().setHorizontalAlignment(JTextField.CENTER);
+ spinner.setEditor(dateEditor);
+
+ // Set the input/action maps for the spinner. (Only BACK_SPACE
+ // seems to work!)
+
+ InputMap sim = new InputMap();
+ sim.put(KeyStroke.getKeyStroke("BACK_SPACE"), "setNullDate");
+ sim.put(KeyStroke.getKeyStroke("DELETE"), "setNullDate");
+ sim.setParent(spinner.getInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT));
+
+ ActionMap sam = new ActionMap();
+ sam.put(
+ "setNullDate",
+ new AbstractAction("setNullDate") {
+ public void actionPerformed(ActionEvent e) {
+ JCalendar.this.setDate(null);
+ }});
+ sam.setParent(spinner.getActionMap());
+
+ spinner.setInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, sim);
+ spinner.setActionMap(sam);
+
+ // Create a special panel for the time display
+
+ JPanel timePanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 2, 2));
+ timePanel.add(spinner);
+
+ // Now add it to the bottom
+
+ datePanel.add(timePanel, BorderLayout.SOUTH);
+ }
+
+ setLayout(new BorderLayout(2, 2));
+ add(datePanel);
+
+ // Add today's date at the bottom of the calendar/time, if needed
+
+ if (isTodayDisplayed) {
+ Object[] args = {
+ new Date()
+ };
+ String todaysDate =
+ MessageFormat.format(bundle.getString("Today"), args);
+ todaysLabel = new JLabel(todaysDate);
+ todaysLabel.setHorizontalAlignment(JLabel.CENTER);
+
+ // Add today's date at the very bottom
+
+ add(todaysLabel, BorderLayout.SOUTH);
+ }
+}
+
+/**
+ * Update the calendar panel to display the currently selected date.
+ */
+
+private void
+updateCalendarComponents()
+{
+ if ((selectedComponents & DISPLAY_DATE) > 0) {
+
+ // Unselect all visible dates
+
+ offScreenButton.setSelected(true);
+
+ // Get the display date. We only need the month and year
+
+ displayMonth = displayCalendar.get(Calendar.MONTH);
+ displayYear = displayCalendar.get(Calendar.YEAR);
+
+ // Get the localized display month name and year
+
+ String month = formatMonth.format(displayCalendar.getTime());
+ String year = Integer.toString(displayYear);
+
+ {
+ Object[] args = {
+ month,
+ year
+ };
+ monthYearLabel.setText(
+ MessageFormat.format(
+ bundle.getString("MonthYearTitle"), args));
+ }
+
+ // If the month or year have changed, we need to re-lay out
+ // the days. Otherwise, we don't
+
+ if (!month.equals(lastMonth) || !year.equals(lastYear)) {
+
+ // Create a temporary calendar that we will use to
+ // determine where day 1 goes and how many days there are
+ // in this month
+
+ Calendar temp = (Calendar)displayCalendar.clone();
+ temp.set(Calendar.DATE, 1);
+
+ int dayOfWeek = temp.get(Calendar.DAY_OF_WEEK);
+ int firstDay = temp.getFirstDayOfWeek();
+
+ // Determine how many blank slots occur before day 1 of this
+ // month
+
+ int dayPtr;
+ for (dayPtr = 0; dayPtr < 7; dayPtr++) {
+ int curDay = ((firstDay - 1) + dayPtr) % 7 + 1;
+ if (curDay != dayOfWeek) {
+ dayButtons[0][dayPtr].setText("");
+ dayButtons[0][dayPtr].setEnabled(false);
+ }
+ else {
+ break;
+ }
+ }
+
+ // Determine the number of days in this month
+
+ int maxDays = temp.getActualMaximum(Calendar.DATE);
+
+ // Fill in the days
+
+ int row = 0;
+ for (int day = 1; day <= maxDays; day++) {
+ dayButtons[row][dayPtr].setText(Integer.toString(day));
+ dayButtons[row][dayPtr].setEnabled(true);
+
+ // If this is the selected date, select the button;
+ // otherwise, deselect it
+
+ if (day == selectedDay &&
+ displayMonth == selectedMonth &&
+ displayYear == selectedYear) {
+ dayButtons[row][dayPtr].setSelected(true);
+ }
+ else {
+ dayButtons[row][dayPtr].getModel().setSelected(false);
+ }
+
+ // Wrap as needed
+
+ dayPtr = (dayPtr + 1) % 7;
+ if (dayPtr == 0) row++;
+ }
+
+ // Set the blanks slots after the last day
+
+ while (row < 6) {
+ dayButtons[row][dayPtr].setText("");
+ dayButtons[row][dayPtr].setEnabled(false);
+ dayButtons[row][dayPtr].getModel().setSelected(false);
+ dayPtr = (dayPtr + 1) % 7;
+ if (dayPtr == 0) row++;
+ }
+ }
+ }
+
+ // Update the time component, if displayed
+
+ if ((selectedComponents & DISPLAY_TIME) > 0) {
+
+ // If no date is selected, we set the date used by the time
+ // field to today @ noon. We also make the field insensitive
+ // -- the user must pick a non-null date before being able to
+ // change the time (unless all we have is a time field)
+
+ if (isNullDate) {
+ Calendar temp = (Calendar)selectedCalendar.clone();
+ temp.setTime(new Date());
+ temp.set(Calendar.HOUR, 12);
+ temp.set(Calendar.MINUTE, 0);
+ temp.set(Calendar.SECOND, 0);
+ spinnerDateModel.setValue(temp.getTime());
+ spinner.setEnabled((selectedComponents & DISPLAY_DATE) == 0);
+ }
+
+ // If a date is selected, use it
+
+ else {
+ spinner.setEnabled(JCalendar.this.isEnabled());
+ spinnerDateModel.setValue(selectedCalendar.getTime());
+ spinnerDateModel.setStart(null);
+ spinnerDateModel.setEnd(null);
+ spinner.revalidate();
+ }
+ }
+}
+
+/**
+ * Move backward one year.
+ */
+
+private void
+yearBackward()
+{
+ displayCalendar.add(Calendar.YEAR, -1);
+ updateCalendarComponents();
+}
+
+/**
+ * Move forward one year.
+ */
+
+private void
+yearForward()
+{
+ displayCalendar.add(Calendar.YEAR, 1);
+ updateCalendarComponents();
+}
+
+/**
+ * Move backward one month.
+ */
+
+private void
+monthBackward()
+{
+ displayCalendar.add(Calendar.MONTH, -1);
+ updateCalendarComponents();
+}
+
+/**
+ * Move forward one month.
+ */
+
+private void
+monthForward()
+{
+ displayCalendar.add(Calendar.MONTH, 1);
+ updateCalendarComponents();
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+//**********************************************************************
+// ButtonAction
+//**********************************************************************
+
+// This inner class is used to define the action associated with a
+// button.
+
+private class ButtonAction
+ extends AbstractAction
+{
+
+public final static String SMALL = "16.gif";
+public final static String LARGE = "24.gif";
+
+ButtonAction(
+ String name,
+ String mnemonic,
+ String accelerator,
+ String image,
+ String shortDescription,
+ String longDescription,
+ int actionId)
+{
+ if (name != null) {
+ putValue(Action.NAME, bundle.getString(name));
+ }
+
+ if (mnemonic != null) {
+ String mnemonicString = bundle.getString(mnemonic);
+ if (mnemonicString != null && mnemonicString.length() > 0) {
+ putValue(Action.MNEMONIC_KEY,
+ new Integer(bundle.getString(mnemonic).charAt(0)));
+ }
+ }
+
+ if (accelerator != null) {
+ String acceleratorString = bundle.getString(accelerator);
+ if (accelerator != null && acceleratorString.length() > 0) {
+ putValue(
+ Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke(acceleratorString));
+ }
+ }
+
+ if (image != null) {
+ String imageName = bundle.getString(image);
+ if (imageName != null && imageName.length() > 0) {
+ imageName = "images/" + imageName + SMALL;
+ URL url = this.getClass().getResource(imageName);
+ if (url != null) {
+ putValue(Action.SMALL_ICON, new ImageIcon(url));
+ }
+ }
+ }
+
+ if (shortDescription != null) {
+ String shortString = bundle.getString(shortDescription);
+ if (shortString != null & shortString.length() > 0) {
+ putValue(Action.SHORT_DESCRIPTION, shortString);
+ }
+ }
+
+ if (longDescription != null) {
+ String longString = bundle.getString(longDescription);
+ if (longString != null && longString.length() > 0) {
+ putValue(Action.LONG_DESCRIPTION, longString);
+ }
+ }
+
+ putValue("buttonAction", new Integer(actionId));
+}
+
+public void
+actionPerformed(
+ ActionEvent e)
+{
+ Integer value = (Integer)getValue("buttonAction");
+ switch (value.intValue()) {
+ case YEAR_DECR_BUTTON:
+ yearBackward();
+ break;
+ case YEAR_INCR_BUTTON:
+ yearForward();
+ break;
+ case MONTH_DECR_BUTTON:
+ monthBackward();
+ break;
+ case MONTH_INCR_BUTTON:
+ monthForward();
+ break;
+ }
+}
+
+}
+
+//**********************************************************************
+// DayListener
+//**********************************************************************
+
+// This is called when a day button is pressed
+
+private class DayListener
+ implements ItemListener
+{
+
+public void
+itemStateChanged(
+ ItemEvent e)
+{
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ int oldDay = selectedDay;
+ int oldMonth = selectedMonth;
+ int oldYear = selectedYear;
+
+ String dayString = ((JToggleButton)e.getItem()).getText();
+ try {
+ selectedDay = Integer.parseInt(dayString);
+ }
+ catch (Exception ex) {
+ selectedDay = 1;
+ }
+ selectedMonth = displayMonth;
+ selectedYear = displayYear;
+
+ if (oldDay != selectedDay ||
+ oldMonth != selectedMonth ||
+ oldYear != selectedYear) {
+
+ isNullDate = false;
+ selectedCalendar.set(Calendar.YEAR, selectedYear);
+ selectedCalendar.set(Calendar.MONTH, selectedMonth);
+ selectedCalendar.set(Calendar.DATE, selectedDay);
+
+ updateCalendarComponents();
+ fireDateChange();
+ }
+ }
+}
+
+}
+
+//**********************************************************************
+// TimeListener
+//**********************************************************************
+
+// Called whenever the time field changes
+
+private class TimeListener
+ implements ChangeListener
+{
+
+Calendar lastTemp = null;
+Calendar temp = Calendar.getInstance(locale);
+
+public void
+stateChanged(
+ ChangeEvent e)
+{
+ Date date = spinnerDateModel.getDate();
+
+ // We only care about the time portion of the field. If no date is
+ // selected, we shouldn't be able to change the time (unless there
+ // is no date to select)
+
+ if (!isNullDate || (selectedComponents & DISPLAY_DATE) == 0) {
+ temp.setTime(date);
+ temp.set(Calendar.YEAR, selectedCalendar.get(Calendar.YEAR));
+ temp.set(Calendar.MONTH, selectedCalendar.get(Calendar.MONTH));
+ temp.set(Calendar.DATE, selectedCalendar.get(Calendar.DATE));
+
+ // Make sure we change the time only if necessary
+
+ if (lastTemp == null || !lastTemp.equals(temp)) {
+ setDate(temp.getTime());
+ lastTemp = (Calendar)temp.clone();
+ }
+ }
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendarCombo.java b/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendarCombo.java
new file mode 100644
index 0000000..5515c88
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/JCalendarCombo.java
@@ -0,0 +1,1448 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jcalendar;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import javax.swing.event.*;
+import javax.swing.plaf.*;
+import javax.swing.plaf.basic.*;
+import java.beans.*;
+
+import javax.swing.plaf.metal.MetalComboBoxUI;
+import com.sun.java.swing.plaf.motif.MotifComboBoxUI;
+import com.sun.java.swing.plaf.windows.WindowsComboBoxUI;
+// For Skin L&F
+//import com.l2fprod.gui.plaf.skin.SkinComboBoxUI;
+
+import java.text.*;
+import java.net.URL;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.EventListener;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import javax.accessibility.*;
+
+/**
+ * This class is a combo box that allows you to select a date either
+ * by typing one in (if the combo box is editable) or through a
+ * JCalendar pop-up. Normally, a combo box expects to use a a popup
+ * that contains a list. We've perverted this a bit; while you can
+ * select a variety of dates, the list always has one item which
+ * changes to match the selected date.
+ * <p>
+ * You may specify a font for each of the elements that make up the
+ * pop-up calendar. If you do not specify a font (or specify a null
+ * font), a reasonable default will be generated based on the current
+ * Look &amp; Feel.
+ * <p>
+ * The JCalendarCombo uses a non-mutable ComboBoModel. This means that
+ * the following methods will generate an exception:
+ * <ul>
+ * <li>addItem()
+ * <li>insertItemAt()
+ * <li>removeItem()
+ * <li>removeItemAt()
+ * <li>removeAllItems()
+ * </ul>
+ * You would be ill-advised to to call setModel() with your own
+ * ComboBoxModel unless you use some variant of a
+ * JCalendarCombo.CalendarComboBoxModel class.
+ * <p>
+ * The combo box listeners work pretty much as for normal combo boxes.
+ * The item changed event reports the date "unselected" (the previous
+ * date) and "selected" (the new date set), but as Strings. It's
+ * probably better to add a DateListener and ignore the ItemListener
+ * and ActionListener.
+ * <p>
+ * The following key bindings should work (some may depend on the
+ * selected Look-and-Feel):
+ * <ul>
+ * <li>Left Arrow - Move back a month.
+ * <li>Right Arrow - Move forward a month.
+ * <li>Shift Left Arrow - Move back a year.
+ * <li>Shift Right Arrow - Move forward a year.
+ * <li>Down Arrow - Display the calendar pop-up (if not visible).
+ * <li>Up Arrow - Apply any change and hide the calendar pop-up (if visible);
+ * <li>Escape - Cancel any changes and hide the calendar pop-up (if visible).
+ * <li>Delete - Unselect all dates only if isNullAllowed() is true).
+ * <li>BackSpace - Same as Delete.
+ * <li>Return - Accept the selected date and hide the calendar pop-up
+ * (if visible).
+ * </ul>
+ * <p>
+ * This component tries to adapt it's Look-and-Feel to match the
+ * current Look-and-Feel. But it can only do so for Look-and-Feels's
+ * that it knows about. To adapt it for new Look-and-Feels, create a
+ * sub-class:
+ * <pre><code>
+ * public class MyCalendarCombo extends JCalendarCombo {
+ * public void updateUI() {
+ * ComboBoxUI cui = (ComboBoxUI)UIManager.getUI(this);
+ * if (cui instanceof SomeLAFComboBoxUI) {
+ * cui = new SomeLAFCalComboBoxUI();
+ * }
+ * else {
+ * super.updateUI();
+ * }
+ * }
+ * private class SomeLAFCalComboBoxUI extends SomeLAFComboBoxUI {
+ * return new CalendarComboPopup();
+ * }
+ * }
+ * </code></pre>
+ * If it can't figure out an appropriate Look-and-Feel, it uses the
+ * Metal Look-and-Feel.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2003 Antonio Freixas
+// All Rights Reserved.
+
+public class JCalendarCombo
+ extends JComboBox
+{
+
+//**********************************************************************
+// Public Constants
+//**********************************************************************
+
+/**
+ * Used to indicate that this component should display the date.
+ */
+
+public static final int DISPLAY_DATE = JCalendar.DISPLAY_DATE;
+
+/**
+ * Used to indicate that this component should display the time.
+ */
+
+public static final int DISPLAY_TIME = JCalendar.DISPLAY_TIME;
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+// The currently displayed popup
+
+static JCalendarCombo currentPopup = null;
+
+// The locale to use
+
+private Locale locale;
+
+// The date format used to display the selected date
+
+private DateFormat dateFormat;
+
+// Date formats used for parsing
+
+private DateFormat parseFormat[];
+private DateFormat timePatternFormat;
+
+// The components
+
+private Window parentWindow;
+private JWindow oldWindow;
+private JWindow calendarWindow;
+private JCalendar calendarPanel;
+
+// True if the calendar panel is displayed
+
+private boolean isCalendarDisplayed = false;
+
+// Keep track of the original date in case the date change is canceled
+
+private Date originalDate = null;
+
+// Cache the date so we can tell when to take down the calendar
+
+private Calendar cacheCalendar = null;
+
+// These maps are used to bind keyboard keys to methods. These maps
+// are added to the maps used by JCalendar.
+
+private static InputMap inputMap = new InputMap();
+private static InputMap spinnerInputMap = new InputMap();
+private static ActionMap actionMap = new ActionMap();
+
+// The input map maps a key to a name. The action map maps a name to
+// an action. The actions below map the action to a method call
+
+private static Action setNullDate = new AbstractAction("setNullDate") {
+ public void actionPerformed(ActionEvent e) {
+ ((JCalendar)e.getSource()).setDate(null);
+ ((JCalendar)e.getSource()).getJCalendarComboParent().hideCalendar();
+ }
+};
+
+private static Action cancel = new AbstractAction("cancel") {
+ public void actionPerformed(ActionEvent e) {
+ JCalendar cal = (JCalendar)e.getSource();
+ JCalendarCombo calCombo = cal.getJCalendarComboParent();
+
+ cal.setDate(calCombo.originalDate);
+ calCombo.firePopupMenuCanceled();
+ calCombo.hideCalendar();
+ }
+};
+
+private static Action apply = new AbstractAction("apply") {
+ public void actionPerformed(ActionEvent e) {
+ JCalendar cal = (JCalendar)e.getSource();
+ JCalendarCombo calCombo = cal.getJCalendarComboParent();
+ calCombo.hideCalendar();
+ }
+};
+//**********************************************************************
+// Static Constructors
+//**********************************************************************
+
+static
+{
+ // Set up the input map that will be shared by all instances
+
+ inputMap.put(KeyStroke.getKeyStroke("ESCAPE"), "cancel");
+ inputMap.put(KeyStroke.getKeyStroke("UP"), "apply");
+ inputMap.put(KeyStroke.getKeyStroke("ENTER"), "apply");
+ inputMap.setParent(JCalendar.inputMap);
+
+ actionMap.put("cancel", cancel);
+ actionMap.put("apply", apply);
+ actionMap.setParent(JCalendar.actionMap);
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create an instance of JCalendarCombo using the default calendar and
+ * locale. Display the date but not the time. Don't display today's
+ * date.
+ */
+
+public
+JCalendarCombo()
+{
+ this(Calendar.getInstance(),
+ Locale.getDefault(),
+ DISPLAY_DATE,
+ false,
+ null);
+}
+
+/**
+ * Create an instance of JCalendarCombo using the default calendar and
+ * locale. Display a calendar and a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Use the default pattern to display the time in the
+ * time spinner field (if there is one).
+ *
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed.
+ */
+
+public
+JCalendarCombo(
+ int selectedComponents,
+ boolean isTodayDisplayed)
+{
+ this(Calendar.getInstance(),
+ Locale.getDefault(),
+ selectedComponents,
+ isTodayDisplayed,
+ null);
+}
+
+/**
+ * Create an instance of JCalendarCombo using the given calendar and
+ * locale. Display a calendar and a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Use the default pattern to display the time in the
+ * time spinner field (if there is one).
+ *
+ * @param calendar The calendar to use.
+ * @param locale The locale to use.
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed.
+ */
+
+public
+JCalendarCombo(
+ Calendar calendar,
+ Locale locale,
+ int selectedComponents,
+ boolean isTodayDisplayed)
+{
+ this(calendar,
+ locale,
+ selectedComponents,
+ isTodayDisplayed,
+ null);
+}
+
+/**
+ * Create an instance of JCalendarCombo using the given calendar and
+ * locale. Display a calendar and a time spinner as requested (to
+ * display both use DISPLAY_DATE | DISPLAY_TIME). Display today's
+ * date if requested. Use the default pattern to display the time in the
+ * time spinner field (if there is one).
+ *
+ * @param calendar The calendar to use.
+ * @param locale The locale to use.
+ * @param selectedComponents Use DISPLAY_DATE, DISPLAY_TIME or
+ * (DISPLAY_DATE | DISPLAY_TIME).
+ * @param isTodayDisplayed True if today's date should be displayed.
+ * @see DateFormat
+ * @see SimpleDateFormat
+ */
+
+public
+JCalendarCombo(
+ Calendar calendar,
+ Locale locale,
+ int selectedComponents,
+ boolean isTodayDisplayed,
+ String timePattern)
+{
+ super();
+ calendarPanel =
+ new JCalendar(
+ calendar,
+ locale,
+ selectedComponents,
+ isTodayDisplayed,
+ timePattern);
+ this.locale = locale;
+
+ // Set up the parse formats
+
+ parseFormat = new DateFormat[12];
+
+ parseFormat[0] =
+ DateFormat.getDateTimeInstance(
+ DateFormat.SHORT, DateFormat.SHORT, locale);
+ parseFormat[1] =
+ DateFormat.getDateTimeInstance(
+ DateFormat.MEDIUM, DateFormat.MEDIUM, locale);
+ parseFormat[2] =
+ DateFormat.getDateTimeInstance(
+ DateFormat.LONG, DateFormat.LONG, locale);
+ parseFormat[3] =
+ DateFormat.getDateTimeInstance(
+ DateFormat.FULL, DateFormat.FULL, locale);
+
+ parseFormat[4] = DateFormat.getDateInstance(DateFormat.SHORT, locale);
+ parseFormat[5] = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
+ parseFormat[6] = DateFormat.getDateInstance(DateFormat.LONG, locale);
+ parseFormat[7] = DateFormat.getDateInstance(DateFormat.FULL, locale);
+
+ parseFormat[8] = DateFormat.getTimeInstance(DateFormat.SHORT, locale);
+ parseFormat[9] = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);
+ parseFormat[10] = DateFormat.getTimeInstance(DateFormat.LONG, locale);
+ parseFormat[11] = DateFormat.getTimeInstance(DateFormat.FULL, locale);
+
+ // Add a format if the timePattern was specified
+
+ if (timePattern != null) {
+ timePatternFormat = new SimpleDateFormat(timePattern, locale);
+ }
+
+ if (selectedComponents == DISPLAY_DATE) {
+ setDateFormat(DateFormat.getDateInstance(DateFormat.FULL, locale));
+ }
+ else if (selectedComponents == DISPLAY_TIME) {
+ setDateFormat(DateFormat.getTimeInstance(DateFormat.FULL, locale));
+ if (timePattern != null) {
+ timePatternFormat = new SimpleDateFormat(timePattern, locale);
+ }
+ }
+ else {
+ setDateFormat
+ (DateFormat.getDateTimeInstance(
+ DateFormat.FULL, DateFormat.FULL, locale));
+ }
+
+ super.setModel(new CalendarComboBoxModel());
+ super.setKeySelectionManager(new CalendarKeySelectionManager());
+
+ createCalendarComponents();
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Add a date listener. This listener will receive events each time
+ * the selected date changes.
+ *
+ * @param listener The date listener to add.
+ */
+
+public void
+addDateListener(
+ DateListener listener)
+{
+ calendarPanel.addDateListener(listener);
+}
+
+/**
+ * Remove a date listener.
+ *
+ * @param listener The date listener to remove.
+ */
+
+public void
+removeDateListener(
+ DateListener listener)
+{
+ calendarPanel.removeDateListener(listener);
+}
+
+/**
+ * Get whether a null date is allowed.
+ *
+ * @return The whether a null date is allowed.
+ */
+
+public boolean
+isNullAllowed()
+{
+ return calendarPanel.isNullAllowed();
+}
+
+/**
+ * Set whether a null date is allowed. A null date means that no date
+ * is selected. The user can select a null date by pressing DELETE
+ * anywhere within the calendar.
+ * <p>
+ * If nulls are not allowed, a setDate(null) will be ignored without
+ * error. The DELETE key will do nothing.
+ * <p>
+ * If you switch from allowing nulls to not allowing nulls and the
+ * current date is null, it will remain null until a date is selected.
+ * <p>
+ * The component default is to allow nulls.
+ *
+ * @param isNullAllowed The whether a null date is allowed.
+ */
+
+public void
+setNullAllowed(
+ boolean isNullAllowed)
+{
+ calendarPanel.setNullAllowed(isNullAllowed);
+}
+
+/**
+ * Get the date currently displayed by the calendar panel. If null,
+ * then no date was selected.
+ *
+ * @return The date currently displayed.
+ * @see #getCalendar
+ */
+
+public Date
+getDate()
+{
+ return calendarPanel.getDate();
+}
+
+/**
+ * Set the calendar panel to display the given date. This will fire a
+ * DateEvent.
+ *
+ * @param date The date to set.
+ */
+
+public void
+setDate(
+ Date date)
+{
+ calendarPanel.setDate(date);
+}
+
+/**
+ * Get the date format used to display the selected date in the combo
+ * box's text field.
+ *
+ * @return The date format used to display the selected date in the
+ * combo box's text field.
+ */
+
+public DateFormat
+getDateFormat()
+{
+ return dateFormat;
+}
+
+/**
+ * Set the date format used to display the selected date in the combo
+ * box's text field. Nulls are not allowed.
+ *
+ * @param dateFormat The date format used to display the selected date
+ * in the combo box's text field.
+ * @throws java.lang.NullPointerException
+ */
+
+public void
+setDateFormat(
+ DateFormat dateFormat)
+ throws NullPointerException
+{
+ if (dateFormat == null) {
+ throw new NullPointerException("Date format cannot be null.");
+ }
+
+ this.dateFormat = dateFormat;
+}
+
+/**
+ * Get a copy of the calendar used by this JCalendar. This calendar
+ * will be set to the currently selected date, so it is an alternative
+ * to the getDate() method.
+ *
+ * @return A copy of the calendar used by JCalendar.
+ * @see #getDate
+ */
+
+public Calendar
+getCalendar()
+{
+ return calendarPanel.getCalendar();
+}
+
+/**
+ * Return the locale used by this JCalendar.
+ *
+ * @return The locale used by this JCalendar.
+ */
+
+public Locale
+getLocale()
+{
+ return locale;
+}
+
+/**
+ * Returns true if today's date is displayed at the bottom of the
+ * calendar.
+ *
+ * @return True if today's date is displayed at the bottom of the
+ * calendar.
+ */
+
+public boolean
+isTodayDisplayed()
+{
+ return calendarPanel.isTodayDisplayed();
+}
+
+/**
+ * Get the title font.
+ *
+ * @return The title font.
+ */
+
+public Font
+getTitleFont()
+{
+ return calendarPanel.getTitleFont();
+}
+
+/**
+ * If the font is set to null, then the title font (for the Month Year
+ * title) will default to the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the title font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTitleFont(
+ Font font)
+{
+ calendarPanel.setTitleFont(font);
+}
+
+/**
+ * Get the day-of-week font (Mon, Tue, etc.).
+ *
+ * @return The day-of-week font.
+ */
+
+public Font
+getDayOfWeekFont()
+{
+ return calendarPanel.getDayOfWeekFont();
+}
+
+/**
+ * If the font is set to null, then the day-of-week font (Mon, Tue,
+ * etc.) will default to 9/11th's of the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the day-of-week font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setDayOfWeekFont(
+ Font font)
+{
+ calendarPanel.setDayOfWeekFont(font);
+}
+
+/**
+ * Get the day font.
+ *
+ * @return The day font.
+ */
+
+public Font
+getDayFont()
+{
+ return calendarPanel.getDayFont();
+}
+
+/**
+ * If the font is set to null, then the day font will default to
+ * 9/11th's of the L&amp;F's Button default font.
+ * <p>
+ * Otherwise, the day font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setDayFont(
+ Font font)
+{
+ calendarPanel.setDayFont(font);
+}
+
+/**
+ * Get the time spinner font.
+ *
+ * @return The time spinner font.
+ */
+
+public Font
+getTimeFont()
+{
+ return calendarPanel.getTimeFont();
+}
+
+/**
+ * If the font is set to null, then the time spinner font will default
+ * to the L&amp;F's Spinner default font.
+ * <p>
+ * Otherwise, the time spinner font is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTimeFont(
+ Font font)
+{
+ calendarPanel.setTimeFont(font);
+}
+
+/**
+ * Get the font used to display today's date as text.
+ *
+ * @return The font used to display today's date.
+ */
+
+public Font
+getTodayFont()
+{
+ return calendarPanel.getTodayFont();
+}
+
+/**
+ * If the font is set to null, then the font used to display today's
+ * date as text will default to the L&amp;F's Label default font.
+ * <p>
+ * Otherwise, the font used to display today's date is set as given.
+ *
+ * @param font The font to set.
+ */
+
+public void
+setTodayFont(
+ Font font)
+{
+ calendarPanel.setTodayFont(font);
+}
+
+/**
+ * Sets the selected item in the combo box display area to the object
+ * in the argument. The object should be a String representation of a
+ * date.
+ * <p>
+ * If this constitutes a change in the selected item, ItemListeners
+ * added to the combo box will be notified with one or two ItemEvents.
+ * If there is a current selected item, an ItemEvent will be fired and
+ * the state change will be ItemEvent.DESELECTED. If anObject is in
+ * the list and is not currently selected then an ItemEvent will be
+ * fired and the state change will be ItemEvent.SELECTED.
+ * <p>ActionListeners added to the combo box will be notified with an
+ * ActionEvent when this method is called (assuming the date actually
+ * changed).
+ *
+ * @param anObject The object to select.
+ */
+
+public void
+setSelectedItem(
+ Object anObject)
+{
+ getModel().setSelectedItem(anObject);
+}
+
+/**
+ * This method is ignored. You cannot change the KeySelectionManager
+ * for JCalendarCombo.
+ *
+ * @param aManager The new key selection manager.
+ */
+
+public void
+setKeySelectionManager(
+ JComboBox.KeySelectionManager aManager)
+{
+// In JDK1.5, this method is called by BasicComboBoxUI. It did not
+// use to get called, so we were able to throw an exception.
+// throw new UnsupportedOperationException(
+// "The KeySelectionManager for a JCalendarCombo cannot be changed.");
+}
+
+/**
+ * Resets the UI property to a value from the current look and feel.
+ * Read the class documentation for instructions on how to override
+ * this to make the JCalendarCombo support a new Look-and-Feel.
+ */
+
+public void
+updateUI() {
+ ComboBoxUI cui = (ComboBoxUI)UIManager.getUI(this);
+ if (cui instanceof WindowsComboBoxUI) {
+ cui = new WindowsDateComboBoxUI();
+ }
+ else if (cui instanceof MetalComboBoxUI) {
+ cui = new MetalDateComboBoxUI();
+ }
+ else if (cui instanceof MotifComboBoxUI) {
+ cui = new MotifDateComboBoxUI();
+ }
+// For Skin L&F
+// else if (cui instanceof SkinComboBoxUI) {
+// cui = new SkinDateComboBoxUI();
+// }
+ else {
+ cui = new MetalDateComboBoxUI();
+ }
+
+ setUI(cui);
+}
+
+// The inherited equals and hashCode methods are acceptable as they
+// are generally not used for components.
+
+/**
+ * {@inheritDoc}
+ */
+
+protected String
+paramString()
+{
+ int selectedComponents = calendarPanel.getSelectedComponents();
+ String curDate;
+ if ((selectedComponents & DISPLAY_DATE) == DISPLAY_DATE) {
+ curDate = DateFormat.getDateInstance(
+ DateFormat.FULL, locale).format(getDate());
+ }
+ else if ((selectedComponents & DISPLAY_TIME) == DISPLAY_TIME) {
+ curDate = DateFormat.getTimeInstance(
+ DateFormat.FULL, locale).format(getDate());
+ }
+ else {
+ curDate = DateFormat.getDateTimeInstance(
+ DateFormat.FULL, DateFormat.FULL, locale).format(getDate());
+ }
+
+ return super.paramString() + ",selectedDate=" + curDate;
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+/**
+ * Given a date in String form, convert it to a Date object. If no
+ * conversion is possible, return null. This method tries to parse
+ * the string using DateFormat and SHORT, MEDIUM, LONG and FULL forms.
+ * If none of these work, a null date is returned.
+ *
+ * @param string The date in String form.
+ * @return The equivalent Date object or null.
+ */
+
+protected Date
+stringToDate(
+ String string)
+{
+ if (string == null || string.length() < 1) return null;
+
+ Date date = null;
+ if (timePatternFormat != null) {
+ try {
+ date = timePatternFormat.parse(string);
+ }
+ catch (ParseException e) { }
+ }
+
+ try {
+ date = dateFormat.parse(string);
+ }
+ catch (ParseException e) { }
+
+ if (date == null) {
+ for (int i = 0; i < parseFormat.length; i++) {
+ try {
+ date = parseFormat[i].parse(string);
+ }
+ catch (ParseException e) { }
+ if (date != null) break;
+ }
+ }
+
+ return date;
+}
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * Set up the calendar combo box layout and components. These are not
+ * date specific.
+ */
+
+private void
+createCalendarComponents()
+{
+ // Set the combo parent of the calendar panel
+
+ calendarPanel.setJCalendarComboParent(this);
+
+ // Add some extra key bindings to the calendar panel. Note that
+ // this input map has a parent InputMap from JCalendar
+
+ calendarPanel.setInputMap(WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
+ calendarPanel.setActionMap(actionMap);
+
+ // Add some extra key bindings to the spinner in the calendar
+ // panel (this doesn't seem to work!)
+
+ if ((calendarPanel.getSelectedComponents() & DISPLAY_TIME) > 0) {
+ InputMap sim = new InputMap();
+ sim.put(KeyStroke.getKeyStroke("ESCAPE"), "cancel");
+ sim.put(KeyStroke.getKeyStroke("ENTER"), "apply");
+
+ ActionMap sam = new ActionMap();
+ sam.put(
+ "cancel",
+ new AbstractAction("cancel") {
+ public void actionPerformed(ActionEvent e) {
+ JCalendarCombo calCombo = JCalendarCombo.this;
+ calendarPanel.setDate(calCombo.originalDate);
+ calCombo.firePopupMenuCanceled();
+ calCombo.hideCalendar();
+ }});
+ sam.put(
+ "apply",
+ new AbstractAction("apply") {
+ public void actionPerformed(ActionEvent e) {
+ JCalendarCombo calCombo = JCalendarCombo.this;
+ calCombo.hideCalendar();
+ }});
+
+ calendarPanel.addSpinnerMaps(sim, sam);
+ }
+
+ // Add a border for the calendar panel
+
+ Border border = (Border)UIManager.get("PopupMenu.border");
+ if (border == null) {
+ border = new BevelBorder(BevelBorder.RAISED);
+ }
+
+ calendarPanel.setBorder(border);
+
+ // Add a listener for date events
+
+ calendarPanel.addDateListener(new CalDateListener());
+
+ // Add a listener for ancestor events
+
+ addAncestorListener(new ComboAncestorListener());
+}
+
+/**
+ * Make the calendar panel invisible.
+ */
+
+private void
+hideCalendar()
+{
+ if (isCalendarDisplayed) {
+
+ // If it's visible, make it invisible
+
+ firePopupMenuWillBecomeInvisible();
+
+ calendarWindow.setVisible(false);
+ isCalendarDisplayed = false;
+ requestFocus();
+ if (currentPopup == this) currentPopup = null;
+ }
+}
+
+/**
+ * Make the calendar panel visible.
+ */
+
+private void
+showCalendar()
+{
+ if (!isCalendarDisplayed) {
+
+ // If another JCalendarCombo popup is visible, hide it
+
+ if (currentPopup != null) currentPopup.hideCalendar();
+
+ firePopupMenuWillBecomeVisible();
+
+ // If the combo box is editable, we need to convert the edit
+ // field into a date before bringing up the calendar. If the
+ // combo box is not editable, then the calendar already
+ // contains the selected date
+
+ if (isEditable()) {
+ setSelectedItem(getEditor().getItem());
+ getEditor().selectAll();
+ }
+
+ Window oldParentWindow = parentWindow;
+ parentWindow = SwingUtilities.getWindowAncestor(this);
+ if (parentWindow == null) return;
+
+ // If we don't have a window or if we need to reparent the
+ // window...
+
+ if (calendarWindow == null || parentWindow != oldParentWindow) {
+
+ // If a window exists, get rid of it
+
+ if (calendarWindow != null) calendarWindow.dispose();
+
+ // Create the new window and add the calendar panel
+
+ calendarWindow = new JWindow(parentWindow);
+ calendarWindow.getContentPane().add(calendarPanel);
+ calendarWindow.pack();
+ }
+
+ // Now position the window properly
+
+ Point fieldLocation = getLocationOnScreen();
+ Dimension fieldSize = getSize();
+ Dimension windowSize = calendarWindow.getSize();
+ Dimension screenSize = getToolkit().getScreenSize();
+
+ int x = fieldLocation.x + (fieldSize.width - windowSize.width);
+ int y = fieldLocation.y + fieldSize.height;
+
+ // Adjust the x position to keep the calendar window on the
+ // screen as much as possible
+
+ if (x + windowSize.width > screenSize.width) {
+ x = screenSize.width - windowSize.width;
+ }
+ if (x < 0) x = 0;
+
+ // Adjust the y position to keep the calendar window on the
+ // screen. We are already set to display below the text field;
+ // if that doesn't work, we display it above
+
+ if (y + windowSize.height > screenSize.height) {
+ y = fieldLocation.y - windowSize.height;
+ }
+
+ // Reset the displayed date to include the selected date (or
+ // today's date if the selected date is null)
+
+ originalDate = calendarPanel.getDate();
+ calendarPanel.setDisplayDate(originalDate);
+ cacheCalendar = calendarPanel.getCalendar();
+
+ // Make it visible
+
+ calendarWindow.setLocation(x, y);
+ calendarWindow.setVisible(true);
+ isCalendarDisplayed = true;
+ currentPopup = this;
+ }
+}
+
+/**
+ * Toggle the display of the calendar panel.
+ */
+
+private void
+toggleCalendar()
+{
+ if (isCalendarDisplayed) {
+ hideCalendar();
+ }
+ else {
+ showCalendar();
+ }
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+////////////////////////////////////////////////////////////////////////
+// Class MetalDateComboBoxUI
+////////////////////////////////////////////////////////////////////////
+
+// Override the MetalComboBoxUI to add a Calendar pop-up
+
+private class MetalDateComboBoxUI
+ extends MetalComboBoxUI
+{
+
+protected ComboPopup createPopup() {
+ return new CalendarComboPopup();
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class WindowsDateComboBoxUI
+////////////////////////////////////////////////////////////////////////
+
+// Override the WindowsComboBoxUI to add a Calendar pop-up
+
+class WindowsDateComboBoxUI
+ extends WindowsComboBoxUI
+{
+
+protected ComboPopup createPopup() {
+ return new CalendarComboPopup();
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class MotifDateComboBoxUI
+////////////////////////////////////////////////////////////////////////
+
+// Override the MotifComboBoxUI to add a Calendar pop-up
+
+class MotifDateComboBoxUI
+ extends MotifComboBoxUI
+{
+
+protected ComboPopup createPopup() {
+ return new CalendarComboPopup();
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class SkinDateComboBoxUI
+////////////////////////////////////////////////////////////////////////
+
+// Override the SkinComboBoxUI to add a Calendar pop-up
+
+// For Skin L&F
+// class SkinDateComboBoxUI
+// extends SkinComboBoxUI
+// {
+
+// protected ComboPopup createPopup() {
+// return new CalendarComboPopup();
+// }
+
+// }
+
+////////////////////////////////////////////////////////////////////////
+// Class CalDateListener
+////////////////////////////////////////////////////////////////////////
+
+// This class listens for calendar events in the calendarPanel and
+// passes the selection change to the combo box. The calendar pop-up
+// is also made invisible if the date (not just the time) changes
+
+private class CalDateListener
+ implements DateListener
+{
+
+public void
+dateChanged(
+ DateEvent e)
+{
+ Calendar cal = e.getSelectedDate();
+
+ if (cal == null) {
+ setSelectedItem(null);
+ }
+ else {
+ setSelectedItem(dateFormat.format(e.getSelectedDate().getTime()));
+ }
+
+ // Hide the calendar only if the day changes (ignore the time)
+
+ if (cal == null && cacheCalendar == null) return;
+ if (cal != null && cacheCalendar != null) {
+ if (cal.get(Calendar.YEAR) == cacheCalendar.get(Calendar.YEAR) &&
+ cal.get(Calendar.MONTH) == cacheCalendar.get(Calendar.MONTH) &&
+ cal.get(Calendar.DATE) == cacheCalendar.get(Calendar.DATE)) {
+ return;
+ }
+ }
+ hideCalendar();
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class CalendarComboBoxModel
+////////////////////////////////////////////////////////////////////////
+
+// This is the ComboBoxModel used for calendars.
+
+protected class CalendarComboBoxModel
+ implements ComboBoxModel
+{
+
+protected EventListenerList listenerList = new EventListenerList();
+
+// Add a ListDataListener
+
+public void
+addListDataListener(
+ ListDataListener l)
+{
+ listenerList.add(ListDataListener.class, l);
+}
+
+// Remove a ListDataListener
+
+public void
+removeListDataListener(
+ ListDataListener l)
+{
+ listenerList.remove(ListDataListener.class, l);
+}
+
+// Look at the calendarPanel and get its date in String form, using
+// the user's selected DateFormat. We ignore the index as our
+// "pretend" list has only one item -- the date in the calendar.
+
+public Object
+getElementAt(
+ int index)
+{
+ return getSelectedItem();
+}
+
+// The list size is always 1
+
+public int
+getSize()
+{
+ return 1;
+}
+
+// Get the selected date in String form. Null dates are converted to
+// empty strings
+
+public Object
+getSelectedItem()
+{
+ Date date = calendarPanel.getDate();
+ if (date == null) return "";
+ return dateFormat.format(date);
+}
+
+// Set the selected date. We get the source date by calling the
+// toString() method of the item passed in. This gets converted to a
+// Date which is applied to the calendarPanel and to the combo box
+// editor (if the combo box is editable). If we note that either had
+// to be changed, we fire an action event and an item change event
+
+public void
+setSelectedItem(
+ Object anItem)
+{
+ // Get the date to set
+
+ Date date = null;
+ if (anItem != null) date = stringToDate(anItem.toString());
+
+ // This method may be called because:
+ // - of a direct call by a programmer
+ // - of a DateEvent (the user selected a date on the calendar)
+ // - of a change in the editor (the user typed in a new date)
+ // We want to fire an event only if there is a change to either
+ // the calendar date or the editor date
+
+ boolean fireEvent = false;
+
+ Date calDate = calendarPanel.getDate();
+ if (date == null && calDate != null ||
+ date != null && !date.equals(calDate)) {
+
+ fireEvent = true;
+ calendarPanel.setDate(date);
+ }
+
+ if (isEditable()) {
+ Object editorItem = getEditor().getItem();
+ Date editorDate = null;
+ if (editorItem != null) {
+ editorDate = stringToDate(editorItem.toString());
+ }
+ if (date == null && editorDate != null ||
+ date != null && !date.equals(editorDate)) {
+
+ fireEvent = true;
+ if (date == null) {
+ getEditor().setItem("");
+ }
+ else {
+ getEditor().setItem(dateFormat.format(date));
+ }
+ }
+ }
+
+ if (fireEvent) {
+
+ // This method will cause an Action event to be fired
+
+ fireContentsChanged(this, -1, -1);
+ }
+}
+
+// Generate contentChanged() events
+
+private void
+fireContentsChanged(
+ Object source,
+ int index0,
+ int index1)
+{
+ Object[] listeners = listenerList.getListenerList();
+ ListDataEvent e = null;
+
+ for (int i = listeners.length - 2; i >= 0; i -= 2) {
+ if (listeners[i] == ListDataListener.class) {
+ if (e == null) {
+ e = new ListDataEvent(
+ source, ListDataEvent.CONTENTS_CHANGED, index0, index1);
+ }
+ ((ListDataListener)listeners[i+1]).contentsChanged(e);
+ }
+ }
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class CalendarKeySelectionManager
+////////////////////////////////////////////////////////////////////////
+
+// We use this KeySelectionManager which has no key selections
+
+private class CalendarKeySelectionManager
+ implements JComboBox.KeySelectionManager
+{
+
+public int
+selectionForKey(
+ char aKey,
+ ComboBoxModel aModel)
+{
+ // There are no key selections
+ return -1;
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class CalendarComboPopup
+////////////////////////////////////////////////////////////////////////
+
+// This is the calendar pop-up
+
+protected class CalendarComboPopup
+ implements ComboPopup
+{
+
+private JList list = new JList();
+private MouseListener mouseListener = null;
+
+
+// There is no key listener
+
+public KeyListener
+getKeyListener()
+{
+ return null;
+}
+
+// We return a JList with no items
+
+public JList
+getList()
+{
+ return list;
+}
+
+// Create a mouse listener which is used to display the combo pop-up
+// on a mouse press
+
+public MouseListener
+getMouseListener()
+{
+ if (mouseListener == null) {
+ mouseListener = new InvocationMouseListener();
+ }
+ return mouseListener;
+}
+
+// There is no mouse motion listerne
+
+public MouseMotionListener
+getMouseMotionListener()
+{
+ return null;
+}
+
+// Determine if the pop-up is visible
+
+public boolean
+isVisible()
+{
+ return isCalendarDisplayed;
+}
+// Hide the calendar. The work is done elsewhere
+
+public void
+hide()
+{
+ hideCalendar();
+}
+
+// Show the calendar. The work is done elsewhere
+
+public void
+show()
+{
+ showCalendar();
+}
+
+// I'm not sure there's anything we need to do here
+
+public void
+uninstallingUI()
+{
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class ComboAncestorListener
+////////////////////////////////////////////////////////////////////////
+
+// Hide the calendar if anything happens to its ancestor
+
+private class ComboAncestorListener
+ implements AncestorListener
+{
+
+public void
+ancestorAdded(
+ AncestorEvent e)
+{
+ hideCalendar();
+}
+
+public void
+ancestorRemoved(
+ AncestorEvent e)
+{
+ hideCalendar();
+}
+
+public void
+ancestorMoved(
+ AncestorEvent e)
+{
+ hideCalendar();
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////
+// Class InvocationMouseListener
+////////////////////////////////////////////////////////////////////////
+
+// A listener to be registered upon the combo box (not its popup menu)
+// to handle mouse events that affect the state of the popup menu. The
+// main purpose of this listener is to make the popup menu appear and
+// disappear.
+
+private class InvocationMouseListener
+ extends MouseAdapter
+{
+public void
+mousePressed(
+ MouseEvent e)
+{
+ if (!SwingUtilities.isLeftMouseButton(e) || !isEnabled())
+ return;
+
+ toggleCalendar();
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back16.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back16.gif
new file mode 100644
index 0000000..945dd14
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back16.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back24.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back24.gif
new file mode 100644
index 0000000..3815623
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Back24.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward16.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward16.gif
new file mode 100644
index 0000000..679d894
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward16.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward24.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward24.gif
new file mode 100644
index 0000000..814664c
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/FastForward24.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward16.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward16.gif
new file mode 100644
index 0000000..a8bfcf5
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward16.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward24.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward24.gif
new file mode 100644
index 0000000..572467c
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Forward24.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind16.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind16.gif
new file mode 100644
index 0000000..3f1b1e6
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind16.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind24.gif b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind24.gif
new file mode 100644
index 0000000..4e77dde
--- /dev/null
+++ b/libs/FLib/JCalendar/org/freixas/jcalendar/images/Rewind24.gif
Binary files differ
diff --git a/libs/FLib/JCalendar/project.dtd b/libs/FLib/JCalendar/project.dtd
new file mode 100644
index 0000000..dee3c51
--- /dev/null
+++ b/libs/FLib/JCalendar/project.dtd
@@ -0,0 +1,5193 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!ENTITY % boolean "(true|false|on|off|yes|no)">
+<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert | replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch | jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog | p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc | p4integrate | translate | signjar | cclock | chown | vajload | jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar | war | stlist | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget | pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit | antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip | concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout | typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource | copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc | wsdltodotnet | mkdir | condition | cvs | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | renameext | vsslabel | javadoc2 | basename | vsscp | tar | vajimport | p4fstat | setproxy | wlstop | p4counter | ilasm | soscheckout | apply | jarlib-resolve | ccuncheckout | cvstagdiff | jlink | javacc | jarlib-manifest | pvcs | chmod | ccmklbtype | jar | sound | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | ccmkelem | javah | ccmreconfigure | fail | unzip | javac | p4add | soslabel | jpcoverage | depend | vssget | deltree | ddcreator">
+<!ENTITY % types "patternset | assertions | propertyset | filterset | libfileset | mergemapper | identitymapper | filterreader | unpackagemapper | scriptfilter | concatfilter | extension | fileset | dirset | globmapper | filelist | filterchain | path | compositemapper | classfileset | regexpmapper | selector | xmlcatalog | flattenmapper | description | chainedmapper | packagemapper | mapper | zipfileset | substitution | extensionSet | redirector | regexp">
+
+<!ELEMENT project (target | %tasks; | %types;)*>
+<!ATTLIST project
+ name CDATA #IMPLIED
+ default CDATA #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT target (%tasks; | %types;)*>
+
+<!ATTLIST target
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ if CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ depends CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT patternset (include | patternset | exclude | excludesfile | includesfile)*>
+<!ATTLIST patternset
+ id ID #IMPLIED
+ includes CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED>
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT exclude EMPTY>
+<!ATTLIST exclude
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT excludesfile EMPTY>
+<!ATTLIST excludesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT includesfile EMPTY>
+<!ATTLIST includesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT assertions (disable | enable)*>
+<!ATTLIST assertions
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ enablesystemassertions %boolean; #IMPLIED>
+
+<!ELEMENT disable EMPTY>
+<!ATTLIST disable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT enable EMPTY>
+<!ATTLIST enable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT propertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST propertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT propertyref EMPTY>
+<!ATTLIST propertyref
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ builtin (all | system | commandline) #IMPLIED
+ regex CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT mapper (classpath | mapper)*>
+<!ATTLIST mapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST classpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT fileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT custom (classpath | param)*>
+<!ATTLIST custom
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ error CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ type CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT none (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST none
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT present (mapper)*>
+<!ATTLIST present
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ present (srconly | both) #IMPLIED>
+
+<!ELEMENT not (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST not
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT type EMPTY>
+<!ATTLIST type
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ type (file | dir) #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT modified (param)*>
+<!ATTLIST modified
+ id ID #IMPLIED
+ comparator (equal | rule) #IMPLIED
+ seldirs %boolean; #IMPLIED
+ cache (propertyfile) #IMPLIED
+ algorithm (hashvalue | digest) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ update %boolean; #IMPLIED>
+
+<!ELEMENT or (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST or
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT contains EMPTY>
+<!ATTLIST contains
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ text CDATA #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED>
+
+<!ELEMENT depend (mapper)*>
+<!ATTLIST depend
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT different (mapper)*>
+<!ATTLIST different
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ ignorefiletimes %boolean; #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT size EMPTY>
+<!ATTLIST size
+ id ID #IMPLIED
+ when (less | more | equal) #IMPLIED
+ units (K | k | kilo | KILO | Ki | KI | ki | kibi | KIBI | M | m | mega | MEGA | Mi | MI | mi | mebi | MEBI | G | g | giga | GIGA | Gi | GI | gi | gibi | GIBI | T | t | tera | TERA | Ti | TI | ti | tebi | TEBI) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT majority (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST majority
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ allowtie %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT containsregexp EMPTY>
+<!ATTLIST containsregexp
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT filename EMPTY>
+<!ATTLIST filename
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ name CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED>
+
+<!ELEMENT selector (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST selector
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT date EMPTY>
+<!ATTLIST date
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ millis CDATA #IMPLIED
+ checkdirs %boolean; #IMPLIED
+ datetime CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ pattern CDATA #IMPLIED
+ when (before | after | equal) #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT and (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST and
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depth EMPTY>
+<!ATTLIST depth
+ id ID #IMPLIED
+ max CDATA #IMPLIED
+ error CDATA #IMPLIED
+ min CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dirset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST dirset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT extdirs (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST extdirs
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filelist (file)*>
+<!ATTLIST filelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT existing (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST existing
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT pathelement EMPTY>
+<!ATTLIST pathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT path (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST path
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filterset (filterset | filter | filtersfile)*>
+<!ATTLIST filterset
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ filtersfile CDATA #IMPLIED>
+
+<!ELEMENT filter EMPTY>
+<!ATTLIST filter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT filtersfile EMPTY>
+<!ATTLIST filtersfile
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT libfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST libfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ urlbase CDATA #IMPLIED
+ file CDATA #IMPLIED
+ includeimpl %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeurl %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergemapper EMPTY>
+<!ATTLIST mergemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT identitymapper EMPTY>
+<!ATTLIST identitymapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterreader (classpath | param)*>
+<!ATTLIST filterreader
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT unpackagemapper EMPTY>
+<!ATTLIST unpackagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT scriptfilter (#PCDATA)>
+<!ATTLIST scriptfilter
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ token CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT concatfilter EMPTY>
+<!ATTLIST concatfilter
+ id ID #IMPLIED
+ append CDATA #IMPLIED
+ prepend CDATA #IMPLIED>
+
+<!ELEMENT extension EMPTY>
+<!ATTLIST extension
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ implementationversion CDATA #IMPLIED
+ specificationversion CDATA #IMPLIED
+ extensionname CDATA #IMPLIED
+ implementationvendorid CDATA #IMPLIED
+ specificationvendor CDATA #IMPLIED
+ implementationurl CDATA #IMPLIED
+ description CDATA #IMPLIED
+ implementationvendor CDATA #IMPLIED>
+
+<!ELEMENT globmapper EMPTY>
+<!ATTLIST globmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST filterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT headfilter EMPTY>
+<!ATTLIST headfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT classconstants EMPTY>
+<!ATTLIST classconstants
+ id ID #IMPLIED>
+
+<!ELEMENT linecontains (contains)*>
+<!ATTLIST linecontains
+ id ID #IMPLIED>
+
+<!ELEMENT replaceregex EMPTY>
+<!ATTLIST replaceregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT replacetokens (token)*>
+<!ATTLIST replacetokens
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED>
+
+<!ELEMENT token EMPTY>
+<!ATTLIST token
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT escapeunicode EMPTY>
+<!ATTLIST escapeunicode
+ id ID #IMPLIED>
+
+<!ELEMENT ignoreblank EMPTY>
+<!ATTLIST ignoreblank
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT tailfilter EMPTY>
+<!ATTLIST tailfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT tabstospaces EMPTY>
+<!ATTLIST tabstospaces
+ id ID #IMPLIED
+ tablength CDATA #IMPLIED>
+
+<!ELEMENT prefixlines EMPTY>
+<!ATTLIST prefixlines
+ id ID #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT expandproperties EMPTY>
+<!ATTLIST expandproperties
+ id ID #IMPLIED>
+
+<!ELEMENT striplinebreaks EMPTY>
+<!ATTLIST striplinebreaks
+ id ID #IMPLIED
+ linebreaks CDATA #IMPLIED>
+
+<!ELEMENT trim EMPTY>
+<!ATTLIST trim
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT striplinecomments (comment)*>
+<!ATTLIST striplinecomments
+ id ID #IMPLIED>
+
+<!ELEMENT comment EMPTY>
+<!ATTLIST comment
+ id ID #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT replacestring EMPTY>
+<!ATTLIST replacestring
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT tokenfilter (containsstring | linetokenizer | trim | stringtokenizer | replaceregex | replacestring | ignoreblank | deletecharacters | containsregex | filetokenizer)*>
+<!ATTLIST tokenfilter
+ id ID #IMPLIED
+ delimoutput CDATA #IMPLIED>
+
+<!ELEMENT containsstring EMPTY>
+<!ATTLIST containsstring
+ id ID #IMPLIED
+ contains CDATA #IMPLIED>
+
+<!ELEMENT linetokenizer EMPTY>
+<!ATTLIST linetokenizer
+ id ID #IMPLIED
+ includedelims %boolean; #IMPLIED>
+
+<!ELEMENT stringtokenizer EMPTY>
+<!ATTLIST stringtokenizer
+ id ID #IMPLIED
+ suppressdelims %boolean; #IMPLIED
+ includedelims %boolean; #IMPLIED
+ delimsaretokens %boolean; #IMPLIED
+ delims CDATA #IMPLIED>
+
+<!ELEMENT deletecharacters EMPTY>
+<!ATTLIST deletecharacters
+ id ID #IMPLIED
+ chars CDATA #IMPLIED>
+
+<!ELEMENT containsregex EMPTY>
+<!ATTLIST containsregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT filetokenizer EMPTY>
+<!ATTLIST filetokenizer
+ id ID #IMPLIED>
+
+<!ELEMENT stripjavacomments EMPTY>
+<!ATTLIST stripjavacomments
+ id ID #IMPLIED>
+
+<!ELEMENT linecontainsregexp (regexp)*>
+<!ATTLIST linecontainsregexp
+ id ID #IMPLIED>
+
+<!ELEMENT regexp EMPTY>
+<!ATTLIST regexp
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT compositemapper (mapper)*>
+<!ATTLIST compositemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classfileset (patternset | exclude | include | custom | rootfileset | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | root | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST classfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ rootclass CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT rootfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST rootfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT root EMPTY>
+<!ATTLIST root
+ id ID #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT regexpmapper EMPTY>
+<!ATTLIST regexpmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT xmlcatalog (entity | classpath | catalogpath | dtd | xmlcatalog)*>
+<!ATTLIST xmlcatalog
+ id ID #IMPLIED
+ catalogpathref IDREF #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT entity EMPTY>
+<!ATTLIST entity
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT catalogpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST catalogpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT dtd EMPTY>
+<!ATTLIST dtd
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT flattenmapper EMPTY>
+<!ATTLIST flattenmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT chainedmapper (mapper)*>
+<!ATTLIST chainedmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT packagemapper EMPTY>
+<!ATTLIST packagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT zipfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipfileset
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT substitution EMPTY>
+<!ATTLIST substitution
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT extensionSet (fileset | libfileset | extension)*>
+<!ATTLIST extensionSet
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT redirector (errorfilterchain | outputfilterchain | errormapper | inputfilterchain | outputmapper | inputmapper)*>
+<!ATTLIST redirector
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ inputencoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ createemptyfiles %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ error CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ input CDATA #IMPLIED
+ description CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorencoding CDATA #IMPLIED>
+
+<!ELEMENT errorfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST errorfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST outputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT errormapper (classpath | mapper)*>
+<!ATTLIST errormapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST inputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputmapper (classpath | mapper)*>
+<!ATTLIST outputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputmapper (classpath | mapper)*>
+<!ATTLIST inputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT propertyfile (entry)*>
+<!ATTLIST propertyfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT entry EMPTY>
+<!ATTLIST entry
+ id ID #IMPLIED
+ operation CDATA #IMPLIED
+ default CDATA #IMPLIED
+ key CDATA #IMPLIED
+ type (int | date | string) #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT ccmkdir EMPTY>
+<!ATTLIST ccmkdir
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT importtypelib EMPTY>
+<!ATTLIST importtypelib
+ id ID #IMPLIED
+ unsafe %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ usesysarray %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT vsscheckin EMPTY>
+<!ATTLIST vsscheckin
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT sql (#PCDATA | fileset | classpath | transaction)*>
+<!ATTLIST sql
+ id ID #IMPLIED
+ onerror (continue | stop | abort) #IMPLIED
+ userid CDATA #IMPLIED
+ password CDATA #IMPLIED
+ autocommit %boolean; #IMPLIED
+ rdbms CDATA #IMPLIED
+ print %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ encoding CDATA #IMPLIED
+ version CDATA #IMPLIED
+ url CDATA #IMPLIED
+ src CDATA #IMPLIED
+ output CDATA #IMPLIED
+ driver CDATA #IMPLIED
+ showheaders %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ delimitertype (normal | row) #IMPLIED
+ escapeprocessing %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ caching %boolean; #IMPLIED
+ keepformat %boolean; #IMPLIED
+ delimiter CDATA #IMPLIED>
+
+<!ELEMENT transaction (#PCDATA)>
+<!ATTLIST transaction
+ id ID #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT cvspass EMPTY>
+<!ATTLIST cvspass
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ passfile CDATA #IMPLIED>
+
+<!ELEMENT p4reopen EMPTY>
+<!ATTLIST p4reopen
+ id ID #IMPLIED
+ tochange CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT csc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST csc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ definitions CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED
+ fullpaths %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ utf8output %boolean; #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ warnlevel CDATA #IMPLIED
+ win32res CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ extraoptions CDATA #IMPLIED
+ incremental %boolean; #IMPLIED
+ noconfig %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ references CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ docfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ unsafe %boolean; #IMPLIED
+ filealign CDATA #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED>
+
+<!ELEMENT resource EMPTY>
+<!ATTLIST resource
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ embed %boolean; #IMPLIED>
+
+<!ELEMENT define EMPTY>
+<!ATTLIST define
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT reference (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST reference
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT src (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST src
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT dirname EMPTY>
+<!ATTLIST dirname
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT wlrun (classpath | wlclasspath)*>
+<!ATTLIST wlrun
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ pkpassword CDATA #IMPLIED
+ beahome CDATA #IMPLIED
+ domain CDATA #IMPLIED
+ username CDATA #IMPLIED
+ weblogicmainclass CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ policy CDATA #IMPLIED
+ properties CDATA #IMPLIED
+ args CDATA #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED>
+
+<!ELEMENT wlclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wlclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4label EMPTY>
+<!ATTLIST p4label
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ desc CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ lock CDATA #IMPLIED>
+
+<!ELEMENT p4revert EMPTY>
+<!ATTLIST p4revert
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ revertonlyunchanged %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT replaceregexp (fileset | substitution | regexp)*>
+<!ATTLIST replaceregexp
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ match CDATA #IMPLIED
+ file CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED>
+
+<!ELEMENT get EMPTY>
+<!ATTLIST get
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ ignoreerrors %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ usetimestamp %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jjtree EMPTY>
+<!ATTLIST jjtree
+ id ID #IMPLIED
+ nodedefaultvoid %boolean; #IMPLIED
+ buildnodefiles %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ static %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ nodeprefix CDATA #IMPLIED
+ nodefactory %boolean; #IMPLIED
+ multi %boolean; #IMPLIED
+ visitor %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ nodeusesparser %boolean; #IMPLIED
+ visitorexception CDATA #IMPLIED
+ nodescopehook %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nodepackage CDATA #IMPLIED>
+
+<!ELEMENT sleep EMPTY>
+<!ATTLIST sleep
+ id ID #IMPLIED
+ hours CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ milliseconds CDATA #IMPLIED
+ minutes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ seconds CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-display (fileset)*>
+<!ATTLIST jarlib-display
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dependset (patternset | exclude | include | custom | present | none | not | type | targetfileset | srcfileset | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | srcfilelist | date | excludesfile | depth | and | targetfilelist)*>
+<!ATTLIST dependset
+ id ID #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT targetfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST targetfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfilelist (file)*>
+<!ATTLIST srcfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT targetfilelist (file)*>
+<!ATTLIST targetfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT zip (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST zip
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT zipgroupfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipgroupfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT patch EMPTY>
+<!ATTLIST patch
+ id ID #IMPLIED
+ strip CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ originalfile CDATA #IMPLIED
+ patchfile CDATA #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ backups %boolean; #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jspc (patternset | exclude | include | custom | present | none | not | type | compilerclasspath | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | webapp | depth | and)*>
+<!ATTLIST jspc
+ id ID #IMPLIED
+ mapped %boolean; #IMPLIED
+ ieplugin CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ package CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ compilerclasspath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ uribase CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ uriroot CDATA #IMPLIED
+ webinc CDATA #IMPLIED>
+
+<!ELEMENT compilerclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST compilerclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT webapp EMPTY>
+<!ATTLIST webapp
+ id ID #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT style (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST style
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT factory (attribute)*>
+<!ATTLIST factory
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT attribute EMPTY>
+<!ATTLIST attribute
+ id ID #IMPLIED>
+
+<!ELEMENT outputproperty EMPTY>
+<!ATTLIST outputproperty
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT test (classpath | sysproperty | redirector | bootclasspath | env | syspropertyset | permissions | jvmarg | arg | assertions | testlet)*>
+<!ATTLIST test
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ forceshowtrace %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ showsuccess %boolean; #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ showbanner CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED
+ showtrace %boolean; #IMPLIED>
+
+<!ELEMENT sysproperty EMPTY>
+<!ATTLIST sysproperty
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT bootclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST bootclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT env EMPTY>
+<!ATTLIST env
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT syspropertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST syspropertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT permissions (grant | revoke)*>
+<!ATTLIST permissions
+ id ID #IMPLIED>
+
+<!ELEMENT grant EMPTY>
+<!ATTLIST grant
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT revoke EMPTY>
+<!ATTLIST revoke
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT jvmarg EMPTY>
+<!ATTLIST jvmarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT testlet (#PCDATA)>
+<!ATTLIST testlet
+ id ID #IMPLIED>
+
+<!ELEMENT tstamp (format)*>
+<!ATTLIST tstamp
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT format EMPTY>
+<!ATTLIST format
+ id ID #IMPLIED
+ locale CDATA #IMPLIED
+ timezone CDATA #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ property CDATA #IMPLIED
+ offset CDATA #IMPLIED>
+
+<!ELEMENT unwar (fileset | patternset)*>
+<!ATTLIST unwar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vsshistory EMPTY>
+<!ATTLIST vsshistory
+ id ID #IMPLIED
+ style (brief | codediff | nofile | default) #IMPLIED
+ numdays CDATA #IMPLIED
+ todate CDATA #IMPLIED
+ output CDATA #IMPLIED
+ fromlabel CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ fromdate CDATA #IMPLIED
+ user CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ tolabel CDATA #IMPLIED
+ dateformat CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT icontract (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST icontract
+ id ID #IMPLIED
+ classdir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ repositorydir CDATA #IMPLIED
+ instrumentdir CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ builddir CDATA #IMPLIED
+ updateicontrol %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ pre %boolean; #IMPLIED
+ controlfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ invariant %boolean; #IMPLIED
+ post %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ failthrowable CDATA #IMPLIED
+ verbosity CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ repbuilddir CDATA #IMPLIED
+ targets CDATA #IMPLIED>
+
+<!ELEMENT cvschangelog (fileset | user | commandline)*>
+<!ATTLIST cvschangelog
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ end CDATA #IMPLIED
+ package CDATA #IMPLIED
+ start CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ usersfile CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ daysinpast CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT user EMPTY>
+<!ATTLIST user
+ id ID #IMPLIED
+ userid CDATA #IMPLIED
+ displayname CDATA #IMPLIED>
+
+<!ELEMENT commandline (marker | argument)*>
+<!ATTLIST commandline
+ id ID #IMPLIED
+ executable CDATA #IMPLIED>
+
+<!ELEMENT marker EMPTY>
+<!ATTLIST marker
+ id ID #IMPLIED>
+
+<!ELEMENT argument EMPTY>
+<!ATTLIST argument
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4submit EMPTY>
+<!ATTLIST p4submit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ needsresolveproperty CDATA #IMPLIED
+ user CDATA #IMPLIED
+ changeproperty CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ccmcheckin (fileset)*>
+<!ATTLIST ccmcheckin
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT p4change EMPTY>
+<!ATTLIST p4change
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT bzip2 EMPTY>
+<!ATTLIST bzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT sync (fileset)*>
+<!ATTLIST sync
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT p4delete EMPTY>
+<!ATTLIST p4delete
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT vssadd EMPTY>
+<!ATTLIST vssadd
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT taglet (path)*>
+<!ATTLIST taglet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT doclet (path | param)*>
+<!ATTLIST doclet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT package EMPTY>
+<!ATTLIST package
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ id ID #IMPLIED
+ href CDATA #IMPLIED
+ offline %boolean; #IMPLIED
+ packagelistloc CDATA #IMPLIED>
+
+<!ELEMENT doctitle (#PCDATA)>
+<!ATTLIST doctitle
+ id ID #IMPLIED>
+
+<!ELEMENT bottom (#PCDATA)>
+<!ATTLIST bottom
+ id ID #IMPLIED>
+
+<!ELEMENT group (package | title)*>
+<!ATTLIST group
+ id ID #IMPLIED
+ packages CDATA #IMPLIED
+ title CDATA #IMPLIED>
+
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ id ID #IMPLIED>
+
+<!ELEMENT packageset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST packageset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT sourcepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST sourcepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT footer (#PCDATA)>
+<!ATTLIST footer
+ id ID #IMPLIED>
+
+<!ELEMENT source EMPTY>
+<!ATTLIST source
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT header (#PCDATA)>
+<!ATTLIST header
+ id ID #IMPLIED>
+
+<!ELEMENT excludepackage EMPTY>
+<!ATTLIST excludepackage
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT tag (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tag
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ enabled %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ scope CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT p4integrate EMPTY>
+<!ATTLIST p4integrate
+ id ID #IMPLIED
+ branch CDATA #IMPLIED
+ leavetargetrevision %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ forceintegrate %boolean; #IMPLIED
+ client CDATA #IMPLIED
+ enablebaselessmerges %boolean; #IMPLIED
+ fromfile CDATA #IMPLIED
+ reversebranchmappings %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ change CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ propagatesourcefiletype %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ nocopynewtargetfiles %boolean; #IMPLIED
+ tofile CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ restoredeletedrevisions %boolean; #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT translate (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST translate
+ id ID #IMPLIED
+ bundlecountry CDATA #IMPLIED
+ bundlelanguage CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ srcencoding CDATA #IMPLIED
+ bundle CDATA #IMPLIED
+ bundleencoding CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ destencoding CDATA #IMPLIED
+ bundlevariant CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ starttoken CDATA #IMPLIED>
+
+<!ELEMENT signjar (fileset)*>
+<!ATTLIST signjar
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ lazy %boolean; #IMPLIED
+ jar CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ sectionsonly %boolean; #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ sigfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ internalsf %boolean; #IMPLIED
+ storetype CDATA #IMPLIED
+ signedjar CDATA #IMPLIED>
+
+<!ELEMENT cclock EMPTY>
+<!ATTLIST cclock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nusers CDATA #IMPLIED
+ obsolete %boolean; #IMPLIED>
+
+<!ELEMENT chown (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chown
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ owner CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT srcfile EMPTY>
+<!ATTLIST srcfile
+ id ID #IMPLIED>
+
+<!ELEMENT targetfile EMPTY>
+<!ATTLIST targetfile
+ id ID #IMPLIED>
+
+<!ELEMENT vajload (vajproject)*>
+<!ATTLIST vajload
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ remote CDATA #IMPLIED
+ haltonerror %boolean; #IMPLIED>
+
+<!ELEMENT vajproject EMPTY>
+<!ATTLIST vajproject
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT jarlib-available (extensionset | extension)*>
+<!ATTLIST jarlib-available
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT extensionset (fileset | libfileset | extension)*>
+<!ATTLIST extensionset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rexec (write | read)*>
+<!ATTLIST rexec
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED
+ command CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT WsdlToDotnet EMPTY>
+<!ATTLIST WsdlToDotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildnumber EMPTY>
+<!ATTLIST buildnumber
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jpcovmerge (fileset)*>
+<!ATTLIST jpcovmerge
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ home CDATA #IMPLIED>
+
+<!ELEMENT ejbjar (patternset | exclude | include | custom | weblogictoplink | present | none | jboss | not | borland | weblogic | type | modified | iplanet | or | jonas | contains | depend | support | classpath | different | size | majority | websphere | containsregexp | dtd | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ejbjar
+ id ID #IMPLIED
+ descriptordir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basenameterminator CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ cmpversion (1.0 | 2.0) #IMPLIED
+ dependency CDATA #IMPLIED
+ basejarname CDATA #IMPLIED
+ flatdestdir %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ naming (ejb-name | directory | descriptor | basejarname) #IMPLIED
+ excludesfile CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT weblogictoplink (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogictoplink
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ toplinkdtd CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ toplinkdescriptor CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT jboss (classpath)*>
+<!ATTLIST jboss
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT borland (classpath)*>
+<!ATTLIST borland
+ id ID #IMPLIED
+ verifyargs CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ java2iiopparams CDATA #IMPLIED
+ version CDATA #IMPLIED
+ basdtd CDATA #IMPLIED
+ verify %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ generateclient %boolean; #IMPLIED>
+
+<!ELEMENT weblogic (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogic
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT iplanet (classpath)*>
+<!ATTLIST iplanet
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ iashome CDATA #IMPLIED>
+
+<!ELEMENT jonas (classpath)*>
+<!ATTLIST jonas
+ id ID #IMPLIED
+ jonasroot CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ additionalargs CDATA #IMPLIED
+ javac CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ orb CDATA #IMPLIED
+ jarsuffix CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ nogenic %boolean; #IMPLIED
+ rmicopts CDATA #IMPLIED
+ javacopts CDATA #IMPLIED
+ novalidation %boolean; #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ nocompil %boolean; #IMPLIED
+ secpropag %boolean; #IMPLIED>
+
+<!ELEMENT support (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST support
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT websphere (classpath | wasclasspath)*>
+<!ATTLIST websphere
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ rmicoptions CDATA #IMPLIED
+ noinform %boolean; #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ dbschema CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ ejbdeploy %boolean; #IMPLIED
+ use35 %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ novalidate %boolean; #IMPLIED
+ codegen %boolean; #IMPLIED
+ dbvendor (SQL92 | SQL99 | DB2UDBWIN_V71 | DB2UDBOS390_V6 | DB2UDBAS400_V4R5 | ORACLE_V8 | INFORMIX_V92 | SYBASE_V1192 | MSSQLSERVER_V7 | MYSQL_V323) #IMPLIED
+ classpath CDATA #IMPLIED
+ wasclasspath CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ dbname CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ trace %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT wasclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wasclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT war (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | lib | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | classes | date | excludesfile | webinf | depth | and)*>
+<!ATTLIST war
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ warfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT manifest (attribute | section)*>
+<!ATTLIST manifest
+ id ID #IMPLIED>
+
+<!ELEMENT section (attribute)*>
+<!ATTLIST section
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT metainf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST metainf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT lib (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST lib
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT indexjars (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST indexjars
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT classes (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST classes
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT webinf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST webinf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT rename EMPTY>
+<!ATTLIST rename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT sequential (%tasks;)*>
+<!ATTLIST sequential
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT serverdeploy (weblogic | generic | jonas)*>
+<!ATTLIST serverdeploy
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ action CDATA #IMPLIED
+ source CDATA #IMPLIED>
+
+<!ELEMENT generic (arg | classpath | jvmarg)*>
+<!ATTLIST generic
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ password CDATA #IMPLIED
+ server CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ username CDATA #IMPLIED>
+
+<!ELEMENT property (classpath)*>
+<!ATTLIST property
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ url CDATA #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ userproperty %boolean; #IMPLIED
+ resource CDATA #IMPLIED
+ environment CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ location CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT subant (reference | fileset | buildpathelement | dirset | buildpath | propertyset | filelist | property)*>
+<!ATTLIST subant
+ id ID #IMPLIED
+ genericantfile CDATA #IMPLIED
+ output CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ antfile CDATA #IMPLIED
+ target CDATA #IMPLIED
+ buildpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ buildpath CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildpathelement EMPTY>
+<!ATTLIST buildpathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT buildpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST buildpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT move (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST move
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT ildasm EMPTY>
+<!ATTLIST ildasm
+ id ID #IMPLIED
+ assembler %boolean; #IMPLIED
+ encoding (ascii | utf8 | unicode) #IMPLIED
+ executable CDATA #IMPLIED
+ progressbar %boolean; #IMPLIED
+ linenumbers %boolean; #IMPLIED
+ rawexceptionhandling %boolean; #IMPLIED
+ showsource %boolean; #IMPLIED
+ metadata %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ bytes %boolean; #IMPLIED
+ resourcedir CDATA #IMPLIED
+ quoteallnames %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ header %boolean; #IMPLIED
+ visibility CDATA #IMPLIED
+ sourcefile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ item CDATA #IMPLIED>
+
+<!ELEMENT copydir (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST copydir
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ src CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT cccheckin EMPTY>
+<!ATTLIST cccheckin
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT ccunlock EMPTY>
+<!ATTLIST ccunlock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT wljspc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST wljspc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ package CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT fixcrlf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fixcrlf
+ id ID #IMPLIED
+ tab (add | asis | remove) #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ cr (add | asis | remove) #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ javafiles %boolean; #IMPLIED
+ eof (add | asis | remove) #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ tablength CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ fixlast %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT telnet (write | read)*>
+<!ATTLIST telnet
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT sosget EMPTY>
+<!ATTLIST sosget
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocompress %boolean; #IMPLIED
+ nocache %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT pathconvert (map | path | mapper)*>
+<!ATTLIST pathconvert
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ pathsep CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ dirsep CDATA #IMPLIED
+ setonempty %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ targetos CDATA #IMPLIED>
+
+<!ELEMENT map EMPTY>
+<!ATTLIST map
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT record EMPTY>
+<!ATTLIST record
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ loglevel (error | warn | info | verbose | debug) #IMPLIED
+ description CDATA #IMPLIED
+ emacsmode %boolean; #IMPLIED
+ action (start | stop) #IMPLIED>
+
+<!ELEMENT p4sync EMPTY>
+<!ATTLIST p4sync
+ id ID #IMPLIED
+ force CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT exec (arg | redirector | env)*>
+<!ATTLIST exec
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ executable CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ os CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED>
+
+<!ELEMENT ccmklabel EMPTY>
+<!ATTLIST ccmklabel
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT p4edit EMPTY>
+<!ATTLIST p4edit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT maudit (fileset | jvmarg | classpath | rulespath | searchpath | sourcepath)*>
+<!ATTLIST maudit
+ id ID #IMPLIED
+ tofile CDATA #IMPLIED
+ exit %boolean; #IMPLIED
+ offsets %boolean; #IMPLIED
+ quiet %boolean; #IMPLIED
+ unused %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ fix %boolean; #IMPLIED
+ metamatahome CDATA #IMPLIED
+ list %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ fullsemanticize %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rulespath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST rulespath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT searchpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST searchpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT antlr (jvmarg | classpath)*>
+<!ATTLIST antlr
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ trace %boolean; #IMPLIED
+ tracetreewalker %boolean; #IMPLIED
+ html %boolean; #IMPLIED
+ tracelexer %boolean; #IMPLIED
+ diagnostic %boolean; #IMPLIED
+ traceparser %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ glib CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT netrexxc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST netrexxc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose (verbose | verbose0 | verbose1 | verbose2 | verbose3 | verbose4 | verbose5 | noverbose) #IMPLIED
+ keep %boolean; #IMPLIED
+ comments %boolean; #IMPLIED
+ strictimport %boolean; #IMPLIED
+ sourcedir %boolean; #IMPLIED
+ diag %boolean; #IMPLIED
+ compile %boolean; #IMPLIED
+ binary %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ suppressmethodargumentnotused %boolean; #IMPLIED
+ suppressvariablenotused %boolean; #IMPLIED
+ strictsignal %boolean; #IMPLIED
+ trace (trace | trace1 | trace2 | notrace) #IMPLIED
+ destdir CDATA #IMPLIED
+ console %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ format %boolean; #IMPLIED
+ explicit %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ suppressprivatepropertynotused %boolean; #IMPLIED
+ strictargs %boolean; #IMPLIED
+ suppressdeprecation %boolean; #IMPLIED
+ strictcase %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ savelog %boolean; #IMPLIED
+ logo %boolean; #IMPLIED
+ utf8 %boolean; #IMPLIED
+ strictprops %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ java %boolean; #IMPLIED
+ suppressexceptionnotsignalled %boolean; #IMPLIED
+ crossref %boolean; #IMPLIED
+ time %boolean; #IMPLIED
+ symbols %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ strictassign %boolean; #IMPLIED
+ compact %boolean; #IMPLIED
+ decimal %boolean; #IMPLIED>
+
+<!ELEMENT ftp (fileset)*>
+<!ATTLIST ftp
+ id ID #IMPLIED
+ binary %boolean; #IMPLIED
+ password CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timediffauto %boolean; #IMPLIED
+ remotedir CDATA #IMPLIED
+ separator CDATA #IMPLIED
+ port CDATA #IMPLIED
+ skipfailedtransfers %boolean; #IMPLIED
+ chmod CDATA #IMPLIED
+ timediffmillis CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ server CDATA #IMPLIED
+ newer %boolean; #IMPLIED
+ action (send | put | recv | get | del | delete | list | mkdir | chmod | rmdir) #IMPLIED
+ description CDATA #IMPLIED
+ passive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ listing CDATA #IMPLIED
+ umask CDATA #IMPLIED
+ ignorenoncriticalerrors %boolean; #IMPLIED
+ depends %boolean; #IMPLIED>
+
+<!ELEMENT jpcovreport (reference | coveragepath | sourcepath)*>
+<!ATTLIST jpcovreport
+ id ID #IMPLIED
+ snapshot CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ filters CDATA #IMPLIED
+ percent CDATA #IMPLIED
+ home CDATA #IMPLIED
+ type (executive | summary | detailed | verydetailed) #IMPLIED
+ taskname CDATA #IMPLIED
+ format (html | text | xml) #IMPLIED
+ includesource %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT coveragepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST coveragepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT execon (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST execon
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckout (fileset)*>
+<!ATTLIST ccmcheckout
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT ant (reference | propertyset | property)*>
+<!ATTLIST ant
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED
+ antfile CDATA #IMPLIED>
+
+<!ELEMENT xmlvalidate (fileset | classpath | attribute | dtd | xmlcatalog | property)*>
+<!ATTLIST xmlvalidate
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ lenient %boolean; #IMPLIED
+ warn %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT xslt (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST xslt
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT p4resolve EMPTY>
+<!ATTLIST p4resolve
+ id ID #IMPLIED
+ forcetextmode %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ markersforall %boolean; #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ resolvemode CDATA #IMPLIED
+ redoall %boolean; #IMPLIED>
+
+<!ELEMENT iplanet-ejbc (classpath)*>
+<!ATTLIST iplanet-ejbc
+ id ID #IMPLIED
+ ejbdescriptor CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ iasdescriptor CDATA #IMPLIED
+ iashome CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckintask (fileset)*>
+<!ATTLIST ccmcheckintask
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT gzip EMPTY>
+<!ATTLIST gzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT native2ascii (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST native2ascii
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ ext CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ccrmtype EMPTY>
+<!ATTLIST ccrmtype
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ rmall %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ ignore %boolean; #IMPLIED
+ typekind CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT starteam EMPTY>
+<!ATTLIST starteam
+ id ID #IMPLIED
+ targetfolderabsolute %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ recursion %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ targetfolder CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ foldername CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ear (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | archives | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST ear
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ earfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ appxml CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT archives (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST archives
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT input (#PCDATA)>
+<!ATTLIST input
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ addproperty CDATA #IMPLIED
+ description CDATA #IMPLIED
+ defaultvalue CDATA #IMPLIED
+ validargs CDATA #IMPLIED
+ message CDATA #IMPLIED>
+
+<!ELEMENT presetdef (%tasks;)*>
+<!ATTLIST presetdef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT rmic (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST rmic
+ id ID #IMPLIED
+ verify %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ iiop %boolean; #IMPLIED
+ idlopts CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ sourcebase CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ base CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ idl %boolean; #IMPLIED
+ iiopopts CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ stubversion CDATA #IMPLIED>
+
+<!ELEMENT compilerarg EMPTY>
+<!ATTLIST compilerarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ implementation CDATA #IMPLIED
+ file CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT checksum (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST checksum
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ fileext CDATA #IMPLIED
+ totalproperty CDATA #IMPLIED
+ property CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ readbuffersize CDATA #IMPLIED
+ verifyproperty CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ algorithm CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ provider CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED>
+
+<!ELEMENT mail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT bcc EMPTY>
+<!ATTLIST bcc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT message (#PCDATA)>
+<!ATTLIST message
+ id ID #IMPLIED
+ mimetype CDATA #IMPLIED
+ src CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+
+<!ELEMENT replyto EMPTY>
+<!ATTLIST replyto
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT cc EMPTY>
+<!ATTLIST cc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT to EMPTY>
+<!ATTLIST to
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT from EMPTY>
+<!ATTLIST from
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT loadfile (filterchain)*>
+<!ATTLIST loadfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ property CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT vsscheckout EMPTY>
+<!ATTLIST vsscheckout
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ date CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ getlocalcopy %boolean; #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT stylebook (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST stylebook
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ loaderconfig CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ targetdirectory CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ skindirectory CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ book CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT soscheckin EMPTY>
+<!ATTLIST soscheckin
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT mimemail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mimemail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT stlabel EMPTY>
+<!ATTLIST stlabel
+ id ID #IMPLIED
+ lastbuild CDATA #IMPLIED
+ url CDATA #IMPLIED
+ username CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ revisionlabel %boolean; #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ buildlabel %boolean; #IMPLIED>
+
+<!ELEMENT gunzip EMPTY>
+<!ATTLIST gunzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT concat (#PCDATA | filterchain | fileset | filelist | path | footer | header)*>
+<!ATTLIST concat
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ binary %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ fixlastline %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT cab (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST cab
+ id ID #IMPLIED
+ cabfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ options CDATA #IMPLIED>
+
+<!ELEMENT touch (fileset | filelist)*>
+<!ATTLIST touch
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ millis CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ datetime CDATA #IMPLIED>
+
+<!ELEMENT parallel (%tasks; | daemons)*>
+<!ATTLIST parallel
+ id ID #IMPLIED
+ pollinterval CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ threadsperprocessor CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ threadcount CDATA #IMPLIED
+ failonany %boolean; #IMPLIED>
+
+<!ELEMENT daemons (%tasks;)*>
+<!ATTLIST daemons
+ id ID #IMPLIED>
+
+<!ELEMENT splash EMPTY>
+<!ATTLIST splash
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ user CDATA #IMPLIED
+ proxy CDATA #IMPLIED
+ imageurl CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ showduration CDATA #IMPLIED
+ useproxy %boolean; #IMPLIED>
+
+<!ELEMENT antcall (reference | propertyset | param)*>
+<!ATTLIST antcall
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED>
+
+<!ELEMENT ccmkbl EMPTY>
+<!ATTLIST ccmkbl
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nlabel %boolean; #IMPLIED
+ full %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ baselinerootname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT cccheckout EMPTY>
+<!ATTLIST cccheckout
+ id ID #IMPLIED
+ reserved %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ out CDATA #IMPLIED
+ notco %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ nodata %boolean; #IMPLIED
+ version %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ branch CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT typedef (classpath)*>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT p4have EMPTY>
+<!ATTLIST p4have
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT xmlproperty EMPTY>
+<!ATTLIST xmlproperty
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ semanticattributes %boolean; #IMPLIED
+ keeproot %boolean; #IMPLIED
+ prefix CDATA #IMPLIED
+ collapseattributes %boolean; #IMPLIED
+ validate %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ rootdirectory CDATA #IMPLIED
+ includesemanticattribute %boolean; #IMPLIED>
+
+<!ELEMENT import EMPTY>
+<!ATTLIST import
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST copy
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT jsharpc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST jsharpc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ baseaddress CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ securescoping %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ purejava %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT symlink (fileset)*>
+<!ATTLIST symlink
+ id ID #IMPLIED
+ linkfilename CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ link CDATA #IMPLIED
+ action CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT antstructure EMPTY>
+<!ATTLIST antstructure
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT ccmcreatetask EMPTY>
+<!ATTLIST ccmcreatetask
+ id ID #IMPLIED
+ subsystem CDATA #IMPLIED
+ task CDATA #IMPLIED
+ platform CDATA #IMPLIED
+ resolver CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ ccmaction CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ release CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rpm EMPTY>
+<!ATTLIST rpm
+ id ID #IMPLIED
+ removesource %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ command CDATA #IMPLIED
+ cleanbuilddir %boolean; #IMPLIED
+ removespec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ specfile CDATA #IMPLIED
+ topdir CDATA #IMPLIED
+ rpmbuildcommand CDATA #IMPLIED>
+
+<!ELEMENT delete (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST delete
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ deleteonexit %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replace (patternset | exclude | include | custom | present | none | not | type | modified | replacefilter | or | contains | depend | replacetoken | different | size | majority | containsregexp | filename | selector | includesfile | replacevalue | date | excludesfile | depth | and)*>
+<!ATTLIST replace
+ id ID #IMPLIED
+ encoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ token CDATA #IMPLIED
+ propertyfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ summary %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ replacefilterfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replacefilter EMPTY>
+<!ATTLIST replacefilter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT replacetoken (#PCDATA)>
+<!ATTLIST replacetoken
+ id ID #IMPLIED>
+
+<!ELEMENT replacevalue (#PCDATA)>
+<!ATTLIST replacevalue
+ id ID #IMPLIED>
+
+<!ELEMENT mmetrics (fileset | jvmarg | classpath | path | sourcepath)*>
+<!ATTLIST mmetrics
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ home CDATA #IMPLIED
+ granularity (compilation-units | files | methods | types | packages) #IMPLIED>
+
+<!ELEMENT attrib (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST attrib
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ readonly %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ hidden %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ system %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ archive %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT waitfor (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST waitfor
+ id ID #IMPLIED
+ checkeveryunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ checkevery CDATA #IMPLIED
+ maxwaitunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ maxwait CDATA #IMPLIED
+ timeoutproperty CDATA #IMPLIED>
+
+<!ELEMENT isfalse EMPTY>
+<!ATTLIST isfalse
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isreference EMPTY>
+<!ATTLIST isreference
+ id ID #IMPLIED
+ type CDATA #IMPLIED
+ refid IDREF #IMPLIED>
+
+<!ELEMENT equals EMPTY>
+<!ATTLIST equals
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ arg2 CDATA #IMPLIED
+ arg1 CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED>
+
+<!ELEMENT available (classpath | filepath)*>
+<!ATTLIST available
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ ignoresystemclasses %boolean; #IMPLIED
+ type (file | dir) #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ filepath CDATA #IMPLIED>
+
+<!ELEMENT filepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST filepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT os EMPTY>
+<!ATTLIST os
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED
+ family CDATA #IMPLIED
+ arch CDATA #IMPLIED>
+
+<!ELEMENT filesmatch EMPTY>
+<!ATTLIST filesmatch
+ id ID #IMPLIED
+ file2 CDATA #IMPLIED
+ file1 CDATA #IMPLIED>
+
+<!ELEMENT istrue EMPTY>
+<!ATTLIST istrue
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isset EMPTY>
+<!ATTLIST isset
+ id ID #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT socket EMPTY>
+<!ATTLIST socket
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT http EMPTY>
+<!ATTLIST http
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ errorsbeginat CDATA #IMPLIED>
+
+<!ELEMENT uptodate (srcfiles | mapper)*>
+<!ATTLIST uptodate
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED
+ targetfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT srcfiles (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfiles
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT untar (fileset | patternset)*>
+<!ATTLIST untar
+ id ID #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT loadproperties (filterchain | classpath)*>
+<!ATTLIST loadproperties
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT echoproperties (propertyset)*>
+<!ATTLIST echoproperties
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ format (xml | text) #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT chgrp (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chgrp
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ group CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT vajexport (include | exclude)*>
+<!ATTLIST vajexport
+ id ID #IMPLIED
+ exportclasses %boolean; #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ exportresources %boolean; #IMPLIED
+ exportsources %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ exportdebuginfo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT bunzip2 EMPTY>
+<!ATTLIST bunzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT whichresource (classpath)*>
+<!ATTLIST whichresource
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT copyfile EMPTY>
+<!ATTLIST copyfile
+ id ID #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ filtering CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT p4labelsync EMPTY>
+<!ATTLIST p4labelsync
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ delete %boolean; #IMPLIED
+ add %boolean; #IMPLIED>
+
+<!ELEMENT vsscreate EMPTY>
+<!ATTLIST vsscreate
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT macrodef (sequential | element | attribute | text)*>
+<!ATTLIST macrodef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT element EMPTY>
+<!ATTLIST element
+ id ID #IMPLIED
+ implicit %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT text EMPTY>
+<!ATTLIST text
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ejbc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ejbc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT unjar (fileset | patternset)*>
+<!ATTLIST unjar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vbc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST vbc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ removeintchecks %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ optionstrict %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ rootnamespace CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ optionexplicit %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optioncompare CDATA #IMPLIED
+ imports CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT wsdltodotnet EMPTY>
+<!ATTLIST wsdltodotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT mkdir EMPTY>
+<!ATTLIST mkdir
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT condition (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST condition
+ id ID #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT cvs (commandline)*>
+<!ATTLIST cvs
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT tempfile EMPTY>
+<!ATTLIST tempfile
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT junitreport (report | fileset)*>
+<!ATTLIST junitreport
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED>
+
+<!ELEMENT report EMPTY>
+<!ATTLIST report
+ id ID #IMPLIED
+ todir CDATA #IMPLIED
+ styledir CDATA #IMPLIED
+ format (frames | noframes) #IMPLIED
+ extension CDATA #IMPLIED>
+
+<!ELEMENT ccmkattr EMPTY>
+<!ATTLIST ccmkattr
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ typevalue CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT taskdef (classpath)*>
+<!ATTLIST taskdef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT echo (#PCDATA)>
+<!ATTLIST echo
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ message CDATA #IMPLIED
+ level (error | warning | info | verbose | debug) #IMPLIED>
+
+<!ELEMENT ccupdate EMPTY>
+<!ATTLIST ccupdate
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ rename %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ log CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ graphical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ currenttime %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT java (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST java
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT renameext (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST renameext
+ id ID #IMPLIED
+ replace %boolean; #IMPLIED
+ toextension CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ fromextension CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT vsslabel EMPTY>
+<!ATTLIST vsslabel
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc2 (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc2
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT basename EMPTY>
+<!ATTLIST basename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT vsscp EMPTY>
+<!ATTLIST vsscp
+ id ID #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT tar (patternset | exclude | include | tarfileset | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST tar
+ id ID #IMPLIED
+ tarfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ longfile (warn | fail | truncate | gnu | omit) #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT tarfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tarfileset
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ preserveleadingslashes %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ uid CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ group CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ mode CDATA #IMPLIED
+ gid CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ dirmode CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT vajimport (fileset)*>
+<!ATTLIST vajimport
+ id ID #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ importsources %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ project CDATA #IMPLIED
+ description CDATA #IMPLIED
+ importresources %boolean; #IMPLIED
+ importclasses %boolean; #IMPLIED>
+
+<!ELEMENT p4fstat (fileset)*>
+<!ATTLIST p4fstat
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ showfilter CDATA #IMPLIED>
+
+<!ELEMENT setproxy EMPTY>
+<!ATTLIST setproxy
+ id ID #IMPLIED
+ nonproxyhosts CDATA #IMPLIED
+ proxyhost CDATA #IMPLIED
+ socksproxyhost CDATA #IMPLIED
+ proxyport CDATA #IMPLIED
+ socksproxyport CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ proxyuser CDATA #IMPLIED
+ description CDATA #IMPLIED
+ proxypassword CDATA #IMPLIED>
+
+<!ELEMENT wlstop (classpath)*>
+<!ATTLIST wlstop
+ id ID #IMPLIED
+ user CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ delay CDATA #IMPLIED
+ password CDATA #IMPLIED
+ url CDATA #IMPLIED
+ description CDATA #IMPLIED
+ beahome CDATA #IMPLIED>
+
+<!ELEMENT p4counter EMPTY>
+<!ATTLIST p4counter
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ilasm (patternset | exclude | include | custom | present | none | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ilasm
+ id ID #IMPLIED
+ owner CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ targettype (exe | library) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resourcefile CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ listing %boolean; #IMPLIED
+ keyfile CDATA #IMPLIED>
+
+<!ELEMENT soscheckout EMPTY>
+<!ATTLIST soscheckout
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT apply (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST apply
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-resolve (ant | location | url | extension)*>
+<!ATTLIST jarlib-resolve
+ id ID #IMPLIED
+ checkextension %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT location EMPTY>
+<!ATTLIST location
+ id ID #IMPLIED
+ location CDATA #IMPLIED>
+
+<!ELEMENT url EMPTY>
+<!ATTLIST url
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ url CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT ccuncheckout EMPTY>
+<!ATTLIST ccuncheckout
+ id ID #IMPLIED
+ objselect CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED>
+
+<!ELEMENT cvstagdiff (commandline)*>
+<!ATTLIST cvstagdiff
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ endtag CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ starttag CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ enddate CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ startdate CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT jlink (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | mergefiles | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | addfiles | depth | and)*>
+<!ATTLIST jlink
+ id ID #IMPLIED
+ outfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ addfiles CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ mergefiles CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergefiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST mergefiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT addfiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST addfiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT javacc EMPTY>
+<!ATTLIST javacc
+ id ID #IMPLIED
+ debugparser %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ forcelacheck %boolean; #IMPLIED
+ optimizetokenmanager %boolean; #IMPLIED
+ commontokenaction %boolean; #IMPLIED
+ buildtokenmanager %boolean; #IMPLIED
+ sanitycheck %boolean; #IMPLIED
+ buildparser %boolean; #IMPLIED
+ otherambiguitycheck CDATA #IMPLIED
+ lookahead CDATA #IMPLIED
+ debuglookahead %boolean; #IMPLIED
+ choiceambiguitycheck CDATA #IMPLIED
+ unicodeinput %boolean; #IMPLIED
+ usercharstream %boolean; #IMPLIED
+ debugtokenmanager %boolean; #IMPLIED
+ keeplinecolumn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ cachetokens %boolean; #IMPLIED
+ javaunicodeescape %boolean; #IMPLIED
+ static %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ ignorecase %boolean; #IMPLIED
+ usertokenmanager %boolean; #IMPLIED
+ errorreporting %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-manifest (options | attribute | depends | extension)*>
+<!ATTLIST jarlib-manifest
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT options (fileset | libfileset | extension)*>
+<!ATTLIST options
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depends (fileset | libfileset | extension)*>
+<!ATTLIST depends
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcs (pvcsproject)*>
+<!ATTLIST pvcs
+ id ID #IMPLIED
+ updateonly %boolean; #IMPLIED
+ force CDATA #IMPLIED
+ config CDATA #IMPLIED
+ workspace CDATA #IMPLIED
+ pvcsbin CDATA #IMPLIED
+ pvcsproject CDATA #IMPLIED
+ filenameformat CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ repository CDATA #IMPLIED
+ ignorereturncode %boolean; #IMPLIED
+ revision CDATA #IMPLIED
+ linestart CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ promotiongroup CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcsproject EMPTY>
+<!ATTLIST pvcsproject
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT chmod (mapper | include | srcfile | exclude | targetfile | patternset | redirector | env | filelist | fileset | dirset | arg)*>
+<!ATTLIST chmod
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ perm CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT ccmklbtype EMPTY>
+<!ATTLIST ccmklbtype
+ id ID #IMPLIED
+ global %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ shared %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ pbranch %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ ordinary %boolean; #IMPLIED>
+
+<!ELEMENT jar (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST jar
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT sound (fail | success)*>
+<!ATTLIST sound
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT fail EMPTY>
+<!ATTLIST fail
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT success EMPTY>
+<!ATTLIST success
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT scriptdef (#PCDATA | classpath | element | attribute)*>
+<!ATTLIST scriptdef
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ language CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ loaderref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT defaultexcludes EMPTY>
+<!ATTLIST defaultexcludes
+ id ID #IMPLIED
+ remove CDATA #IMPLIED
+ echo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ default %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ add CDATA #IMPLIED>
+
+<!ELEMENT mparse (fileset | jvmarg | classpath | sourcepath)*>
+<!ATTLIST mparse
+ id ID #IMPLIED
+ cleanup %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ debugparser %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ debugscanner %boolean; #IMPLIED>
+
+<!ELEMENT blgenclient (classpath)*>
+<!ATTLIST blgenclient
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ mode CDATA #IMPLIED
+ ejbjar CDATA #IMPLIED
+ version CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ clientjar CDATA #IMPLIED>
+
+<!ELEMENT jjdoc EMPTY>
+<!ATTLIST jjdoc
+ id ID #IMPLIED
+ outputfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ javacchome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ text %boolean; #IMPLIED
+ onetable %boolean; #IMPLIED>
+
+<!ELEMENT genkey (dname)*>
+<!ATTLIST genkey
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ sigalg CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ dname CDATA #IMPLIED
+ keysize CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ keyalg CDATA #IMPLIED
+ validity CDATA #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ storetype CDATA #IMPLIED>
+
+<!ELEMENT dname (param)*>
+<!ATTLIST dname
+ id ID #IMPLIED>
+
+<!ELEMENT ccmkelem EMPTY>
+<!ATTLIST ccmkelem
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ master %boolean; #IMPLIED
+ eltype CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ checkin %boolean; #IMPLIED>
+
+<!ELEMENT javah (classpath | class | bootclasspath)*>
+<!ATTLIST javah
+ id ID #IMPLIED
+ stubs %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ old %boolean; #IMPLIED
+ outputfile CDATA #IMPLIED
+ class CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT class EMPTY>
+<!ATTLIST class
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT ccmreconfigure EMPTY>
+<!ATTLIST ccmreconfigure
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ccmproject CDATA #IMPLIED
+ description CDATA #IMPLIED
+ recurse %boolean; #IMPLIED
+ ccmdir CDATA #IMPLIED>
+
+<!ELEMENT unzip (fileset | patternset)*>
+<!ATTLIST unzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT javac (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | src | or | contains | depend | classpath | sourcepath | different | size | majority | containsregexp | bootclasspath | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST javac
+ id ID #IMPLIED
+ target CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ compiler CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ debuglevel CDATA #IMPLIED
+ memoryinitialsize CDATA #IMPLIED
+ deprecation %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ depend %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ source CDATA #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ proceed %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ fork %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ memorymaximumsize CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ sourcepath CDATA #IMPLIED
+ listfiles %boolean; #IMPLIED
+ extdirs CDATA #IMPLIED>
+
+<!ELEMENT p4add (fileset)*>
+<!ATTLIST p4add
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ commandlength CDATA #IMPLIED>
+
+<!ELEMENT soslabel EMPTY>
+<!ATTLIST soslabel
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jpcoverage (arg | socket | fileset | jvmarg | classpath | triggers | filters)*>
+<!ATTLIST jpcoverage
+ id ID #IMPLIED
+ applet %boolean; #IMPLIED
+ recordfromstart (coverage | none | all) #IMPLIED
+ vm (java2 | jdk118 | jdk117) #IMPLIED
+ classname CDATA #IMPLIED
+ workingdir CDATA #IMPLIED
+ inputfile CDATA #IMPLIED
+ snapshotdir CDATA #IMPLIED
+ seedname CDATA #IMPLIED
+ javaexe CDATA #IMPLIED
+ home CDATA #IMPLIED
+ exitprompt CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ finalsnapshot CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tracknatives %boolean; #IMPLIED>
+
+<!ELEMENT triggers (method)*>
+<!ATTLIST triggers
+ id ID #IMPLIED>
+
+<!ELEMENT method EMPTY>
+<!ATTLIST method
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ event CDATA #IMPLIED
+ action CDATA #IMPLIED
+ param CDATA #IMPLIED>
+
+<!ELEMENT filters (include | exclude)*>
+<!ATTLIST filters
+ id ID #IMPLIED
+ defaultexclude %boolean; #IMPLIED>
+
+<!ELEMENT vssget EMPTY>
+<!ATTLIST vssget
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ date CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT deltree EMPTY>
+<!ATTLIST deltree
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ddcreator (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ddcreator
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
diff --git a/libs/FLib/JWizard/License.txt b/libs/FLib/JWizard/License.txt
new file mode 100644
index 0000000..be12e9d
--- /dev/null
+++ b/libs/FLib/JWizard/License.txt
@@ -0,0 +1,123 @@
+ Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to
+make reasonable modifications.
+
+Definitions:
+
+ * "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ * "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of
+ the Copyright Holder.
+
+ * "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ * "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ * "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people
+ involved, and so on. (You will not be required to justify it to
+ the Copyright Holder, but only to the computing community at
+ large as a market that must bear the fee.)
+
+ * "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A
+ Package modified in such a way shall still be considered the
+ Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you
+ do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to
+ Usenet or an equivalent medium, or placing the modifications on
+ a major archive site such as ftp.uu.net, or by allowing the
+ Copyright Holder to include your modifications in the Standard
+ Version of the Package.
+
+ b) use the modified Package only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not
+ conflict with standard executables, which must also be
+ provided, and provide a separate manual page for each
+ non-standard executable that clearly documents how it differs
+ from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the
+ following:
+
+ a) distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or
+ equivalent) on where to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard
+ executables non-standard names, and clearly documenting the
+ differences in manual pages (or equivalent), together with
+ instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this
+ Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever
+ generated them, and may be sold commercially, and may be aggregated
+ with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.
+
+8. Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+The End
diff --git a/libs/FLib/JWizard/README.txt b/libs/FLib/JWizard/README.txt
new file mode 100644
index 0000000..6698b99
--- /dev/null
+++ b/libs/FLib/JWizard/README.txt
@@ -0,0 +1,26 @@
+ JWizard
+
+This package provides a Wizard component for use in Java programs.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Artistic License. You should have received a
+copy of the Artistic License along with this program (in file
+License.txt). If not, a copy is available at
+
+ http://opensource.org/licenses/artistic-license.php
+
+To build it you'll need Ant. I used version 1.6.2. Use
+
+ ant all
+
+This will create build/jwizard.jar. To create the API documentation, use
+
+ ant javadoc
+
+To view all the documentation, view doc/index.html.
+
+There is a tutorial in doc/tutorial.html. There is also a sample Java
+program that uses the JWizard package. You can build and run this
+program with
+
+ ant runExample1
diff --git a/libs/FLib/JWizard/build.xml b/libs/FLib/JWizard/build.xml
new file mode 100644
index 0000000..d8e7ceb
--- /dev/null
+++ b/libs/FLib/JWizard/build.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
+
+<project basedir="." default="all" name="JWizard">
+
+ <!-- Set up the classpath for compilation and execution -->
+
+ <path id="project.class.path">
+ <pathelement location="."/>
+ </path>
+
+ <!-- Common settings for all targets -->
+
+ <target name="init" description="Initialize.">
+ <tstamp/>
+ </target>
+
+ <!-- Compile everything -->
+
+ <target depends="init" name="compile" description="Compile the project.">
+ <javac debug="true" deprecation="true" destdir="." srcdir=".">
+ <include name="org/freixas/**"/>
+ <include name="doc/example/**"/>
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+
+ <!-- Place the class files in a jar file -->
+
+ <target depends="compile" name="jar" description="Create a jar file.">
+ <mkdir dir="build"/>
+ <jar basedir="." compress="false" jarfile="build/jwizard.jar">
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <section name="JWizard">
+ <attribute name="Specification-Title" value="JWizard Library"/>
+ <attribute name="Specification-Version" value="${version}"/>
+ <attribute name="Implementation-Title" value="JWizard"/>
+ <attribute name="Implementation-Version" value="${version} ${TODAY}"/>
+ </section>
+ </manifest>
+ <exclude name="**/*.java"/>
+ <exclude name="doc"/>
+ <exclude name="build"/>
+ <include name="org/freixas/jwizard/*.class"/>
+ <include name="**/*.gif"/>
+ <include name="**/*.properties"/>
+ </jar>
+ </target>
+
+ <!-- Build all -->
+
+ <target depends="jar" name="all" description="Build everything.">
+ <echo message="JWizard library built."/>
+ </target>
+
+ <!-- Run Example1 -->
+
+ <target depends="compile" name="runExample1" description="Run Example1.">
+ <java classname="doc.example.Example1" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Build the documentation -->
+
+ <target depends="init" name="javadoc" description="Javadoc for JWizard.">
+ <mkdir dir="doc/api"/>
+ <copy todir="doc/api">
+ <fileset dir="doc-templates">
+ <include name="**/*.html"/>
+ </fileset>
+ </copy>
+ <javadoc
+ sourcepath="org"
+ destdir="doc/api"
+ use="true"
+ author="true"
+ windowtitle="JWizard"
+ footer="&lt;small&gt;Copyright &#169; 2004-2005 Antonio Freixas&lt;br&gt;Licensed under the &lt;a href='{@docRoot}/License.html' target='_top'&gt;Artistic License&lt;/a&gt;&lt;/small&gt;">
+ <classpath refid="project.class.path"/>
+ <packageset dir=".">
+ <include name="org/freixas/**"/>
+ </packageset>
+ <link href="http://java.sun.com/j2se/1.5/docs/api/" />
+ </javadoc>
+ </target>
+
+ <!-- Clean the build tree -->
+
+ <target depends="init" name="clean" description="Clean all build products.">
+ <delete>
+ <fileset dir="org/freixas">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete>
+ <fileset dir="doc/example">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete dir="build"/>
+ <delete dir="doc/api"/>
+ </target>
+
+ <!-- Generate a DTD for this buildfile -->
+
+ <target name="dtd" description="Generate a DTD">
+ <antstructure output="project.dtd"/>
+ </target>
+
+</project>
diff --git a/libs/FLib/JWizard/doc-templates/License.html b/libs/FLib/JWizard/doc-templates/License.html
new file mode 100644
index 0000000..d5fbdc1
--- /dev/null
+++ b/libs/FLib/JWizard/doc-templates/License.html
@@ -0,0 +1,180 @@
+<html>
+ <style type="text/css">
+ body {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ h1 {
+ text-align: center;
+ font-weight: bold;
+ font-size: 145%;
+ }
+
+ h2 {
+ text-align: left;
+ font-weight: bold;
+ font-size: 120%;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ ol ol {
+ list-style-type: lower-alpha;
+ }
+
+ li {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+
+ </style>
+</head>
+
+ <body>
+
+ <h1>Artistic License</h1>
+
+ <h2>Preamble</h2>
+
+ <p>The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package,
+ while giving the users of the package the right to use and distribute
+ the Package in a more-or-less customary fashion, plus the right to
+ make reasonable modifications.</p>
+
+ <h2>Definitions:</h2>
+
+ <ul>
+
+ <li>"Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files created
+ through textual modification.</li>
+
+ <li>"Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of the
+ Copyright Holder.</li>
+
+ <li>"Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.</li>
+
+ <li>"You" is you, if you're thinking about copying or distributing
+ this Package.</li>
+
+ <li>"Reasonable copying fee" is whatever you can justify on the basis
+ of media cost, duplication charges, time of people involved, and so
+ on. (You will not be required to justify it to the Copyright Holder,
+ but only to the computing community at large as a market that must
+ bear the fee.)</li>
+
+ <li>"Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item. It
+ also means that recipients of the item may redistribute it under the
+ same conditions they received it.</li>
+
+ </ul>
+
+ <hr>
+
+ <ol>
+
+ <li>You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.</li>
+
+ <li>You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A Package
+ modified in such a way shall still be considered the Standard
+ Version.</li>
+
+ <li>You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you do
+ at least ONE of the following:
+
+ <ol>
+
+ <li>place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to Usenet
+ or an equivalent medium, or placing the modifications on a major
+ archive site such as ftp.uu.net, or by allowing the Copyright Holder
+ to include your modifications in the Standard Version of the Package.</li>
+
+ <li>use the modified Package only within your corporation or
+ organization.</li>
+
+ <li>rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide a
+ separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ <ol>
+
+ <li>distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or equivalent)
+ on where to get the Standard Version.</li>
+
+ <li>accompany the distribution with the machine-readable source of the
+ Package with your modifications.</li>
+
+ <li>accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard executables
+ non-standard names, and clearly documenting the differences in manual
+ pages (or equivalent), together with instructions on where to get the
+ Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this Package
+ as a product of your own.</li>
+
+ <li>The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever generated
+ them, and may be sold commercially, and may be aggregatedwith this
+ Package.</li>
+
+ <li>r perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.</li>
+
+ <li>Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.</li>
+
+ <li>The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.</li>
+
+ <li>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+
+ </ol>
+
+ <p>The End</p>
+ </body>
+</html>
diff --git a/libs/FLib/JWizard/doc/example/Example1.gif b/libs/FLib/JWizard/doc/example/Example1.gif
new file mode 100644
index 0000000..15ea4b1
--- /dev/null
+++ b/libs/FLib/JWizard/doc/example/Example1.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/example/Example1.java b/libs/FLib/JWizard/doc/example/Example1.java
new file mode 100644
index 0000000..60ef098
--- /dev/null
+++ b/libs/FLib/JWizard/doc/example/Example1.java
@@ -0,0 +1,701 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.io.File;
+import java.net.URL;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import org.freixas.jwizard.*;
+
+/**
+ * This class simulates an installation Wizard using the FLib JWizard
+ * component.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+class Example1
+ extends JWizardDialog
+{
+
+//**********************************************************************
+// Public Constants
+//**********************************************************************
+
+//**********************************************************************
+// Private Constants
+//**********************************************************************
+
+static final String LICENSE =
+"Artistic License\n" +
+"\n" +
+"Preamble\n" +
+"\n" +
+"The intent of this document is to state the conditions under which a\n" +
+"Package may be copied, such that the Copyright Holder maintains some\n" +
+"semblance of artistic control over the development of the package,\n" +
+"while giving the users of the package the right to use and distribute\n" +
+"the Package in a more-or-less customary fashion, plus the right to\n" +
+"make reasonable modifications.\n" +
+"\n" +
+"Definitions:\n" +
+"\n" +
+" * \"Package\" refers to the collection of files distributed by the\n" +
+" Copyright Holder, and derivatives of that collection of files\n" +
+" created through textual modification.\n" +
+"\n" +
+" * \"Standard Version\" refers to such a Package if it has not been\n" +
+" modified, or has been modified in accordance with the wishes of\n" +
+" the Copyright Holder.\n" +
+"\n" +
+" * \"Copyright Holder\" is whoever is named in the copyright or\n" +
+" copyrights for the package.\n" +
+"\n" +
+" * \"You\" is you, if you're thinking about copying or distributing\n" +
+" this Package.\n" +
+"\n" +
+" * \"Reasonable copying fee\" is whatever you can justify on the\n" +
+" basis of media cost, duplication charges, time of people\n" +
+" involved, and so on. (You will not be required to justify it to\n" +
+" the Copyright Holder, but only to the computing community at\n" +
+" large as a market that must bear the fee.)\n" +
+"\n" +
+" * \"Freely Available\" means that no fee is charged for the item\n" +
+" itself, though there may be fees involved in handling the item.\n" +
+" It also means that recipients of the item may redistribute it\n" +
+" under the same conditions they received it.\n" +
+"\n" +
+"1. You may make and give away verbatim copies of the source form of\n" +
+" the Standard Version of this Package without restriction, provided\n" +
+" that you duplicate all of the original copyright notices and\n" +
+" associated disclaimers.\n" +
+"\n" +
+"2. You may apply bug fixes, portability fixes and other modifications\n" +
+" derived from the Public Domain or from the Copyright Holder. A\n" +
+" Package modified in such a way shall still be considered the\n" +
+" Standard Version.\n" +
+"\n" +
+"3. You may otherwise modify your copy of this Package in any way,\n" +
+" provided that you insert a prominent notice in each changed file\n" +
+" stating how and when you changed that file, and provided that you\n" +
+" do at least ONE of the following:\n" +
+"\n" +
+" a) place your modifications in the Public Domain or otherwise make\n" +
+" them Freely Available, such as by posting said modifications to\n" +
+" Usenet or an equivalent medium, or placing the modifications on\n" +
+" a major archive site such as ftp.uu.net, or by allowing the\n" +
+" Copyright Holder to include your modifications in the Standard\n" +
+" Version of the Package.\n" +
+"\n" +
+" b) use the modified Package only within your corporation or\n" +
+" organization.\n" +
+"\n" +
+" c) rename any non-standard executables so the names do not\n" +
+" conflict with standard executables, which must also be\n" +
+" provided, and provide a separate manual page for each\n" +
+" non-standard executable that clearly documents how it differs\n" +
+" from the Standard Version.\n" +
+"\n" +
+" d) make other distribution arrangements with the Copyright Holder.\n" +
+"\n" +
+"4. You may distribute the programs of this Package in object code or\n" +
+" executable form, provided that you do at least ONE of the\n" +
+" following:\n" +
+"\n" +
+" a) distribute a Standard Version of the executables and library\n" +
+" files, together with instructions (in the manual page or\n" +
+" equivalent) on where to get the Standard Version.\n" +
+"\n" +
+" b) accompany the distribution with the machine-readable source of\n" +
+" the Package with your modifications.\n" +
+"\n" +
+" c) accompany any non-standard executables with their corresponding\n" +
+" Standard Version executables, giving the non-standard\n" +
+" executables non-standard names, and clearly documenting the\n" +
+" differences in manual pages (or equivalent), together with\n" +
+" instructions on where to get the Standard Version.\n" +
+"\n" +
+" d) make other distribution arrangements with the Copyright Holder.\n" +
+"\n" +
+"5. You may charge a reasonable copying fee for any distribution of\n" +
+" this Package. You may charge any fee you choose for support of this\n" +
+" Package. You may not charge a fee for this Package itself. However,\n" +
+" you may distribute this Package in aggregate with other (possibly\n" +
+" commercial) programs as part of a larger (possibly commercial)\n" +
+" software distribution provided that you do not advertise this\n" +
+" Package as a product of your own.\n" +
+"\n" +
+"6. The scripts and library files supplied as input to or produced as\n" +
+" output from the programs of this Package do not automatically fall\n" +
+" under the copyright of this Package, but belong to whomever\n" +
+" generated them, and may be sold commercially, and may be aggregated\n" +
+" with this Package.\n" +
+"\n" +
+"7. C or perl subroutines supplied by you and linked into this Package\n" +
+" shall not be considered part of this Package.\n" +
+"\n" +
+"8. Aggregation of this Package with a commercial distribution is\n" +
+" always permitted provided that the use of this Package is embedded;\n" +
+" that is, when no overt attempt is made to make this Package's\n" +
+" interfaces visible to the end user of the commercial distribution.\n" +
+" Such use shall not be construed as a distribution of this Package.\n" +
+"\n" +
+"9. The name of the Copyright Holder may not be used to endorse or\n" +
+" promote products derived from this software without specific prior\n" +
+" written permission.\n" +
+"\n" +
+"10. THIS PACKAGE IS PROVIDED \"AS IS\" AND WITHOUT ANY EXPRESS OR\n" +
+" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\n" +
+" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR\n" +
+" PURPOSE.\n" +
+"\n" +
+"The End\n";
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+private File installationFolder;
+private boolean standardInstall = true;
+private boolean installProgram = true;
+private boolean installDocumentation = true;
+private boolean installExamples = true;
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example1();
+ System.exit(0);
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create an instance of Example1. Note that this class is a subclass
+ * of JWizardDialog.
+ */
+
+public
+Example1()
+{
+ // We want the dialog modal -- when the dialog is finished, we
+ // exit the program
+
+ setModal(true);
+
+ // Set the dialog title. This is the title for the wizard as a
+ // whole
+
+ setTitle("Install Example1");
+
+ // Set the logo image
+
+ URL url = getClass().getResource("Example1.gif");
+ setWizardIcon(new ImageIcon(url));
+
+ // Create each step
+
+ addWizardPanel(new Step0());
+ addWizardPanel(new Step1());
+ addWizardPanel(new Step2());
+ addWizardPanel(new Step3());
+ addWizardPanel(new Step4());
+ addWizardPanel(new Step5());
+ addWizardPanel(new Step6());
+
+ // We don't want to have the cancel button enabled when we're done
+
+ disableCancelAtEnd();
+
+ // Make the dialog visible
+
+ pack();
+ setVisible(true);
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+/**
+ * If the user presses cancel, we want to give him/her the option of
+ * continuing with the installation.
+ */
+
+protected void
+cancel()
+{
+ int response =
+ JOptionPane.showConfirmDialog(
+ this,
+ "Cancel the installation of Example1?",
+ "Cancel Installation",
+ JOptionPane.OK_CANCEL_OPTION);
+
+ if (response == JOptionPane.OK_OPTION) {
+ super.cancel();
+ }
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+//**********************************************************************
+// Step0
+//**********************************************************************
+
+// This panel just introduces the Example1 wizard (which pretends that
+// its going to install a package called Example1)
+
+private class Step0
+ extends JWizardPanel
+{
+
+public
+Step0()
+{
+ setStepTitle("Welcome to the Example1 Installation!");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ JLabel label =
+ new JLabel(
+ "<html>"+
+ "The following steps will install the Example1 program.<br>" +
+ "Press <b>Next</b> to begin the installation.<br><br>" +
+ "<i>Note: This is an example of the JWizard component.<br>"+
+ "Nothing will be installed and no directories will be<br>"+
+ "created.</i>");
+
+ contentPane.add(label, BorderLayout.NORTH);
+
+ // Set the previous (none) and next steps
+
+ setBackStep(-1);
+ setNextStep(1);
+}
+
+}
+
+//**********************************************************************
+// Step1
+//**********************************************************************
+
+// This panel displays the installation license
+
+private class Step1
+ extends JWizardPanel
+{
+
+public
+Step1()
+{
+ setStepTitle("License Terms");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ JTextArea text = new JTextArea(20, 40);
+ text.setText(LICENSE);
+ JScrollPane scroll = new JScrollPane(text);
+
+ JCheckBox checkbox = new JCheckBox("I agree.");
+ checkbox.addItemListener(
+ new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ setNextStep(2);
+ }
+ else {
+ setNextStep(-1);
+ }
+ }});
+
+ contentPane.add(scroll);
+ contentPane.add(checkbox, BorderLayout.SOUTH);
+
+ // Set the previous and next steps. Note that we don't have a next
+ // step until the user agrees to the license terms
+
+ setBackStep(0);
+ setNextStep(-1);
+}
+
+}
+
+//**********************************************************************
+// Step2
+//**********************************************************************
+
+// Select the installation location
+
+private class Step2
+ extends JWizardPanel
+{
+
+private JTextField field;
+
+public
+Step2()
+{
+ setStepTitle("Select Installation Location");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ // Field to enter install location
+
+ field =
+ new JTextField(
+ "C:\\Program Files\\Example1");
+
+ // Browse button for browsing to install location
+
+ final JButton browse = new JButton("Browse");
+ browse.addActionListener(
+ new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ File defaultDir = new File("C:\\Program Files");
+ JFileChooser chooser = new JFileChooser(defaultDir);
+ chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ int result = chooser.showDialog(browse, "Select");
+ if (result == JFileChooser.APPROVE_OPTION) {
+ field.setText(chooser.getSelectedFile().getAbsolutePath());
+ }
+ }
+ });
+
+ JPanel filePanel = new JPanel(new BorderLayout());
+ filePanel.add(field);
+ filePanel.add(browse, BorderLayout.EAST);
+
+ contentPane.add(filePanel, BorderLayout.NORTH);
+
+ // Set the previous and next steps
+
+ setBackStep(1);
+ setNextStep(3);
+}
+
+// We're going to override the next button so we can check if the
+// specified directory exists. If it does, we go on to the next step.
+// If not, we ask whether we should create it. If the answer is No or
+// if we can't create it, we remain on the current step
+
+protected void
+next()
+{
+ String folderName = field.getText().trim();
+ installationFolder = new File(folderName);
+
+ // If valid, go on to next step
+
+ if (installationFolder.isDirectory()) {
+ super.next();
+ return;
+ }
+
+ // If it exists, check that it is a folder and not a file
+
+ if (installationFolder.exists()) {
+ JOptionPane.showMessageDialog(
+ Step2.this,
+ "The given path points to a file, not a folder!",
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+
+ // If nothing was entered, report an error
+
+ if (folderName.length() < 1) {
+ JOptionPane.showMessageDialog(
+ Step2.this,
+ "Please enter a folder name.",
+ "Error",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+
+ // If it doesn't exist, query whether we should create it
+
+ int response =
+ JOptionPane.showConfirmDialog(
+ Step2.this,
+ installationFolder.getName() + " does not exist. Create?",
+ "Create Folder",
+ JOptionPane.OK_CANCEL_OPTION);
+
+ if (response == JOptionPane.OK_OPTION) {
+// This is what we'd do if we were really creating the folder
+// try {
+// installationFolder.mkdirs();
+// }
+
+// // Unsuccessful creation, report error
+
+// catch (Exception e) {
+// JOptionPane.showMessageDialog(
+// Step2.this,
+// e.getMessage(),
+// "Error",
+// JOptionPane.ERROR_MESSAGE);
+// return;
+// }
+
+ // Successful creation, continue to next step
+
+ super.next();
+ return;
+ }
+}
+
+}
+
+//**********************************************************************
+// Step3
+//**********************************************************************
+
+// Select the installation type: standard or custom
+
+private class Step3
+ extends JWizardPanel
+{
+
+public
+Step3()
+{
+ setStepTitle("Select Installation Type");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ JRadioButton standard = new JRadioButton("Standard (Recommended)");
+ standard.setSelected(standardInstall);
+ standard.addItemListener(
+ new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ standardInstall = true;
+ }
+ }
+ });
+ JRadioButton custom = new JRadioButton("Custom");
+ custom.setSelected(!standardInstall);
+ custom.addItemListener(
+ new ItemListener() {
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ standardInstall = false;
+ }
+ }
+ });
+
+ ButtonGroup group = new ButtonGroup();
+ group.add(standard);
+ group.add(custom);
+
+ JPanel radioBox = new JPanel(new GridLayout(2, 1));
+ radioBox.add(standard);
+ radioBox.add(custom);
+
+ contentPane.add(radioBox, BorderLayout.NORTH);
+
+ // Set the previous and next steps. The next step will change if
+ // the user selects "Custom" installation
+
+ setBackStep(2);
+ setNextStep(5);
+}
+
+// Override the next() method so we can decide whether to go to step 4
+// (custom installation) or 5 (standard installation)
+
+protected void
+next()
+{
+ // If we have a custom installation, go to step 4, rather than 5
+
+ if (!standardInstall) {
+ setNextStep(4);
+ }
+ super.next();
+}
+
+}
+
+//**********************************************************************
+// Step4
+//**********************************************************************
+
+// If the user wanted a custom installation, select the components to
+// install
+
+private class Step4
+ extends JWizardPanel
+{
+
+private JCheckBox program;
+private JCheckBox documentation;
+private JCheckBox examples;
+
+public
+Step4()
+{
+ setStepTitle("Select Components to Install");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ program = new JCheckBox("Install program (890K)");
+ program.setSelected(installProgram);
+ documentation = new JCheckBox("Install documentation (500K)");
+ documentation.setSelected(installDocumentation);
+ examples = new JCheckBox("Install examples (103K)");
+ examples.setSelected(installExamples);
+
+ JPanel choices = new JPanel(new GridLayout(3, 1));
+ choices.add(program);
+ choices.add(documentation);
+ choices.add(examples);
+
+ contentPane.add(choices, BorderLayout.NORTH);
+
+ // Set the previous and next steps
+
+ setBackStep(3);
+ setNextStep(5);
+}
+
+// We override the next() method just to determine what the user
+// selected
+
+protected void
+next()
+{
+ installProgram = program.isSelected();
+ installDocumentation = documentation.isSelected();
+ installExamples = examples.isSelected();
+ super.next();
+}
+
+}
+
+//**********************************************************************
+// Step5
+//**********************************************************************
+
+// Summarize the installation -- the user can proceed or cancel.
+
+private class Step5
+ extends JWizardPanel
+{
+
+private JLabel label;
+
+public
+Step5()
+{
+ setStepTitle("Installation Summary");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ label = new JLabel();
+ contentPane.add(label, BorderLayout.NORTH);
+
+ // Set the previous and next steps
+
+ setBackStep(standardInstall ? 3 : 4 );
+ setNextStep(6);
+}
+
+// We need to set the label text when the panel is displayed, not when
+// the panel is constructed
+
+protected void
+makingVisible()
+{
+ label.setText(
+ "<html>" +
+ "<b>Installation Summary:</b><br><br>" +
+ "Installation folder: " +
+ installationFolder.getAbsolutePath() +
+ "<br>" +
+ (standardInstall ?
+ "Standard installation<br><br>" :
+ "Custom installation<ul>" +
+ (installProgram ? "<li>Install program</li>" : "") +
+ (installDocumentation ? "<li>Install documentation</li>" : "") +
+ (installExamples ? "<li>Install examples</li>" : "") +
+ "</ul>") +
+ "Press <b>Next</b> to start installing.");
+}
+
+}
+
+//**********************************************************************
+// Step6
+//**********************************************************************
+
+// We're done installing
+
+private class Step6
+ extends JWizardPanel
+{
+
+public
+Step6()
+{
+ setStepTitle("Installation Complete!");
+
+ JPanel contentPane = getContentPane();
+ contentPane.setLayout(new BorderLayout());
+
+ JLabel label =
+ new JLabel(
+ "The Example1 installation is complete.");
+
+ contentPane.add(label, BorderLayout.NORTH);
+
+ // There's nothing more to do and there's no point going back a
+ // step either
+
+ setBackStep(-1);
+ setNextStep(-1);
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JWizard/doc/examples.html b/libs/FLib/JWizard/doc/examples.html
new file mode 100644
index 0000000..1dfd1d5
--- /dev/null
+++ b/libs/FLib/JWizard/doc/examples.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Examples</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Examples</h1>
+ <p>There is only one example program provided for JWizard, but it is a fairly
+ detailed reproduction of a typical installation wizard. It includes steps
+ such as a license which you have to agree to before installation can proceed
+ and variant paths for standard and custom installation.</p>
+ <p>The example will not create any folders (even though it may ask you if
+ it should create a folder) and will not install anything.</p>
+ <p>View the <a href="example/Example1.java">Example1</a> program.</p>
+ <p>If you download the FLib source, you can use Ant to build and run
+ the example program:</p>
+ <pre>cd JWizard
+ant runExample1</pre>
+ <p>The Example1 class is a subclass of JWizardDialog. It consists of seven
+ steps (numbered 0 through 6), each step represented by an inner class
+ which subclasses JWizardPanel. When the Example1 class is constructed,
+ it constructs an instance of each step and adds it to its sequence. Information
+ about the user's installation choices are stored in Example1 fields which
+ can be easily accessed and modified by the inner classes.</p>
+ <p>In most cases, each step's components are fully created and added to
+ the JWizardPanel at construction time. In step 5, a panel needs to display
+ a summary of the user's installation choices. The text cannot be determined
+ at construction time&#8212;it must be created just before the step is
+ displayed. </p>
+ <p>Each step defines the flow (the next and previous steps). Sometimes the
+ flow is constant and sometimes it is dynamic based on the user's entries.
+ For instance, in step 1, the next step is -1 (which enables the Finish
+ button) until the user agrees to the license terms. In step 3, we go to
+ step 5 for a standard install or to step 4 for a custom install.</p>
+ <p>The cancel button is handled in the JWizardDialog. It confirms that the
+ user wants to cancel the installation before proceeding with the exit.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/doc/features.html b/libs/FLib/JWizard/doc/features.html
new file mode 100644
index 0000000..a992acb
--- /dev/null
+++ b/libs/FLib/JWizard/doc/features.html
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Features</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Features</h1>
+ <p> A wizard is a dialog that leads a user through a procedure step-by-step.</p>
+ <p>The main features of JWizard are:</p>
+ <ul>
+ <li>Easy to use.</li>
+ <li>Can add a logo image to the left side of the wizard dialog.</li>
+ <li>Can set a title for the wizard.</li>
+ <li>Can set a title for each step of the wizard.</li>
+ <li>Contains the commonly-used buttons Back, Next, Finish and Cancel.</li>
+ <li>Can enable the Finish button during sequencing or only on the last
+ step.</li>
+ <li>Can enable the Cancel button for all steps or all steps except the
+ last one.</li>
+ <li>Can add a Help button</li>
+ <li>Can handle complicated run-time sequencing where the next step depends
+ on the user's response to the current step or even on external factors.</li>
+ <li>Easy to centralize the storage of information gathered by the various
+ steps. </li>
+ <li>Can perform actions as the user sequences through the steps or can
+ hold off on all actions until Finish is pressed.</li>
+ <li>Fully internationalized and ready for localization.</li>
+ <li>Uses standard Java icons for the Back, Next and Help buttons.</li>
+ </ul>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/doc/images/Logo.png b/libs/FLib/JWizard/doc/images/Logo.png
new file mode 100644
index 0000000..87ab5a8
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/Logo.png
Binary files differ
diff --git a/libs/FLib/JWizard/doc/images/screenshot-metal.gif b/libs/FLib/JWizard/doc/images/screenshot-metal.gif
new file mode 100644
index 0000000..08a2af6
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/screenshot-metal.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/images/screenshot-skin1.gif b/libs/FLib/JWizard/doc/images/screenshot-skin1.gif
new file mode 100644
index 0000000..f46d690
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/screenshot-skin1.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/images/screenshot-skin2.gif b/libs/FLib/JWizard/doc/images/screenshot-skin2.gif
new file mode 100644
index 0000000..470aa62
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/screenshot-skin2.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/images/screenshot-skin3.gif b/libs/FLib/JWizard/doc/images/screenshot-skin3.gif
new file mode 100644
index 0000000..3c001f7
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/screenshot-skin3.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/images/screenshot-windows.gif b/libs/FLib/JWizard/doc/images/screenshot-windows.gif
new file mode 100644
index 0000000..25841e4
--- /dev/null
+++ b/libs/FLib/JWizard/doc/images/screenshot-windows.gif
Binary files differ
diff --git a/libs/FLib/JWizard/doc/index.html b/libs/FLib/JWizard/doc/index.html
new file mode 100644
index 0000000..98c26fb
--- /dev/null
+++ b/libs/FLib/JWizard/doc/index.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Introduction</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Introduction</h1>
+ <p>Hi! My name is Tony Freixas and I am currently working on an application
+ that I intend to release as Open Source. In the process of building the
+ application, I am using as many Open Source classes and components as
+ I can find.</p>
+ <p>In some cases, I have been disappointed with what I have found on the
+ web:</p>
+ <ul>
+ <li>Classes that are not free.</li>
+ <li>Classes with restrictive licensing.</li>
+ <li>Classes which ignore internationalization.</li>
+ <li>Classes which are not easy to use.</li>
+ <li>Components which are limited with respect to the Look &amp; Feel that
+ can be used.</li>
+ </ul>
+ <p>When I have not found a suitable Java class, I have implemented my own.
+ I have decided to release these for use by others as part of a library
+ I call FLib.</p>
+ <p>Currently, there are three components available in FLib and I have chosen
+ to make them completely independent of each other. In the future, you
+
+ may have to load some common code in order to use the FLib classes.</p>
+ <p>These web pages are for the Swing-based JWizard component. Use the links
+ on the left to learn more.</p>
+ <p><a href="http://sourceforge.net/donate/index.php?group_id=113939"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" title=""/></a></p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/doc/resources.html b/libs/FLib/JWizard/doc/resources.html
new file mode 100644
index 0000000..91c1faf
--- /dev/null
+++ b/libs/FLib/JWizard/doc/resources.html
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Other Resources</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Other Resources</h1>
+ <p>I think it's only fair to note some of the other Java Wizard component
+ implementations. Some of these have appeared since I wrote my version.
+ You may do a Google search to find yet other versions.</p>
+ <p>There's a JWizard package at <a href="http://jwizardcmponent.sourceforge.net/">SourceForge.net</a>
+ which became the inspiration for my own version. I had some complicated
+ sequencing to do and this package seemed to make it harder than I thought
+ it needed to be. You can judge for yourself. It is open source and it
+ does appear to have paid attention to internationalization.</p>
+ <p>There's source code for a JWizard component at <a href="http://www.informit.com/guides/content.asp?g=java&seqNum=48">informit.com</a>.
+ It separates the Wizard panels from the navigation which may create some
+ excess cross-talk among the classes. The code seems to be free and unlicensed.
+ The code is not internationalized and uses characters &quot;&gt;&quot;
+ and &quot;&lt;&quot; instead of icons for the Back and Next buttons.</p>
+ <p>For $99, <a href="http://component.v-tech.ws/products/jwizard.htm">Visionary
+ Technologies</a> offers a JWizard component which sounds pretty nice.
+ I haven't tried it as its not open source. If you do a Google search,
+ most of your hits will point back to this version.</p>
+ <p></p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/doc/screenshots.html b/libs/FLib/JWizard/doc/screenshots.html
new file mode 100644
index 0000000..7b6fc51
--- /dev/null
+++ b/libs/FLib/JWizard/doc/screenshots.html
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Screen Shots</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Screen Shots</h1>
+ <p>The following are screen shots of JWizardDialogs using various look-and-feels:</p>
+ <p align="center"><img src="images/screenshot-metal.gif" width="586" height="514" /></p>
+ <p align="center">From the JWizard example program using the Metal L&amp;F.</p>
+ <p align="center"><img src="images/screenshot-windows.gif" width="764" height="584" /></p>
+ <p align="center">From the MediaTracker application using the Windows L&amp;F
+ .</p>
+ <p align="center"><img src="images/screenshot-skin1.gif" width="579" height="521" /></p>
+ <p align="center">From the MediaTracker application using the Skin L&amp;F
+ with the <em>Aqua</em> package.</p>
+ <p align="center"><img src="images/screenshot-skin2.gif" width="636" height="550" /></p>
+ <p align="center">From the MediaTracker application using the Skin L&amp;F
+ with the <em>Modern</em> package.</p>
+ <p align="center"><img src="images/screenshot-skin3.gif" width="561" height="521" /></p>
+ <p align="center">From the MediaTracker application using the Skin L&amp;F
+ with the <em>XPLuna</em> package.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/doc/stylesheet.css b/libs/FLib/JWizard/doc/stylesheet.css
new file mode 100644
index 0000000..dc693da
--- /dev/null
+++ b/libs/FLib/JWizard/doc/stylesheet.css
@@ -0,0 +1,48 @@
+body {
+ font-family: Arial, Helvetica, sans-serif;
+ background: white:
+ color: black;
+}
+
+td {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+th {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+#sidebar {
+ font-family: "Times New Roman", Times, serif;
+ font-weight: bold;
+ font-style: italic;
+ font-size: 20px;
+}
+
+#content {
+ font-size: 100%;
+}
+
+a:visited {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:link {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #C00000;
+ text-decoration: none;
+}
+
+a:active {
+ color: #C00000;
+ text-decoration: none;
+}
+
+pre {
+ margin-left: 1em;
+}
diff --git a/libs/FLib/JWizard/doc/tutorial.html b/libs/FLib/JWizard/doc/tutorial.html
new file mode 100644
index 0000000..3a8dc2d
--- /dev/null
+++ b/libs/FLib/JWizard/doc/tutorial.html
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/JWizard.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JWizard - Tutorial</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib</a> </p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Tutorial</h1>
+ <h2>JWizard</h2>
+ <h3>Creating the JWizardDialog</h3>
+ <p>To create a Wizard, begin by creating a storyboard, sketching each step
+ and the sequence through the steps. The sequencing may depend on the information
+ users supply as they proceed through the Wizard. Number each step, from
+ 0 to <em>n</em>, roughly following the flow from beginning to end.</p>
+ <p>Now you're ready to create your Wizard class. The basic pattern is:</p>
+ <pre>public class SampleWizard
+ extends JWizardDialog
+{
+
+
+public SampleWizard(Frame owner) {
+ super(owner, &quot;Sample Wizard&quot;, true);
+
+ // Set the logo image
+
+ URL url = getClass().getResource(&quot;SampleWizard.gif&quot;);
+ setWizardIcon(new ImageIcon(url));
+
+ // Create each step
+
+ addWizardPanel(new Step0());
+ addWizardPanel(new Step1());
+ addWizardPanel(new Step2());
+ ...
+
+ // Make the dialog visible
+
+ pack();
+ setVisible(true);
+}
+
+}
+</pre>
+ <p>Each Wizard is a subclass of JWizardDialog. In this case, the sample
+ wizard will be the child of a Frame. This will center the Wizard over
+ the Frame. If the Frame is null, the Wizard will be centered in the middle
+ of the screen. You can turn off the centering behavior by calling <code>disableCentering()</code>
+ before calling <code>setVisible()</code>.</p>
+ <p>The dialog title will be &quot;Sample Wizard&quot; and the dialog will
+ be modal (which is fairly standard for Wizards). An icon is added to the
+ Wizard and will be displayed on the left side of the dialog.</p>
+ <p>Note that each Wizard step is a separate class that is instantiated and
+ added to the dialog. The class names are arbitrary, but the first step
+ will be identified as step 0, so the above naming makes it easy to associate
+ a step with its corresponding class.</p>
+ <p>The step classes can be created however you like, but my recommendation
+ is that they be inner classes of the JWizardDialog. This makes it very
+ easy for global information to be accumulated in a central place (the
+ JWizardDialog) and accessed by all steps.</p>
+ <h3>Creating the Wizard Steps</h3>
+ <p>The basic pattern for a Wizard step is as follows:</p>
+ <pre>private class Step0
+ extends JWizardPanel
+{
+
+public
+Step0()
+{
+ setStepTitle(&quot;Sample Wizard Step 0&quot;);
+
+ JPanel contentPane = getContentPane();
+ ...
+
+ // Set the previous and next steps
+
+ setBackStep(-1);
+ setNextStep(1);
+}
+
+}
+</pre>
+ <p>Each step is a subclass of JWizardPanel. You will normally start by setting
+ the title for this specific step. Then you will construct all the appropriate
+ components for the step and add them to the JPanel obtained by calling
+ <code>getContentPane()</code> (don't add them directly to the JWizardPanel).</p>
+ <p>You end each step constructor by calling <code>setBackStep()</code> and
+ <code>setNextStep()</code>. This defines the flow from this panel to the
+ previous and next panels. A previous panel of -1 means that we are on
+ the first panel; a -1 for the next panel means we are on the last panel.
+ Any other number identifies the step we will sequence back or forwards
+ to.</p>
+ <p>If you need more dynamic sequencing, you will set up the default sequence
+ in the constructor. Then you will override the <code>back()</code> or
+ <code>next()</code> methods. You would determine the correct previous
+ or next step (calling <code>setBackStep()</code> or <code>setNextStep()</code>)
+ and then call <code>super.back()</code> or <code>super.next()</code>.</p>
+ <p>This also allows you to perform error checking. You override the <code>next()</code>
+ method and perform error checking based on the user's step entries. If
+ there is an error, you can display an error dialog and return without
+ calling <code>super.next()</code>. This will leave the step unchanged.</p>
+ <p>The <code>next()</code> method is also a convenient place to read the
+ user's entries and copy them into JWizardDialog fields so that the information
+ is globally available to all steps.</p>
+ <p>If you have a complicated Wizard with many steps and lots of components,
+ it may take a while to display if you construct each panel in the JWizardPanel
+ constructor. You perform a delayed construction by overriding <code>makingVisible()</code>.
+ <code>makingVisible()</code> is called just prior to displaying the step,
+ so you'll need to make sure you construct the panel only the first time
+ its called.</p>
+ <p>This will speed up the initial appearance of the Wizard, but it will
+ make it difficult to size the dialog properly (the dialog should be large
+ enough to accommodate the largest panel). You may think you can manually
+ set the size by calling <code>setSize()</code> on the JWizardDialog. This
+ is not a good idea. There are various circumstances which may change the
+ size needed:</p>
+ <ul>
+ <li>If the application is internationalized, the translated labels may
+ be longer than expected.</li>
+ <li>If the application is designed for people with poor vision, you may
+ want to allow for larger font sizes.</li>
+ <li>You may also want larger font sizes for demo purposes (showing the
+ application to a group of people gathered around a display).</li>
+ </ul>
+ <p>JWizardDialog does make allowances for panels created in makingVisible().
+ Before each panel is displayed, it checks the preferred size against the
+ current size. If the preferred size is bigger, it will increase the dialog's
+ size to match. It will never decrease the size&#8212;this minimizes the
+ amount of size changes the dialog goes through.</p>
+ <h3>Handling Finish and Cancel</h3>
+ <p>In JWizardDialog, the <code>finish()</code> and <code>cancel()</code>
+ methods are called when the Finish and Cancel buttons are called, respectively.
+ Each of these methods calls dispose(). You may want to override them.
+ For instance, <code>finish()</code> may want to take all the user's input
+ and do something with it. In <code>cancel()</code>, you may want to query
+ the user to confirm the cancellation. Call <code>super.cancel()</code>
+ if confirmed or else just return.</p>
+ <h3>Handling Help</h3>
+ <p>You add a Help button by calling <code>addHelpButton()</code> in the
+ JWizardDialog constructor. If all Wizard panels have the same help message,
+ you would override <code>help()</code> in the JWizardDialog class. Otherwise,
+ each step should over JWizardPanel's <code>help()</code> method.</p>
+ <h3>Sequencing Options</h3>
+ <p>In general, the sequencing is handled by each step. This is usually the
+ easiest way to do it as each step usually has the information it needs
+ to decide where to go next. However, if you need more central control
+ of the sequencing algorithm, you can override <code>switchToStep()</code>
+ in the JWizardDialog. This method receives the current step value and
+ the requested next step (from the JWizardPanel). Note that the &quot;next&quot;
+ step is the step selected by the user pressing either the Back or Next
+ button. You can change the change the next step value based on whatever
+ criteria you want.</p>
+ <h3>Other Options</h3>
+ <p>In most Wizards, the Finish button is enabled only on the last step.
+ But some Wizards allow the user to call Finish while steps still remain.
+ The information gathered in the remaining steps is defaulted. If you have
+ this model, call <code>setEarlyFinish()</code> in the JWizardDialog.</p>
+ <p>In some Wizards, the last step is simply where all the necessary user
+ information has been gathered&#8212;pressing Finish begins processing
+ the information. In other Wizards, actions may be performed as the Wizard
+ proceeds and the last step is simply to confirm completion of the task.
+ In this latter case, call <code>disableCancelAtEnd()</code> in the JWizardDialog.
+ This disables the Cancel button on the last step.</p>
+ <h3>Summary</h3>
+ <p>The JWizard components are designed to be easy to use. In most cases
+ you will override just a few methods. The rest will normally do the
+ right
+ thing. After reading this tutorial, you should examine the <a href="examples.html">example
+ program</a> provided which exercises many of the features of JWizard.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/Bundle.properties b/libs/FLib/JWizard/org/freixas/jwizard/Bundle.properties
new file mode 100644
index 0000000..8c90245
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/Bundle.properties
@@ -0,0 +1,31 @@
+# org.freixas.jwizard Resource Bundle
+
+BackButton=Back
+BackButtonMnemonic=B
+BackButtonAccelerator=
+BackButtonShort=
+BackButtonLong=Go back to the previous step.
+
+NextButton=Next
+NextButtonMnemonic=N
+NextButtonAccelerator=
+NextButtonShort=
+NextButtonLong=Go to the next step.
+
+FinishButton=Finish
+FinishButtonMnemonic=F
+FinishButtonAccelerator=
+FinishButtonShort=
+FinishButtonLong=End the wizard.
+
+CancelButton=Cancel
+CancelButtonMnemonic=C
+CancelButtonAccelerator=ESCAPE
+CancelButtonShort=
+CancelButtonLong=Cancel the wizard.
+
+HelpButton=Help
+HelpButtonMnemonic=H
+HelpButtonAccelerator=F1
+HelpButtonShort=
+HelpButtonLong=Get Help for this dialog.
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/JWizardDialog.java b/libs/FLib/JWizard/org/freixas/jwizard/JWizardDialog.java
new file mode 100644
index 0000000..355a9d4
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/JWizardDialog.java
@@ -0,0 +1,1015 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jwizard;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+
+/**
+ * This class creates a Wizard dialog.
+ * <p>
+ * I wrote this class because I couldn't find a good, free,
+ * easy-to-use, well-documented Java Wizard dialog. I hope this one is
+ * both flexible and easy-to-use.
+ * <p>
+ * A wizard is a dialog that leads a user through a procedure
+ * step-by-step. Some Wizards only gather information until the very
+ * last step, when they execute some tasks. Others will perform
+ * actions as they go.
+ * <p>
+ * To create a Wizard, you need two deal with two classes:
+ * JWizardDialog (this class) and JWizardPanel. The basic steps are:
+ * <ul>
+ * <li>Create a JWizardDialog subclass.
+ * <li>Set the Wizard dialog title (usually constant, though it
+ * needn't be).
+ * <li>Set the optional Image displayed on the left side of the
+ * Wizard.
+ * <li>Create a series of JWizardPanel's and add them to the dialog
+ * using addWizardPanel(). The order in which the panels are added
+ * determine their step number, with the first step starting at 0.
+ * <li>Call pack() and call setVisible(true) to display it.
+ * </ul>
+ * <p>
+ * Each JWizardPanel consists of a step title (which should be
+ * specific to each step) and a set of components which you layout as
+ * you wish. If possible, you should try to create and layout all
+ * panel components at construction time (so that the Wizard size can
+ * be accurately determined). If you need some dynamic layout, the
+ * method makingVisible() is called each time prior to making the
+ * JWizardPanel step visible.
+ * <p>
+ * The Wizard has four buttons which always appear, although they may
+ * at times be disabled. The buttons are Back, Next, Finish and Cancel.
+ * You can also add a Help button with addHelpButton().
+ * <p>
+ * When the buttons are pressed, they call the methods back(), next(),
+ * finish(), cancel() and help(), respectively. You can override any
+ * of these. The default finish() and cancel() methods call dispose();
+ * when you override these, you would usually finish by calling
+ * super.finish() or super.cancel().
+ * <p>
+ * The default back(), next() and help() methods call equivalent
+ * methods in the current JWizardPanel. You would not normally
+ * override these methods, but the hooks are there if you need them.
+ * <p>
+ * In the JWizardPanel, the default back() and next() methods usally
+ * go to the previous or next panel. You can change the panel they go
+ * to by calling setBackPanel() or setNextPanel(), giving the index of
+ * the panel to go to. A value of -1 disables the corresponding
+ * button. Again, you can override these and then finish by calling
+ * super.back() or super.next(). The default help() method does
+ * nothing.
+ * <p>
+ * The Finish button is normally enabled only on the last step. If you
+ * allow an early exit from the Wizard, call setEarlyFinish() and the
+ * Finish button will be enabled.
+ * <p>
+ * The Cancel button is normally always enabled. To disable it on the
+ * last step, call disableCancelAtEnd().
+ * <p>
+ * Just prior to switching steps, switchToStep() is called in
+ * JWizardDialog. This method supplies the current and new step
+ * indices. The return value is the index of the panel which will
+ * actually be displayed. The default method returns the input value,
+ * but you can override this if you need special flow control in the
+ * JWizardDialog rather than the JWizardPanel.
+ * <p>
+ * When the dialog is displayed, it is normally centered over its
+ * parent. If there is no Frame parent, it is centered on the screen.
+ * You can disable this with disableCentering(), which must be called
+ * before the JWizardDialog is made visible.
+ * <p>
+ * That's about all there is to it.
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @see JWizardPanel
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+public class JWizardDialog
+ extends JDialog
+{
+
+//**********************************************************************
+// Private Constants
+//**********************************************************************
+
+private static final int BACK_BUTTON = 0;
+private static final int NEXT_BUTTON = 1;
+private static final int FINISH_BUTTON = 2;
+private static final int CANCEL_BUTTON = 3;
+private static final int HELP_BUTTON = 4;
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+// The label which holds the image to display on the left side of the
+// wizard.
+
+private JPanel logoPanel;
+private JLabel logoLabel;
+
+// The panel to which JWizardPanel's are added.
+
+private JPanel workArea;
+
+// The layout for the work area.
+
+private CardLayout cardLayout;
+
+// The current JWizardPanel
+
+private JWizardPanel currentWizard = null;
+private int currentStep = -1;
+private int lastStep = -1;
+private int panelCount = 0;
+
+// The button panel and buttons
+
+private JPanel buttonPanel;
+private JPanel buttons;
+private JButton buttonBack;
+private JButton buttonNext;
+private JButton buttonFinish;
+private JButton buttonCancel;
+private JButton buttonHelp;
+
+// True if the finish button should be enabled all the time
+
+private boolean enableEarlyFinish = false;
+
+// True if the cancel button is enabled on the final step
+
+private boolean enableCancelAtEnd = true;
+
+// True if the dialog should be centered on display
+
+private boolean isCentered = true;
+
+// True if the wizard finished
+
+private boolean isFinished = false;
+
+// The resource bundle
+
+private static ResourceBundle bundle =
+ ResourceBundle.getBundle("org.freixas.jwizard.Bundle");
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Creates a non-modal JWizardDialog without a title and without a
+ * specified Frame owner. A shared, hidden frame will be set as the
+ * owner of the dialog.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog()
+ throws HeadlessException
+{
+ super();
+ init();
+}
+
+/**
+ * Creates a non-modal JWizardDialog without a title with the
+ * specified Frame as its owner. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Frame owning the dialog.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Frame owner)
+ throws HeadlessException
+{
+ super(owner);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog without a title and with
+ * the specified owner Frame. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ *
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Frame owning the dialog.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Frame owner,
+ boolean modal)
+ throws HeadlessException
+{
+ super(owner, modal);
+ init();
+}
+
+/**
+ * Creates a non-modal JWizardDialog with the specified title and with
+ * the specified owner frame. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Frame owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Frame owner,
+ String title)
+ throws HeadlessException
+{
+ super(owner, title);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog with the specified title
+ * and the specified owner Frame. If owner is null, a shared, hidden
+ * frame will be set as the owner of this dialog. All constructors
+ * defer to this one.
+ * <p>
+ * NOTE: Any popup components (JComboBox, JPopupMenu, JMenuBar)
+ * created within a modal dialog will be forced to be lightweight.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Frame owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Frame owner,
+ String title,
+ boolean modal)
+ throws HeadlessException
+{
+ super(owner, title, modal);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog with the specified
+ * title, owner Frame, and GraphicsConfiguration.
+ * <p>
+ * NOTE: Any popup components (JComboBox, JPopupMenu, JMenuBar)
+ * created within a modal dialog will be forced to be lightweight.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale.
+ *
+ * @param owner The Frame owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @param gc The GraphicsConfiguration of the target screen device. If
+ * gc is null, the same GraphicsConfiguration as the owning Frame
+ * is used.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Frame owner,
+ String title,
+ boolean modal,
+ GraphicsConfiguration gc)
+ throws HeadlessException
+{
+ super(owner, title, modal, gc);
+ init();
+}
+
+/**
+ * Creates a non-modal JWizardDialog without a title with the
+ * specified Dialog as its owner. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Dialog owning the dialog.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Dialog owner)
+ throws HeadlessException
+{
+ super(owner);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog without a title and with
+ * the specified owner Dialog. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ *
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Dialog owning the dialog.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Dialog owner,
+ boolean modal)
+ throws HeadlessException
+{
+ super(owner, modal);
+ init();
+}
+
+/**
+ * Creates a non-modal JWizardDialog with the specified title and with
+ * the specified owner frame. If owner is null, a shared, hidden
+ * frame will be set as the owner of the dialog.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Dialog owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Dialog owner,
+ String title)
+ throws HeadlessException
+{
+ super(owner, title);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog with the specified title
+ * and the specified owner Dialog. If owner is null, a shared, hidden
+ * frame will be set as the owner of this dialog. All constructors
+ * defer to this one.
+ * <p>
+ * NOTE: Any popup components (JComboBox, JPopupMenu, JMenuBar)
+ * created within a modal dialog will be forced to be lightweight.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale().
+ *
+ * @param owner The Dialog owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Dialog owner,
+ String title,
+ boolean modal)
+ throws HeadlessException
+{
+ super(owner, title, modal);
+ init();
+}
+
+/**
+ * Creates a modal or non-modal JWizardDialog with the specified
+ * title, owner Dialog, and GraphicsConfiguration.
+ * <p>
+ * NOTE: Any popup components (JComboBox, JPopupMenu, JMenuBar)
+ * created within a modal dialog will be forced to be lightweight.
+ * <p>
+ * This constructor sets the component's locale property to the value
+ * returned by JComponent.getDefaultLocale.
+ *
+ * @param owner The Dialog owning the dialog.
+ * @param title The String to display in the dialog's title bar.
+ * @param modal True for a modal dialog, false for one that allows
+ * others windows to be active at the same time.
+ * @param gc The GraphicsConfiguration of the target screen device. If
+ * gc is null, the same GraphicsConfiguration as the owning Dialog
+ * is used.
+ * @throws HeadlessException If GraphicsEnvironment.isHeadless() returns true.
+ */
+
+public
+JWizardDialog(
+ Dialog owner,
+ String title,
+ boolean modal,
+ GraphicsConfiguration gc)
+ throws HeadlessException
+{
+ super(owner, title, modal, gc);
+ init();
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Add an image which displays on the left side of the wizard. By
+ * default, no image is displayed. This must be set before the dialog
+ * is made visible.
+ *
+ * @param icon The icon representing the image to display. If null, no
+ * image is displayed.
+ */
+
+public void
+setWizardIcon(
+ Icon icon)
+{
+ // If null, remove any existing logo panel
+
+ if (icon == null) {
+ if (logoPanel != null) {
+ remove(logoPanel);
+ logoPanel = null;
+ logoLabel = null;
+ }
+ }
+
+ // If not null, add it or replace an existing label
+
+ else {
+ if (logoPanel != null) {
+ remove(logoPanel);
+ }
+ logoPanel = new JPanel(new BorderLayout());
+ logoLabel = new JLabel(icon);
+ logoPanel.add(logoLabel, BorderLayout.NORTH);
+ getContentPane().add(logoPanel, BorderLayout.WEST);
+ }
+}
+
+/**
+ * Add a panel representing a step in the wizard. Since removing a
+ * panel would force a renumbering of the remaining panels and since
+ * you have flexible sequencing control, there is no matching
+ * removeWizardPanel() method.
+ *
+ * @param panel The JWizardPanel to add
+ */
+
+public void
+addWizardPanel(
+ JWizardPanel panel)
+{
+ if (currentWizard == null) {
+ currentWizard = panel;
+ currentStep = 0;
+ }
+ workArea.add(panel, Integer.toString(panelCount++));
+ panel.setWizardParent(this);
+}
+
+/**
+ * This adds a help button to the wizard. When the button is pressed,
+ * the help() method is called.
+ *
+ * @see #help()
+ */
+
+public void
+addHelpButton()
+{
+ if (buttonHelp == null) {
+ buttonHelp =
+ new JButton(
+ new ButtonAction(
+ "HelpButton", "HelpButtonMnemonic",
+ "HelpButtonAccelerator",
+ "images/Help16.gif",
+ "HelpButtonShort", "HelpButtonLong", HELP_BUTTON));
+ buttons.add(buttonHelp);
+ }
+}
+
+/**
+ * If this method is called, the Finish button is enabled immediately.
+ * By default, it is enabled only on the last step (any step where the
+ * next JWizardPanel step is -1).
+ */
+
+public void
+setEarlyFinish()
+{
+ enableEarlyFinish = true;
+}
+
+/**
+ * Returns true if the wizard finished (the user pressed the Finish)
+ * button). Returns false otherwise (either the wizard hasn't finished
+ * or the user pressed Cancel to exit).
+ *
+ * @return True if the wizard finished.
+ */
+
+public boolean
+isFinished()
+{
+ return isFinished;
+}
+
+/**
+ * If this method is called, the Cancel button is disabled when on the
+ * last step. If setEarlyFinish() is called, it is still disabled only
+ * on the last step.
+ */
+
+public void
+disableCancelAtEnd()
+{
+ enableCancelAtEnd = false;
+}
+
+/**
+ * Don't center the dialog. This method must be called before the
+ * dialog is made visible. The default behavior is to center the
+ * dialog over its parent, or on the screen if no parent was given.
+ */
+
+public void
+disableCentering()
+{
+ isCentered = false;
+}
+
+/**
+ * Returns the current step being displayed by the wizard. Steps start
+ * at 0. If no step is yet displayed, a -1 is returned.
+ *
+ * @return The current step being displayed by the wizard.
+ */
+
+public int
+getCurrentStep()
+{
+ return currentStep;
+}
+
+/**
+ * Returns the last step displayed by the wizard. Steps start at 0. If
+ * there is no previous step yet, -1 is returned.
+ *
+ * @return The last step being displayed by the wizard.
+ */
+
+public int
+getLastStep()
+{
+ return lastStep;
+}
+
+/**
+ * @deprecated As of JDK version 1.1, replaced by setVisible(boolean).
+ */
+
+public void
+show()
+{
+ goTo(0);
+
+ if (isCentered) {
+ Dimension screenSize = getToolkit().getScreenSize();
+ Dimension parentSize = getParent().getSize();
+ Point parentLocation = getParent().getLocation();
+
+ // If the parent Frame is invisible, we center the dialog on
+ // the screen
+
+ if (!getParent().isVisible()) {
+ parentSize = getToolkit().getScreenSize();
+ parentLocation.setLocation(0, 0);
+ }
+
+ Dimension size = getSize();
+
+ int x = parentLocation.x + (parentSize.width - size.width ) / 2;
+ int y = parentLocation.y + (parentSize.height - size.height) / 2;
+
+ // Make sure the dialog is placed completely on the screen (as
+ // long as it is smaller than the screen size)
+
+ if (size.width < screenSize.width &&
+ x + size.width > screenSize.width) {
+ x = screenSize.width - size.width;
+ }
+ if (size.height < screenSize.height &&
+ y + size.height > screenSize.height) {
+ y = screenSize.height - size.height;
+ }
+ if (x < 0) x = 0;
+ if (y < 0) y = 0;
+
+ setBounds(x, y, size.width, size.height);
+ }
+
+ super.show();
+}
+
+// WizardDialogs are equal if they are the same object, so the default
+// equals() and hashCode() methods are acceptable. I'm not using the
+// paramString() method for debugging, so the default is OK
+
+//**********************************************************************
+// Package Public
+//**********************************************************************
+
+/**
+ * Set the sensitivity of each button based on the back and next step
+ * values. This should be called when changing steps or when the back
+ * or next button values are changed.
+ */
+
+void
+setButtonStates()
+{
+ int backStep = currentWizard.getBackStep();
+ int nextStep = currentWizard.getNextStep();
+
+ boolean atBegin = backStep < 0 || backStep >= panelCount;
+
+ boolean atEnd = nextStep < 0 || nextStep >= panelCount;
+
+ buttonBack.setEnabled(!atBegin);
+ buttonNext.setEnabled(!atEnd);
+ buttonFinish.setEnabled(enableEarlyFinish || atEnd);
+ buttonCancel.setEnabled(!atEnd || enableCancelAtEnd);
+
+ // Set the default button
+
+ if (buttonNext.isEnabled()) {
+ getRootPane().setDefaultButton(buttonNext);
+ }
+ else if (buttonFinish.isEnabled()) {
+ getRootPane().setDefaultButton(buttonFinish);
+ }
+ else if (buttonBack.isEnabled()) {
+ getRootPane().setDefaultButton(buttonBack);
+ }
+ else {
+ getRootPane().setDefaultButton(null);
+ }
+}
+
+/**
+ * Display the JWizardPanel with the given step number. This method is
+ * package public so that JWizardPanel can call it. The
+ * switchToStep() method may override the step choice.
+ * </code></pre>
+ *
+ * @param step The step number of the JWizardPanel to display.
+ * @see #switchToStep(int,int)
+ */
+
+void
+goTo(
+ int step)
+{
+ // Give the user a last chance to change things
+
+ step = switchToStep(currentStep, step);
+
+ // We can't do anything if we're outside the valid range
+
+ if (step < 0 || step >= panelCount) return;
+
+ // Save the current step as the previous step
+
+ lastStep = currentStep;
+
+ currentWizard = (JWizardPanel)workArea.getComponent(step);
+ currentStep = step;
+ currentWizard.doMakingVisible();
+ cardLayout.show(workArea, Integer.toString(step));
+
+ // The panel may have just been created or modified in the
+ // doMakingVisible() method. If so, the CardLayout's original
+ // guess at the window size may be too small. We increase the size
+ // if we have to -- but we never decrease the size
+
+ Dimension prefSize = getPreferredSize();
+ Dimension curSize = getSize();
+ if (prefSize.width > curSize.width ||
+ prefSize.height > curSize.height) {
+ Dimension newSize =
+ new Dimension(Math.max(prefSize.width, curSize.width),
+ Math.max(prefSize.height, curSize.height));
+ setSize(newSize);
+ invalidate();
+ validate();
+ }
+
+ // Set the button states
+
+ setButtonStates();
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+/**
+ * Called when the Back button is pressed. This calls the back()
+ * method in the current JWizardPanel.
+ *
+ * @see JWizardPanel#back()
+ */
+
+protected void
+back()
+{
+ if (currentWizard != null) currentWizard.doBack();
+}
+
+/**
+ * Called when the Next button is pressed. This calls the next()
+ * method in the current JWizardPanel.
+ *
+ * @see JWizardPanel#next()
+ */
+
+protected void
+next()
+{
+ if (currentWizard != null) currentWizard.doNext();
+}
+
+/**
+ * Called when the Finish button is pressed. This calls dispose(). You
+ * will probably want to override this.
+ */
+
+protected void
+finish()
+{
+ isFinished = true;
+ dispose();
+}
+
+/**
+ * Called when the Cancel button is pressed. This calls dispose().
+ */
+
+protected void
+cancel()
+{
+ dispose();
+}
+
+/**
+ * Called when the Help button is pressed. This calls the help()
+ * method in the current JWizardPanel. If the help text is the same
+ * for all panels, you will want to override this.
+ */
+
+protected void
+help()
+{
+ if (currentWizard != null) currentWizard.doHelp();
+}
+
+/**
+ * This method is called just prior to switching from one step to
+ * another (after any next() or back() method is called). It receives
+ * the current and new indices. By default, it returns the new index.
+ * You can override the method if you need to control sequencing from
+ * this JWizardDialog class (normally, each step decides what the back
+ * and next steps should be).
+ *
+ * @param currentIndex The index of the current JWizardPanel.
+ * @param newIndex The index of the JWizardPanel we are about to
+ * display.
+ * @return The index of the JWizardPanel to display.
+ */
+
+protected int
+switchToStep(
+ int currentIndex,
+ int newIndex)
+{
+ return newIndex;
+}
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * Initialize the JWizardDialog.
+ */
+
+private void
+init()
+{
+ getContentPane().setLayout(new BorderLayout(5, 2));
+
+ // If the user tries to close the wizard, the result should be the
+ // same as pressing Cancel
+
+ setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
+
+ // Window close is the same as cancel. If the cancel button is
+ // disabled, then a window close does nothing
+
+ addWindowListener(
+ new WindowAdapter() {
+ public void windowClosing(WindowEvent e) {
+ if (buttonCancel.isEnabled()) {
+ cancel();
+ }
+ }
+ });
+
+ // Work area for WizardPanel's
+
+ workArea = new JPanel();
+ cardLayout = new CardLayout();
+ workArea.setLayout(cardLayout);
+
+ // Buttons
+
+ buttonBack =
+ new JButton(
+ new ButtonAction(
+ "BackButton", "BackButtonMnemonic", "BackButtonAccelerator",
+ "images/Back16.gif",
+ "BackButtonShort", "BackButtonLong", BACK_BUTTON));
+ buttonNext =
+ new JButton(
+ new ButtonAction(
+ "NextButton", "NextButtonMnemonic", "NextButtonAccelerator",
+ "images/Forward16.gif",
+ "NextButtonShort", "NextButtonLong", NEXT_BUTTON));
+ buttonFinish =
+ new JButton(
+ new ButtonAction(
+ "FinishButton", "FinishButtonMnemonic",
+ "FinishButtonAccelerator",
+ null,
+ "FinishButtonShort", "FinishButtonLong", FINISH_BUTTON));
+ buttonCancel =
+ new JButton(
+ new ButtonAction(
+ "CancelButton", "CancelButtonMnemonic",
+ "CancelButtonAccelerator",
+ null,
+ "CancelButtonShort", "CancelButtonLong", CANCEL_BUTTON));
+
+ buttons = new JPanel(new FlowLayout(FlowLayout.RIGHT));
+
+ buttons.add(buttonBack);
+ buttons.add(buttonNext);
+ buttons.add(buttonFinish);
+ buttons.add(buttonCancel);
+
+ buttonPanel = new JPanel(new BorderLayout());
+ buttonPanel.add(new JSeparator(), BorderLayout.NORTH);
+ buttonPanel.add(buttons);
+
+ getContentPane().add(buttonPanel, BorderLayout.SOUTH);
+ getContentPane().add(workArea);
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+// ButtonAction
+
+private class ButtonAction
+ extends AbstractAction
+{
+
+ButtonAction(
+ String name,
+ String mnemonic,
+ String accelerator,
+ String imageName,
+ String shortDescription,
+ String longDescription,
+ int actionId)
+{
+ if (name != null) {
+ putValue(Action.NAME, bundle.getString(name));
+ }
+
+ if (mnemonic != null) {
+ putValue(Action.MNEMONIC_KEY,
+ new Integer(bundle.getString(mnemonic).charAt(0)));
+ }
+
+ if (accelerator != null) {
+ putValue(
+ Action.ACCELERATOR_KEY,
+ KeyStroke.getKeyStroke(bundle.getString(accelerator)));
+ }
+
+ URL url = null;
+ if (imageName != null) {
+ url =
+ this.getClass().getResource(imageName);
+ if (url != null) {
+ putValue(Action.SMALL_ICON, new ImageIcon(url));
+ }
+ }
+
+ if (shortDescription != null) {
+ putValue(Action.SHORT_DESCRIPTION, bundle.getString(shortDescription));
+ }
+
+ if (longDescription != null) {
+ putValue(Action.LONG_DESCRIPTION, bundle.getString(longDescription));
+ }
+ putValue("buttonAction", new Integer(actionId));
+}
+
+public void
+actionPerformed(
+ ActionEvent e)
+{
+ Integer value = (Integer)getValue("buttonAction");
+ switch (value.intValue()) {
+ case BACK_BUTTON:
+ back();
+ break;
+ case NEXT_BUTTON:
+ next();
+ break;
+ case FINISH_BUTTON:
+ finish();
+ break;
+ case CANCEL_BUTTON:
+ cancel();
+ break;
+ case HELP_BUTTON:
+ help();
+ break;
+ }
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/JWizardPanel.java b/libs/FLib/JWizard/org/freixas/jwizard/JWizardPanel.java
new file mode 100644
index 0000000..840321e
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/JWizardPanel.java
@@ -0,0 +1,429 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package org.freixas.jwizard;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import javax.swing.*;
+
+/**
+ * This class creates a panel that can be used for a single step in a
+ * Wizard dialog. See the class documentation for JWizardDialog for
+ * more information on using this class together with JWizardDialog.
+ * <p>
+ * Components added to this panel should be added to the panel
+ * returned by getContentPanel().
+ * <hr>
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Artistic License. You should have
+ * received a copy of the Artistic License along with this program. If
+ * not, a copy is available at
+ * <a href="http://opensource.org/licenses/artistic-license.php">
+ * opensource.org</a>.
+ *
+ * @see JWizardDialog
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+public class JWizardPanel
+ extends JPanel
+{
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+// The JWizardDialog parent
+
+JWizardDialog dialogParent;
+
+// The step title
+
+JPanel titlePanel;
+String stepTitle;
+JLabel stepTitleLabel;
+
+// The content pane
+
+JPanel contentPane;
+
+// The back and next steps
+
+int backStep = -1;
+int nextStep = -1;
+
+// Flags the first time the component is added to a window
+
+boolean firstNotify = true;
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Creates a new JWizardPanel with a double buffer and a flow layout.
+ * The flow layout is assigned to the panel accessed through
+ * getContentPane().
+ */
+
+public
+JWizardPanel()
+{
+ super();
+ init(new FlowLayout());
+}
+
+/**
+ * Create a new buffered JWizardPanel with the specified layout
+ * manager. The layout is assigned to the panel accessed through
+ * getContentPane().
+ *
+ * @param layout The LayoutManager for the content pane.
+ */
+
+public
+JWizardPanel(
+ LayoutManager layout)
+{
+ super();
+ init(layout);
+}
+
+/**
+ * Creates a new JWizardPanel a flow layout and the specified
+ * buffering strategy. If isDoubleBuffered is true, the JWizardPanel
+ * will use a double buffer. The layout is assigned to the panel
+ * accessed through getContentPane().
+ *
+ * @param isDoubleBuffered True for double-buffering, which uses
+ * additional memory space to achieve fast, flicker-free updates.
+ */
+
+public
+JWizardPanel(
+ boolean isDoubleBuffered)
+{
+ super(isDoubleBuffered);
+ init(new FlowLayout());
+}
+
+/**
+ * Creates a new JWizardPanel with the specified layout manager and
+ * buffering strategy. The layout is assigned to the panel accessed
+ * through getContentPane().
+ *
+ * @param layout The LayoutManager for the content pane.
+ * @param isDoubleBuffered True for double-buffering, which uses
+ * additional memory space to achieve fast, flicker-free updates.
+ */
+
+public
+JWizardPanel(
+ LayoutManager layout,
+ boolean isDoubleBuffered)
+{
+ super(isDoubleBuffered);
+ init(layout);
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Set the title to use for this step. Normally this title would be
+ * unique for each wizards step.
+ *
+ * @param stepTitle The title to use for this step.
+ */
+
+public void
+setStepTitle(
+ String stepTitle)
+{
+ this.stepTitle = stepTitle;
+ stepTitleLabel.setText(stepTitle);
+
+ stepTitleLabel.invalidate();
+ validate();
+}
+
+/**
+ * Get the step title to use for this step.
+ *
+ * @return The step title to use for this step.
+ */
+
+public String
+getStepTitle()
+{
+ return stepTitle;
+}
+
+/**
+ * Get a JPanel to use for adding your own components to this
+ * WizardPanel. Do not add components directly to the JWizardPanel.
+ * The JPanel uses the layout given in the JWizardPanel constructor.
+ *
+ * @return The JPanel to use for adding components for this wizard
+ * step.
+ */
+
+public JPanel
+getContentPane()
+{
+ return contentPane;
+}
+
+/**
+ * Get the wizard step to go to when the Back button is pressed.
+ *
+ * @return The wizard step to go to when the Back button is pressed.
+ */
+
+public int
+getBackStep()
+{
+ return backStep;
+}
+
+/**
+ * Set the wizard step to go to when the Back button is pressed. This
+ * should be set in the constructor of the JWizardPanel subclass since
+ * it determines whether the Back button is enabled or not.
+ *
+ * @param backStep The wizard step to go to when the Back button is pressed.
+ */
+
+public void
+setBackStep(
+ int backStep)
+{
+ this.backStep = backStep;
+ JWizardDialog dialog = getWizardParent();
+ if (dialog != null) dialog.setButtonStates();
+}
+
+/**
+ * Get the wizard step to go to when the Next button is pressed.
+ *
+ * @return The wizard step to go to when the Next button is pressed.
+ */
+
+public int
+getNextStep()
+{
+ return nextStep;
+}
+
+/**
+ * Set the wizard step to go to when the Next button is pressed. This
+ * should be set in the constructor of the JWizardPanel subclass since
+ * it determines whether the Next and Finish buttons are enabled or not.
+ *
+ * @param nextStep The wizard step to go to when the Next button is pressed.
+ */
+
+public void
+setNextStep(
+ int nextStep)
+{
+ this.nextStep = nextStep;
+ JWizardDialog dialog = getWizardParent();
+ if (dialog != null) dialog.setButtonStates();
+}
+
+/**
+ * Returns the JWizardDialog in which this JWizardPanel resides. This
+ * is valid only after the panel has been added to the dialog.
+ *
+ * @return The JWizardDialog in which this JWizardPanel resides.
+ */
+
+public JWizardDialog
+getWizardParent()
+{
+ return dialogParent;
+}
+
+/**
+ * Do not call directly.
+ */
+
+public void
+addNotify()
+{
+ if (firstNotify) {
+ Font font = stepTitleLabel.getFont();
+ font = font.deriveFont(Font.BOLD, font.getSize() * 14 / 10);
+ stepTitleLabel.setFont(font);
+ firstNotify = false;
+ }
+ super.addNotify();
+}
+
+// WizardPanels are equal if they are the same object, so the default
+// equals() and hashCode() methods are acceptable. I'm not using the
+// paramString() method for debugging, so the default is OK.
+
+//**********************************************************************
+// Package Public
+//**********************************************************************
+
+/**
+ * Set the JWizardDialog parent for this JWizardPanel.
+ *
+ * @param dialogParent The JWizardPanel parent for this JWizardPanel.
+ */
+
+void
+setWizardParent(
+ JWizardDialog dialogParent)
+{
+ this.dialogParent = dialogParent;
+}
+
+/**
+ * Calls makingVisible(). This allows the JWizardDialog to call the
+ * protected method makingVisible().
+ *
+ * @see #makingVisible()
+ */
+
+void
+doMakingVisible()
+{
+ makingVisible();
+}
+
+/**
+ * Calls back(). This allows the JWizardDialog to call the protected
+ * method back().
+ *
+ * @see #back()
+ */
+
+void
+doBack()
+{
+ back();
+}
+
+/**
+ * Calls next(). This allows the JWizardDialog to call the protected
+ * method next().
+ *
+ * @see #next()
+ */
+
+void
+doNext()
+{
+ next();
+}
+
+/**
+ * Calls help(). This allows the JWizardDialog to call the protected
+ * method help().
+ *
+ * @see #help()
+ */
+
+void
+doHelp()
+{
+ help();
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+/**
+ * Called just prior to making this panel visible. This is a hook in
+ * case information in the panel needs to be created dynamically based
+ * on previous steps.
+ */
+
+protected void
+makingVisible()
+{
+}
+
+/**
+ * Called when the Back button is pressed. By default this displays
+ * the wizard step set by setBackStep().
+ *
+ * @see #setBackStep(int)
+ */
+
+protected void
+back()
+{
+ dialogParent.goTo(getBackStep());
+}
+
+/**
+ * Called when the Next button is pressed. By default this displays
+ * the wizard step set by setNextStep().
+ *
+ * @see #setNextStep(int)
+ */
+
+protected void
+next()
+{
+ dialogParent.goTo(getNextStep());
+}
+
+/**
+ * Called when the Help button is pressed. By default this does nothing.
+ */
+
+protected void
+help()
+{
+}
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * Initialize the JWizardPanel.
+ *
+ * @param layout The layout to use.
+ */
+
+private void
+init(
+ LayoutManager layout)
+{
+ // Set the layout for the JWizardPanel
+
+ setLayout(new BorderLayout(0, 5));
+
+ // Set the layout for the content area
+
+ contentPane = new JPanel(layout);
+
+ // Step title
+
+ titlePanel = new JPanel(new BorderLayout(0, 5));
+ titlePanel.add(new JSeparator(), BorderLayout.SOUTH);
+ stepTitleLabel = new JLabel(" ");
+ titlePanel.add(stepTitleLabel);
+
+ add(titlePanel, BorderLayout.NORTH);
+ add(contentPane);
+}
+
+}
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/images/Back16.gif b/libs/FLib/JWizard/org/freixas/jwizard/images/Back16.gif
new file mode 100644
index 0000000..f48362d
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/images/Back16.gif
Binary files differ
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/images/Forward16.gif b/libs/FLib/JWizard/org/freixas/jwizard/images/Forward16.gif
new file mode 100644
index 0000000..d25a3f9
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/images/Forward16.gif
Binary files differ
diff --git a/libs/FLib/JWizard/org/freixas/jwizard/images/Help16.gif b/libs/FLib/JWizard/org/freixas/jwizard/images/Help16.gif
new file mode 100644
index 0000000..dc5c2d3
--- /dev/null
+++ b/libs/FLib/JWizard/org/freixas/jwizard/images/Help16.gif
Binary files differ
diff --git a/libs/FLib/JWizard/project.dtd b/libs/FLib/JWizard/project.dtd
new file mode 100644
index 0000000..dee3c51
--- /dev/null
+++ b/libs/FLib/JWizard/project.dtd
@@ -0,0 +1,5193 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!ENTITY % boolean "(true|false|on|off|yes|no)">
+<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert | replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch | jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog | p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc | p4integrate | translate | signjar | cclock | chown | vajload | jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar | war | stlist | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget | pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit | antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip | concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout | typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource | copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc | wsdltodotnet | mkdir | condition | cvs | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | renameext | vsslabel | javadoc2 | basename | vsscp | tar | vajimport | p4fstat | setproxy | wlstop | p4counter | ilasm | soscheckout | apply | jarlib-resolve | ccuncheckout | cvstagdiff | jlink | javacc | jarlib-manifest | pvcs | chmod | ccmklbtype | jar | sound | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | ccmkelem | javah | ccmreconfigure | fail | unzip | javac | p4add | soslabel | jpcoverage | depend | vssget | deltree | ddcreator">
+<!ENTITY % types "patternset | assertions | propertyset | filterset | libfileset | mergemapper | identitymapper | filterreader | unpackagemapper | scriptfilter | concatfilter | extension | fileset | dirset | globmapper | filelist | filterchain | path | compositemapper | classfileset | regexpmapper | selector | xmlcatalog | flattenmapper | description | chainedmapper | packagemapper | mapper | zipfileset | substitution | extensionSet | redirector | regexp">
+
+<!ELEMENT project (target | %tasks; | %types;)*>
+<!ATTLIST project
+ name CDATA #IMPLIED
+ default CDATA #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT target (%tasks; | %types;)*>
+
+<!ATTLIST target
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ if CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ depends CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT patternset (include | patternset | exclude | excludesfile | includesfile)*>
+<!ATTLIST patternset
+ id ID #IMPLIED
+ includes CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED>
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT exclude EMPTY>
+<!ATTLIST exclude
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT excludesfile EMPTY>
+<!ATTLIST excludesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT includesfile EMPTY>
+<!ATTLIST includesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT assertions (disable | enable)*>
+<!ATTLIST assertions
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ enablesystemassertions %boolean; #IMPLIED>
+
+<!ELEMENT disable EMPTY>
+<!ATTLIST disable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT enable EMPTY>
+<!ATTLIST enable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT propertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST propertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT propertyref EMPTY>
+<!ATTLIST propertyref
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ builtin (all | system | commandline) #IMPLIED
+ regex CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT mapper (classpath | mapper)*>
+<!ATTLIST mapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST classpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT fileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT custom (classpath | param)*>
+<!ATTLIST custom
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ error CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ type CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT none (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST none
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT present (mapper)*>
+<!ATTLIST present
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ present (srconly | both) #IMPLIED>
+
+<!ELEMENT not (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST not
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT type EMPTY>
+<!ATTLIST type
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ type (file | dir) #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT modified (param)*>
+<!ATTLIST modified
+ id ID #IMPLIED
+ comparator (equal | rule) #IMPLIED
+ seldirs %boolean; #IMPLIED
+ cache (propertyfile) #IMPLIED
+ algorithm (hashvalue | digest) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ update %boolean; #IMPLIED>
+
+<!ELEMENT or (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST or
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT contains EMPTY>
+<!ATTLIST contains
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ text CDATA #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED>
+
+<!ELEMENT depend (mapper)*>
+<!ATTLIST depend
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT different (mapper)*>
+<!ATTLIST different
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ ignorefiletimes %boolean; #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT size EMPTY>
+<!ATTLIST size
+ id ID #IMPLIED
+ when (less | more | equal) #IMPLIED
+ units (K | k | kilo | KILO | Ki | KI | ki | kibi | KIBI | M | m | mega | MEGA | Mi | MI | mi | mebi | MEBI | G | g | giga | GIGA | Gi | GI | gi | gibi | GIBI | T | t | tera | TERA | Ti | TI | ti | tebi | TEBI) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT majority (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST majority
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ allowtie %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT containsregexp EMPTY>
+<!ATTLIST containsregexp
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT filename EMPTY>
+<!ATTLIST filename
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ name CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED>
+
+<!ELEMENT selector (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST selector
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT date EMPTY>
+<!ATTLIST date
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ millis CDATA #IMPLIED
+ checkdirs %boolean; #IMPLIED
+ datetime CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ pattern CDATA #IMPLIED
+ when (before | after | equal) #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT and (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST and
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depth EMPTY>
+<!ATTLIST depth
+ id ID #IMPLIED
+ max CDATA #IMPLIED
+ error CDATA #IMPLIED
+ min CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dirset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST dirset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT extdirs (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST extdirs
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filelist (file)*>
+<!ATTLIST filelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT existing (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST existing
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT pathelement EMPTY>
+<!ATTLIST pathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT path (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST path
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filterset (filterset | filter | filtersfile)*>
+<!ATTLIST filterset
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ filtersfile CDATA #IMPLIED>
+
+<!ELEMENT filter EMPTY>
+<!ATTLIST filter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT filtersfile EMPTY>
+<!ATTLIST filtersfile
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT libfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST libfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ urlbase CDATA #IMPLIED
+ file CDATA #IMPLIED
+ includeimpl %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeurl %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergemapper EMPTY>
+<!ATTLIST mergemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT identitymapper EMPTY>
+<!ATTLIST identitymapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterreader (classpath | param)*>
+<!ATTLIST filterreader
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT unpackagemapper EMPTY>
+<!ATTLIST unpackagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT scriptfilter (#PCDATA)>
+<!ATTLIST scriptfilter
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ token CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT concatfilter EMPTY>
+<!ATTLIST concatfilter
+ id ID #IMPLIED
+ append CDATA #IMPLIED
+ prepend CDATA #IMPLIED>
+
+<!ELEMENT extension EMPTY>
+<!ATTLIST extension
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ implementationversion CDATA #IMPLIED
+ specificationversion CDATA #IMPLIED
+ extensionname CDATA #IMPLIED
+ implementationvendorid CDATA #IMPLIED
+ specificationvendor CDATA #IMPLIED
+ implementationurl CDATA #IMPLIED
+ description CDATA #IMPLIED
+ implementationvendor CDATA #IMPLIED>
+
+<!ELEMENT globmapper EMPTY>
+<!ATTLIST globmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST filterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT headfilter EMPTY>
+<!ATTLIST headfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT classconstants EMPTY>
+<!ATTLIST classconstants
+ id ID #IMPLIED>
+
+<!ELEMENT linecontains (contains)*>
+<!ATTLIST linecontains
+ id ID #IMPLIED>
+
+<!ELEMENT replaceregex EMPTY>
+<!ATTLIST replaceregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT replacetokens (token)*>
+<!ATTLIST replacetokens
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED>
+
+<!ELEMENT token EMPTY>
+<!ATTLIST token
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT escapeunicode EMPTY>
+<!ATTLIST escapeunicode
+ id ID #IMPLIED>
+
+<!ELEMENT ignoreblank EMPTY>
+<!ATTLIST ignoreblank
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT tailfilter EMPTY>
+<!ATTLIST tailfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT tabstospaces EMPTY>
+<!ATTLIST tabstospaces
+ id ID #IMPLIED
+ tablength CDATA #IMPLIED>
+
+<!ELEMENT prefixlines EMPTY>
+<!ATTLIST prefixlines
+ id ID #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT expandproperties EMPTY>
+<!ATTLIST expandproperties
+ id ID #IMPLIED>
+
+<!ELEMENT striplinebreaks EMPTY>
+<!ATTLIST striplinebreaks
+ id ID #IMPLIED
+ linebreaks CDATA #IMPLIED>
+
+<!ELEMENT trim EMPTY>
+<!ATTLIST trim
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT striplinecomments (comment)*>
+<!ATTLIST striplinecomments
+ id ID #IMPLIED>
+
+<!ELEMENT comment EMPTY>
+<!ATTLIST comment
+ id ID #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT replacestring EMPTY>
+<!ATTLIST replacestring
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT tokenfilter (containsstring | linetokenizer | trim | stringtokenizer | replaceregex | replacestring | ignoreblank | deletecharacters | containsregex | filetokenizer)*>
+<!ATTLIST tokenfilter
+ id ID #IMPLIED
+ delimoutput CDATA #IMPLIED>
+
+<!ELEMENT containsstring EMPTY>
+<!ATTLIST containsstring
+ id ID #IMPLIED
+ contains CDATA #IMPLIED>
+
+<!ELEMENT linetokenizer EMPTY>
+<!ATTLIST linetokenizer
+ id ID #IMPLIED
+ includedelims %boolean; #IMPLIED>
+
+<!ELEMENT stringtokenizer EMPTY>
+<!ATTLIST stringtokenizer
+ id ID #IMPLIED
+ suppressdelims %boolean; #IMPLIED
+ includedelims %boolean; #IMPLIED
+ delimsaretokens %boolean; #IMPLIED
+ delims CDATA #IMPLIED>
+
+<!ELEMENT deletecharacters EMPTY>
+<!ATTLIST deletecharacters
+ id ID #IMPLIED
+ chars CDATA #IMPLIED>
+
+<!ELEMENT containsregex EMPTY>
+<!ATTLIST containsregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT filetokenizer EMPTY>
+<!ATTLIST filetokenizer
+ id ID #IMPLIED>
+
+<!ELEMENT stripjavacomments EMPTY>
+<!ATTLIST stripjavacomments
+ id ID #IMPLIED>
+
+<!ELEMENT linecontainsregexp (regexp)*>
+<!ATTLIST linecontainsregexp
+ id ID #IMPLIED>
+
+<!ELEMENT regexp EMPTY>
+<!ATTLIST regexp
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT compositemapper (mapper)*>
+<!ATTLIST compositemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classfileset (patternset | exclude | include | custom | rootfileset | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | root | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST classfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ rootclass CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT rootfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST rootfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT root EMPTY>
+<!ATTLIST root
+ id ID #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT regexpmapper EMPTY>
+<!ATTLIST regexpmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT xmlcatalog (entity | classpath | catalogpath | dtd | xmlcatalog)*>
+<!ATTLIST xmlcatalog
+ id ID #IMPLIED
+ catalogpathref IDREF #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT entity EMPTY>
+<!ATTLIST entity
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT catalogpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST catalogpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT dtd EMPTY>
+<!ATTLIST dtd
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT flattenmapper EMPTY>
+<!ATTLIST flattenmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT chainedmapper (mapper)*>
+<!ATTLIST chainedmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT packagemapper EMPTY>
+<!ATTLIST packagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT zipfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipfileset
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT substitution EMPTY>
+<!ATTLIST substitution
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT extensionSet (fileset | libfileset | extension)*>
+<!ATTLIST extensionSet
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT redirector (errorfilterchain | outputfilterchain | errormapper | inputfilterchain | outputmapper | inputmapper)*>
+<!ATTLIST redirector
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ inputencoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ createemptyfiles %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ error CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ input CDATA #IMPLIED
+ description CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorencoding CDATA #IMPLIED>
+
+<!ELEMENT errorfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST errorfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST outputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT errormapper (classpath | mapper)*>
+<!ATTLIST errormapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST inputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputmapper (classpath | mapper)*>
+<!ATTLIST outputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputmapper (classpath | mapper)*>
+<!ATTLIST inputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT propertyfile (entry)*>
+<!ATTLIST propertyfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT entry EMPTY>
+<!ATTLIST entry
+ id ID #IMPLIED
+ operation CDATA #IMPLIED
+ default CDATA #IMPLIED
+ key CDATA #IMPLIED
+ type (int | date | string) #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT ccmkdir EMPTY>
+<!ATTLIST ccmkdir
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT importtypelib EMPTY>
+<!ATTLIST importtypelib
+ id ID #IMPLIED
+ unsafe %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ usesysarray %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT vsscheckin EMPTY>
+<!ATTLIST vsscheckin
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT sql (#PCDATA | fileset | classpath | transaction)*>
+<!ATTLIST sql
+ id ID #IMPLIED
+ onerror (continue | stop | abort) #IMPLIED
+ userid CDATA #IMPLIED
+ password CDATA #IMPLIED
+ autocommit %boolean; #IMPLIED
+ rdbms CDATA #IMPLIED
+ print %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ encoding CDATA #IMPLIED
+ version CDATA #IMPLIED
+ url CDATA #IMPLIED
+ src CDATA #IMPLIED
+ output CDATA #IMPLIED
+ driver CDATA #IMPLIED
+ showheaders %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ delimitertype (normal | row) #IMPLIED
+ escapeprocessing %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ caching %boolean; #IMPLIED
+ keepformat %boolean; #IMPLIED
+ delimiter CDATA #IMPLIED>
+
+<!ELEMENT transaction (#PCDATA)>
+<!ATTLIST transaction
+ id ID #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT cvspass EMPTY>
+<!ATTLIST cvspass
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ passfile CDATA #IMPLIED>
+
+<!ELEMENT p4reopen EMPTY>
+<!ATTLIST p4reopen
+ id ID #IMPLIED
+ tochange CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT csc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST csc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ definitions CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED
+ fullpaths %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ utf8output %boolean; #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ warnlevel CDATA #IMPLIED
+ win32res CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ extraoptions CDATA #IMPLIED
+ incremental %boolean; #IMPLIED
+ noconfig %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ references CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ docfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ unsafe %boolean; #IMPLIED
+ filealign CDATA #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED>
+
+<!ELEMENT resource EMPTY>
+<!ATTLIST resource
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ embed %boolean; #IMPLIED>
+
+<!ELEMENT define EMPTY>
+<!ATTLIST define
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT reference (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST reference
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT src (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST src
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT dirname EMPTY>
+<!ATTLIST dirname
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT wlrun (classpath | wlclasspath)*>
+<!ATTLIST wlrun
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ pkpassword CDATA #IMPLIED
+ beahome CDATA #IMPLIED
+ domain CDATA #IMPLIED
+ username CDATA #IMPLIED
+ weblogicmainclass CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ policy CDATA #IMPLIED
+ properties CDATA #IMPLIED
+ args CDATA #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED>
+
+<!ELEMENT wlclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wlclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4label EMPTY>
+<!ATTLIST p4label
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ desc CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ lock CDATA #IMPLIED>
+
+<!ELEMENT p4revert EMPTY>
+<!ATTLIST p4revert
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ revertonlyunchanged %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT replaceregexp (fileset | substitution | regexp)*>
+<!ATTLIST replaceregexp
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ match CDATA #IMPLIED
+ file CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED>
+
+<!ELEMENT get EMPTY>
+<!ATTLIST get
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ ignoreerrors %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ usetimestamp %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jjtree EMPTY>
+<!ATTLIST jjtree
+ id ID #IMPLIED
+ nodedefaultvoid %boolean; #IMPLIED
+ buildnodefiles %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ static %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ nodeprefix CDATA #IMPLIED
+ nodefactory %boolean; #IMPLIED
+ multi %boolean; #IMPLIED
+ visitor %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ nodeusesparser %boolean; #IMPLIED
+ visitorexception CDATA #IMPLIED
+ nodescopehook %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nodepackage CDATA #IMPLIED>
+
+<!ELEMENT sleep EMPTY>
+<!ATTLIST sleep
+ id ID #IMPLIED
+ hours CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ milliseconds CDATA #IMPLIED
+ minutes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ seconds CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-display (fileset)*>
+<!ATTLIST jarlib-display
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dependset (patternset | exclude | include | custom | present | none | not | type | targetfileset | srcfileset | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | srcfilelist | date | excludesfile | depth | and | targetfilelist)*>
+<!ATTLIST dependset
+ id ID #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT targetfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST targetfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfilelist (file)*>
+<!ATTLIST srcfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT targetfilelist (file)*>
+<!ATTLIST targetfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT zip (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST zip
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT zipgroupfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipgroupfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT patch EMPTY>
+<!ATTLIST patch
+ id ID #IMPLIED
+ strip CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ originalfile CDATA #IMPLIED
+ patchfile CDATA #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ backups %boolean; #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jspc (patternset | exclude | include | custom | present | none | not | type | compilerclasspath | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | webapp | depth | and)*>
+<!ATTLIST jspc
+ id ID #IMPLIED
+ mapped %boolean; #IMPLIED
+ ieplugin CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ package CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ compilerclasspath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ uribase CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ uriroot CDATA #IMPLIED
+ webinc CDATA #IMPLIED>
+
+<!ELEMENT compilerclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST compilerclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT webapp EMPTY>
+<!ATTLIST webapp
+ id ID #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT style (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST style
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT factory (attribute)*>
+<!ATTLIST factory
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT attribute EMPTY>
+<!ATTLIST attribute
+ id ID #IMPLIED>
+
+<!ELEMENT outputproperty EMPTY>
+<!ATTLIST outputproperty
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT test (classpath | sysproperty | redirector | bootclasspath | env | syspropertyset | permissions | jvmarg | arg | assertions | testlet)*>
+<!ATTLIST test
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ forceshowtrace %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ showsuccess %boolean; #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ showbanner CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED
+ showtrace %boolean; #IMPLIED>
+
+<!ELEMENT sysproperty EMPTY>
+<!ATTLIST sysproperty
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT bootclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST bootclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT env EMPTY>
+<!ATTLIST env
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT syspropertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST syspropertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT permissions (grant | revoke)*>
+<!ATTLIST permissions
+ id ID #IMPLIED>
+
+<!ELEMENT grant EMPTY>
+<!ATTLIST grant
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT revoke EMPTY>
+<!ATTLIST revoke
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT jvmarg EMPTY>
+<!ATTLIST jvmarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT testlet (#PCDATA)>
+<!ATTLIST testlet
+ id ID #IMPLIED>
+
+<!ELEMENT tstamp (format)*>
+<!ATTLIST tstamp
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT format EMPTY>
+<!ATTLIST format
+ id ID #IMPLIED
+ locale CDATA #IMPLIED
+ timezone CDATA #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ property CDATA #IMPLIED
+ offset CDATA #IMPLIED>
+
+<!ELEMENT unwar (fileset | patternset)*>
+<!ATTLIST unwar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vsshistory EMPTY>
+<!ATTLIST vsshistory
+ id ID #IMPLIED
+ style (brief | codediff | nofile | default) #IMPLIED
+ numdays CDATA #IMPLIED
+ todate CDATA #IMPLIED
+ output CDATA #IMPLIED
+ fromlabel CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ fromdate CDATA #IMPLIED
+ user CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ tolabel CDATA #IMPLIED
+ dateformat CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT icontract (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST icontract
+ id ID #IMPLIED
+ classdir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ repositorydir CDATA #IMPLIED
+ instrumentdir CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ builddir CDATA #IMPLIED
+ updateicontrol %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ pre %boolean; #IMPLIED
+ controlfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ invariant %boolean; #IMPLIED
+ post %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ failthrowable CDATA #IMPLIED
+ verbosity CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ repbuilddir CDATA #IMPLIED
+ targets CDATA #IMPLIED>
+
+<!ELEMENT cvschangelog (fileset | user | commandline)*>
+<!ATTLIST cvschangelog
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ end CDATA #IMPLIED
+ package CDATA #IMPLIED
+ start CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ usersfile CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ daysinpast CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT user EMPTY>
+<!ATTLIST user
+ id ID #IMPLIED
+ userid CDATA #IMPLIED
+ displayname CDATA #IMPLIED>
+
+<!ELEMENT commandline (marker | argument)*>
+<!ATTLIST commandline
+ id ID #IMPLIED
+ executable CDATA #IMPLIED>
+
+<!ELEMENT marker EMPTY>
+<!ATTLIST marker
+ id ID #IMPLIED>
+
+<!ELEMENT argument EMPTY>
+<!ATTLIST argument
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4submit EMPTY>
+<!ATTLIST p4submit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ needsresolveproperty CDATA #IMPLIED
+ user CDATA #IMPLIED
+ changeproperty CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ccmcheckin (fileset)*>
+<!ATTLIST ccmcheckin
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT p4change EMPTY>
+<!ATTLIST p4change
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT bzip2 EMPTY>
+<!ATTLIST bzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT sync (fileset)*>
+<!ATTLIST sync
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT p4delete EMPTY>
+<!ATTLIST p4delete
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT vssadd EMPTY>
+<!ATTLIST vssadd
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT taglet (path)*>
+<!ATTLIST taglet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT doclet (path | param)*>
+<!ATTLIST doclet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT package EMPTY>
+<!ATTLIST package
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ id ID #IMPLIED
+ href CDATA #IMPLIED
+ offline %boolean; #IMPLIED
+ packagelistloc CDATA #IMPLIED>
+
+<!ELEMENT doctitle (#PCDATA)>
+<!ATTLIST doctitle
+ id ID #IMPLIED>
+
+<!ELEMENT bottom (#PCDATA)>
+<!ATTLIST bottom
+ id ID #IMPLIED>
+
+<!ELEMENT group (package | title)*>
+<!ATTLIST group
+ id ID #IMPLIED
+ packages CDATA #IMPLIED
+ title CDATA #IMPLIED>
+
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ id ID #IMPLIED>
+
+<!ELEMENT packageset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST packageset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT sourcepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST sourcepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT footer (#PCDATA)>
+<!ATTLIST footer
+ id ID #IMPLIED>
+
+<!ELEMENT source EMPTY>
+<!ATTLIST source
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT header (#PCDATA)>
+<!ATTLIST header
+ id ID #IMPLIED>
+
+<!ELEMENT excludepackage EMPTY>
+<!ATTLIST excludepackage
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT tag (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tag
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ enabled %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ scope CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT p4integrate EMPTY>
+<!ATTLIST p4integrate
+ id ID #IMPLIED
+ branch CDATA #IMPLIED
+ leavetargetrevision %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ forceintegrate %boolean; #IMPLIED
+ client CDATA #IMPLIED
+ enablebaselessmerges %boolean; #IMPLIED
+ fromfile CDATA #IMPLIED
+ reversebranchmappings %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ change CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ propagatesourcefiletype %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ nocopynewtargetfiles %boolean; #IMPLIED
+ tofile CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ restoredeletedrevisions %boolean; #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT translate (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST translate
+ id ID #IMPLIED
+ bundlecountry CDATA #IMPLIED
+ bundlelanguage CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ srcencoding CDATA #IMPLIED
+ bundle CDATA #IMPLIED
+ bundleencoding CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ destencoding CDATA #IMPLIED
+ bundlevariant CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ starttoken CDATA #IMPLIED>
+
+<!ELEMENT signjar (fileset)*>
+<!ATTLIST signjar
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ lazy %boolean; #IMPLIED
+ jar CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ sectionsonly %boolean; #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ sigfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ internalsf %boolean; #IMPLIED
+ storetype CDATA #IMPLIED
+ signedjar CDATA #IMPLIED>
+
+<!ELEMENT cclock EMPTY>
+<!ATTLIST cclock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nusers CDATA #IMPLIED
+ obsolete %boolean; #IMPLIED>
+
+<!ELEMENT chown (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chown
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ owner CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT srcfile EMPTY>
+<!ATTLIST srcfile
+ id ID #IMPLIED>
+
+<!ELEMENT targetfile EMPTY>
+<!ATTLIST targetfile
+ id ID #IMPLIED>
+
+<!ELEMENT vajload (vajproject)*>
+<!ATTLIST vajload
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ remote CDATA #IMPLIED
+ haltonerror %boolean; #IMPLIED>
+
+<!ELEMENT vajproject EMPTY>
+<!ATTLIST vajproject
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT jarlib-available (extensionset | extension)*>
+<!ATTLIST jarlib-available
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT extensionset (fileset | libfileset | extension)*>
+<!ATTLIST extensionset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rexec (write | read)*>
+<!ATTLIST rexec
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED
+ command CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT WsdlToDotnet EMPTY>
+<!ATTLIST WsdlToDotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildnumber EMPTY>
+<!ATTLIST buildnumber
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jpcovmerge (fileset)*>
+<!ATTLIST jpcovmerge
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ home CDATA #IMPLIED>
+
+<!ELEMENT ejbjar (patternset | exclude | include | custom | weblogictoplink | present | none | jboss | not | borland | weblogic | type | modified | iplanet | or | jonas | contains | depend | support | classpath | different | size | majority | websphere | containsregexp | dtd | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ejbjar
+ id ID #IMPLIED
+ descriptordir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basenameterminator CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ cmpversion (1.0 | 2.0) #IMPLIED
+ dependency CDATA #IMPLIED
+ basejarname CDATA #IMPLIED
+ flatdestdir %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ naming (ejb-name | directory | descriptor | basejarname) #IMPLIED
+ excludesfile CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT weblogictoplink (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogictoplink
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ toplinkdtd CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ toplinkdescriptor CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT jboss (classpath)*>
+<!ATTLIST jboss
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT borland (classpath)*>
+<!ATTLIST borland
+ id ID #IMPLIED
+ verifyargs CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ java2iiopparams CDATA #IMPLIED
+ version CDATA #IMPLIED
+ basdtd CDATA #IMPLIED
+ verify %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ generateclient %boolean; #IMPLIED>
+
+<!ELEMENT weblogic (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogic
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT iplanet (classpath)*>
+<!ATTLIST iplanet
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ iashome CDATA #IMPLIED>
+
+<!ELEMENT jonas (classpath)*>
+<!ATTLIST jonas
+ id ID #IMPLIED
+ jonasroot CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ additionalargs CDATA #IMPLIED
+ javac CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ orb CDATA #IMPLIED
+ jarsuffix CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ nogenic %boolean; #IMPLIED
+ rmicopts CDATA #IMPLIED
+ javacopts CDATA #IMPLIED
+ novalidation %boolean; #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ nocompil %boolean; #IMPLIED
+ secpropag %boolean; #IMPLIED>
+
+<!ELEMENT support (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST support
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT websphere (classpath | wasclasspath)*>
+<!ATTLIST websphere
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ rmicoptions CDATA #IMPLIED
+ noinform %boolean; #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ dbschema CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ ejbdeploy %boolean; #IMPLIED
+ use35 %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ novalidate %boolean; #IMPLIED
+ codegen %boolean; #IMPLIED
+ dbvendor (SQL92 | SQL99 | DB2UDBWIN_V71 | DB2UDBOS390_V6 | DB2UDBAS400_V4R5 | ORACLE_V8 | INFORMIX_V92 | SYBASE_V1192 | MSSQLSERVER_V7 | MYSQL_V323) #IMPLIED
+ classpath CDATA #IMPLIED
+ wasclasspath CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ dbname CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ trace %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT wasclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wasclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT war (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | lib | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | classes | date | excludesfile | webinf | depth | and)*>
+<!ATTLIST war
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ warfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT manifest (attribute | section)*>
+<!ATTLIST manifest
+ id ID #IMPLIED>
+
+<!ELEMENT section (attribute)*>
+<!ATTLIST section
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT metainf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST metainf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT lib (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST lib
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT indexjars (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST indexjars
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT classes (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST classes
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT webinf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST webinf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT rename EMPTY>
+<!ATTLIST rename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT sequential (%tasks;)*>
+<!ATTLIST sequential
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT serverdeploy (weblogic | generic | jonas)*>
+<!ATTLIST serverdeploy
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ action CDATA #IMPLIED
+ source CDATA #IMPLIED>
+
+<!ELEMENT generic (arg | classpath | jvmarg)*>
+<!ATTLIST generic
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ password CDATA #IMPLIED
+ server CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ username CDATA #IMPLIED>
+
+<!ELEMENT property (classpath)*>
+<!ATTLIST property
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ url CDATA #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ userproperty %boolean; #IMPLIED
+ resource CDATA #IMPLIED
+ environment CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ location CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT subant (reference | fileset | buildpathelement | dirset | buildpath | propertyset | filelist | property)*>
+<!ATTLIST subant
+ id ID #IMPLIED
+ genericantfile CDATA #IMPLIED
+ output CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ antfile CDATA #IMPLIED
+ target CDATA #IMPLIED
+ buildpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ buildpath CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildpathelement EMPTY>
+<!ATTLIST buildpathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT buildpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST buildpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT move (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST move
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT ildasm EMPTY>
+<!ATTLIST ildasm
+ id ID #IMPLIED
+ assembler %boolean; #IMPLIED
+ encoding (ascii | utf8 | unicode) #IMPLIED
+ executable CDATA #IMPLIED
+ progressbar %boolean; #IMPLIED
+ linenumbers %boolean; #IMPLIED
+ rawexceptionhandling %boolean; #IMPLIED
+ showsource %boolean; #IMPLIED
+ metadata %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ bytes %boolean; #IMPLIED
+ resourcedir CDATA #IMPLIED
+ quoteallnames %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ header %boolean; #IMPLIED
+ visibility CDATA #IMPLIED
+ sourcefile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ item CDATA #IMPLIED>
+
+<!ELEMENT copydir (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST copydir
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ src CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT cccheckin EMPTY>
+<!ATTLIST cccheckin
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT ccunlock EMPTY>
+<!ATTLIST ccunlock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT wljspc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST wljspc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ package CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT fixcrlf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fixcrlf
+ id ID #IMPLIED
+ tab (add | asis | remove) #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ cr (add | asis | remove) #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ javafiles %boolean; #IMPLIED
+ eof (add | asis | remove) #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ tablength CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ fixlast %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT telnet (write | read)*>
+<!ATTLIST telnet
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT sosget EMPTY>
+<!ATTLIST sosget
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocompress %boolean; #IMPLIED
+ nocache %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT pathconvert (map | path | mapper)*>
+<!ATTLIST pathconvert
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ pathsep CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ dirsep CDATA #IMPLIED
+ setonempty %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ targetos CDATA #IMPLIED>
+
+<!ELEMENT map EMPTY>
+<!ATTLIST map
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT record EMPTY>
+<!ATTLIST record
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ loglevel (error | warn | info | verbose | debug) #IMPLIED
+ description CDATA #IMPLIED
+ emacsmode %boolean; #IMPLIED
+ action (start | stop) #IMPLIED>
+
+<!ELEMENT p4sync EMPTY>
+<!ATTLIST p4sync
+ id ID #IMPLIED
+ force CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT exec (arg | redirector | env)*>
+<!ATTLIST exec
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ executable CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ os CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED>
+
+<!ELEMENT ccmklabel EMPTY>
+<!ATTLIST ccmklabel
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT p4edit EMPTY>
+<!ATTLIST p4edit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT maudit (fileset | jvmarg | classpath | rulespath | searchpath | sourcepath)*>
+<!ATTLIST maudit
+ id ID #IMPLIED
+ tofile CDATA #IMPLIED
+ exit %boolean; #IMPLIED
+ offsets %boolean; #IMPLIED
+ quiet %boolean; #IMPLIED
+ unused %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ fix %boolean; #IMPLIED
+ metamatahome CDATA #IMPLIED
+ list %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ fullsemanticize %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rulespath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST rulespath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT searchpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST searchpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT antlr (jvmarg | classpath)*>
+<!ATTLIST antlr
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ trace %boolean; #IMPLIED
+ tracetreewalker %boolean; #IMPLIED
+ html %boolean; #IMPLIED
+ tracelexer %boolean; #IMPLIED
+ diagnostic %boolean; #IMPLIED
+ traceparser %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ glib CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT netrexxc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST netrexxc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose (verbose | verbose0 | verbose1 | verbose2 | verbose3 | verbose4 | verbose5 | noverbose) #IMPLIED
+ keep %boolean; #IMPLIED
+ comments %boolean; #IMPLIED
+ strictimport %boolean; #IMPLIED
+ sourcedir %boolean; #IMPLIED
+ diag %boolean; #IMPLIED
+ compile %boolean; #IMPLIED
+ binary %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ suppressmethodargumentnotused %boolean; #IMPLIED
+ suppressvariablenotused %boolean; #IMPLIED
+ strictsignal %boolean; #IMPLIED
+ trace (trace | trace1 | trace2 | notrace) #IMPLIED
+ destdir CDATA #IMPLIED
+ console %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ format %boolean; #IMPLIED
+ explicit %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ suppressprivatepropertynotused %boolean; #IMPLIED
+ strictargs %boolean; #IMPLIED
+ suppressdeprecation %boolean; #IMPLIED
+ strictcase %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ savelog %boolean; #IMPLIED
+ logo %boolean; #IMPLIED
+ utf8 %boolean; #IMPLIED
+ strictprops %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ java %boolean; #IMPLIED
+ suppressexceptionnotsignalled %boolean; #IMPLIED
+ crossref %boolean; #IMPLIED
+ time %boolean; #IMPLIED
+ symbols %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ strictassign %boolean; #IMPLIED
+ compact %boolean; #IMPLIED
+ decimal %boolean; #IMPLIED>
+
+<!ELEMENT ftp (fileset)*>
+<!ATTLIST ftp
+ id ID #IMPLIED
+ binary %boolean; #IMPLIED
+ password CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timediffauto %boolean; #IMPLIED
+ remotedir CDATA #IMPLIED
+ separator CDATA #IMPLIED
+ port CDATA #IMPLIED
+ skipfailedtransfers %boolean; #IMPLIED
+ chmod CDATA #IMPLIED
+ timediffmillis CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ server CDATA #IMPLIED
+ newer %boolean; #IMPLIED
+ action (send | put | recv | get | del | delete | list | mkdir | chmod | rmdir) #IMPLIED
+ description CDATA #IMPLIED
+ passive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ listing CDATA #IMPLIED
+ umask CDATA #IMPLIED
+ ignorenoncriticalerrors %boolean; #IMPLIED
+ depends %boolean; #IMPLIED>
+
+<!ELEMENT jpcovreport (reference | coveragepath | sourcepath)*>
+<!ATTLIST jpcovreport
+ id ID #IMPLIED
+ snapshot CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ filters CDATA #IMPLIED
+ percent CDATA #IMPLIED
+ home CDATA #IMPLIED
+ type (executive | summary | detailed | verydetailed) #IMPLIED
+ taskname CDATA #IMPLIED
+ format (html | text | xml) #IMPLIED
+ includesource %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT coveragepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST coveragepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT execon (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST execon
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckout (fileset)*>
+<!ATTLIST ccmcheckout
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT ant (reference | propertyset | property)*>
+<!ATTLIST ant
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED
+ antfile CDATA #IMPLIED>
+
+<!ELEMENT xmlvalidate (fileset | classpath | attribute | dtd | xmlcatalog | property)*>
+<!ATTLIST xmlvalidate
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ lenient %boolean; #IMPLIED
+ warn %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT xslt (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST xslt
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT p4resolve EMPTY>
+<!ATTLIST p4resolve
+ id ID #IMPLIED
+ forcetextmode %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ markersforall %boolean; #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ resolvemode CDATA #IMPLIED
+ redoall %boolean; #IMPLIED>
+
+<!ELEMENT iplanet-ejbc (classpath)*>
+<!ATTLIST iplanet-ejbc
+ id ID #IMPLIED
+ ejbdescriptor CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ iasdescriptor CDATA #IMPLIED
+ iashome CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckintask (fileset)*>
+<!ATTLIST ccmcheckintask
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT gzip EMPTY>
+<!ATTLIST gzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT native2ascii (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST native2ascii
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ ext CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ccrmtype EMPTY>
+<!ATTLIST ccrmtype
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ rmall %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ ignore %boolean; #IMPLIED
+ typekind CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT starteam EMPTY>
+<!ATTLIST starteam
+ id ID #IMPLIED
+ targetfolderabsolute %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ recursion %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ targetfolder CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ foldername CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ear (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | archives | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST ear
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ earfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ appxml CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT archives (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST archives
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT input (#PCDATA)>
+<!ATTLIST input
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ addproperty CDATA #IMPLIED
+ description CDATA #IMPLIED
+ defaultvalue CDATA #IMPLIED
+ validargs CDATA #IMPLIED
+ message CDATA #IMPLIED>
+
+<!ELEMENT presetdef (%tasks;)*>
+<!ATTLIST presetdef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT rmic (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST rmic
+ id ID #IMPLIED
+ verify %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ iiop %boolean; #IMPLIED
+ idlopts CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ sourcebase CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ base CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ idl %boolean; #IMPLIED
+ iiopopts CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ stubversion CDATA #IMPLIED>
+
+<!ELEMENT compilerarg EMPTY>
+<!ATTLIST compilerarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ implementation CDATA #IMPLIED
+ file CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT checksum (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST checksum
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ fileext CDATA #IMPLIED
+ totalproperty CDATA #IMPLIED
+ property CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ readbuffersize CDATA #IMPLIED
+ verifyproperty CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ algorithm CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ provider CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED>
+
+<!ELEMENT mail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT bcc EMPTY>
+<!ATTLIST bcc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT message (#PCDATA)>
+<!ATTLIST message
+ id ID #IMPLIED
+ mimetype CDATA #IMPLIED
+ src CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+
+<!ELEMENT replyto EMPTY>
+<!ATTLIST replyto
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT cc EMPTY>
+<!ATTLIST cc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT to EMPTY>
+<!ATTLIST to
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT from EMPTY>
+<!ATTLIST from
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT loadfile (filterchain)*>
+<!ATTLIST loadfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ property CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT vsscheckout EMPTY>
+<!ATTLIST vsscheckout
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ date CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ getlocalcopy %boolean; #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT stylebook (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST stylebook
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ loaderconfig CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ targetdirectory CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ skindirectory CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ book CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT soscheckin EMPTY>
+<!ATTLIST soscheckin
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT mimemail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mimemail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT stlabel EMPTY>
+<!ATTLIST stlabel
+ id ID #IMPLIED
+ lastbuild CDATA #IMPLIED
+ url CDATA #IMPLIED
+ username CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ revisionlabel %boolean; #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ buildlabel %boolean; #IMPLIED>
+
+<!ELEMENT gunzip EMPTY>
+<!ATTLIST gunzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT concat (#PCDATA | filterchain | fileset | filelist | path | footer | header)*>
+<!ATTLIST concat
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ binary %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ fixlastline %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT cab (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST cab
+ id ID #IMPLIED
+ cabfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ options CDATA #IMPLIED>
+
+<!ELEMENT touch (fileset | filelist)*>
+<!ATTLIST touch
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ millis CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ datetime CDATA #IMPLIED>
+
+<!ELEMENT parallel (%tasks; | daemons)*>
+<!ATTLIST parallel
+ id ID #IMPLIED
+ pollinterval CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ threadsperprocessor CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ threadcount CDATA #IMPLIED
+ failonany %boolean; #IMPLIED>
+
+<!ELEMENT daemons (%tasks;)*>
+<!ATTLIST daemons
+ id ID #IMPLIED>
+
+<!ELEMENT splash EMPTY>
+<!ATTLIST splash
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ user CDATA #IMPLIED
+ proxy CDATA #IMPLIED
+ imageurl CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ showduration CDATA #IMPLIED
+ useproxy %boolean; #IMPLIED>
+
+<!ELEMENT antcall (reference | propertyset | param)*>
+<!ATTLIST antcall
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED>
+
+<!ELEMENT ccmkbl EMPTY>
+<!ATTLIST ccmkbl
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nlabel %boolean; #IMPLIED
+ full %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ baselinerootname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT cccheckout EMPTY>
+<!ATTLIST cccheckout
+ id ID #IMPLIED
+ reserved %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ out CDATA #IMPLIED
+ notco %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ nodata %boolean; #IMPLIED
+ version %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ branch CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT typedef (classpath)*>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT p4have EMPTY>
+<!ATTLIST p4have
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT xmlproperty EMPTY>
+<!ATTLIST xmlproperty
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ semanticattributes %boolean; #IMPLIED
+ keeproot %boolean; #IMPLIED
+ prefix CDATA #IMPLIED
+ collapseattributes %boolean; #IMPLIED
+ validate %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ rootdirectory CDATA #IMPLIED
+ includesemanticattribute %boolean; #IMPLIED>
+
+<!ELEMENT import EMPTY>
+<!ATTLIST import
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST copy
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT jsharpc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST jsharpc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ baseaddress CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ securescoping %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ purejava %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT symlink (fileset)*>
+<!ATTLIST symlink
+ id ID #IMPLIED
+ linkfilename CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ link CDATA #IMPLIED
+ action CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT antstructure EMPTY>
+<!ATTLIST antstructure
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT ccmcreatetask EMPTY>
+<!ATTLIST ccmcreatetask
+ id ID #IMPLIED
+ subsystem CDATA #IMPLIED
+ task CDATA #IMPLIED
+ platform CDATA #IMPLIED
+ resolver CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ ccmaction CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ release CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rpm EMPTY>
+<!ATTLIST rpm
+ id ID #IMPLIED
+ removesource %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ command CDATA #IMPLIED
+ cleanbuilddir %boolean; #IMPLIED
+ removespec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ specfile CDATA #IMPLIED
+ topdir CDATA #IMPLIED
+ rpmbuildcommand CDATA #IMPLIED>
+
+<!ELEMENT delete (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST delete
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ deleteonexit %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replace (patternset | exclude | include | custom | present | none | not | type | modified | replacefilter | or | contains | depend | replacetoken | different | size | majority | containsregexp | filename | selector | includesfile | replacevalue | date | excludesfile | depth | and)*>
+<!ATTLIST replace
+ id ID #IMPLIED
+ encoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ token CDATA #IMPLIED
+ propertyfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ summary %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ replacefilterfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replacefilter EMPTY>
+<!ATTLIST replacefilter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT replacetoken (#PCDATA)>
+<!ATTLIST replacetoken
+ id ID #IMPLIED>
+
+<!ELEMENT replacevalue (#PCDATA)>
+<!ATTLIST replacevalue
+ id ID #IMPLIED>
+
+<!ELEMENT mmetrics (fileset | jvmarg | classpath | path | sourcepath)*>
+<!ATTLIST mmetrics
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ home CDATA #IMPLIED
+ granularity (compilation-units | files | methods | types | packages) #IMPLIED>
+
+<!ELEMENT attrib (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST attrib
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ readonly %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ hidden %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ system %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ archive %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT waitfor (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST waitfor
+ id ID #IMPLIED
+ checkeveryunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ checkevery CDATA #IMPLIED
+ maxwaitunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ maxwait CDATA #IMPLIED
+ timeoutproperty CDATA #IMPLIED>
+
+<!ELEMENT isfalse EMPTY>
+<!ATTLIST isfalse
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isreference EMPTY>
+<!ATTLIST isreference
+ id ID #IMPLIED
+ type CDATA #IMPLIED
+ refid IDREF #IMPLIED>
+
+<!ELEMENT equals EMPTY>
+<!ATTLIST equals
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ arg2 CDATA #IMPLIED
+ arg1 CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED>
+
+<!ELEMENT available (classpath | filepath)*>
+<!ATTLIST available
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ ignoresystemclasses %boolean; #IMPLIED
+ type (file | dir) #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ filepath CDATA #IMPLIED>
+
+<!ELEMENT filepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST filepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT os EMPTY>
+<!ATTLIST os
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED
+ family CDATA #IMPLIED
+ arch CDATA #IMPLIED>
+
+<!ELEMENT filesmatch EMPTY>
+<!ATTLIST filesmatch
+ id ID #IMPLIED
+ file2 CDATA #IMPLIED
+ file1 CDATA #IMPLIED>
+
+<!ELEMENT istrue EMPTY>
+<!ATTLIST istrue
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isset EMPTY>
+<!ATTLIST isset
+ id ID #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT socket EMPTY>
+<!ATTLIST socket
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT http EMPTY>
+<!ATTLIST http
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ errorsbeginat CDATA #IMPLIED>
+
+<!ELEMENT uptodate (srcfiles | mapper)*>
+<!ATTLIST uptodate
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED
+ targetfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT srcfiles (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfiles
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT untar (fileset | patternset)*>
+<!ATTLIST untar
+ id ID #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT loadproperties (filterchain | classpath)*>
+<!ATTLIST loadproperties
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT echoproperties (propertyset)*>
+<!ATTLIST echoproperties
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ format (xml | text) #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT chgrp (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chgrp
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ group CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT vajexport (include | exclude)*>
+<!ATTLIST vajexport
+ id ID #IMPLIED
+ exportclasses %boolean; #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ exportresources %boolean; #IMPLIED
+ exportsources %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ exportdebuginfo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT bunzip2 EMPTY>
+<!ATTLIST bunzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT whichresource (classpath)*>
+<!ATTLIST whichresource
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT copyfile EMPTY>
+<!ATTLIST copyfile
+ id ID #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ filtering CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT p4labelsync EMPTY>
+<!ATTLIST p4labelsync
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ delete %boolean; #IMPLIED
+ add %boolean; #IMPLIED>
+
+<!ELEMENT vsscreate EMPTY>
+<!ATTLIST vsscreate
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT macrodef (sequential | element | attribute | text)*>
+<!ATTLIST macrodef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT element EMPTY>
+<!ATTLIST element
+ id ID #IMPLIED
+ implicit %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT text EMPTY>
+<!ATTLIST text
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ejbc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ejbc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT unjar (fileset | patternset)*>
+<!ATTLIST unjar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vbc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST vbc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ removeintchecks %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ optionstrict %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ rootnamespace CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ optionexplicit %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optioncompare CDATA #IMPLIED
+ imports CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT wsdltodotnet EMPTY>
+<!ATTLIST wsdltodotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT mkdir EMPTY>
+<!ATTLIST mkdir
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT condition (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST condition
+ id ID #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT cvs (commandline)*>
+<!ATTLIST cvs
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT tempfile EMPTY>
+<!ATTLIST tempfile
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT junitreport (report | fileset)*>
+<!ATTLIST junitreport
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED>
+
+<!ELEMENT report EMPTY>
+<!ATTLIST report
+ id ID #IMPLIED
+ todir CDATA #IMPLIED
+ styledir CDATA #IMPLIED
+ format (frames | noframes) #IMPLIED
+ extension CDATA #IMPLIED>
+
+<!ELEMENT ccmkattr EMPTY>
+<!ATTLIST ccmkattr
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ typevalue CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT taskdef (classpath)*>
+<!ATTLIST taskdef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT echo (#PCDATA)>
+<!ATTLIST echo
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ message CDATA #IMPLIED
+ level (error | warning | info | verbose | debug) #IMPLIED>
+
+<!ELEMENT ccupdate EMPTY>
+<!ATTLIST ccupdate
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ rename %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ log CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ graphical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ currenttime %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT java (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST java
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT renameext (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST renameext
+ id ID #IMPLIED
+ replace %boolean; #IMPLIED
+ toextension CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ fromextension CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT vsslabel EMPTY>
+<!ATTLIST vsslabel
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc2 (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc2
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT basename EMPTY>
+<!ATTLIST basename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT vsscp EMPTY>
+<!ATTLIST vsscp
+ id ID #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT tar (patternset | exclude | include | tarfileset | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST tar
+ id ID #IMPLIED
+ tarfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ longfile (warn | fail | truncate | gnu | omit) #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT tarfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tarfileset
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ preserveleadingslashes %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ uid CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ group CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ mode CDATA #IMPLIED
+ gid CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ dirmode CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT vajimport (fileset)*>
+<!ATTLIST vajimport
+ id ID #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ importsources %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ project CDATA #IMPLIED
+ description CDATA #IMPLIED
+ importresources %boolean; #IMPLIED
+ importclasses %boolean; #IMPLIED>
+
+<!ELEMENT p4fstat (fileset)*>
+<!ATTLIST p4fstat
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ showfilter CDATA #IMPLIED>
+
+<!ELEMENT setproxy EMPTY>
+<!ATTLIST setproxy
+ id ID #IMPLIED
+ nonproxyhosts CDATA #IMPLIED
+ proxyhost CDATA #IMPLIED
+ socksproxyhost CDATA #IMPLIED
+ proxyport CDATA #IMPLIED
+ socksproxyport CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ proxyuser CDATA #IMPLIED
+ description CDATA #IMPLIED
+ proxypassword CDATA #IMPLIED>
+
+<!ELEMENT wlstop (classpath)*>
+<!ATTLIST wlstop
+ id ID #IMPLIED
+ user CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ delay CDATA #IMPLIED
+ password CDATA #IMPLIED
+ url CDATA #IMPLIED
+ description CDATA #IMPLIED
+ beahome CDATA #IMPLIED>
+
+<!ELEMENT p4counter EMPTY>
+<!ATTLIST p4counter
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ilasm (patternset | exclude | include | custom | present | none | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ilasm
+ id ID #IMPLIED
+ owner CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ targettype (exe | library) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resourcefile CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ listing %boolean; #IMPLIED
+ keyfile CDATA #IMPLIED>
+
+<!ELEMENT soscheckout EMPTY>
+<!ATTLIST soscheckout
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT apply (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST apply
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-resolve (ant | location | url | extension)*>
+<!ATTLIST jarlib-resolve
+ id ID #IMPLIED
+ checkextension %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT location EMPTY>
+<!ATTLIST location
+ id ID #IMPLIED
+ location CDATA #IMPLIED>
+
+<!ELEMENT url EMPTY>
+<!ATTLIST url
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ url CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT ccuncheckout EMPTY>
+<!ATTLIST ccuncheckout
+ id ID #IMPLIED
+ objselect CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED>
+
+<!ELEMENT cvstagdiff (commandline)*>
+<!ATTLIST cvstagdiff
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ endtag CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ starttag CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ enddate CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ startdate CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT jlink (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | mergefiles | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | addfiles | depth | and)*>
+<!ATTLIST jlink
+ id ID #IMPLIED
+ outfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ addfiles CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ mergefiles CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergefiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST mergefiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT addfiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST addfiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT javacc EMPTY>
+<!ATTLIST javacc
+ id ID #IMPLIED
+ debugparser %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ forcelacheck %boolean; #IMPLIED
+ optimizetokenmanager %boolean; #IMPLIED
+ commontokenaction %boolean; #IMPLIED
+ buildtokenmanager %boolean; #IMPLIED
+ sanitycheck %boolean; #IMPLIED
+ buildparser %boolean; #IMPLIED
+ otherambiguitycheck CDATA #IMPLIED
+ lookahead CDATA #IMPLIED
+ debuglookahead %boolean; #IMPLIED
+ choiceambiguitycheck CDATA #IMPLIED
+ unicodeinput %boolean; #IMPLIED
+ usercharstream %boolean; #IMPLIED
+ debugtokenmanager %boolean; #IMPLIED
+ keeplinecolumn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ cachetokens %boolean; #IMPLIED
+ javaunicodeescape %boolean; #IMPLIED
+ static %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ ignorecase %boolean; #IMPLIED
+ usertokenmanager %boolean; #IMPLIED
+ errorreporting %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-manifest (options | attribute | depends | extension)*>
+<!ATTLIST jarlib-manifest
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT options (fileset | libfileset | extension)*>
+<!ATTLIST options
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depends (fileset | libfileset | extension)*>
+<!ATTLIST depends
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcs (pvcsproject)*>
+<!ATTLIST pvcs
+ id ID #IMPLIED
+ updateonly %boolean; #IMPLIED
+ force CDATA #IMPLIED
+ config CDATA #IMPLIED
+ workspace CDATA #IMPLIED
+ pvcsbin CDATA #IMPLIED
+ pvcsproject CDATA #IMPLIED
+ filenameformat CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ repository CDATA #IMPLIED
+ ignorereturncode %boolean; #IMPLIED
+ revision CDATA #IMPLIED
+ linestart CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ promotiongroup CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcsproject EMPTY>
+<!ATTLIST pvcsproject
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT chmod (mapper | include | srcfile | exclude | targetfile | patternset | redirector | env | filelist | fileset | dirset | arg)*>
+<!ATTLIST chmod
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ perm CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT ccmklbtype EMPTY>
+<!ATTLIST ccmklbtype
+ id ID #IMPLIED
+ global %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ shared %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ pbranch %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ ordinary %boolean; #IMPLIED>
+
+<!ELEMENT jar (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST jar
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT sound (fail | success)*>
+<!ATTLIST sound
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT fail EMPTY>
+<!ATTLIST fail
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT success EMPTY>
+<!ATTLIST success
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT scriptdef (#PCDATA | classpath | element | attribute)*>
+<!ATTLIST scriptdef
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ language CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ loaderref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT defaultexcludes EMPTY>
+<!ATTLIST defaultexcludes
+ id ID #IMPLIED
+ remove CDATA #IMPLIED
+ echo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ default %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ add CDATA #IMPLIED>
+
+<!ELEMENT mparse (fileset | jvmarg | classpath | sourcepath)*>
+<!ATTLIST mparse
+ id ID #IMPLIED
+ cleanup %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ debugparser %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ debugscanner %boolean; #IMPLIED>
+
+<!ELEMENT blgenclient (classpath)*>
+<!ATTLIST blgenclient
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ mode CDATA #IMPLIED
+ ejbjar CDATA #IMPLIED
+ version CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ clientjar CDATA #IMPLIED>
+
+<!ELEMENT jjdoc EMPTY>
+<!ATTLIST jjdoc
+ id ID #IMPLIED
+ outputfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ javacchome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ text %boolean; #IMPLIED
+ onetable %boolean; #IMPLIED>
+
+<!ELEMENT genkey (dname)*>
+<!ATTLIST genkey
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ sigalg CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ dname CDATA #IMPLIED
+ keysize CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ keyalg CDATA #IMPLIED
+ validity CDATA #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ storetype CDATA #IMPLIED>
+
+<!ELEMENT dname (param)*>
+<!ATTLIST dname
+ id ID #IMPLIED>
+
+<!ELEMENT ccmkelem EMPTY>
+<!ATTLIST ccmkelem
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ master %boolean; #IMPLIED
+ eltype CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ checkin %boolean; #IMPLIED>
+
+<!ELEMENT javah (classpath | class | bootclasspath)*>
+<!ATTLIST javah
+ id ID #IMPLIED
+ stubs %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ old %boolean; #IMPLIED
+ outputfile CDATA #IMPLIED
+ class CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT class EMPTY>
+<!ATTLIST class
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT ccmreconfigure EMPTY>
+<!ATTLIST ccmreconfigure
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ccmproject CDATA #IMPLIED
+ description CDATA #IMPLIED
+ recurse %boolean; #IMPLIED
+ ccmdir CDATA #IMPLIED>
+
+<!ELEMENT unzip (fileset | patternset)*>
+<!ATTLIST unzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT javac (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | src | or | contains | depend | classpath | sourcepath | different | size | majority | containsregexp | bootclasspath | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST javac
+ id ID #IMPLIED
+ target CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ compiler CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ debuglevel CDATA #IMPLIED
+ memoryinitialsize CDATA #IMPLIED
+ deprecation %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ depend %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ source CDATA #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ proceed %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ fork %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ memorymaximumsize CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ sourcepath CDATA #IMPLIED
+ listfiles %boolean; #IMPLIED
+ extdirs CDATA #IMPLIED>
+
+<!ELEMENT p4add (fileset)*>
+<!ATTLIST p4add
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ commandlength CDATA #IMPLIED>
+
+<!ELEMENT soslabel EMPTY>
+<!ATTLIST soslabel
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jpcoverage (arg | socket | fileset | jvmarg | classpath | triggers | filters)*>
+<!ATTLIST jpcoverage
+ id ID #IMPLIED
+ applet %boolean; #IMPLIED
+ recordfromstart (coverage | none | all) #IMPLIED
+ vm (java2 | jdk118 | jdk117) #IMPLIED
+ classname CDATA #IMPLIED
+ workingdir CDATA #IMPLIED
+ inputfile CDATA #IMPLIED
+ snapshotdir CDATA #IMPLIED
+ seedname CDATA #IMPLIED
+ javaexe CDATA #IMPLIED
+ home CDATA #IMPLIED
+ exitprompt CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ finalsnapshot CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tracknatives %boolean; #IMPLIED>
+
+<!ELEMENT triggers (method)*>
+<!ATTLIST triggers
+ id ID #IMPLIED>
+
+<!ELEMENT method EMPTY>
+<!ATTLIST method
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ event CDATA #IMPLIED
+ action CDATA #IMPLIED
+ param CDATA #IMPLIED>
+
+<!ELEMENT filters (include | exclude)*>
+<!ATTLIST filters
+ id ID #IMPLIED
+ defaultexclude %boolean; #IMPLIED>
+
+<!ELEMENT vssget EMPTY>
+<!ATTLIST vssget
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ date CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT deltree EMPTY>
+<!ATTLIST deltree
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ddcreator (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ddcreator
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
diff --git a/libs/FLib/NOTES.txt b/libs/FLib/NOTES.txt
new file mode 100644
index 0000000..f4f1e86
--- /dev/null
+++ b/libs/FLib/NOTES.txt
@@ -0,0 +1,35 @@
+ Release Notes for FLib
+
+Release 1.1.1
+
+ This version has some bug fixes and one enhancement. The bug fixes
+ are:
+
+ * The year increment button was using the wrong icon.
+ * Calling setDateFormat() on a JCalendarCombo caused the time to
+ become null and unsettable.
+
+ The enhancement is that you can now set the font of each element of
+ the calendar component.
+
+Release 1.1
+
+ The major changes to this release are:
+
+ * TableLayout has been added.
+ * JCalendar was updated to work with JDK 1.5.
+ * Ant 1.6.2 was used to build the project.
+ * The documentation was revised and expanded.
+
+Release 1.0.1
+
+ This version has some minor fixes to the 1.0 release, mostly in some
+ reworking of the Ant build files.
+
+ * Fixed various problems in the Ant build files.
+ * Created a top-level Ant build file.
+ * The isFinished() method in JWizardDialog is now public.
+
+Release 1.0
+
+ Initial release.
diff --git a/libs/FLib/TableLayout/License.txt b/libs/FLib/TableLayout/License.txt
new file mode 100644
index 0000000..be12e9d
--- /dev/null
+++ b/libs/FLib/TableLayout/License.txt
@@ -0,0 +1,123 @@
+ Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to
+make reasonable modifications.
+
+Definitions:
+
+ * "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ * "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of
+ the Copyright Holder.
+
+ * "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ * "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ * "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people
+ involved, and so on. (You will not be required to justify it to
+ the Copyright Holder, but only to the computing community at
+ large as a market that must bear the fee.)
+
+ * "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A
+ Package modified in such a way shall still be considered the
+ Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you
+ do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to
+ Usenet or an equivalent medium, or placing the modifications on
+ a major archive site such as ftp.uu.net, or by allowing the
+ Copyright Holder to include your modifications in the Standard
+ Version of the Package.
+
+ b) use the modified Package only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not
+ conflict with standard executables, which must also be
+ provided, and provide a separate manual page for each
+ non-standard executable that clearly documents how it differs
+ from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the
+ following:
+
+ a) distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or
+ equivalent) on where to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard
+ executables non-standard names, and clearly documenting the
+ differences in manual pages (or equivalent), together with
+ instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this
+ Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever
+ generated them, and may be sold commercially, and may be aggregated
+ with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.
+
+8. Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+The End
diff --git a/libs/FLib/TableLayout/README.txt b/libs/FLib/TableLayout/README.txt
new file mode 100644
index 0000000..6a3ac6e
--- /dev/null
+++ b/libs/FLib/TableLayout/README.txt
@@ -0,0 +1,34 @@
+ TableLayout
+
+This package provides a TableLayout manager for use in Java programs.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the Artistic License. You should have received a
+copy of the Artistic License along with this program (in file
+License.txt). If not, a copy is available at
+
+ http://opensource.org/licenses/artistic-license.php
+
+To build it you'll need Ant. I used version 1.6.2. Use
+
+ ant all
+
+This will create build/tablelayout.jar. To create the API
+documentation, use
+
+ ant javadoc
+
+To view all the documentation, view doc/index.html.
+
+There is a tutorial in doc/tutorial.html. There is also a sample Java
+program that uses the TableLayout class. You can build and run this
+program with
+
+ ant runExample1
+
+In addition, there is a tool you can use to practice using the
+TableLayout. It's called TableExplorer and follows the approach of a
+similar tool written for the GridBagLayout. Build and run this program
+with
+
+ ant runTableExplorer
diff --git a/libs/FLib/TableLayout/build.xml b/libs/FLib/TableLayout/build.xml
new file mode 100644
index 0000000..99384a6
--- /dev/null
+++ b/libs/FLib/TableLayout/build.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
+
+<project basedir="." default="all" name="TableLayout">
+
+ <!-- Set up the classpath for compilation and execution -->
+
+ <path id="project.class.path">
+ <pathelement location="."/>
+ </path>
+
+ <!-- Common settings for all targets -->
+
+ <target name="init" description="Initialize.">
+ <tstamp/>
+ </target>
+
+ <!-- Compile everything -->
+
+ <target depends="init" name="compile" description="Compile the project.">
+ <javac debug="true" deprecation="true" destdir="." srcdir=".">
+ <include name="org/freixas/**"/>
+ <include name="doc/example/**"/>
+ <classpath refid="project.class.path"/>
+ </javac>
+ </target>
+
+ <!-- Place the class files in a jar file -->
+
+ <target depends="compile" name="jar" description="Create a jar file.">
+ <mkdir dir="build"/>
+ <jar basedir="." compress="false" jarfile="build/tablelayout.jar">
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <section name="TableLayout">
+ <attribute name="Specification-Title" value="TableLayout Library"/>
+ <attribute name="Specification-Version" value="${version}"/>
+ <attribute name="Implementation-Title" value="TableLayout"/>
+ <attribute name="Implementation-Version" value="${version} ${TODAY}"/>
+ </section>
+ </manifest>
+ <exclude name="**/*.java"/>
+ <exclude name="doc"/>
+ <exclude name="build"/>
+ <include name="org/freixas/tablelayout/*.class"/>
+ <include name="**/*.gif"/>
+ <include name="**/*.properties"/>
+ </jar>
+ </target>
+
+ <!-- Build all -->
+
+ <target depends="jar" name="all" description="Build everything.">
+ <echo message="TableLayout library built."/>
+ </target>
+
+ <!-- Run Example1 -->
+
+ <target depends="compile" name="runExample1" description="Run Example1.">
+ <java classname="doc.example.Example1" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Run TableExplorer -->
+
+ <target depends="compile" name="runTableExplorer" description="Run TableExplorer.">
+ <java classname="doc.example.TableExplorer" failonerror="true" fork="true">
+ <classpath refid="project.class.path"/>
+ </java>
+ </target>
+
+ <!-- Build the documentation -->
+
+ <target depends="init" name="javadoc" description="Javadoc for TableLayout.">
+ <mkdir dir="doc/api"/>
+ <copy todir="doc/api">
+ <fileset dir="doc-templates">
+ <include name="**/*.html"/>
+ </fileset>
+ </copy>
+ <javadoc
+ sourcepath="org"
+ destdir="doc/api"
+ use="true"
+ author="true"
+ windowtitle="TableLayout"
+ footer="&lt;small&gt;Copyright &#169; 2000-2005 Credence Systems Corporation&lt;br&gt;Licensed under the &lt;a href='{@docRoot}/License.html' target='_top'&gt;Artistic License&lt;/a&gt;&lt;/small&gt;">
+ <classpath refid="project.class.path"/>
+ <packageset dir=".">
+ <include name="org/freixas/**"/>
+ </packageset>
+ <link href="http://java.sun.com/j2se/1.5/docs/api/" />
+ </javadoc>
+ </target>
+
+ <!-- Clean the build tree -->
+
+ <target depends="init" name="clean" description="Clean all build products.">
+ <delete>
+ <fileset dir="org/freixas">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete>
+ <fileset dir="doc/example">
+ <include name="**/*.class"/>
+ </fileset>
+ </delete>
+ <delete dir="build"/>
+ <delete dir="doc/api"/>
+ </target>
+
+ <!-- Generate a DTD for this buildfile -->
+
+ <target name="dtd" description="Generate a DTD">
+ <antstructure output="project.dtd"/>
+ </target>
+
+</project>
diff --git a/libs/FLib/TableLayout/doc-templates/License.html b/libs/FLib/TableLayout/doc-templates/License.html
new file mode 100644
index 0000000..d5fbdc1
--- /dev/null
+++ b/libs/FLib/TableLayout/doc-templates/License.html
@@ -0,0 +1,180 @@
+<html>
+ <style type="text/css">
+ body {
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ h1 {
+ text-align: center;
+ font-weight: bold;
+ font-size: 145%;
+ }
+
+ h2 {
+ text-align: left;
+ font-weight: bold;
+ font-size: 120%;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ ol ol {
+ list-style-type: lower-alpha;
+ }
+
+ li {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+
+ </style>
+</head>
+
+ <body>
+
+ <h1>Artistic License</h1>
+
+ <h2>Preamble</h2>
+
+ <p>The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package,
+ while giving the users of the package the right to use and distribute
+ the Package in a more-or-less customary fashion, plus the right to
+ make reasonable modifications.</p>
+
+ <h2>Definitions:</h2>
+
+ <ul>
+
+ <li>"Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files created
+ through textual modification.</li>
+
+ <li>"Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes of the
+ Copyright Holder.</li>
+
+ <li>"Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.</li>
+
+ <li>"You" is you, if you're thinking about copying or distributing
+ this Package.</li>
+
+ <li>"Reasonable copying fee" is whatever you can justify on the basis
+ of media cost, duplication charges, time of people involved, and so
+ on. (You will not be required to justify it to the Copyright Holder,
+ but only to the computing community at large as a market that must
+ bear the fee.)</li>
+
+ <li>"Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item. It
+ also means that recipients of the item may redistribute it under the
+ same conditions they received it.</li>
+
+ </ul>
+
+ <hr>
+
+ <ol>
+
+ <li>You may make and give away verbatim copies of the source form of
+ the Standard Version of this Package without restriction, provided
+ that you duplicate all of the original copyright notices and
+ associated disclaimers.</li>
+
+ <li>You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A Package
+ modified in such a way shall still be considered the Standard
+ Version.</li>
+
+ <li>You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you do
+ at least ONE of the following:
+
+ <ol>
+
+ <li>place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to Usenet
+ or an equivalent medium, or placing the modifications on a major
+ archive site such as ftp.uu.net, or by allowing the Copyright Holder
+ to include your modifications in the Standard Version of the Package.</li>
+
+ <li>use the modified Package only within your corporation or
+ organization.</li>
+
+ <li>rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide a
+ separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ <ol>
+
+ <li>distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or equivalent)
+ on where to get the Standard Version.</li>
+
+ <li>accompany the distribution with the machine-readable source of the
+ Package with your modifications.</li>
+
+ <li>accompany any non-standard executables with their corresponding
+ Standard Version executables, giving the non-standard executables
+ non-standard names, and clearly documenting the differences in manual
+ pages (or equivalent), together with instructions on where to get the
+ Standard Version.</li>
+
+ <li>make other distribution arrangements with the Copyright
+ Holder.</li>
+
+ </ol>
+ </li>
+
+ <li>You may charge a reasonable copying fee for any distribution of
+ this Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this Package
+ as a product of your own.</li>
+
+ <li>The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whomever generated
+ them, and may be sold commercially, and may be aggregatedwith this
+ Package.</li>
+
+ <li>r perl subroutines supplied by you and linked into this Package
+ shall not be considered part of this Package.</li>
+
+ <li>Aggregation of this Package with a commercial distribution is
+ always permitted provided that the use of this Package is embedded;
+ that is, when no overt attempt is made to make this Package's
+ interfaces visible to the end user of the commercial distribution.
+ Such use shall not be construed as a distribution of this Package.</li>
+
+ <li>The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.</li>
+
+ <li>THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.</li>
+
+ </ol>
+
+ <p>The End</p>
+ </body>
+</html>
diff --git a/libs/FLib/TableLayout/doc/example/Example1.java b/libs/FLib/TableLayout/doc/example/Example1.java
new file mode 100644
index 0000000..797d1e7
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/example/Example1.java
@@ -0,0 +1,180 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+import org.freixas.tablelayout.*;
+
+/**
+ * This example compares the GridBagLayout to the TableLayout. The
+ * same layout is created using each layout manager. The layouts are
+ * displayed in their own window.
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2004 Antonio Freixas
+// All Rights Reserved.
+
+public class Example1
+{
+
+//**********************************************************************
+// Public Constants
+//**********************************************************************
+
+//**********************************************************************
+// Private Constants
+//**********************************************************************
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+//**********************************************************************
+// main
+//**********************************************************************
+
+public static void
+main(
+ String[] args)
+{
+ new Example1();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create the two windows and display them.
+ */
+
+public
+Example1()
+{
+ JFrame frame1 = createGridBagLayout();
+ JFrame frame2 = createTableLayout();
+ frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ frame2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ frame1.pack();
+ frame2.pack();
+ frame1.setLocation(10, 100);
+ frame2.setLocation(400, 100);
+ frame1.setVisible(true);
+ frame2.setVisible(true);
+}
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * Create the layout using GridBagLayout. This code comes from the API
+ * page for GridBagLayout.
+ *
+ * @return The JFrame containing the layout.
+ */
+
+public JFrame
+createGridBagLayout()
+{
+ JFrame frame = new JFrame("GridBagLayout");
+
+ GridBagLayout gridbag = new GridBagLayout();
+ GridBagConstraints c = new GridBagConstraints();
+
+ JPanel panel = new JPanel(gridbag);
+ frame.getContentPane().add(panel);
+
+ c.fill = GridBagConstraints.BOTH;
+ c.weightx = 1.0;
+ makebutton(panel, "Button1", gridbag, c);
+ makebutton(panel, "Button2", gridbag, c);
+ makebutton(panel, "Button3", gridbag, c);
+
+ c.gridwidth = GridBagConstraints.REMAINDER; //end row
+ makebutton(panel, "Button4", gridbag, c);
+
+ c.weightx = 0.0; //reset to the default
+ makebutton(panel, "Button5", gridbag, c); //another row
+
+ c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row
+ makebutton(panel, "Button6", gridbag, c);
+
+ c.gridwidth = GridBagConstraints.REMAINDER; //end row
+ makebutton(panel, "Button7", gridbag, c);
+
+ c.gridwidth = 1; //reset to the default
+ c.gridheight = 2;
+ c.weighty = 1.0;
+ makebutton(panel, "Button8", gridbag, c);
+
+ c.weighty = 0.0; //reset to the default
+ c.gridwidth = GridBagConstraints.REMAINDER; //end row
+ c.gridheight = 1; //reset to the default
+ makebutton(panel, "Button9", gridbag, c);
+ makebutton(panel, "Button10", gridbag, c);
+
+ return frame;
+}
+
+/**
+ * Helper method for createGridBagLayout().
+ *
+ * @param panel The panel to add the button to.
+ * @param name The button's label.
+ * @param gridbag The GridBagLayout to use.
+ * @param c The constraints to use.
+ */
+
+private void
+makebutton(
+ JPanel panel,
+ String name,
+ GridBagLayout gridbag,
+ GridBagConstraints c)
+{
+ JButton button = new JButton(name);
+ gridbag.setConstraints(button, c);
+ panel.add(button);
+}
+
+/**
+ * Create the layout using TableLayout.
+ *
+ * @return The JFrame containing the layout.
+ */
+
+public JFrame
+createTableLayout()
+{
+ JFrame frame = new JFrame("TableLayout");
+
+ JPanel panel = new JPanel(new TableLayout("cols=4"));
+ frame.getContentPane().add(panel);
+
+ panel.add(new JButton("Button1"));
+ panel.add(new JButton("Button2"));
+ panel.add(new JButton("Button3"));
+ panel.add(new JButton("Button4"));
+ panel.add(new JButton("Button5"), "cspan=4");
+ panel.add(new JButton("Button6"), "cspan=3");
+ panel.add(new JButton("Button7"));
+ panel.add(new JButton("Button8"), "rspan=2");
+ panel.add(new JButton("Button9"), "cspan=3");
+ panel.add(new JButton("Button10"), "cspan=3 rweight=1");
+
+ return frame;
+}
+
+}
diff --git a/libs/FLib/TableLayout/doc/example/TableExplorer.java b/libs/FLib/TableLayout/doc/example/TableExplorer.java
new file mode 100644
index 0000000..d66c497
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/example/TableExplorer.java
@@ -0,0 +1,1230 @@
+//**********************************************************************
+// Package
+//**********************************************************************
+
+package doc.example;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.event.*;
+import java.util.*;
+
+import org.freixas.tablelayout.*;
+
+/**
+ * This class allows a user to dynamically alter a set of components
+ * using the TableLayout class to explore the layout's abilities.
+ *
+ * @author Antonio Freixas
+ */
+
+public class TableExplorer
+ extends JFrame
+ implements CaretListener, ActionListener, ListSelectionListener,
+ FocusListener, MenuListener
+{
+
+//**********************************************************************
+// Constants
+//**********************************************************************
+
+static final String[] tablePositionList = {
+ "Default",
+ "tn", "tne", "tnw",
+ "ts", "tse", "tsw",
+ "te", "tw", "tc"
+};
+
+static final String[] tableFillList = {
+ "Default", "tfh", "tfv", "tf"
+};
+
+static final String[] positionList = {
+ "Default",
+ "n", "ne", "nw",
+ "s", "se", "sw",
+ "e", "w", "c"
+};
+
+static final String[] fillList = {
+ "Default", "fh", "fv", "f"
+};
+
+//**********************************************************************
+// Fields
+//**********************************************************************
+
+JFrame layout;
+JPanel layoutPane;
+JFrame code;
+JPanel codePane;
+
+HashMap compHash = new HashMap();
+HashMap attrHash = new HashMap();
+
+JMenu fileMenu;
+JMenu windowMenu;
+JMenu helpMenu;
+
+JMenuItem exitItem;
+JMenuItem previewItem;
+JMenuItem packItem;
+JMenuItem codeItem;
+JMenuItem generateItem;
+JMenuItem aboutItem;
+
+JButton upButton;
+JButton downButton;
+JButton removeButton;
+JButton addButton;
+
+JList compList;
+DefaultListModel compListModel;
+JTextField compEntryField;
+
+JTextField columnsField;
+JTextField[] tableInsetFields = new JTextField[4];
+JTextField rowGapField;
+JTextField colGapField;
+JComboBox tablePositionBox;
+JComboBox tableFillBox;
+
+JTextField[] tableCellInsetFields = new JTextField[4];
+JComboBox tableCellPositionBox;
+JComboBox tableCellFillBox;
+JTextField tableRowWeightField;
+JTextField tableColWeightField;
+
+JTextField tableAttributesField;
+
+JTextField[] insetFields = new JTextField[4];
+JComboBox positionBox;
+JComboBox fillBox;
+JTextField rowWeightField;
+JTextField colWeightField;
+JTextField colPositionField;
+JTextField skipCellsField;
+JTextField rowSpanField;
+JTextField colSpanField;
+
+JTextField cellAttributesField;
+
+JTextArea codeTextArea;
+JScrollPane codeTextScroll;
+
+String textWhenFocusGained = null;
+boolean ignoreEvents = false;
+
+TableAttributes tableAttributes = null;
+
+//**********************************************************************
+// Main
+//**********************************************************************
+
+static public void
+main(
+ String[] args)
+{
+ new TableExplorer();
+}
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Create the TableExplorer JFrame.
+ */
+
+TableExplorer()
+{
+ super("TableExplorer");
+
+ // Table with three columns
+ // Row 1: Buttons for managing component list
+ // Row 2: Component list
+ // Row 3: Attribute settings
+
+ setJMenuBar(createJMenuBar());
+
+ getContentPane().setLayout(
+ new TableLayout("cols=3 cgap=5 " +
+ "titop=2 tibottom=2 tileft=2 tiright=2"));
+
+ getContentPane().add(createButtonPane());
+ getContentPane().add(createListPane(), "cweight=1");
+ getContentPane().add(createAttributePane(), "n fh");
+
+ pack();
+ setVisible(true);
+
+ layout = new JFrame("Table Layout Preview");
+ layoutPane = (JPanel)layout.getContentPane();
+ layoutPane.setName("DEBUG");
+ layoutPane.setLayout(new TableLayout());
+ layoutPane.setOpaque(true);
+
+ code = new JFrame("Table Layout Code");
+ codePane = createCodePane();
+ code.setContentPane(codePane);
+ code.pack();
+
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ compEntryField.grabFocus();
+
+ layout.setSize(300, 300);
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+public void
+caretUpdate(
+ CaretEvent e)
+{
+ if (e.getSource() == compEntryField) {
+ String text = compEntryField.getText();
+ addButton.setEnabled(text.length() > 0);
+ }
+}
+
+public void
+actionPerformed(
+ ActionEvent e)
+{
+ if (ignoreEvents) return;
+
+ if (e.getSource() == addButton ||
+ e.getSource() == compEntryField) {
+
+ String name = compEntryField.getText();
+
+ JButton button = new JButton(name);
+ addToLayout(button);
+ compHash.put(name, button);
+ attrHash.put(name, new Attributes());
+ compListModel.addElement(name);
+ compEntryField.setText("");
+ addButton.setEnabled(false);
+ }
+
+ else if (e.getSource() == removeButton) {
+ String name = (String)compList.getSelectedValue();
+ if (name != null) {
+ Component c = (Component)compHash.get(name);
+ layoutPane.remove(c);
+ compHash.remove(name);
+ attrHash.remove(name);
+ compListModel.removeElement(name);
+ removeButton.setEnabled(false);
+ layoutPane.revalidate();
+ }
+ }
+
+ else if (e.getSource() == upButton) {
+ int index = compList.getSelectedIndex();
+ if (index > 0) {
+ String name = (String)compListModel.elementAt(index);
+ compListModel.removeElementAt(index);
+ compListModel.insertElementAt(name, index - 1);
+ compList.setSelectedIndex(index - 1);
+
+ Component c = (Component)compHash.get(name);
+ Attributes a = (Attributes)attrHash.get(name);
+ layoutPane.remove(index);
+ layoutPane.add(c, a.toString(), index - 1);
+ layoutPane.revalidate();
+ }
+ }
+
+ else if (e.getSource() == downButton) {
+ int index = compList.getSelectedIndex();
+ if (index > -1 && index < compListModel.getSize() - 1) {
+ String name = (String)compListModel.elementAt(index);
+ compListModel.removeElementAt(index);
+ compListModel.insertElementAt(name, index + 1);
+ compList.setSelectedIndex(index + 1);
+
+ Component c = (Component)compHash.get(name);
+ Attributes a = (Attributes)attrHash.get(name);
+ layoutPane.remove(index);
+ layoutPane.add(c, a.toString(), index + 1);
+ layoutPane.revalidate();
+ }
+ }
+
+ else if (e.getSource() == insetFields[0] ||
+ e.getSource() == insetFields[1] ||
+ e.getSource() == insetFields[2] ||
+ e.getSource() == insetFields[3] ||
+ e.getSource() == positionBox ||
+ e.getSource() == fillBox ||
+ e.getSource() == rowWeightField ||
+ e.getSource() == colWeightField ||
+ e.getSource() == colPositionField ||
+ e.getSource() == skipCellsField ||
+ e.getSource() == rowSpanField ||
+ e.getSource() == colSpanField) {
+ String name = (String)compList.getSelectedValue();
+ changeLayout(name);
+ }
+
+ else if (e.getSource() == columnsField ||
+ e.getSource() == tableInsetFields[0] ||
+ e.getSource() == tableInsetFields[1] ||
+ e.getSource() == tableInsetFields[2] ||
+ e.getSource() == tableInsetFields[3] ||
+ e.getSource() == rowGapField ||
+ e.getSource() == colGapField ||
+ e.getSource() == tablePositionBox ||
+ e.getSource() == tableFillBox ||
+ e.getSource() == tableCellInsetFields[0] ||
+ e.getSource() == tableCellInsetFields[1] ||
+ e.getSource() == tableCellInsetFields[2] ||
+ e.getSource() == tableCellInsetFields[3] ||
+ e.getSource() == tableCellPositionBox ||
+ e.getSource() == tableCellFillBox ||
+ e.getSource() == tableRowWeightField ||
+ e.getSource() == tableColWeightField) {
+ changeTableLayout();
+ }
+
+ else if (e.getSource() == exitItem) {
+ System.exit(0);
+ }
+
+ else if (e.getSource() == previewItem) {
+ if (layout.isVisible()) {
+ layout.setVisible(false);
+ }
+ else {
+ layout.setVisible(true);
+ }
+ }
+
+ else if (e.getSource() == packItem) {
+ layout.pack();
+ }
+
+ else if (e.getSource() == codeItem) {
+ if (code.isVisible()) {
+ code.setVisible(false);
+ }
+ else {
+ generateCode();
+ code.setVisible(true);
+ }
+ }
+
+ else if (e.getSource() == generateItem) {
+ generateCode();
+ }
+
+ else if (e.getSource() == aboutItem) {
+ JOptionPane.showMessageDialog(this,
+ "<html>" +
+ "<h1><font face=Dialog>Table Explorer V1.0</font></h1>" +
+ "<font face=Dialog>Written by Antonio Freixas<br>" +
+ "<a src=\"mailto:tony@freixas.org\">tonyf@freixas.org</a>",
+ "About Table Explorer</font>",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+}
+
+public void
+valueChanged(
+ ListSelectionEvent e)
+{
+ if (ignoreEvents) return;
+
+ if (e.getSource() == compList) {
+ String name = (String)compList.getSelectedValue();
+ int index = compList.getSelectedIndex();
+
+ boolean hasObject = name != null;
+
+ removeButton.setEnabled(hasObject);
+ upButton.setEnabled(hasObject && index != 0);
+ downButton.setEnabled(hasObject &&
+ index != compListModel.getSize() - 1);
+ enableAttributes(hasObject);
+
+ if (hasObject) {
+ Attributes attributes = (Attributes)attrHash.get(name);
+ setAttributes(attributes);
+ }
+ }
+}
+
+public void
+focusGained(
+ FocusEvent e)
+{
+ if (e.getSource() == insetFields[0] ||
+ e.getSource() == insetFields[1] ||
+ e.getSource() == insetFields[2] ||
+ e.getSource() == insetFields[3] ||
+ e.getSource() == rowWeightField ||
+ e.getSource() == colWeightField ||
+ e.getSource() == colPositionField ||
+ e.getSource() == skipCellsField ||
+ e.getSource() == rowSpanField ||
+ e.getSource() == colSpanField||
+ e.getSource() == columnsField ||
+ e.getSource() == tableInsetFields[0] ||
+ e.getSource() == tableInsetFields[1] ||
+ e.getSource() == tableInsetFields[2] ||
+ e.getSource() == tableInsetFields[3] ||
+ e.getSource() == rowGapField ||
+ e.getSource() == colGapField ||
+ e.getSource() == tableCellInsetFields[0] ||
+ e.getSource() == tableCellInsetFields[1] ||
+ e.getSource() == tableCellInsetFields[2] ||
+ e.getSource() == tableCellInsetFields[3] ||
+ e.getSource() == tableRowWeightField ||
+ e.getSource() == tableColWeightField) {
+
+ JTextField field = (JTextField)e.getSource();
+ textWhenFocusGained = field.getText();
+ }
+ else if (e.getSource() == positionBox ||
+ e.getSource() == fillBox ||
+ e.getSource() == tablePositionBox ||
+ e.getSource() == tableFillBox ||
+ e.getSource() == tableCellPositionBox ||
+ e.getSource() == tableCellFillBox) {
+
+ JComboBox box = (JComboBox)e.getSource();
+ textWhenFocusGained = (String)box.getSelectedItem();
+ }
+ else {
+ textWhenFocusGained = null;
+ }
+}
+
+public void
+focusLost(
+ FocusEvent e)
+{
+ if (textWhenFocusGained != null) {
+ if (e.getSource() == insetFields[0] ||
+ e.getSource() == insetFields[1] ||
+ e.getSource() == insetFields[2] ||
+ e.getSource() == insetFields[3] ||
+ e.getSource() == rowWeightField ||
+ e.getSource() == colWeightField ||
+ e.getSource() == colPositionField ||
+ e.getSource() == skipCellsField ||
+ e.getSource() == rowSpanField ||
+ e.getSource() == colSpanField) {
+
+ JTextField field = (JTextField)e.getSource();
+ if (!textWhenFocusGained.equals(field.getText())) {
+ changeLayout();
+ }
+ }
+ else if (e.getSource() == positionBox ||
+ e.getSource() == fillBox) {
+ JComboBox box = (JComboBox)e.getSource();
+ if (!textWhenFocusGained.equals(box.getSelectedItem())) {
+ changeLayout();
+ }
+ }
+ else if (e.getSource() == columnsField ||
+ e.getSource() == tableInsetFields[0] ||
+ e.getSource() == tableInsetFields[1] ||
+ e.getSource() == tableInsetFields[2] ||
+ e.getSource() == tableInsetFields[3] ||
+ e.getSource() == rowGapField ||
+ e.getSource() == colGapField ||
+ e.getSource() == tableCellInsetFields[0] ||
+ e.getSource() == tableCellInsetFields[1] ||
+ e.getSource() == tableCellInsetFields[2] ||
+ e.getSource() == tableCellInsetFields[3] ||
+ e.getSource() == tableRowWeightField ||
+ e.getSource() == tableColWeightField) {
+
+ JTextField field = (JTextField)e.getSource();
+ if (!textWhenFocusGained.equals(field.getText())) {
+ changeTableLayout();
+ }
+ }
+
+ else if (e.getSource() == tablePositionBox ||
+ e.getSource() == tableFillBox ||
+ e.getSource() == tableCellPositionBox ||
+ e.getSource() == tableCellFillBox) {
+
+ JComboBox box = (JComboBox)e.getSource();
+ if (!textWhenFocusGained.equals(box.getSelectedItem())) {
+ changeTableLayout();
+ }
+ }
+ }
+
+ textWhenFocusGained = null;
+}
+
+public void
+menuCanceled(
+ MenuEvent e)
+{
+}
+
+public void
+menuDeselected(
+ MenuEvent e)
+{
+}
+
+public void
+menuSelected(
+ MenuEvent e)
+{
+ if (e.getSource() == windowMenu) {
+ if (layout.isVisible()) {
+ previewItem.setText("Hide Preview Window");
+ }
+ else {
+ previewItem.setText("Show Preview Window");
+ }
+ if (code.isVisible()) {
+ codeItem.setText("Hide Code Window");
+ }
+ else {
+ codeItem.setText("Show Code Window");
+ }
+ }
+}
+
+//**********************************************************************
+// Package Public
+//**********************************************************************
+
+JMenuBar
+createJMenuBar()
+{
+ JMenuBar menuBar = new JMenuBar();
+
+ fileMenu = new JMenu("File");
+ menuBar.add(fileMenu);
+ windowMenu = new JMenu("Window");
+ windowMenu.addMenuListener(this);
+ menuBar.add(windowMenu);
+ helpMenu = new JMenu("Help");
+ menuBar.add(helpMenu);
+
+ exitItem = new JMenuItem("Exit");
+ exitItem.addActionListener(this);
+ fileMenu.add(exitItem);
+
+ previewItem = new JMenuItem("Show Preview Window");
+ previewItem.addActionListener(this);
+ windowMenu.add(previewItem);
+
+ packItem = new JMenuItem("Pack Preview Window");
+ packItem.addActionListener(this);
+ windowMenu.add(packItem);
+
+ windowMenu.add(new JSeparator());
+
+ codeItem = new JMenuItem("Show Code Window");
+ codeItem.addActionListener(this);
+ windowMenu.add(codeItem);
+
+ generateItem = new JMenuItem("Generate Code");
+ generateItem.addActionListener(this);
+ windowMenu.add(generateItem);
+
+ aboutItem = new JMenuItem("About TableExplorer...");
+ aboutItem.addActionListener(this);
+ helpMenu.add(aboutItem);
+
+ return menuBar;
+}
+
+Component
+createButtonPane()
+{
+ JPanel topLevel = new JPanel(new TableLayout("cols=1"));
+
+ upButton = new JButton("Up");
+ upButton.setEnabled(false);
+ upButton.addActionListener(this);
+
+ downButton = new JButton("Down");
+ downButton.setEnabled(false);
+ downButton.addActionListener(this);
+
+ removeButton = new JButton("Remove");
+ removeButton.setEnabled(false);
+ removeButton.addActionListener(this);
+
+ addButton = new JButton("Add");
+ addButton.addActionListener(this);
+
+ topLevel.add(upButton);
+ topLevel.add(downButton, "rweight=1 n fh");
+ topLevel.add(removeButton, "rweight=1 s fh ");
+ topLevel.add(addButton);
+
+ return topLevel;
+}
+
+Component
+createListPane()
+{
+ JPanel topLevel = new JPanel(new TableLayout("cols=1 rgap=2"));
+
+ compListModel = new DefaultListModel();
+ compList = new JList(compListModel);
+ compList.setVisibleRowCount(20);
+ compList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ compList.addListSelectionListener(this);
+
+ compEntryField = new JTextField("Start Here!");
+ compEntryField.selectAll();
+ compEntryField.setColumns(20);
+ compEntryField.addCaretListener(this);
+ compEntryField.addActionListener(this);
+
+ topLevel.add(compList, "rweight=1");
+ topLevel.add(compEntryField);
+
+ return topLevel;
+}
+
+Component
+createAttributePane()
+{
+ JPanel topLevel = new JPanel(new TableLayout("cols=3 rgap=2 cgap=5"));
+
+ // Table Attributes
+
+ topLevel.add(new JLabel("Table Attributes"), "cspan=3");
+
+ JPanel spacer1= new JPanel();
+ spacer1.setSize(20, 1);
+ topLevel.add(spacer1);
+ topLevel.add(new JLabel("Columns"));
+ columnsField = new JTextField(10);
+ columnsField.addActionListener(this);
+ columnsField.addFocusListener(this);
+ topLevel.add(columnsField);
+
+ topLevel.add(new JLabel("Table insets"), "col=1");
+ topLevel.add(createInsetsPane(tableInsetFields));
+
+ topLevel.add(new JLabel("Row gap"), "col=1");
+ rowGapField = new JTextField(10);
+ rowGapField.addActionListener(this);
+ rowGapField.addFocusListener(this);
+ topLevel.add(rowGapField);
+
+ topLevel.add(new JLabel("Column gap"), "col=1");
+ colGapField = new JTextField(10);
+ colGapField.addActionListener(this);
+ colGapField.addFocusListener(this);
+ topLevel.add(colGapField);
+
+ topLevel.add(new JLabel("Table position"), "col=1");
+ tablePositionBox = new JComboBox(tablePositionList);
+ tablePositionBox.addActionListener(this);
+ topLevel.add(tablePositionBox);
+
+ topLevel.add(new JLabel("Table fill"), "col=1");
+ tableFillBox = new JComboBox(tableFillList);
+ tableFillBox.addActionListener(this);
+ topLevel.add(tableFillBox);
+
+ // Table Cell Defaults
+
+ topLevel.add(new JLabel("Table Cell Defaults"), "cspan=3 itop=20");
+
+ topLevel.add(new JLabel("Cell insets"), "col=1");
+ topLevel.add(createInsetsPane(tableCellInsetFields));
+
+ topLevel.add(new JLabel("Cell position"), "col=1");
+ tableCellPositionBox = new JComboBox(positionList);
+ tableCellPositionBox.addActionListener(this);
+ topLevel.add(tableCellPositionBox);
+
+ topLevel.add(new JLabel("Cell fill"), "col=1");
+ tableCellFillBox = new JComboBox(fillList);
+ tableCellFillBox.addActionListener(this);
+ topLevel.add(tableCellFillBox);
+
+ topLevel.add(new JLabel("Row weight"), "col=1");
+ tableRowWeightField = new JTextField(10);
+ tableRowWeightField.addActionListener(this);
+ tableRowWeightField.addFocusListener(this);
+ topLevel.add(tableRowWeightField);
+
+ topLevel.add(new JLabel("Column weight"), "col=1");
+ tableColWeightField = new JTextField(10);
+ tableColWeightField.addActionListener(this);
+
+ tableColWeightField.addFocusListener(this);
+ topLevel.add(tableColWeightField);
+
+ topLevel.add(new JLabel("Attributes"), "itop=5 col=0 cspan=2");
+ tableAttributesField = new JTextField();
+ tableAttributesField.setEditable(false);
+ topLevel.add(tableAttributesField, "itop=5");
+
+ // Make sure components are initialized as per the default table
+ // attributes
+
+ tableAttributes = new TableAttributes();
+ setTableAttributes(tableAttributes);
+
+ // Cell Attributes
+
+ topLevel.add(new JSeparator(), "cspan=3 itop=20 ibottom=5");
+
+ topLevel.add(new JLabel("Cell Attributes"), "cspan=3");
+
+ topLevel.add(new JLabel("Cell insets"), "col=1");
+ topLevel.add(createInsetsPane(insetFields));
+
+ topLevel.add(new JLabel("Cell position"), "col=1");
+ positionBox = new JComboBox(positionList);
+ positionBox.addActionListener(this);
+ topLevel.add(positionBox);
+
+ topLevel.add(new JLabel("Cell fill"), "col=1");
+ fillBox = new JComboBox(fillList);
+ fillBox.addActionListener(this);
+ topLevel.add(fillBox);
+
+ topLevel.add(new JLabel("Row weight"), "col=1");
+ rowWeightField = new JTextField(10);
+ rowWeightField.addActionListener(this);
+ rowWeightField.addFocusListener(this);
+ topLevel.add(rowWeightField);
+
+ topLevel.add(new JLabel("Column weight"), "col=1");
+ colWeightField = new JTextField(10);
+ colWeightField.addActionListener(this);
+ colWeightField.addFocusListener(this);
+ topLevel.add(colWeightField);
+
+ topLevel.add(new JLabel("Column position"), "col=1");
+ colPositionField = new JTextField(10);
+ colPositionField.addActionListener(this);
+ colPositionField.addFocusListener(this);
+ topLevel.add(colPositionField);
+
+ topLevel.add(new JLabel("Skip cells"), "col=1");
+ skipCellsField = new JTextField(10);
+ skipCellsField.addActionListener(this);
+ skipCellsField.addFocusListener(this);
+ topLevel.add(skipCellsField);
+
+ topLevel.add(new JLabel("Row span"), "col=1");
+ rowSpanField = new JTextField(10);
+ rowSpanField.addActionListener(this);
+ rowSpanField.addFocusListener(this);
+ topLevel.add(rowSpanField);
+
+ topLevel.add(new JLabel("Column span"), "col=1");
+ colSpanField = new JTextField(10);
+ colSpanField.addActionListener(this);
+ colSpanField.addFocusListener(this);
+ topLevel.add(colSpanField);
+
+ topLevel.add(new JLabel("Attributes"), "itop=5 col=0 cspan=2");
+ cellAttributesField = new JTextField();
+ cellAttributesField.setEditable(false);
+ topLevel.add(cellAttributesField, "itop=5");
+
+ enableAttributes(false);
+
+ return topLevel;
+}
+
+Component
+createInsetsPane(
+ JTextField[] insetFields)
+{
+ JPanel topLevel = new JPanel(new TableLayout("cols=3"));
+
+ for (int i = 0; i < 4; i++) {
+ insetFields[i] = new JTextField(2);
+ insetFields[i].addActionListener(this);
+ insetFields[i].addFocusListener(this);
+ }
+
+ topLevel.add(insetFields[0], "col=1");
+ topLevel.add(insetFields[1], "col=0");
+ topLevel.add(insetFields[2], "col=2");
+ topLevel.add(insetFields[3], "col=1");
+
+ return topLevel;
+}
+
+JPanel
+createCodePane()
+{
+ JPanel topLevel = new JPanel(new TableLayout("cols=2 rgap=2 cgap=5"));
+
+ codeTextArea = new JTextArea(15, 30);
+ codeTextScroll = new JScrollPane(codeTextArea);
+ topLevel.add(codeTextScroll, "cspan=2 rweight=1");
+
+ return topLevel;
+}
+
+void
+addToLayout(
+ Component c)
+{
+ try {
+ layoutPane.add(c);
+ }
+ catch (IllegalArgumentException e) {
+ JOptionPane.showMessageDialog(
+ this, e.toString(), "Attribute Error", JOptionPane.ERROR_MESSAGE);
+ }
+ layoutPane.revalidate();
+}
+
+void
+addToLayout(
+ Component c,
+ String a,
+ int index)
+{
+ try {
+ layoutPane.add(c, a, index);
+ }
+ catch (IllegalArgumentException e) {
+ JOptionPane.showMessageDialog(
+ this, e.toString(), "Attribute Error", JOptionPane.ERROR_MESSAGE);
+ }
+ layoutPane.revalidate();
+}
+
+void
+changeTableLayout()
+{
+ tableAttributes = getTableAttributes();
+ try {
+ ((TableLayout)layoutPane.getLayout()).setTableAttributes(
+ tableAttributes.toString());
+ }
+ catch (IllegalArgumentException e) {
+ JOptionPane.showMessageDialog(
+ this, e.toString(), "Attribute Error", JOptionPane.ERROR_MESSAGE);
+ }
+ layoutPane.revalidate();
+ setTableAttributes(tableAttributes); // Normalize appearance
+}
+
+void
+changeLayout()
+{
+ String name = (String)compList.getSelectedValue();
+ changeLayout(name);
+}
+
+void
+changeLayout(
+ String name)
+{
+ if (name == null) return;
+
+ Component c = (Component)compHash.get(name);
+ Attributes attributes = getAttributes();
+ try {
+ ((TableLayout)layoutPane.getLayout()).setAttributes(
+ c, attributes.toString());
+ }
+ catch (IllegalArgumentException e) {
+ JOptionPane.showMessageDialog(
+ this, e.toString(), "Attribute Error", JOptionPane.ERROR_MESSAGE);
+ }
+ layoutPane.revalidate();
+ setAttributes(attributes); // Normalize appearance
+ attrHash.put(name, attributes);
+}
+
+TableAttributes
+getTableAttributes()
+{
+ TableAttributes attributes = new TableAttributes();
+
+ attributes.columns = getNumber(attributes.columns, columnsField);
+ attributes.rGap = getNumber(attributes.rGap, rowGapField);
+ attributes.cGap = getNumber(attributes.cGap, colGapField);
+
+ attributes.tableInsets.top =
+ getNumber(attributes.tableInsets.top, tableInsetFields[0]);
+ attributes.tableInsets.left =
+ getNumber(attributes.tableInsets.left, tableInsetFields[1]);
+ attributes.tableInsets.right =
+ getNumber(attributes.tableInsets.right, tableInsetFields[2]);
+ attributes.tableInsets.bottom =
+ getNumber(attributes.tableInsets.bottom, tableInsetFields[3]);
+
+ attributes.tablePosition = getString(tablePositionBox);
+ attributes.tableFill = getString(tableFillBox);
+
+ attributes.insets.top =
+ getNumber(attributes.insets.top, tableCellInsetFields[0]);
+ attributes.insets.left =
+ getNumber(attributes.insets.left, tableCellInsetFields[1]);
+ attributes.insets.right =
+ getNumber(attributes.insets.right, tableCellInsetFields[2]);
+ attributes.insets.bottom =
+ getNumber(attributes.insets.bottom, tableCellInsetFields[3]);
+
+ attributes.position = getString(tableCellPositionBox);
+ attributes.fill = getString(tableCellFillBox);
+ attributes.rWeight = getNumber(attributes.rWeight, tableRowWeightField);
+ attributes.cWeight = getNumber(attributes.cWeight, tableColWeightField);
+
+ return attributes;
+}
+
+void
+setTableAttributes(
+ TableAttributes attributes)
+{
+ ignoreEvents = true;
+
+ columnsField.setText(Integer.toString(attributes.columns));
+ rowGapField.setText(Integer.toString(attributes.rGap));
+ colGapField.setText(Integer.toString(attributes.cGap));
+
+ tableInsetFields[0].setText(
+ Integer.toString(attributes.tableInsets.top));
+ tableInsetFields[1].setText(
+ Integer.toString(attributes.tableInsets.left));
+ tableInsetFields[2].setText(
+ Integer.toString(attributes.tableInsets.right));
+ tableInsetFields[3].setText(
+ Integer.toString(attributes.tableInsets.bottom));
+
+ tablePositionBox.setSelectedItem(attributes.tablePosition);
+ tableFillBox.setSelectedItem(attributes.tableFill);
+
+ tableCellInsetFields[0].setText(
+ Integer.toString(attributes.insets.top));
+ tableCellInsetFields[1].setText(
+ Integer.toString(attributes.insets.left));
+ tableCellInsetFields[2].setText(
+ Integer.toString(attributes.insets.right));
+ tableCellInsetFields[3].setText(
+ Integer.toString(attributes.insets.bottom));
+
+ tableCellPositionBox.setSelectedItem(attributes.position);
+ tableCellFillBox.setSelectedItem(attributes.fill);
+ tableRowWeightField.setText(Integer.toString(attributes.rWeight));
+ tableColWeightField.setText(Integer.toString(attributes.cWeight));
+
+ tableAttributesField.setText(attributes.toString());
+
+ ignoreEvents = false;
+}
+
+Attributes
+getAttributes()
+{
+ Attributes attributes = new Attributes();
+
+ attributes.insets.top =
+ getNumber(attributes.insets.top, insetFields[0]);
+ attributes.insets.left =
+ getNumber(attributes.insets.left, insetFields[1]);
+ attributes.insets.right =
+ getNumber(attributes.insets.right, insetFields[2]);
+ attributes.insets.bottom =
+ getNumber(attributes.insets.bottom, insetFields[3]);
+
+ attributes.position = getString(positionBox);
+ attributes.fill = getString(fillBox);
+ attributes.rWeight = getNumber(attributes.rWeight, rowWeightField);
+ attributes.cWeight = getNumber(attributes.cWeight, colWeightField);
+ attributes.column = getNumber(attributes.column, colPositionField);
+ attributes.skip = getNumber(attributes.skip, skipCellsField);
+ attributes.rSpan = getNumber(attributes.rSpan, rowSpanField);
+ attributes.cSpan = getNumber(attributes.cSpan, colSpanField);
+
+ return attributes;
+}
+
+void
+setAttributes(
+ Attributes attributes)
+{
+ ignoreEvents = true;
+
+ insetFields[0].setText(Integer.toString(attributes.insets.top));
+ insetFields[1].setText(Integer.toString(attributes.insets.left));
+ insetFields[2].setText(Integer.toString(attributes.insets.right));
+ insetFields[3].setText(Integer.toString(attributes.insets.bottom));
+
+ positionBox.setSelectedItem(attributes.position);
+ fillBox.setSelectedItem(attributes.fill);
+ rowWeightField.setText(Integer.toString(attributes.rWeight));
+ colWeightField.setText(Integer.toString(attributes.cWeight));
+ colPositionField.setText(Integer.toString(attributes.column));
+ skipCellsField.setText(Integer.toString(attributes.skip));
+ rowSpanField.setText(Integer.toString(attributes.rSpan));
+ colSpanField.setText(Integer.toString(attributes.cSpan));
+
+ cellAttributesField.setText(attributes.toString());
+
+ ignoreEvents = false;
+}
+
+int
+getNumber(
+ int defaultValue,
+ JTextField field)
+{
+ String text = field.getText().trim();
+ if (text.length() == 0) return defaultValue;
+
+ int value = 0;
+ try {
+ value = Integer.parseInt(text);
+ }
+ catch (NumberFormatException e) {}
+
+ return value;
+}
+
+String
+getString(
+ JComboBox box)
+{
+ return (String)box.getSelectedItem();
+}
+
+void
+enableAttributes(
+ boolean enable)
+{
+ positionBox.setEnabled(enable);
+ fillBox.setEnabled(enable);
+ rowWeightField.setEnabled(enable);
+ colWeightField.setEnabled(enable);
+ colPositionField.setEnabled(enable);
+ skipCellsField.setEnabled(enable);
+ rowSpanField.setEnabled(enable);
+ colSpanField.setEnabled(enable);
+
+ for (int i = 0; i < 4; i++) {
+ insetFields[i].setEnabled(enable);
+ }
+}
+
+void
+generateCode()
+{
+ tableAttributes = getTableAttributes();
+
+ String indent = "";
+ String containerName = "";
+
+ StringBuffer code = new StringBuffer(
+ indent + "// Code generated by Table Explorer V1.0\n" +
+ indent +
+ "// Copyright © 2004, Antonio Freixas\n" +
+ indent + "// All Rights Reserved.\n" +
+ indent + "// tony@freixas.org\n\n" +
+ indent + "// Define the table layout\n\n" +
+ indent + "JPanel panel = new JPanel(new TableLayout(" +
+ "\"" + tableAttributes.toString().trim() + "\"));\n\n");
+
+ for (int i = 0; i < compListModel.size(); i++) {
+ String name = (String)compListModel.elementAt(i);
+ Attributes attr = (Attributes)attrHash.get(name);
+ String sAttr = attr.toString().trim();
+ code.append(
+ indent + "panel.add(new JButton(\"" + name + "\"" +
+ (sAttr.length() > 0 ? ", \"" + sAttr + "\"" : "") + "));\n");
+ }
+
+ codeTextArea.setText(code.toString());
+}
+
+//**********************************************************************
+// Protected
+//**********************************************************************
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+class TableAttributes
+{
+
+// Table-only options
+
+int columns = 1;
+int rGap = 0;
+int cGap = 0;
+Insets tableInsets = new Insets(0, 0, 0, 0);
+String tablePosition = "Default";
+String tableFill = "Default";
+
+// Table/cell options
+
+Insets insets = new Insets(0, 0, 0, 0);
+String position = "Default";
+String fill = "Default";
+int rWeight = 0;
+int cWeight = 0;
+
+public String
+toString()
+{
+ StringBuffer b = new StringBuffer();
+
+ if (columns != 1) {
+ b.append("cols=" + columns + " ");
+ }
+
+ if (rGap != 0) {
+ b.append("rgap=" + rGap + " ");
+ }
+ if (cGap != 0) {
+ b.append("cgap=" + cGap + " ");
+ }
+
+ if (tableInsets.top != 0) {
+ b.append("titop=" + tableInsets.top + " ");
+ }
+ if (tableInsets.bottom != 0) {
+ b.append("tibottom=" + tableInsets.bottom + " ");
+ }
+ if (tableInsets.left != 0) {
+ b.append("tileft=" + tableInsets.left + " ");
+ }
+ if (tableInsets.right != 0) {
+ b.append("tiright=" + tableInsets.right + " ");
+ }
+
+ if (!"Default".equals(tablePosition)) {
+ b.append(tablePosition + " ");
+ }
+ if (!"Default".equals(tableFill)) {
+ b.append(tableFill + " ");
+ }
+
+ if (insets.top != 0) {
+ b.append("itop=" + insets.top + " ");
+ }
+ if (insets.bottom != 0) {
+ b.append("ibottom=" + insets.bottom + " ");
+ }
+ if (insets.left != 0) {
+ b.append("ileft=" + insets.left + " ");
+ }
+ if (insets.right != 0) {
+ b.append("iright=" + insets.right + " ");
+ }
+
+ if (!"Default".equals(position)) {
+ b.append(position + " ");
+ }
+ if (!"Default".equals(fill)) {
+ b.append(fill + " ");
+ }
+
+ if (rWeight != 0) {
+ b.append("rweight=" + rWeight + " ");
+ }
+ if (cWeight != 0) {
+ b.append("cweight=" + cWeight + " ");
+ }
+
+ return new String(b);
+}
+
+}
+
+class Attributes
+{
+
+Insets insets = new Insets(0, 0, 0, 0);
+String position = "Default";
+String fill = "Default";
+int rWeight = 0;
+int cWeight = 0;
+int column = -1;
+int skip = 0;
+int rSpan = 1;
+int cSpan = 1;
+
+public String
+toString()
+{
+ StringBuffer b = new StringBuffer();
+
+ if (insets.top != tableAttributes.insets.top) {
+ b.append("itop=" + insets.top + " ");
+ }
+ if (insets.bottom != tableAttributes.insets.bottom) {
+ b.append("ibottom=" + insets.bottom + " ");
+ }
+ if (insets.left != tableAttributes.insets.left) {
+ b.append("ileft=" + insets.left + " ");
+ }
+ if (insets.right != tableAttributes.insets.right) {
+ b.append("iright=" + insets.right + " ");
+ }
+
+ if (!"Default".equals(position)) {
+ b.append(position + " ");
+ }
+ if (!"Default".equals(fill)) {
+ b.append(fill + " ");
+ }
+
+ if (rWeight != tableAttributes.rWeight) {
+ b.append("rweight=" + rWeight + " ");
+ }
+ if (cWeight != tableAttributes.cWeight) {
+ b.append("cweight=" + cWeight + " ");
+ }
+
+ if (column != -1) {
+ b.append("col=" + column + " ");
+ }
+
+ if (skip != 0) {
+ b.append("skip=" + skip + " ");
+ }
+
+ if (rSpan != 1) {
+ b.append("rspan=" + rSpan + " ");
+ }
+ if (cSpan != 1) {
+ b.append("cspan=" + cSpan + " ");
+ }
+
+ return new String(b);
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/TableLayout/doc/examples.html b/libs/FLib/TableLayout/doc/examples.html
new file mode 100644
index 0000000..7f8217f
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/examples.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Examples</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Examples</h1>
+ <p>There are two example programs provided for TableLayout.</p>
+ <p>The <a href="example/Example1.java">Example1</a> program compares TableLayout
+ with GridBagLayout. It uses the code found on the API page for GridBagLayout
+ and then adds code to create
+ the equivalent layout using TableLayout.</p>
+ <p>I hope the TableLayout version is much easier to understand. It's definitely
+ a lot shorter!</p>
+ <p>The second program is called
+ <a href="example/TableExplorer.java">TableExplorer</a>. While you are
+ free to examine the code, it is really a tool you run to learn how to
+ use the TableLayout.</p>
+ <p>If you download the FLib source, you can use Ant to build and run
+ the example programs:</p>
+ <pre>cd TableLayout
+ant runExample1
+ant runTableExplorer</pre>
+ <p>The Example1 class will display two windows, one created using GridBagLayout
+ and the other using TableLayout. You can resize the windows to verify
+ that
+ the behavior
+ is
+ identical.</p>
+ <p>When you run the TableExplorer program, it will display a text field
+ at the bottom with the words &quot;Start Here!&quot; and an Add button
+ next to it. You create JButton components by entering the component name
+ (which
+ also
+ becomes its label) and pressing the Add button. Each component added
+ shows up in the list above the text field.</p>
+ <p>Selecting <em>Window / Show Preview Window</em> from the menu will bring up a
+ window containing the JButtons. You can then set the table attributes
+ and table cell defaults to control the table layout. You can also select
+ a component from the list and set its cell attributes. Your changes should
+ be reflected immediately in the preview window.</p>
+ <p>You can also display a code window which will show you the code necessary
+ to generate the displayed layout.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/doc/features.html b/libs/FLib/TableLayout/doc/features.html
new file mode 100644
index 0000000..47bf332
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/features.html
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Features</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Features</h1>
+ <p>The main features of TableLayout are:</p>
+ <ul>
+ <li>Easy to use.</li>
+ <li>Efficient.</li>
+ <li>Inspired by the HTML table element.</li>
+ <li>Text attributes are used to control a component's layout. These are
+ fairly easy to remember, both when creating the layout and when reviewing
+ an existing layout.</li>
+ <li>Attributes can also be set for the table itself.</li>
+ <li>Default component attributes can be set to simplify entry.</li>
+ <li>Can duplicate any layout created with GridBagLayout, but usually
+ with much fewer lines of code.</li>
+ <li>Components are laid out as they are added, with rows added automatically
+ as needed.</li>
+ </ul>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/doc/images/Logo.png b/libs/FLib/TableLayout/doc/images/Logo.png
new file mode 100644
index 0000000..db18dce
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/Logo.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/screenshot1.png b/libs/FLib/TableLayout/doc/images/screenshot1.png
new file mode 100644
index 0000000..ac7a594
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/screenshot1.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/screenshot2.png b/libs/FLib/TableLayout/doc/images/screenshot2.png
new file mode 100644
index 0000000..c669bce
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/screenshot2.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial1.png b/libs/FLib/TableLayout/doc/images/tutorial1.png
new file mode 100644
index 0000000..c441e32
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial1.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial2.png b/libs/FLib/TableLayout/doc/images/tutorial2.png
new file mode 100644
index 0000000..a197850
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial2.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial3.png b/libs/FLib/TableLayout/doc/images/tutorial3.png
new file mode 100644
index 0000000..4e2c0f4
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial3.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial4.png b/libs/FLib/TableLayout/doc/images/tutorial4.png
new file mode 100644
index 0000000..b01cfbd
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial4.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial5.png b/libs/FLib/TableLayout/doc/images/tutorial5.png
new file mode 100644
index 0000000..3871325
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial5.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial6.png b/libs/FLib/TableLayout/doc/images/tutorial6.png
new file mode 100644
index 0000000..533c57c
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial6.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial7.png b/libs/FLib/TableLayout/doc/images/tutorial7.png
new file mode 100644
index 0000000..8744c42
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial7.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/images/tutorial8.png b/libs/FLib/TableLayout/doc/images/tutorial8.png
new file mode 100644
index 0000000..bf92254
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/images/tutorial8.png
Binary files differ
diff --git a/libs/FLib/TableLayout/doc/index.html b/libs/FLib/TableLayout/doc/index.html
new file mode 100644
index 0000000..7a60e27
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/index.html
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Introduction</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Introduction</h1>
+ <p>Hi! My name is Tony Freixas and I am currently working on an application
+ that I intend to release as Open Source. In the process of building the
+ application, I am using as many Open Source classes and components as
+ I can find.</p>
+ <p>In some cases, I have been disappointed with what I have found on the
+ web:</p>
+ <ul>
+ <li>Classes that are not free.</li>
+ <li>Classes with restrictive licensing.</li>
+ <li>Classes which ignore internationalization.</li>
+ <li>Classes which are not easy to use.</li>
+ <li>Components which are limited with respect to the Look &amp; Feel that
+ can be used.</li>
+ </ul>
+ <p>When I have not found a suitable Java class, I have implemented my own.
+ I have decided to release these for use by others as part of a library
+ I call FLib.</p>
+ <p>Currently, there are three components available in FLib and I have chosen
+ to make them completely independent of each other. In the future, you
+
+ may have to load some common code in order to use the FLib classes.</p>
+ <p>These web pages are for the TableLayout manager. Use the
+ links on the left to learn more.</p>
+ <p><a href="http://sourceforge.net/donate/index.php?group_id=113939"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" title=""/></a></p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/doc/resources.html b/libs/FLib/TableLayout/doc/resources.html
new file mode 100644
index 0000000..3300cad
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/resources.html
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Other Resources</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Other Resources</h1>
+ <p>Back in 2000, I started thinking about creating a table layout manager
+ that would be as easy-to-use as HTML tables. I looked on the internet
+ for existing solutions and found several. One I particularly liked had
+ a user interface quite similar to the TableLayout I provide. However,
+ it had subtle bugs which were not easy to fix given the existing architecture.
+ This caused me to write my own version from scratch while retaining
+ many of its good UI ideas.</p>
+ <p>Unfortunately, I no longer have a pointer to that TableLayout or the
+ author who wrote it. I found a <a href="http://www.squarebox.co.uk/download/table.html">version</a> that has an interface similar
+ to mine and may have been the original inspiration, although I cannot
+ verify it.</p>
+ <p>My version of TableLayout appears now through the courtesy of <a href="http://www.credence.com/">Credence
+ Systems Corporation</a>, who holds the copyright and has allowed me to release
+ the code under the Artistic License.</p>
+ <p>The most well-known <a href="http://www.clearthought.info/software/TableLayout/">TableLayout</a> is
+ written by Daniel Barbalace. I've used this version, but I dislike its
+ approach of having to define row widths and column heights in advance.
+ As I recall, if you want row or column gaps, these had to be treated
+ as empty rows and columns.</p>
+ <p>My TableLayout is for lazier designers: Other
+ than specifying the number of columns, you can decide on additional
+ settings as you add components. Row and column gaps, which I
+ use often and which I almost always want to be a consistent size, can
+ be set with two simple attributes specified when the layout manager is
+ created.</p>
+ <p>There are many other TableLayout managers. Obviously a lot of people
+ had the same idea! Rather than try to list all others, I suggest you
+ do a Google search.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/doc/screenshots.html b/libs/FLib/TableLayout/doc/screenshots.html
new file mode 100644
index 0000000..ec37ca8
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/screenshots.html
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Screen Shots</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Screen Shots</h1>
+ <p>This is a the initial appearance
+ of a set of JButton's in a JPanel as laid out by TableLayout (from the
+ <a href="examples.html">Example1</a> program). </p>
+ <p align="center"><img src="images/screenshot1.png" width="312" height="130" /></p>
+ <p>This is the same JPanel resized larger.</p>
+ <p align="center"><img src="images/screenshot2.png" width="460" height="353" /></p>
+ <p>Additional
+ screen shots available on the <a href="tutorial.html">Tutorial</a> page.</p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/doc/stylesheet.css b/libs/FLib/TableLayout/doc/stylesheet.css
new file mode 100644
index 0000000..dc693da
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/stylesheet.css
@@ -0,0 +1,48 @@
+body {
+ font-family: Arial, Helvetica, sans-serif;
+ background: white:
+ color: black;
+}
+
+td {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+th {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+#sidebar {
+ font-family: "Times New Roman", Times, serif;
+ font-weight: bold;
+ font-style: italic;
+ font-size: 20px;
+}
+
+#content {
+ font-size: 100%;
+}
+
+a:visited {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:link {
+ color: #8080FF;
+ text-decoration: none;
+}
+
+a:hover {
+ color: #C00000;
+ text-decoration: none;
+}
+
+a:active {
+ color: #C00000;
+ text-decoration: none;
+}
+
+pre {
+ margin-left: 1em;
+}
diff --git a/libs/FLib/TableLayout/doc/tutorial.html b/libs/FLib/TableLayout/doc/tutorial.html
new file mode 100644
index 0000000..5522d3f
--- /dev/null
+++ b/libs/FLib/TableLayout/doc/tutorial.html
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/TableLayout.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>TableLayout - Tutorial</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="index.html">Introduction</a></p>
+ <p><a href="features.html">Features</a></p>
+ <p><a href="screenshots.html">Screen<br />
+ shots</a></p>
+ <p><a href="tutorial.html">Tutorial</a></p>
+ <p><a href="examples.html">Examples</a></p>
+ <p><a href="api/index.html">API<br />
+ documentation</a></p>
+ <p><a href="https://sourceforge.net/project/showfiles.php?group_id=113939">Download</a></p>
+ <p><a href="resources.html">Other<br />
+ resources</a></p>
+ <p><a href="../../index.html">Return to<br />
+ FLib </a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p> </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Tutorial</h1>
+ <h2>TableLayout</h2>
+ <p>This layout manager was loosely inspired by the HTML table. It has all
+ the power of the GridBagLayout, but is much easier to use.</p>
+ <h3>The Layout Manager Concept</h3>
+ <p>Container is a Component class which contains one or more other components.
+ Every container has a layout manager which arranges the positions and
+ sizes of the components in the container. </p>
+ <p>The container is given a certain
+ amount of screen space for its components. The layout manager then
+ needs to figure out how to size and position the container's components
+ within
+ this space. It can use any algorithm it wants. It does not need to
+ fill all the space nor does it need to prevent components from overlapping.</p>
+ <h3>The TableLayout</h3>
+ <p>The TableLayout lays out components in a table format. The table has
+ rows and columns which are typically not all the same width or height
+ (if you need constant width and height, consider using the GridLayout). </p>
+ <p>You usually need
+ to define the number of columns in the table (the default is 1, which
+ is typically not what you want). As components are added to the container,
+ they are placed in the next available column of the current row. When
+ a row is filled, the next component adds a row and is placed in the first
+ column.</p>
+ <p>Consider this code:</p>
+ <pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3&quot;));
+panel.add(new JButton(&quot;0&quot;));
+panel.add(new JButton(&quot;1&quot;));
+panel.add(new JButton(&quot;2&quot;));
+panel.add(new JButton(&quot;3&quot;));
+panel.add(new JButton(&quot;4&quot;));
+</pre>
+ <p>This generates the following layout:</p>
+ <p align="center"><img src="images/tutorial1.png" width="213" height="139" /></p>
+ <p align="left">I started numbering with &quot;0&quot; because, for the TableLayout,
+ the first column is column 0. In this example, we see a three-column
+ table, with each JButton component added to the next available column.
+ Since there are only five components, the last &quot;slot&quot; is left empty.</p>
+ <h3>Attributes</h3>
+ <p>The above example is very simple because only one attribute was given
+ to the TableLayout (&quot;cols=5&quot;). Attributes are instructions to the TableLayout
+ which tell it how to lay out each component in the table or the table
+ as a whole. </p>
+ <p>The format of the attributes is similar to HTML attributes. The attributes
+ are case insensitive and can be separated with any white space. Attributes
+ which take a value are followed by an '=' and then an integer. Here's
+ an example: &quot;cols=6 rgap=2 cgap=5 w&quot;.</p>
+ <p>Attributes are evaluated from left to right. If you duplicate an attribute,
+ the right-most one wins.</p>
+ <p>Some attributes apply only to the table as whole. You pass them in a
+ String given either in the TableLayout constructor or in the <code>setTableAttributes()</code>
+ method.</p>
+ <p>The remaining attributes apply to the components in the container. Of
+ these, some can also be specified along with the table attributes. These
+ become the defaults for all components in the table. This is one of the
+ features which makes the TableLayout easy to use.</p>
+ <p>Here is the complete list of attributes:</p>
+ <table border="1" cellpadding="3" cellspacing="0">
+ <tr bgcolor="#CCCCFF">
+ <td><b>Name</b></td>
+ <td><b>Description</b></td>
+ <td><b>Has Value?</b></td>
+ <td><b>Default</b></td>
+ <td><b>Scope</b></td>
+ </tr>
+ <tr bgcolor="white">
+ <td>cols</td>
+ <td>Number of columns</td>
+ <td>Yes</td>
+ <td>1</td>
+ <td>Table</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>col</td>
+ <td>Place Component in this column</td>
+ <td>Yes</td>
+ <td>Next empty column</td>
+ <td>Component</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>skip</td>
+ <td>Skip a number of columns</td>
+ <td>Yes</td>
+ <td>0</td>
+ <td>Component</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>rspan, cspan</td>
+ <td>Row and column spanning</td>
+ <td>Yes</td>
+ <td>1</td>
+ <td>Component</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>titop, tibottom, tileft, tiright</td>
+ <td>Table insets</td>
+ <td>Yes</td>
+ <td>0</td>
+ <td>Table</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>rgap, cgap</td>
+ <td>Row and column gaps</td>
+ <td>Yes</td>
+ <td>0</td>
+ <td>Table</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>itop, ibottom, ileft, iright</td>
+ <td>Component insets</td>
+ <td>Yes</td>
+ <td>0</td>
+ <td>Table/Component</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>tn, tne, te, tse, ts, tsw, tw, tnw, tc, tf, tfh, tfv</td>
+ <td>Table placement and fill</td>
+ <td>No</td>
+ <td>tf</td>
+ <td>Table</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>n, ne, e, se, s, sw, w, nw, c, f, fh, fv</td>
+ <td>Component placement and fill</td>
+ <td>No</td>
+ <td>f</td>
+ <td>Table/Component</td>
+ </tr>
+ <tr bgcolor="white">
+ <td>rweight, cweight</td>
+ <td>Row and column weights</td>
+ <td>Yes</td>
+ <td>0</td>
+ <td>Table/Component</td>
+ </tr>
+ </table>
+ <h3>Rows and Columns</h3>
+ <p>As I stated above, you will almost always specify the number of columns
+ in the table. Components are then placed in the table from left to right,
+ adding new rows as necessary.</p>
+ <p>You can override the default component placement somewhat with &quot;col&quot;
+ and &quot;skip&quot;.
+ With &quot;col&quot;, you specify the column number in which the component
+ should be placed. If you have already passed the given column, the layout
+ adds another row and places the Component in the column on that new row.</p>
+ <p> &quot;skip&quot; allows you to skip a number of cells. If the layout reaches
+ the end of the row, skipping continues on the next row.</p>
+ <p> You can also make a component span multiple rows or columns with rspan
+ and cspan. Components added later will skip over any occupied cells,
+ which is important to note for row spanning.</p>
+ <p>Let's take the example above and make it use these attributes:</p>
+ <pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3&quot;));
+panel.add(new JButton(&quot;0&quot;));
+panel.add(new JButton(&quot;1&quot;),&quot;skip=1&quot;);
+panel.add(new JButton(&quot;2&quot;), &quot;col=1&quot;);
+panel.add(new JButton(&quot;3&quot;), &quot;rspan=2&quot;);
+panel.add(new JButton(&quot;4&quot;), &quot;cspan=2&quot;);</pre>
+ <p align="center"><img src="images/tutorial2.png" width="232" height="204" /></p>
+ <h3>Spacing</h3>
+ The space the TableLayout works with is inside the container's insets.
+ Some containers have insets of 0 (e.g. JPanel) and most don't allow you
+ to alter the insets. Since you will often want to control the space between
+ the table and the edges of the container,
+an &quot;extra&quot; table inset can be given: titop, tibottom, tileft and tiright
+(in
+the &quot;ti&quot; prefix, the &quot;t&quot; stands for &quot;table&quot; and
+the &quot;i&quot; stands
+for &quot;inset&quot;).
+<p> Within a cell, you can create space between the cells edges and the component
+ in the cell. The attributes are itop, ibottom, ileft and iright.</p>
+<p>You can also add space between cells in the table. This space is <em>only</em> placed
+ between cells; never along the edges of the table. This allows you to nest
+ table layouts and keep consistent cell spacing. The attributes used are rgap
+ and cgap and their default value is 0.</p>
+<p>Here is our example with the addition of table and cell insets plus cell spacing.
+ Note that we specify the cell insets and spacing when we define the table attributes.
+ This means that all components will get the same insets and spacing without
+ having to duplicate this information for each individual component. We override
+ the default insets for one of the components.</p>
+<pre>JPanel panel = new JPanel(
+ new TableLayout(
+ &quot;cols=3 rgap=3 cgap=3 &quot; +
+ &quot;titop=5 tibottom=5 tileft=5 tiright=5 &quot; +
+ &quot;itop=2 ibottom=2 ileft=2 iright=2&quot;));
+panel.add(new JButton(&quot;0&quot;));
+panel.add(new JButton(&quot;1&quot;), &quot;skip=1&quot;);
+panel.add(new JButton(&quot;2&quot;), &quot;itop=0 ibottom=0 ileft=0 iright=0 col=1&quot;);
+panel.add(new JButton(&quot;3&quot;), &quot;rspan=2&quot;);
+panel.add(new JButton(&quot;4&quot;), &quot;cspan=2&quot;);</pre>
+<p>Here's what we get:</p>
+<p align="center"><img src="images/tutorial3.png" width="260" height="226" /></p>
+<h3>Placement and Filling</h3>
+<p> Given that you have something to draw and a space to draw it in, you have
+ some choices as to where to place it and how to fill it, particularly when
+ the available area is bigger than required. So far, except for the insets,
+ we've allowed the table to completely fill the available container space and
+ we've
+ allowed each component to completely fill its table cell.</p>
+<p> Placement attributes allow you to place a component centered or in one of
+ eight compass directions within its cell. It's easier to demonstrate than to
+ describe:</p>
+<pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3&quot;));
+panel.add(new JButton(&quot;1&quot;), &quot;nw&quot;);
+panel.add(new JButton(&quot;2&quot;), &quot;n&quot;);
+panel.add(new JButton(&quot;3&quot;), &quot;ne&quot;);
+panel.add(new JButton(&quot;4&quot;), &quot;w&quot;);
+panel.add(new JButton(&quot;5&quot;), &quot;c&quot;);
+panel.add(new JButton(&quot;6&quot;), &quot;e&quot;);
+panel.add(new JButton(&quot;7&quot;), &quot;sw&quot;);
+panel.add(new JButton(&quot;8&quot;), &quot;s&quot;);
+panel.add(new JButton(&quot;9&quot;), &quot;se&quot;);</pre>
+<p align="center"><img src="images/tutorial4.png" width="204" height="138" /></p>
+<p>Using the placement attributes, a component is left at its preferred size.
+ Then it is moved to the designated edge or corner (or center) of the cell.</p>
+<p>There are placement attributes for the table itself. These are just like the
+ component placement attributes, but start with a &quot;t&quot;. You can find these in
+ the attribute table above. Like the component, the table is set to its preferred
+ size and moved to the edge, corner or center of the container.</p>
+<p>The entire table can be placed within the container using tn, tne, te, tse,
+ ts, tsw, tw, tnw and tc (the &quot;t&quot; prefix is for &quot;table&quot;).</p>
+<p> Fill attributes allow you to fill the item to cover all available space.
+ Horizontal and vertical filling are handled separately. For tables, the attributes
+ are tfh, tfv and tf. &quot;tf&quot; fills in both directions. For Components, use
+ fh, fv and f. For instance, if we change just the first line of the example
+ to:</p>
+<pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3 tnw&quot;));
+</pre>
+<p>We get</p>
+<p align="center"><img src="images/tutorial5.png" width="204" height="138" /></p>
+<p>The table is at its preferred size and placed in the northwest
+ corner of the container. Since the preferred sizes of the buttons are all the
+ same, the cells appeared to be filled even though they still have the same
+ placement attributes as before.</p>
+<p>Instead of placing a component within a cell, you can have it stretch to fill
+ the cell, either vertically, horizontally or both. Here's our example:</p>
+<pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3&quot;));
+panel.add(new JButton(&quot;1&quot;), &quot;c fh&quot;);
+panel.add(new JButton(&quot;2&quot;), &quot;f&quot;);
+panel.add(new JButton(&quot;3&quot;), &quot;c fh&quot;);</pre>
+<p align="center"><img src="images/tutorial6.png" width="261" height="67" /></p>
+<p>Since the default is &quot;f&quot;, we turn off filling by using &quot;c&quot;. Then we can fill
+ horizontally, vertically or in both directions. </p>
+<p>The &quot;f&quot; in the second component
+ is redundant, since this is the default. But keep in mind that you can define
+ the default placement or fill by specifying it in the table attributes.
+ For example,</p>
+<pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=3 nw&quot;));</pre>
+<p>would place all components in the top left corner of each cell, unless a
+ component overrides the default.</p>
+<p>When combining placement and fill attributes, the rules are:</p>
+<ul>
+ <li>Placement attributes turn off all filling.</li>
+ <li>Fill attributes turn off placement, but only in the fill direction.</li>
+ </ul>
+<p>So, for example, &quot;n fh&quot; will stretch a component horizontally, but will attach
+ its top edge at the top of the cell.</p>
+<h3>Weighting</h3>
+<p>By setting the &quot;weight&quot; of each row or column, you can control how the rows
+ and columns are allocated space when there is more space available than is
+ needed (given the preferred sizes of the components).</p>
+<p>The default is to equally distribute the extra space to all cells. This is
+ not always what you want. Sometimes you'd like some rows or columns to stretch
+ while others stay a fixed size. This is easy to do: assign the rows and columns
+ you want to stretch a weight of 1 (&quot;rweight&quot; for row weight and &quot;cweight&quot; for
+ column weight). Here's an example. To keep it simple, we'll stretch components
+ &quot;1&quot; and &quot;3&quot; horizontally, while the rest of the components are fixed.</p>
+<pre>JPanel panel = new JPanel(new TableLayout(&quot;cols=5&quot;));
+panel.add(new JButton(&quot;0&quot;));
+panel.add(new JButton(&quot;1&quot;), &quot;cweight=1&quot;);
+panel.add(new JButton(&quot;2&quot;));
+panel.add(new JButton(&quot;3&quot;), &quot;cweight=1&quot;);
+panel.add(new JButton(&quot;4&quot;));</pre>
+<p align="center"><img src="images/tutorial7.png" width="205" height="26" /></p>
+<p align="center"><img src="images/tutorial8.png" width="314" height="26" /></p>
+<p>There are a few things to keep in mind about weighting. The weight of a row
+ is the largest weight of any component in the row. The advantage is that you
+ only have to set the row weight for one component in a row and the column weight
+ for one component in the column.</p>
+<p>Keep in mind that assigning the same weight to two rows or columns does
+ not make them the same size! Weighting only describes how <em>excess</em> space
+ is distributed to the cells. If the two components have different preferred
+ sizes, the row or column sizes won't be equal.</p>
+<p>Also remember that what we resize is the cell, not the component! If you want
+ the component to stretch, make sure it fills in the appropriate direction.</p>
+<p>There's a subtlety to weighting: weighting is only used when there is excess
+ space available given the components' preferred sizes. When there is not enough
+ space for preferred sizes, space is taken away from cells equally, regardless
+ of the weighting. However, components that shrink to their minimum allowed
+ size will not shrink further.</p>
+<p>There is further detail on all attributes, but particularly on weighting in
+ the <a href="api/org/freixas/tablelayout/TableLayout.html">TableLayout API</a>.</p>
+<h3>Summary</h3>
+<p> The TableLayout is both powerful and easy-to-use. After reading this tutorial,
+ you should examine the <a href="examples.html">example programs</a> provided.
+ One program places TableLayout head-to-head with GridBagLayout. The
+ other example simulates the GridBagExplorer written by Eric Burke. I call it
+ TableExplorer. It allows you to place some JButtons in a container and dynamically
+ change the table and component attributes. I used this program to create the
+ examples on this page.</p>
+<!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/TableLayout/org/freixas/tablelayout/TableLayout.java b/libs/FLib/TableLayout/org/freixas/tablelayout/TableLayout.java
new file mode 100644
index 0000000..870115d
--- /dev/null
+++ b/libs/FLib/TableLayout/org/freixas/tablelayout/TableLayout.java
@@ -0,0 +1,2049 @@
+//**********************************************************************
+// Package
+//*********************************************************************
+
+package org.freixas.tablelayout;
+
+//**********************************************************************
+// Import list
+//**********************************************************************
+
+import java.awt.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+
+/**
+ * This layout was inspired by the HTML table: it lays out components
+ * much like the HTML table lays out table data. It is as capable as
+ * the GridBagLayout, but much easier to use.
+ * <h3>Attributes</h3>
+ * <p>
+ * When you create a TableLayout, you pass in a String which defines a
+ * set of attributes for the table. The TableLayout is then assigned
+ * to a Container. As you add each Component to the Container, you can
+ * also associate the Component with its own set of attributes.
+ * <p>
+ * The format of the attributes is similar to HTML attributes. The
+ * attributes are case insensitive and can be separated with
+ * any whitespace. Attributes which take a value are followed by an
+ * '=' and then an integer. Here's an example: "cols=6 rgap=2 cgap=5
+ * w".
+ * <p>
+ * Attributes are evaluated from left to right. If you duplicate an
+ * attribute, the right-most one wins.
+ * <p>All attributes can be specified for both the table and the
+ * individual Components. Some attributes are only used by the table,
+ * some are only used by the Components and some are used by both: the
+ * table instance is the default which each Component can override.
+ * <h3>Rows and Columns</h3>
+ * <p>
+ * When you create a table, you will almost always specify the number
+ * of columns in it. The default is 1. Columns are filled from left to
+ * right. When all columns are filled, a new row is automatically
+ * created.
+ * <p>
+ * You can override the default Component placement somewhat with "col"
+ * and "skip". col takes as a value, the column number in which the
+ * Component should be placed. Column numbers begin with 0. The
+ * default is to place the Component in the next available table cell.
+ * One caveat when using col is that if you have already passed the
+ * given column, the layout adds another row and places the Component
+ * in the column on that new row.
+ * <p>
+ * "skip" allows you to skip a number of cells. The default is 0. If
+ * the layout reaches the end of the row, skipping continues on the
+ * next row.
+ * <p>
+ * You can make a Component span multiple rows or columns with rspan
+ * and cspan. The default value for these is 1. Later components will
+ * skip over any occupied cells, which is particularly important to
+ * note for row spanning.
+ * <h3>Spacing</h3>
+ * The space the TableLayout works with is inside the Container's
+ * insets. Some Containers have insets of 0 (e.g. JPanel) and most
+ * don't allow you to alter the insets. Since you will often want to
+ * control the space between the table and the edges of the Container,
+ * an "extra" table inset can be given: titop, tibottom, tileft and
+ * tiright. Each of these takes a value, the pixel offset from the top,
+ * bottom, etc. The default value of each is 0.
+ * <p>
+ * You can create some space between cells in the table. This space is
+ * <em>only</em> placed between cells; never along the edges of the
+ * table. This allows you to nest table layouts and keep consistent
+ * cell spacing. The attributes used are rgap and cgap and their
+ * default value is 0.
+ * <p>
+ * Within a cell, you can also create some space between the cells
+ * edges and the Component in the cell. The attributes are itop,
+ * ibottom, ileft and iright. Their default value is 0.
+ * <h3>Placement and Filling</h3>
+ *<p>
+ * Given that you have something to draw and a space to draw it in,
+ * you have some choices as to where to place it and how to fill it,
+ * particularly when the drawing area is bigger than required.
+ * <p>
+ * Placement attributes allow you to place the item in one of eight
+ * compass directions or centered. The entire table can be placed
+ * within the container using tn, tne, te, tse, ts, tsw, tw, tnw and
+ * tc. Components can be placed within their cell using n, ne, e, se,
+ * s, sw, w, nw and c.
+ * <p>
+ * Fill attributes allow you to fill the item to cover all available
+ * space. Horizontal and vertical filling are handled separately. For
+ * tables, the attributes are tfh, tfv and tf. "tf" fills in both
+ * directions. For Components, use fh, fv and f.
+ * <p>
+ * Placement attributes turn off all filling. Fill attributes turn off
+ * placement, but only in the fill direction. So "n fh" will stretch a
+ * Component horizontally, but will place it at the "north" position
+ * (at the top of the cell).
+ * <p>
+ * The default value for both the table and the individual Components
+ * is to fill in both directions. You will almost always want to
+ * specify your own values.
+ * <h3>Weighting</h3>
+ * <p>
+ * When a table is filled, if the available space exceeds the space
+ * required, we stretch the table to fill the space. This implies that
+ * we have to stretch each cell. How much each cell should be filled
+ * is what weighting is all about. The attributes are rweight and
+ * cweight which take an integer weight factor. The default is 0.
+ * <p>
+ * Note that stretching a cell is not the same as stretching the
+ * Component inside the cell unless the component uses filling.
+ * <p>
+ * If you'd like some simple rules of thumbs, use these:
+ * <ul>
+ * <li>Assign a weight of 1 to rows or columns that you want to
+ * stretch (Also set the "f" attribute for the Components in that row
+ * or column!). Other rows and columns won't.
+ * <li>In some cases, you may want the table to fill while the
+ * components inside it don't. For example, you may want a JPanel's
+ * TitledBorder to fill the available space while the components in
+ * the JPanel stay at their preferred sizes. The solution is to fill
+ * the table, but set the component at the highest row and column
+ * position to have row and column weights of 1. Use "nw" position on
+ * all components in the last row or column. There are alternate
+ * solutions using nested layouts.
+ * </ul>
+ * <p>
+ * Ok, here are the dirty details.
+ * <p>
+ * If the available size is greater than the table's preferred size
+ * and table filling is enabled, weighting is used (they are otherwise
+ * ignored).
+ * <p>
+ * Weights are obtained by looking at each row and column and locating
+ * the largest weight; this becomes the row or column weight. If all
+ * weights are 0, we treat them as though they are all 1. We create
+ * a sum for all row weights and one for all column weights. This
+ * number defines the number of units into which the excess space will
+ * be divided.
+ * <p>
+ * For example, with three column weights of 1, 1, and 1, the space is
+ * divided into 3 units. If the excess space is 30 pixels, each unit
+ * is 10 pixels, which is the extra space each column receives. If the
+ * column weights were 0, 2, and 1, the space is still divided into 3
+ * units. But the column weights specify how many units each column
+ * receives. So, column 0 will receive nothing, column 1, 20 pixels
+ * and column 2, 10 pixels.
+ * <p>
+ * Keep in mind that rows and columns are handled separately. One may
+ * need filling and the other not.
+ * <p>
+ * When we don't have enough space for the preferred row or column
+ * sizes, we ignore the user-defined weights and treat each row or
+ * column as having equal weight. The approach then, is as above
+ * except that we are reducing cell sizes. Another difference is that
+ * no cell will be made smaller than its minimum size.
+ * <h3>Special Spanning Issues</h3>
+ * There are some special issues with row and column spanning. When
+ * determining minimum or preferred sizes, we need to know what
+ * portion of the Component's size to assign to each row and column
+ * that it spans. We solve this by doing two passes. In the first, we
+ * ignore spanning cells and determine row and column sizes without
+ * them. In the second pass, we look to see if the spanning Component
+ * will fit within the row and column sizes we determined. If not, we
+ * currently distribute the extra space based on the row or column
+ * weights of the rows or columns spanned. Someday, we may need to add
+ * attributes to provide more control.
+ * <p>
+ * The row and column weights given are applied to the row or column
+ * in which the Component begins.
+ * <p>
+ * <h3>Summary</h3>
+ * <p>
+ * This table summarizes the attribute information:
+ * <p>
+ * <table border="1" cellpadding="3" cellspacing="0">
+ * <tr bgcolor="#CCCCFF" id="TableHeadingColor">
+ * <td><b>Name</b></td>
+ * <td><b>Description</b></td>
+ * <td><b>Has Value?</b></td>
+ * <td><b>Default</b></td>
+ * <td><b>Scope</b></td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>cols</td>
+ * <td>Number of columns</td>
+ * <td>Yes</td>
+ * <td>1</td>
+ * <td>Table</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>col</td>
+ * <td>Place Component in this column</td>
+ * <td>Yes</td>
+ * <td>Next empty column</td>
+ * <td>Component</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>skip</td>
+ * <td>Skip a number of columns</td>
+ * <td>Yes</td>
+ * <td>0</td>
+ * <td>Component</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>rspan, cspan</td>
+ * <td>Row and column spanning</td>
+ * <td>Yes</td>
+ * <td>1</td>
+ * <td>Component</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>titop, tibottom, tileft, tiright</td>
+ * <td>Table insets</td>
+ * <td>Yes</td>
+ * <td>0</td>
+ * <td>Table</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>rgap, cgap</td>
+ * <td>Row and column gaps</td>
+ * <td>Yes</td>
+ * <td>0</td>
+ * <td>Table</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>itop, ibottom, ileft, iright</td>
+ * <td>Component insets</td>
+ * <td>Yes</td>
+ * <td>0</td>
+ * <td>Table/Component</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>tn, tne, te, tse, ts, tsw, tw, tnw, tc, tf, tfh, tfv</td>
+ * <td>Table placement and fill</td>
+ * <td>No</td>
+ * <td>tf</td>
+ * <td>Table</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>n, ne, e, se, s, sw, w, nw, c, f, fh, fv</td>
+ * <td>Component placement and fill</td>
+ * <td>No</td>
+ * <td>f</td>
+ * <td>Table/Component</td>
+ * </tr>
+ * <tr bgcolor="white">
+ * <td>rweight, cweight</td>
+ * <td>Row and column weights</td>
+ * <td>Yes</td>
+ * <td>0</td>
+ * <td>Table/Component</td>
+ * </tr>
+ * </table>
+ *
+ * @author Antonio Freixas
+ */
+
+// Copyright © 2000-2004 Credence Systems Corporation.
+// All Rights Reserved.
+
+public class TableLayout
+ implements LayoutManager2
+{
+
+//**********************************************************************
+// Private Members
+//**********************************************************************
+
+// This is the set of attributes applied to the table. Some attributes
+// are used as cell defaults. Cell-only attributes are ignored
+
+private Attributes tableAttributes;
+
+// Attributes for each component can be found in these hash tables
+
+private HashMap compAttributes = new HashMap();
+
+// These variables store information about the row/col arrangement of
+// the components. These are set by placeComponents()
+
+private int nRows = 0;
+private int nCols = 0;
+private Component[][] components = null;
+
+// We cache measureComponents() information so that it is recalculated
+// after invalidateLayout() is called
+
+private boolean useCacheMeasureResults = false;
+
+// These variables store sizing information set by measureComponents()
+
+private int[] minWidth;
+private int[] prefWidth;
+private int[] maxWidth;
+private int[] adjWidth;
+private int[] colWeight;
+
+private int[] minHeight;
+private int[] prefHeight;
+private int[] maxHeight;
+private int[] adjHeight;
+private int[] rowWeight;
+
+// These sizes are the minimum width for the table, not including
+// either the container's insets or the table's insets
+
+private int MinWidth = 0;
+private int MinHeight = 0;
+private int PrefWidth = 0;
+private int PrefHeight = 0;
+private int MaxWidth = 0;
+private int MaxHeight = 0;
+private int ColWeight = 0;
+private int RowWeight = 0;
+
+static private int classCount = 0;
+private int instanceCount = classCount++;
+
+//**********************************************************************
+// Constructors
+//**********************************************************************
+
+/**
+ * Construct a new TableLayout.
+ */
+
+public
+TableLayout()
+{
+ this(null);
+}
+
+/**
+ * Construct a new TableLayout with the given attributes.
+ *
+ * @param attributes A list of attributes for the table. The list is
+ * described in the class documentation above. Cell-only
+ * attributes are ignored.
+ */
+
+public
+TableLayout(
+ String attributes)
+{
+ tableAttributes = new Attributes(attributes);
+}
+
+//**********************************************************************
+// Public
+//**********************************************************************
+
+/**
+ * Reset the table attributes for the layout.
+ *
+ * @param attributes The new table attributes.
+ */
+
+public void
+setTableAttributes(
+ String attributes)
+{
+ // Set the attributes for the table
+
+ tableAttributes = new Attributes(attributes);
+
+ // Since the component attributes "inherit" from the table
+ // attributes, any change to the table attributes causes us to
+ // reprocess all existing component attributes
+
+ Iterator iter = compAttributes.keySet().iterator();
+ while (iter.hasNext()) {
+ Component comp = (Component)iter.next();
+ Attributes a = (Attributes)compAttributes.get(comp);
+ a.parse(); // Re-parse
+ }
+
+ components = null;
+ useCacheMeasureResults = false;
+}
+
+/**
+ * Reset the attributes for a component in the layout. The component
+ * must already have been added to the container or else this call has
+ * no effect.
+ *
+ * @param comp The component to alter.
+ * @param attributes The new attributes for the component.
+ */
+
+public void
+setAttributes(
+ Component comp,
+ String attributes)
+{
+ if (compAttributes.get(comp) != null) {
+ Attributes a = new Attributes(attributes, false);
+ compAttributes.put(comp, a);
+
+ components = null;
+ useCacheMeasureResults = false;
+ }
+}
+
+/**
+ * Adds the component with the specified attributes to the layout.
+ *
+ * @param attributes A list of attributes for the component. The list
+ * is described in the class documentation above. Table-only
+ * attributes are ignored.
+ * @param comp The component to be added.
+ */
+
+public void
+addLayoutComponent(
+ String attributes,
+ Component comp)
+{
+ Attributes a = new Attributes(attributes, false);
+ compAttributes.put(comp, a);
+
+ components = null;
+ useCacheMeasureResults = false;
+
+ // DEBUG
+
+// if ("DEBUG".equals(comp.getName())) {
+// System.out.println(
+// "Adding comp " + comp.getClass().getName() + " " + a);
+// }
+}
+
+/**
+ * Adds the specified component to the layout, using the specified
+ * constraint object (which we expect to be a String of attributes).
+ *
+ * @param comp The component to be added.
+ * @param constraints A list of attributes for the component. The list
+ * is described in the class documentation above. Table-only
+ * attributes are ignored.
+ */
+
+public void
+addLayoutComponent(
+ Component comp,
+ Object constraints)
+{
+ String attributes = "";
+ if (constraints instanceof String) {
+ attributes = (String)constraints;
+ }
+ addLayoutComponent(attributes, comp);
+}
+
+/**
+ * Removes the specified component from the layout.
+
+ * @param comp The component to be removed.
+ */
+
+public void
+removeLayoutComponent(
+ Component comp)
+{
+ compAttributes.remove(comp);
+ components = null;
+}
+
+/**
+ * Calculates the minimum size dimensions for the layout given the
+ * components in the a parent container.
+ *
+ * @param parent The container to be laid out.
+ * @return The minimum layout size.
+ * @see #preferredLayoutSize(Container)
+ * @see #maximumLayoutSize(Container)
+ */
+
+public Dimension
+minimumLayoutSize(
+ Container parent)
+{
+ Insets insets = parent.getInsets();
+ measureComponents(parent);
+ int w =
+ insets.left + insets.right +
+ tableAttributes.tableInsets.left +
+ tableAttributes.tableInsets.right +
+ MinWidth;
+ int h =
+ insets.top + insets.bottom +
+ tableAttributes.tableInsets.top +
+ tableAttributes.tableInsets.bottom +
+ MinHeight;
+ if (w > Short.MAX_VALUE) w = Short.MAX_VALUE;
+ if (h > Short.MAX_VALUE) h = Short.MAX_VALUE;
+
+ return new Dimension(w, h);
+}
+
+/**
+ * Calculates the preferred size dimensions for the layout given the
+ * components in a parent container.
+ *
+ * @param parent The container to be laid out.
+ * @return The preferred layout size.
+ * @see #minimumLayoutSize(Container)
+ * @see #maximumLayoutSize(Container)
+ */
+
+public Dimension
+preferredLayoutSize(
+ Container parent)
+{
+ Insets insets = parent.getInsets();
+ measureComponents(parent);
+ int w =
+ insets.left + insets.right +
+ tableAttributes.tableInsets.left +
+ tableAttributes.tableInsets.right +
+ PrefWidth;
+ int h =
+ insets.top + insets.bottom +
+ tableAttributes.tableInsets.top +
+ tableAttributes.tableInsets.bottom +
+ PrefHeight;
+ if (w > Short.MAX_VALUE) w = Short.MAX_VALUE;
+ if (h > Short.MAX_VALUE) h = Short.MAX_VALUE;
+
+ return new Dimension(w, h);
+}
+
+/**
+ * Calculates the maximum size dimensions for the layout given the
+ * components in a parent container.
+ *
+ * @param parent The container parent.
+ * @return The maximum layout size.
+ * @see #minimumLayoutSize(Container)
+ * @see #preferredLayoutSize(Container)
+ */
+
+public Dimension
+maximumLayoutSize(
+ Container parent)
+{
+ Insets insets = parent.getInsets();
+ measureComponents(parent);
+
+ // Note that the maximum size of the container is not the maximum
+ // size of the table if the fill options are not used
+
+ int w = Short.MAX_VALUE;
+ if (tableAttributes.tableHorizontal != Attributes.FILL) {
+ w = insets.left + insets.right +
+ tableAttributes.tableInsets.left +
+ tableAttributes.tableInsets.right +
+ MaxWidth;
+ if (w > Short.MAX_VALUE) w = Short.MAX_VALUE;
+ }
+
+ int h = Short.MAX_VALUE;
+ if (tableAttributes.tableVertical != Attributes.FILL) {
+ h = insets.top + insets.bottom +
+ tableAttributes.tableInsets.top +
+ tableAttributes.tableInsets.bottom +
+ MaxHeight;
+ if (h > Short.MAX_VALUE) h = Short.MAX_VALUE;
+ }
+
+ return new Dimension(w, h);
+}
+
+/**
+ * Returns the alignment along the x axis. This always returns 0.5.
+ *
+ * @param parent The container whose alignment we want.
+ * @return The alignment along the x axis.
+ */
+
+public float
+getLayoutAlignmentX(
+ Container parent)
+{
+ return 0.5f;
+}
+
+/**
+ * Returns the alignment along the y axis. This always returns 0.5.
+ *
+ * @param parent The container whose alignment we want.
+ * @return The alignment along the y axis.
+ */
+
+public float
+getLayoutAlignmentY(
+ Container parent)
+{
+ return 0.5f;
+}
+
+/**
+ * Invalidates the layout. Cached information will be discarded.
+ *
+ * @param parent The container whose alignment we want.
+ */
+
+public void
+invalidateLayout(
+ Container parent)
+{
+ useCacheMeasureResults = false;
+}
+
+/**
+ * Lays out the components in the given container.
+ *
+ * @param parent The container which needs to be laid out.
+ */
+
+public void
+layoutContainer(
+ Container parent)
+{
+ // Get the row and column measurements
+
+ measureComponents(parent);
+
+ // Get the parent insets and determine the full amount of space we
+ // have available
+
+ Insets insets = parent.getInsets();
+ int fullWidth =
+ parent.getSize().width -
+ (insets.left + insets.right) -
+ (tableAttributes.tableInsets.left +
+ tableAttributes.tableInsets.right);
+ int fullHeight = parent.getSize().height -
+ (insets.top + insets.bottom) -
+ (tableAttributes.tableInsets.top +
+ tableAttributes.tableInsets.bottom);
+
+ // We normally draw each row and column in its preferred size. If
+ // we have more space, we grow the cells. If less, we shrink the
+ // cells
+
+ boolean shrinkWidth = fullWidth < PrefWidth;
+ boolean shrinkHeight = fullHeight < PrefHeight;
+
+ // Get the position and size of the table. There are three
+ // possibilities for the table size:
+ //
+ // * The available space equals or exceeds the preferred size
+ // and the table is filled - use the full space available. We
+ // will expand the cells in a later step.
+ //
+ // * The available space equals or exceeds the preferred size
+ // and the table is not filled - use the preferred size.
+ //
+ // * The available space is less than the preferred size - use
+ // the available space. We will shrink the cells in a later
+ // step.
+
+ int tableX = insets.left + tableAttributes.tableInsets.left;
+ int tableY = insets.top + tableAttributes.tableInsets.top;
+
+ int tableWidth = PrefWidth;
+ if (shrinkWidth ||
+ tableAttributes.tableHorizontal == Attributes.FILL) {
+ tableWidth = fullWidth;
+ }
+ int tableHeight = PrefHeight;
+ if (shrinkHeight ||
+ tableAttributes.tableVertical == Attributes.FILL) {
+ tableHeight = fullHeight;
+ }
+
+ if (tableAttributes.tableHorizontal == Attributes.CENTER ||
+ tableAttributes.tableHorizontal == Attributes.FILL) {
+ tableX += (fullWidth - tableWidth) / 2;
+ }
+ else if (tableAttributes.tableHorizontal == Attributes.RIGHT) {
+ tableX += fullWidth - tableWidth;
+ }
+
+ if (tableAttributes.tableVertical == Attributes.CENTER ||
+ tableAttributes.tableVertical == Attributes.FILL) {
+ tableY += (fullHeight - tableHeight) / 2;
+ }
+ else if (tableAttributes.tableVertical == Attributes.BOTTOM) {
+ tableY += fullHeight - tableHeight;
+ }
+
+ // Now adjust the column and row cell sizes
+
+ adjustCellSizes(
+ nCols,
+ (tableAttributes.tableHorizontal == Attributes.FILL),
+ shrinkWidth,
+ minWidth,
+ PrefWidth, prefWidth,
+ fullWidth,
+ ColWeight, colWeight,
+ adjWidth,
+ parent);
+
+ adjustCellSizes(
+ nRows,
+ (tableAttributes.tableVertical == Attributes.FILL),
+ shrinkHeight,
+ minHeight,
+ PrefHeight, prefHeight,
+ fullHeight,
+ RowWeight, rowWeight,
+ adjHeight,
+ parent);
+
+ // Begin the component layout loop
+
+ for (int r = 0; r < nRows; r++) {
+ for (int c = 0; c < nCols; c++) {
+ Component comp = components[r][c];
+ if (comp == null) continue;
+
+ Attributes attributes = (Attributes)compAttributes.get(comp);
+
+ Dimension compMinSize = comp.getMinimumSize();
+ Dimension compPrefSize = comp.getPreferredSize();
+ Dimension compMaxSize = comp.getMaximumSize();
+
+ // Base position
+
+ int compX =
+ tableX +
+ (tableAttributes.cGap * c) +
+ attributes.cellInsets.left;
+ for (int i = 0; i < c; i++) compX += adjWidth[i];
+
+ int compY =
+ tableY +
+ (tableAttributes.rGap * r) +
+ attributes.cellInsets.top;
+ for (int i = 0; i < r; i++) compY += adjHeight[i];
+
+ // Get the cell size. This has to take into account row
+ // and column spanning
+
+ int cellWidth = adjWidth[c];
+ for (int i = 1; i < attributes.cSpan; i++) {
+ cellWidth += tableAttributes.cGap + adjWidth[c + i];
+ }
+
+ int cellHeight = adjHeight[r];
+ for (int i = 1; i < attributes.rSpan; i++) {
+ cellHeight += tableAttributes.rGap + adjHeight[r + i];
+ }
+
+ int insetCellWidth =
+ cellWidth -
+ attributes.cellInsets.left - attributes.cellInsets.right;
+ int insetCellHeight =
+ cellHeight -
+ attributes.cellInsets.top - attributes.cellInsets.bottom;
+
+ // Get the component size. Use the preferred size, if
+ // possible. If not use the cell size minus insets
+
+ int compWidth = compPrefSize.width;
+ int compHeight = compPrefSize.height;
+ if (compWidth > insetCellWidth) compWidth = insetCellWidth;
+ if (compHeight > insetCellHeight) compHeight = insetCellHeight;
+
+ // Adjust for fill
+
+ if (attributes.horizontal == Attributes.FILL) {
+ compWidth = insetCellWidth;
+ compWidth = Math.max(compWidth, compMinSize.width);
+ // Some components (like JButton) can exceed their max size
+ // compWidth = Math.min(compWidth, compMaxSize.width);
+ }
+ if (attributes.vertical == Attributes.FILL) {
+ compHeight = insetCellHeight;
+ compHeight = Math.max(compHeight, compMinSize.height);
+ // Some components (like JButton) can exceed their max size
+ // compHeight = Math.min(compHeight, compMaxSize.height);
+ }
+
+ // Position properly. We treat FILL like CENTER since
+ // the min/max limits may have prevented us from really
+ // filling
+
+ if (attributes.horizontal == Attributes.CENTER ||
+ attributes.horizontal == Attributes.FILL) {
+ compX += (cellWidth -
+ (attributes.cellInsets.left +
+ attributes.cellInsets.right) - compWidth) / 2;
+ }
+ else if (attributes.horizontal == Attributes.RIGHT) {
+ compX += (cellWidth -
+ (attributes.cellInsets.left +
+ attributes.cellInsets.right) - compWidth);
+ }
+
+ if (attributes.vertical == Attributes.CENTER ||
+ attributes.vertical == Attributes.FILL) {
+ compY += (cellHeight -
+ (attributes.cellInsets.top +
+ attributes.cellInsets.bottom) - compHeight) / 2;
+ }
+ else if (attributes.vertical == Attributes.BOTTOM) {
+ compY += (cellHeight -
+ (attributes.cellInsets.top +
+ attributes.cellInsets.bottom) - compHeight);
+ }
+
+ // Place the component
+
+ comp.setBounds(compX, compY, compWidth, compHeight);
+
+ // DEBUG
+
+// if ("DEBUG".equals(parent.getName())) {
+// System.out.println("Placing component " +
+// comp.getClass().getName() +
+// " (" + compX + ", " + compY + ") " +
+// compWidth + " x " + compHeight);
+// }
+ }
+ }
+}
+
+// The inherited toString() method is acceptable.
+
+//**********************************************************************
+// Private
+//**********************************************************************
+
+/**
+ * The row or column sizes need to be adjusted. We may want to grow
+ * or shrink the sizes, based on whether the available space is larger
+ * or smaller than the preferred size.
+ * <p>
+ * If we grow the table, we pay attention to the user's weighting
+ * factors. If we shrink the table, we assign all cells a weight
+ * factor of 1.
+ *
+ * @param nCells The number of cells in the row or column.
+ * @param fill True if the table rows or columns should fill the
+ * available space.
+ * @param shrink True if the available size is less than the preferred
+ * size.
+ * @param minSize The minimum sizes of each row or column.
+ * @param PrefSize The sum of the preferred sizes of all cells in the
+ * row or column plus any cell gaps.
+ * @param prefSize The preferred sizes of each row or column.
+ * @param CellWeight The sum of all cell weights in the row or column.
+ * @param cellWeight The weight of each row or column.
+ * @param adjSize The adjusted size of each row or column. The
+ * contents of this array are set and returned.
+ */
+
+private void
+adjustCellSizes(
+ int nCells,
+ boolean fill,
+ boolean shrink,
+ int[] minSize,
+ int PrefSize,
+ int[] prefSize,
+ int fullSize,
+ int CellWeight,
+ int[] cellWeight,
+ int[] adjSize,
+ Container parent)
+
+{
+ // The sum of the weights (CellWeight) determines how many units
+ // any excess (or reduced) space should be divided into. The
+ // unitOfSpace variable is the size of each unit.
+ //
+ // We use weighting under two conditions:
+ //
+ // * We are shrinking the table.
+ //
+ // * We have more space than we need and the user asked us to
+ // fill the available space
+ //
+ // When we have more than enough space for the preferred row and
+ // column sizes, we follow the user's weighting. There is a
+ // special case if all weights are 0: the weights are treated as
+ // thought they were all 1.
+ //
+ // When do not have enough space, we weight everything the same.
+
+ double unitOfSpace = 0.0;
+ if (shrink || fill) {
+ unitOfSpace =
+ (double)(fullSize - PrefSize) /
+ (double)((shrink || CellWeight == 0) ? nCells : CellWeight);
+ }
+ else {
+ // No adjustment needed: use the preferred sizes
+
+ for (int i = 0; i < nCells; i++) {
+ adjSize[i] = prefSize[i];
+ }
+ return;
+ }
+
+ double extraSpace; int iExtraSpace;
+ double error = 0.0; int iError = -999999;
+
+ int adjWeight;
+
+ for (int i = 0; i < nCells; i++) {
+
+ // Initialize the adjusted size to the preferred size
+
+ adjSize[i] = prefSize[i];
+
+ // Get the cell weight based on various conditions
+
+ adjWeight = (shrink || CellWeight == 0) ? 1 : cellWeight[i];
+
+ // Determine how much extra space to give each cell. The space
+ // is the weight (number of units) times the unit size. We can
+ // only assign an integer number of pixels, which creates a
+ // fractional error
+
+ extraSpace = unitOfSpace * adjWeight;
+ iExtraSpace = (int)extraSpace;
+ adjSize[i] += iExtraSpace;
+
+ error += extraSpace - iExtraSpace;
+ iError = (int)error;
+
+ // Increment/decrement this cell by the accumulated integer
+ // error, if it's not 0
+
+ if (shrink) {
+ if (iError < 0) {
+ adjSize[i] += iError;
+ }
+ }
+ else {
+ if (iError > 0) {
+ adjSize[i] += iError;
+ }
+ }
+ error -= iError;
+
+ // If we're shrinking, we need to prevent any cell from
+ // shrinking below its minimum size. The error is adjusted to
+ // include the space added to the cell
+
+ if (shrink && (adjSize[i] < minSize[i])) {
+ error -= minSize[i] - adjSize[i];
+ adjSize[i] = minSize[i];
+ }
+
+ iError = (int)error;
+ }
+
+ // If we are growing, the error should be less than 1 pixel. If we
+ // are shrinking, we limit each cell to its minimum size, so we
+ // can accumulate larger errors as cells refuse to shrink. So we
+ // distribute the error to cells that can still shrink. We repeat
+ // this until we've reduced the error to 0 or we're unable to
+ // shrink the error anymore.
+ //
+ // Remember that iError is a negative number
+
+ if (shrink || iError < 0) {
+ int lastIError;
+
+ do {
+ lastIError = iError;
+ for (int i = 0; i < nCells; i++) {
+
+ // If the cell is already at its minimum size, skip it
+
+ if (adjSize[i] > minSize[i]) {
+ adjSize[i]--;
+ iError++;
+ }
+ }
+ }
+ while (iError < 0 && iError > lastIError);
+ }
+
+ // DEBUG
+
+// if ("DEBUG".equals(parent.getName())) {
+// System.out.println(" iError " + iError);
+// for (int i = 0; i < nCells; i++) {
+// System.out.println(" " + i + ") Adjusted size = " + adjSize[i]);
+// }
+// }
+}
+
+/**
+ * For each component, determine its row/col position and place it in
+ * an array for easy access later. Elements spanning multiple rows
+ * and/or columns are placed in the NW row/col slot in the array.
+ * Results are placed in class fields.
+ *
+ * @param parent The parent container.
+ */
+
+private void
+placeComponents(
+ Container parent)
+{
+ // If we haven't added or removed a component since the last time
+ // placeComponents() was called, we assume the current results are
+ // OK
+
+ if (components != null) return;
+
+ int compCount = parent.getComponentCount();
+
+ // Get the number of columns specified by the user
+
+ nCols = tableAttributes.columns;
+
+ // Create the array of components
+
+ CompArray compArray = new CompArray(tableAttributes.columns, compCount);
+
+ // Fill the array with components, taking row/column spanning
+ // into account
+
+ int row = 0;
+ int col = 0;
+
+ for (int i = 0; i < compCount; i++) {
+
+ // Get the next component and its options
+
+ Component comp = parent.getComponent(i);
+ Attributes attributes = (Attributes)compAttributes.get(comp);
+
+ // If the column span is greater than the column size,
+ // truncate it to the column size
+
+ attributes.cSpan = attributes.originalCSpan;
+ if (attributes.cSpan > tableAttributes.columns) {
+ attributes.cSpan = tableAttributes.columns;
+
+ }
+ // Handle options to force us to column 0 or to skip columns
+
+ if (attributes.column != Attributes.NEXT_COLUMN) {
+ if (col > attributes.column) row++;
+ col = attributes.column;
+ }
+ col += attributes.skip;
+ if (col >= nCols) {
+ row++;
+ col = 0;
+ }
+
+ // Skip over any cells that are already occupied
+
+ while (compArray.get(row, col) != null) {
+ col++;
+ if (col >= nCols) {
+ row++;
+ col = 0;
+ }
+ }
+
+ // If spanning multiple columns, will we fit on this row?
+
+ if (col + attributes.cSpan > nCols) {
+ row++;
+ col = 0;
+ }
+
+ // For now, fill all the cells that are occupied by this
+ // component
+
+ for (int c = 0; c < attributes.cSpan; c++) {
+ for (int r = 0; r < attributes.rSpan; r++) {
+ compArray.set(row + r, col + c, comp);
+ }
+ }
+
+ // Advance to the next cell, ready for the next component
+
+ col += attributes.cSpan;
+ if (col >= nCols) {
+ row++;
+ col = 0;
+ }
+ }
+
+ // Now we know how many rows there are. We can use a normal,
+ // properly sized array from now on. The array returned includes
+ // the maximum row into which anything was entered, including any
+ // row spans
+
+ components = compArray.getArray();
+ nRows = components.length;
+
+ // Now we've positioned our components we can thin out the cells so
+ // we only remember the top left corner of each component
+
+ for (row = 0; row < nRows; row++) {
+ for (col = 0; col < nCols; col++) {
+ Component comp = components[row][col];
+ for (int r = row; r < nRows && components[r][col] == comp; r++) {
+ for (int c = col; c < nCols && components[r][c] == comp; c++) {
+ if (r > row || c > col) {
+ components[r][c] = null;
+ }
+ }
+ }
+ }
+ }
+
+ // DEBUG
+
+// if ("DEBUG".equals(parent.getName())) {
+// System.out.println("placeComponents finished: rows = " +
+// nRows + " cols = " + nCols);
+// for (int r = 0; r < nRows; r++) {
+// System.out.println("Row " + r + ":");
+// for (int c = 0; c < nCols; c++) {
+// System.out.println(" Col " + c + " Comp " +
+// ((components[r][c] == null) ?
+// "none" :
+// components[r][c].getClass().getName()));
+// }
+// }
+// }
+}
+
+/**
+ * In this method, we will determine the minimum, preferred and
+ * maximum sizes of the components as layed out by the table layout
+ * manager
+ *
+ * @param parent The parent container.
+ */
+
+private void
+measureComponents(
+ Container parent)
+{
+ if (useCacheMeasureResults) return;
+
+ // Determine the row/col positions for the components
+
+ placeComponents(parent);
+
+ // Allocate new arrays to store row and column preferred and min
+ // sizes, but only if the old arrays aren't big enough
+
+ if (minWidth == null || minWidth.length < nCols) {
+ minWidth = new int[nCols];
+ prefWidth = new int[nCols];
+ maxWidth = new int[nCols];
+ adjWidth = new int[nCols];
+ colWeight = new int[nCols];
+ }
+ if (minHeight == null || minHeight.length < nRows) {
+ minHeight = new int[nRows];
+ prefHeight = new int[nRows];
+ maxHeight = new int[nRows];
+ adjHeight = new int[nRows];
+ rowWeight = new int[nRows];
+ }
+
+ for (int i = 0; i < nCols; i++) {
+ minWidth[i] = 0;
+ prefWidth[i] = 0;
+ maxWidth[i] = 0;
+ colWeight[i] = 0;
+ }
+ for (int i = 0; i < nRows; i++) {
+ minHeight[i] = 0;
+ prefHeight[i] = 0;
+ maxHeight[i] = 0;
+ rowWeight[i] = 0;
+ }
+
+ // Measure the minimum and preferred size of each row and column
+
+ for (int row = 0; row < nRows; row++) {
+ for (int col = 0; col < nCols; col++) {
+ Component comp = components[row][col];
+ if (comp != null) {
+ Attributes attributes = (Attributes)compAttributes.get(comp);
+
+ Dimension minSize = new Dimension(comp.getMinimumSize());
+ Dimension prefSize = new Dimension(comp.getPreferredSize());
+ Dimension maxSize = new Dimension(comp.getMaximumSize());
+
+ // Add the cell insets
+
+ minSize.width +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+ minSize.height +=
+ attributes.cellInsets.top + attributes.cellInsets.bottom;
+ prefSize.width +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+ prefSize.height +=
+ attributes.cellInsets.top + attributes.cellInsets.bottom;
+ maxSize.width +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+ maxSize.height +=
+ attributes.cellInsets.right + attributes.cellInsets.bottom;
+
+ // Make sure that 0 <= minSize <= prefSize <= maxSize
+
+ limitDimension(minSize, new Dimension(0, 0));
+ limitDimension(prefSize, minSize);
+ limitDimension(maxSize, prefSize);
+
+ // First pass, we determine the sizes while ignoring
+ // components which span columns or rows
+
+ if (attributes.cSpan == 1) {
+ minWidth[col] =
+ Math.max(minSize.width, minWidth[col]);
+ prefWidth[col] =
+ Math.max(prefSize.width, prefWidth[col]);
+ maxWidth[col] =
+ Math.max(maxSize.width, maxWidth[col]);
+ }
+
+ if (attributes.rSpan == 1) {
+ minHeight[row] =
+ Math.max(minSize.height, minHeight[row]);
+ prefHeight[row] =
+ Math.max(prefSize.height, prefHeight[row]);
+ maxHeight[row] =
+ Math.max(maxSize.height, maxHeight[row]);
+ }
+
+ // Get the row and column weights. The weight is the
+ // maximum value for the row or column
+
+ if (attributes.cWeight > colWeight[col]) {
+ colWeight[col] = attributes.cWeight;
+ }
+ if (attributes.rWeight > rowWeight[row]) {
+ rowWeight[row] = attributes.rWeight;
+ }
+ }
+ }
+ }
+
+ // Do it again, but just for components which span multiple cells.
+ //
+
+ for (int row = 0; row < nRows; row++) {
+ for (int col = 0; col < nCols; col++) {
+ Component comp = components[row][col];
+ if (comp != null) {
+ Attributes attributes = (Attributes)compAttributes.get(comp);
+
+ if (attributes.rSpan == 1 && attributes.cSpan == 1) continue;
+
+ Dimension minSize = new Dimension(comp.getMinimumSize());
+ Dimension prefSize = new Dimension(comp.getPreferredSize());
+ Dimension maxSize = new Dimension(comp.getMaximumSize());
+
+ // Add the cell insets
+
+ minSize.width +=
+ attributes.cellInsets.top + attributes.cellInsets.bottom;
+ minSize.height +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+ prefSize.width +=
+ attributes.cellInsets.top + attributes.cellInsets.bottom;
+ prefSize.height +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+ maxSize.width +=
+ attributes.cellInsets.top + attributes.cellInsets.bottom;
+ maxSize.height +=
+ attributes.cellInsets.left + attributes.cellInsets.right;
+
+ // Make sure that 0 <= minSize <= prefSize <= maxSize
+
+ limitDimension(minSize, new Dimension(0, 0));
+ limitDimension(prefSize, minSize);
+ limitDimension(maxSize, prefSize);
+
+ if (attributes.cSpan > 1) {
+ adjustForSpans(col,
+ minSize.width,
+ minWidth,
+ colWeight,
+ attributes.cSpan,
+ tableAttributes.cGap);
+ adjustForSpans(col,
+ prefSize.width,
+ prefWidth,
+ colWeight,
+ attributes.cSpan,
+ tableAttributes.cGap);
+ adjustForSpans(col,
+ maxSize.width,
+ maxWidth,
+ colWeight,
+ attributes.cSpan,
+ tableAttributes.cGap);
+ }
+
+ if (attributes.rSpan > 1) {
+ adjustForSpans(row,
+ minSize.height,
+ minHeight,
+ rowWeight,
+ attributes.rSpan,
+ tableAttributes.rGap);
+ adjustForSpans(row,
+ prefSize.height,
+ prefHeight,
+ rowWeight,
+ attributes.rSpan,
+ tableAttributes.rGap);
+ adjustForSpans(row,
+ maxSize.height,
+ maxHeight,
+ rowWeight,
+ attributes.rSpan,
+ tableAttributes.rGap);
+ }
+ }
+ }
+ }
+
+ // Add up all the individual values
+
+ MinWidth = 0;
+ MinHeight = 0;
+ PrefWidth = 0;
+ PrefHeight = 0;
+ MaxWidth = 0;
+ MaxHeight = 0;
+ ColWeight = 0;
+ RowWeight = 0;
+
+ // Sum up everything
+
+ for (int i = 0; i < nCols; i++) {
+ MinWidth += minWidth[i];
+ PrefWidth += prefWidth[i];
+ MaxWidth += maxWidth[i];
+ ColWeight += colWeight[i];
+ }
+
+ for (int i = 0; i < nRows; i++) {
+ MinHeight += minHeight[i];
+ PrefHeight += prefHeight[i];
+ MaxHeight += maxHeight[i];
+ RowWeight += rowWeight[i];
+ }
+
+ // Add in the table gaps
+
+ int cExtra = tableAttributes.cGap * (nCols - 1);
+ int rExtra = tableAttributes.rGap * (nRows - 1);
+
+ MinWidth += cExtra;
+ PrefWidth += cExtra;
+ MaxWidth += cExtra;
+
+ MinHeight += rExtra;
+ PrefHeight += rExtra;
+ MaxHeight += rExtra;
+
+ // DEBUG
+
+// if ("DEBUG".equals(parent.getName())) {
+// System.out.println("MeasureComponents:");
+// System.out.println(" Min " + MinWidth + ", " + MinHeight);
+// System.out.println(" Pref " + PrefWidth + ", " + PrefHeight);
+// System.out.println(" Max " + MaxWidth + ", " + MaxHeight);
+// System.out.println(" Weight " + ColWeight + ", " + RowWeight );
+
+// for (int c = 0; c < nCols; c++) {
+// System.out.println(" Col " + c +
+// " min " + minWidth[c] +
+// " pref " + prefWidth[c] +
+// " max " + maxWidth[c] +
+// " wgt " + colWeight[c]);
+// }
+// for (int r = 0; r < nRows; r++) {
+// System.out.println(" Row " + r +
+// " min " + minHeight[r] +
+// " pref " + prefHeight[r] +
+// " max " + maxHeight[r] +
+// " wgt " + rowWeight[r]);
+// }
+// }
+
+ // We keep using these results until the layout is invalidated
+
+ useCacheMeasureResults = true;
+}
+
+/**
+ * Make sure the first dimension is greater than or equal to the
+ * second. Also make sure the first dimension is less than an absolute
+ * maximum.
+ *
+ * @param d1 The first dimension (may be modified).
+ * @param d2 The second dimension (will not be modified).
+ */
+
+private void
+limitDimension(
+ Dimension d1,
+ Dimension d2)
+{
+ if (d1.width < d2.width) d1.width = d2.width;
+ if (d1.height < d2.height) d1.height = d2.height;
+ if (d1.width > Short.MAX_VALUE) d1.width = Short.MAX_VALUE;
+ if (d1.height > Short.MAX_VALUE) d1.height = Short.MAX_VALUE;
+}
+
+/**
+ * If a component spans multiple rows or columns, we need to
+ * distribute portions of its size to the individual rows and columns.
+ *
+ * @param pos Row or column position where the span component starts.
+ * @param compSize The height or width of the component
+ * @param sizes The array of widths or heights to adjust.
+ * @param span The number of cells spanned by the component.
+ * @param gap The row or column gap.
+ */
+
+private void
+adjustForSpans(
+ int pos,
+ int compSize,
+ int[] sizes,
+ int[] weight,
+ int span,
+ int gap)
+{
+ // The total size is the size of the rows or columns plus all the
+ // space in between
+
+ int totalSize = 0;
+ for (int i = 0; i < span; i++) {
+ totalSize += sizes[pos + i];
+ }
+ totalSize += gap * (span - 1);
+
+ // If the spanned component is bigger than the the rows or columns
+ // it spans, we divide the extra space based on the weights of the
+ // spanned rows or columns
+
+ if (compSize > totalSize) {
+ int extra = compSize - totalSize;
+ int totalWeight = 0;
+ for (int i = 0; i < span; i++) {
+ totalWeight += weight[pos + i];
+ }
+ if (totalWeight == 0) totalWeight = span;
+
+ int remainder = extra;
+ for (int i = 0; i < span; i++) {
+ int portion = (extra * weight[pos + i]) / totalWeight;
+ sizes[pos + i] += portion;
+ remainder -= portion;
+ }
+
+ // Because of truncation, we may have a little left over which
+ // we give to the last row or column
+
+ if (remainder > 0) {
+ sizes[pos + span - 1] += remainder;
+ }
+ }
+}
+
+//**********************************************************************
+// Inner Classes
+//**********************************************************************
+
+//**********************************************************************
+//
+// Attributes
+//
+// This class converts a string attribute into a data structure.
+//
+//**********************************************************************
+
+// Attributes not needing assigment
+
+static String[] attr = {
+ "tn", "tne", "tnw",
+ "ts", "tse", "tsw",
+ "te", "tw", "tc",
+ "tfh", "tfv", "tf",
+ "n", "ne", "nw",
+ "s", "se", "sw",
+ "e", "w", "c",
+ "fh", "fv", "f",
+};
+
+// Attributes needing assigment
+
+static String[] assgn = {
+ "cols",
+ "rgap",
+ "cgap",
+ "titop",
+ "tibottom",
+ "tileft",
+ "tiright",
+ "itop",
+ "ibottom",
+ "ileft",
+ "iright",
+ "rweight",
+ "cweight",
+ "rspan",
+ "cspan",
+ "col",
+ "skip"
+};
+
+private class Attributes
+{
+
+// Constants used for fill and placement operations
+
+static final int CENTER = 0;
+static final int LEFT = 1;
+static final int RIGHT = 2;
+static final int TOP = 3;
+static final int BOTTOM = 4;
+static final int FILL = 5;
+
+// Constants for column placement
+
+static final int NEXT_COLUMN = -1;
+
+// The attributes in their original string form
+
+String attrString;
+
+// Table-only options
+
+int columns = 1;
+int tableHorizontal = FILL;
+int tableVertical = FILL;
+int rGap = 0;
+int cGap = 0;
+Insets tableInsets = new Insets(0, 0, 0, 0);
+
+// Table/cell options
+
+int horizontal = FILL;
+int vertical = FILL;
+Insets cellInsets = new Insets(0, 0, 0, 0);
+int rWeight = 0;
+int cWeight = 0;
+
+// Cell-only options
+
+int rSpan = 1;
+int cSpan = 1;
+int originalCSpan = cSpan;
+int column = NEXT_COLUMN;
+int skip = 0;
+
+int tkPos = 0;
+boolean isTableAttributes = false;
+
+Attributes(
+ String attrString)
+{
+ this(attrString, true);
+}
+
+Attributes(
+ String attrString,
+ boolean isTableAttributes)
+{
+ // Save the string for later access
+
+ this.attrString = attrString;
+
+ this.isTableAttributes = isTableAttributes;
+
+ parse();
+}
+
+public String
+toString()
+{
+ String sep = System.getProperty("line.separator");
+ return "TableLayout Attributes:" + sep +
+ "isTableAttributes = " + isTableAttributes + sep +
+ "columns = " + columns + sep +
+ "tableHorizontal = " + tableHorizontal + " " +
+ "tableVertical = " + tableVertical + sep +
+ "rGap = " + rGap + " " +
+ "cGap = " + cGap + sep +
+ "tableInsets = " + tableInsets + sep +
+ "horizontal = " + horizontal + " " +
+ "vertical = " + vertical + sep +
+ "cellInsets = " + cellInsets + sep +
+ "rWeight = " + rWeight + " " +
+ "cWeight = " + cWeight + sep +
+ "rSpan = " + rSpan + " " +
+ "cSpan = " + cSpan + sep +
+ "originalCSpan = " + originalCSpan + sep +
+ "column = " + column + sep +
+ "skip = " + skip;
+}
+
+String
+getStringAttributes()
+{
+ return attrString;
+}
+
+private char
+getTokenChar()
+{
+ if (tkPos >= attrString.length()) return 0;
+ return Character.toLowerCase(attrString.charAt(tkPos++));
+}
+
+
+private String
+getToken()
+{
+ StringBuffer token = new StringBuffer();
+
+ char c = getTokenChar();
+
+ // Skip whitespace
+
+ if (Character.isWhitespace(c)) {
+ do {
+ c = getTokenChar();
+ }
+ while (Character.isWhitespace(c));
+ }
+
+ // Attributes
+
+ if (Character.isLetter(c)) {
+ do {
+ token.append(c);
+ c = getTokenChar();
+ }
+ while (Character.isLetter(c));
+ if (c != 0) tkPos--;
+ }
+
+ // Integers
+
+ else if (Character.isDigit(c)) {
+ do {
+ token.append(c);
+ c = getTokenChar();
+ }
+ while (Character.isDigit(c));
+ if (c != 0) tkPos--;
+ }
+
+ // End of string
+
+ else if (c == 0) {
+ return null;
+ }
+
+ // Everything else is a single-character token
+
+ else {
+ token.append(c);
+ }
+
+ return new String(token);
+}
+
+void
+parse()
+{
+ // Initialize this set of attributes so it starts out as a copy of
+ // the given default, at least for those options where the cell
+ // can override a table default
+
+ if (!isTableAttributes) {
+ horizontal = tableAttributes.horizontal;
+ vertical = tableAttributes.vertical;
+ cellInsets = (Insets)tableAttributes.cellInsets.clone();
+ rWeight = tableAttributes.rWeight;
+ cWeight = tableAttributes.cWeight;
+ }
+
+ if (attrString == null) return;
+ tkPos = 0;
+
+ while (tkPos < attrString.length()) {
+ parseOption();
+ }
+
+ // We have checked the syntax, now check the semantics
+
+ if (isTableAttributes) {
+ if (columns == 0) {
+ reportSemanticError("cols=0");
+ }
+ }
+ else {
+ if (rSpan == 0) {
+ reportSemanticError("rspan=0");
+ }
+ if (cSpan == 0) {
+ reportSemanticError("cspan=0");
+ }
+ if (column >= tableAttributes.columns) {
+ reportSemanticError("col=" + column +
+ " (max is " +
+ (tableAttributes.columns - 1) + ")");
+ }
+ }
+}
+
+private void
+parseOption()
+{
+ // Get the next token
+
+ String token = getToken();
+ if (token == null) return;
+
+ boolean attributeFound = false;
+ for (int i = 0; i < attr.length; i++) {
+ if (token.equals(attr[i])) {
+ parseAttribute(token);
+ return;
+ }
+ }
+
+ for (int i = 0; i < assgn.length; i++) {
+ if (token.equals(assgn[i])) {
+ parseAssignment(token);
+ return;
+ }
+ }
+
+ reportError(token, "Unrecognized attribute");
+}
+
+private void
+parseAttribute(
+ String token)
+{
+ // Table placement and fill
+
+ if ("tnw".equals(token) ||
+ "tw".equals(token) ||
+ "tsw".equals(token)) {
+ tableHorizontal = LEFT;
+ }
+
+ if ("tne".equals(token) ||
+ "te".equals(token) ||
+ "tse".equals(token)) {
+ tableHorizontal = RIGHT;
+ }
+
+ if ("tn".equals(token) ||
+ "tc".equals(token) ||
+ "ts".equals(token)) {
+ tableHorizontal = CENTER;
+ }
+
+ if ("tf".equals(token) ||
+ "tfh".equals(token)) {
+ tableHorizontal = FILL;
+ }
+
+ if ("tn".equals(token) ||
+ "tnw".equals(token) ||
+ "tne".equals(token)) {
+ tableVertical = TOP;
+ }
+
+ if ("ts".equals(token) ||
+ "tsw".equals(token) ||
+ "tse".equals(token)) {
+ tableVertical = BOTTOM;
+ }
+
+ if ("tw".equals(token) ||
+ "tc".equals(token) ||
+ "te".equals(token)) {
+ tableVertical = CENTER;
+ }
+
+ if ("tf".equals(token) ||
+ "tfv".equals(token)) {
+ tableVertical = FILL;
+ }
+
+ // Cell placement and fill
+
+ if ("nw".equals(token) ||
+ "w".equals(token) ||
+ "sw".equals(token)) {
+ horizontal = LEFT;
+ }
+
+ if ("ne".equals(token) ||
+ "e".equals(token) ||
+ "se".equals(token)) {
+ horizontal = RIGHT;
+ }
+
+ if ("n".equals(token) ||
+ "c".equals(token) ||
+ "s".equals(token)) {
+ horizontal = CENTER;
+ }
+
+ if ("f".equals(token) ||
+ "fh".equals(token)) {
+ horizontal = FILL;
+ }
+
+ if ("n".equals(token) ||
+ "nw".equals(token) ||
+ "ne".equals(token)) {
+ vertical = TOP;
+ }
+
+ if ("s".equals(token) ||
+ "sw".equals(token) ||
+ "se".equals(token)) {
+ vertical = BOTTOM;
+ }
+
+ if ("w".equals(token) ||
+ "c".equals(token) ||
+ "e".equals(token)) {
+ vertical = CENTER;
+ }
+
+ if ("f".equals(token) ||
+ "fv".equals(token)) {
+ vertical = FILL;
+ }
+}
+
+private void
+parseAssignment(
+ String token)
+{
+ String attr = token;
+
+ token = getToken();
+ if (token != null) {
+ if ("=".equals(token)) {
+ token = getToken();
+ if (token != null) {
+ int value = 0;
+ try {
+ value = Integer.parseInt(token);
+ }
+ catch (NumberFormatException e) {
+ reportError(token, "Expected an integer");
+ }
+
+ if ("cols".equals(attr))
+ columns = value;
+ else if ("rgap".equals(attr))
+ rGap = value;
+ else if ("cgap".equals(attr))
+ cGap = value;
+ else if ("titop".equals(attr))
+ tableInsets.top = value;
+ else if ("tibottom".equals(attr))
+ tableInsets.bottom = value;
+ else if ("tileft".equals(attr))
+ tableInsets.left = value;
+ else if ("tiright".equals(attr))
+ tableInsets.right = value;
+ else if ("itop".equals(attr))
+ cellInsets.top = value;
+ else if ("ibottom".equals(attr))
+ cellInsets.bottom = value;
+ else if ("ileft".equals(attr))
+ cellInsets.left = value;
+ else if ("iright".equals(attr))
+ cellInsets.right = value;
+ else if ("rweight".equals(attr))
+ rWeight = value;
+ else if ("cweight".equals(attr))
+ cWeight = value;
+ else if ("rspan".equals(attr))
+ rSpan = value;
+ else if ("cspan".equals(attr))
+ originalCSpan = cSpan = value;
+ else if ("col".equals(attr))
+ column = value;
+ else if ("skip".equals(attr))
+ skip = value;
+
+ return;
+ }
+ }
+ reportError(token, "Expected an '='");
+ }
+ reportError(token, "Expected an '='");
+}
+
+private void
+reportError(
+ String token,
+ String message)
+{
+ throw new IllegalArgumentException(
+ "TableLayout: " + message + "; near '" + token +
+ "' at position " + tkPos + " in '" +
+ attrString + "'");
+}
+
+private void
+reportSemanticError(
+ String message)
+{
+ throw new IllegalArgumentException(
+ "TableLayout: Invalid value: " + message);
+}
+
+}
+
+//**********************************************************************
+//
+// CompArray
+//
+// We'd like to use a 2-dimensional array to help us sort out the
+// layout of the various components. But in order to create the array,
+// we need to know the number of rows. In order to get the number of
+// rows, we need to lay out the components. So we have problem.
+//
+// It is not obvious how to determine the number of rows from the
+// component count, due to row and column spans. So we've created the
+// CompArray class to help out. It makes its best guess at the size of
+// the array. If we need additional rows, it expands the array as
+// efficiently as it can. When we're done, we can ask it to create a
+// correctly sized array to hold our data.
+//
+//**********************************************************************
+
+private class CompArray
+{
+
+private int nCols;
+private int nRows;
+private int maxRow = 0;
+Component[][] compArray = null;
+
+CompArray(
+ int nCols,
+ int compCount)
+{
+ this.nRows = (compCount + (nCols - 1)) / nCols;
+ this.nRows = Math.max(this.nRows, 1);
+ this.nCols = nCols;
+
+ compArray = new Component[nRows][];
+ for (int i = 0; i < nRows; i++) {
+ compArray[i] = new Component[nCols];
+ Arrays.fill(compArray[i], null);
+ }
+}
+
+Component
+get(
+ int row,
+ int col)
+{
+ if (row >= nRows) resize(row + 1);
+ return compArray[row][col];
+}
+
+void
+set(
+ int row,
+ int col,
+ Component comp)
+{
+ if (row >= nRows) resize(row + 1);
+ compArray[row][col] = comp;
+ maxRow = Math.max(row, maxRow);
+}
+
+Component[][]
+getArray()
+{
+ int maxRows = maxRow + 1;
+ Component[][] array = new Component[maxRows][];
+ for (int r = 0; r < maxRows; r++) {
+ array[r] = new Component[nCols];
+ System.arraycopy(compArray[r], 0, array[r], 0, nCols);
+ }
+
+ return array;
+}
+
+private void
+resize(
+ int newRows)
+{
+ // When we exceed a threshold, bump up the size by at least 10
+
+ if (newRows - nRows < 10) newRows = nRows + 10;
+
+ // Create the new row array and copy the old one into it
+
+ Component[][] newArray = new Component[newRows][];
+ System.arraycopy(compArray, 0, newArray, 0, nRows);
+
+ // Initialize each new row to nulls
+
+ for (int i = nRows; i < newRows; i++) {
+ newArray[i] = new Component[nCols];
+ Arrays.fill(newArray[i], null);
+ }
+
+ compArray = newArray;
+ nRows = newRows;
+}
+
+}
+
+//**********************************************************************
+// End Inner Classes
+//**********************************************************************
+
+}
diff --git a/libs/FLib/TableLayout/project.dtd b/libs/FLib/TableLayout/project.dtd
new file mode 100644
index 0000000..dee3c51
--- /dev/null
+++ b/libs/FLib/TableLayout/project.dtd
@@ -0,0 +1,5193 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!ENTITY % boolean "(true|false|on|off|yes|no)">
+<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert | replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch | jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog | p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc | p4integrate | translate | signjar | cclock | chown | vajload | jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar | war | stlist | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget | pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit | antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip | concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout | typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource | copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc | wsdltodotnet | mkdir | condition | cvs | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | renameext | vsslabel | javadoc2 | basename | vsscp | tar | vajimport | p4fstat | setproxy | wlstop | p4counter | ilasm | soscheckout | apply | jarlib-resolve | ccuncheckout | cvstagdiff | jlink | javacc | jarlib-manifest | pvcs | chmod | ccmklbtype | jar | sound | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | ccmkelem | javah | ccmreconfigure | fail | unzip | javac | p4add | soslabel | jpcoverage | depend | vssget | deltree | ddcreator">
+<!ENTITY % types "patternset | assertions | propertyset | filterset | libfileset | mergemapper | identitymapper | filterreader | unpackagemapper | scriptfilter | concatfilter | extension | fileset | dirset | globmapper | filelist | filterchain | path | compositemapper | classfileset | regexpmapper | selector | xmlcatalog | flattenmapper | description | chainedmapper | packagemapper | mapper | zipfileset | substitution | extensionSet | redirector | regexp">
+
+<!ELEMENT project (target | %tasks; | %types;)*>
+<!ATTLIST project
+ name CDATA #IMPLIED
+ default CDATA #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT target (%tasks; | %types;)*>
+
+<!ATTLIST target
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ if CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ depends CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT patternset (include | patternset | exclude | excludesfile | includesfile)*>
+<!ATTLIST patternset
+ id ID #IMPLIED
+ includes CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED>
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT exclude EMPTY>
+<!ATTLIST exclude
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT excludesfile EMPTY>
+<!ATTLIST excludesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT includesfile EMPTY>
+<!ATTLIST includesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT assertions (disable | enable)*>
+<!ATTLIST assertions
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ enablesystemassertions %boolean; #IMPLIED>
+
+<!ELEMENT disable EMPTY>
+<!ATTLIST disable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT enable EMPTY>
+<!ATTLIST enable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT propertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST propertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT propertyref EMPTY>
+<!ATTLIST propertyref
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ builtin (all | system | commandline) #IMPLIED
+ regex CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT mapper (classpath | mapper)*>
+<!ATTLIST mapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST classpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT fileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT custom (classpath | param)*>
+<!ATTLIST custom
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ error CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ type CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT none (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST none
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT present (mapper)*>
+<!ATTLIST present
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ present (srconly | both) #IMPLIED>
+
+<!ELEMENT not (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST not
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT type EMPTY>
+<!ATTLIST type
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ type (file | dir) #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT modified (param)*>
+<!ATTLIST modified
+ id ID #IMPLIED
+ comparator (equal | rule) #IMPLIED
+ seldirs %boolean; #IMPLIED
+ cache (propertyfile) #IMPLIED
+ algorithm (hashvalue | digest) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ update %boolean; #IMPLIED>
+
+<!ELEMENT or (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST or
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT contains EMPTY>
+<!ATTLIST contains
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ text CDATA #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED>
+
+<!ELEMENT depend (mapper)*>
+<!ATTLIST depend
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT different (mapper)*>
+<!ATTLIST different
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ ignorefiletimes %boolean; #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT size EMPTY>
+<!ATTLIST size
+ id ID #IMPLIED
+ when (less | more | equal) #IMPLIED
+ units (K | k | kilo | KILO | Ki | KI | ki | kibi | KIBI | M | m | mega | MEGA | Mi | MI | mi | mebi | MEBI | G | g | giga | GIGA | Gi | GI | gi | gibi | GIBI | T | t | tera | TERA | Ti | TI | ti | tebi | TEBI) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT majority (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST majority
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ allowtie %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT containsregexp EMPTY>
+<!ATTLIST containsregexp
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT filename EMPTY>
+<!ATTLIST filename
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ name CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED>
+
+<!ELEMENT selector (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST selector
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT date EMPTY>
+<!ATTLIST date
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ millis CDATA #IMPLIED
+ checkdirs %boolean; #IMPLIED
+ datetime CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ pattern CDATA #IMPLIED
+ when (before | after | equal) #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT and (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST and
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depth EMPTY>
+<!ATTLIST depth
+ id ID #IMPLIED
+ max CDATA #IMPLIED
+ error CDATA #IMPLIED
+ min CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dirset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST dirset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT extdirs (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST extdirs
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filelist (file)*>
+<!ATTLIST filelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT existing (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST existing
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT pathelement EMPTY>
+<!ATTLIST pathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT path (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST path
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filterset (filterset | filter | filtersfile)*>
+<!ATTLIST filterset
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ filtersfile CDATA #IMPLIED>
+
+<!ELEMENT filter EMPTY>
+<!ATTLIST filter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT filtersfile EMPTY>
+<!ATTLIST filtersfile
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT libfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST libfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ urlbase CDATA #IMPLIED
+ file CDATA #IMPLIED
+ includeimpl %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeurl %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergemapper EMPTY>
+<!ATTLIST mergemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT identitymapper EMPTY>
+<!ATTLIST identitymapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterreader (classpath | param)*>
+<!ATTLIST filterreader
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT unpackagemapper EMPTY>
+<!ATTLIST unpackagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT scriptfilter (#PCDATA)>
+<!ATTLIST scriptfilter
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ token CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT concatfilter EMPTY>
+<!ATTLIST concatfilter
+ id ID #IMPLIED
+ append CDATA #IMPLIED
+ prepend CDATA #IMPLIED>
+
+<!ELEMENT extension EMPTY>
+<!ATTLIST extension
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ implementationversion CDATA #IMPLIED
+ specificationversion CDATA #IMPLIED
+ extensionname CDATA #IMPLIED
+ implementationvendorid CDATA #IMPLIED
+ specificationvendor CDATA #IMPLIED
+ implementationurl CDATA #IMPLIED
+ description CDATA #IMPLIED
+ implementationvendor CDATA #IMPLIED>
+
+<!ELEMENT globmapper EMPTY>
+<!ATTLIST globmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST filterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT headfilter EMPTY>
+<!ATTLIST headfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT classconstants EMPTY>
+<!ATTLIST classconstants
+ id ID #IMPLIED>
+
+<!ELEMENT linecontains (contains)*>
+<!ATTLIST linecontains
+ id ID #IMPLIED>
+
+<!ELEMENT replaceregex EMPTY>
+<!ATTLIST replaceregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT replacetokens (token)*>
+<!ATTLIST replacetokens
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED>
+
+<!ELEMENT token EMPTY>
+<!ATTLIST token
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT escapeunicode EMPTY>
+<!ATTLIST escapeunicode
+ id ID #IMPLIED>
+
+<!ELEMENT ignoreblank EMPTY>
+<!ATTLIST ignoreblank
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT tailfilter EMPTY>
+<!ATTLIST tailfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT tabstospaces EMPTY>
+<!ATTLIST tabstospaces
+ id ID #IMPLIED
+ tablength CDATA #IMPLIED>
+
+<!ELEMENT prefixlines EMPTY>
+<!ATTLIST prefixlines
+ id ID #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT expandproperties EMPTY>
+<!ATTLIST expandproperties
+ id ID #IMPLIED>
+
+<!ELEMENT striplinebreaks EMPTY>
+<!ATTLIST striplinebreaks
+ id ID #IMPLIED
+ linebreaks CDATA #IMPLIED>
+
+<!ELEMENT trim EMPTY>
+<!ATTLIST trim
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT striplinecomments (comment)*>
+<!ATTLIST striplinecomments
+ id ID #IMPLIED>
+
+<!ELEMENT comment EMPTY>
+<!ATTLIST comment
+ id ID #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT replacestring EMPTY>
+<!ATTLIST replacestring
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT tokenfilter (containsstring | linetokenizer | trim | stringtokenizer | replaceregex | replacestring | ignoreblank | deletecharacters | containsregex | filetokenizer)*>
+<!ATTLIST tokenfilter
+ id ID #IMPLIED
+ delimoutput CDATA #IMPLIED>
+
+<!ELEMENT containsstring EMPTY>
+<!ATTLIST containsstring
+ id ID #IMPLIED
+ contains CDATA #IMPLIED>
+
+<!ELEMENT linetokenizer EMPTY>
+<!ATTLIST linetokenizer
+ id ID #IMPLIED
+ includedelims %boolean; #IMPLIED>
+
+<!ELEMENT stringtokenizer EMPTY>
+<!ATTLIST stringtokenizer
+ id ID #IMPLIED
+ suppressdelims %boolean; #IMPLIED
+ includedelims %boolean; #IMPLIED
+ delimsaretokens %boolean; #IMPLIED
+ delims CDATA #IMPLIED>
+
+<!ELEMENT deletecharacters EMPTY>
+<!ATTLIST deletecharacters
+ id ID #IMPLIED
+ chars CDATA #IMPLIED>
+
+<!ELEMENT containsregex EMPTY>
+<!ATTLIST containsregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT filetokenizer EMPTY>
+<!ATTLIST filetokenizer
+ id ID #IMPLIED>
+
+<!ELEMENT stripjavacomments EMPTY>
+<!ATTLIST stripjavacomments
+ id ID #IMPLIED>
+
+<!ELEMENT linecontainsregexp (regexp)*>
+<!ATTLIST linecontainsregexp
+ id ID #IMPLIED>
+
+<!ELEMENT regexp EMPTY>
+<!ATTLIST regexp
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT compositemapper (mapper)*>
+<!ATTLIST compositemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classfileset (patternset | exclude | include | custom | rootfileset | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | root | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST classfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ rootclass CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT rootfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST rootfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT root EMPTY>
+<!ATTLIST root
+ id ID #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT regexpmapper EMPTY>
+<!ATTLIST regexpmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT xmlcatalog (entity | classpath | catalogpath | dtd | xmlcatalog)*>
+<!ATTLIST xmlcatalog
+ id ID #IMPLIED
+ catalogpathref IDREF #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT entity EMPTY>
+<!ATTLIST entity
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT catalogpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST catalogpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT dtd EMPTY>
+<!ATTLIST dtd
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT flattenmapper EMPTY>
+<!ATTLIST flattenmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT chainedmapper (mapper)*>
+<!ATTLIST chainedmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT packagemapper EMPTY>
+<!ATTLIST packagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT zipfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipfileset
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT substitution EMPTY>
+<!ATTLIST substitution
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT extensionSet (fileset | libfileset | extension)*>
+<!ATTLIST extensionSet
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT redirector (errorfilterchain | outputfilterchain | errormapper | inputfilterchain | outputmapper | inputmapper)*>
+<!ATTLIST redirector
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ inputencoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ createemptyfiles %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ error CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ input CDATA #IMPLIED
+ description CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorencoding CDATA #IMPLIED>
+
+<!ELEMENT errorfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST errorfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST outputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT errormapper (classpath | mapper)*>
+<!ATTLIST errormapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST inputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputmapper (classpath | mapper)*>
+<!ATTLIST outputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputmapper (classpath | mapper)*>
+<!ATTLIST inputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT propertyfile (entry)*>
+<!ATTLIST propertyfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT entry EMPTY>
+<!ATTLIST entry
+ id ID #IMPLIED
+ operation CDATA #IMPLIED
+ default CDATA #IMPLIED
+ key CDATA #IMPLIED
+ type (int | date | string) #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT ccmkdir EMPTY>
+<!ATTLIST ccmkdir
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT importtypelib EMPTY>
+<!ATTLIST importtypelib
+ id ID #IMPLIED
+ unsafe %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ usesysarray %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT vsscheckin EMPTY>
+<!ATTLIST vsscheckin
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT sql (#PCDATA | fileset | classpath | transaction)*>
+<!ATTLIST sql
+ id ID #IMPLIED
+ onerror (continue | stop | abort) #IMPLIED
+ userid CDATA #IMPLIED
+ password CDATA #IMPLIED
+ autocommit %boolean; #IMPLIED
+ rdbms CDATA #IMPLIED
+ print %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ encoding CDATA #IMPLIED
+ version CDATA #IMPLIED
+ url CDATA #IMPLIED
+ src CDATA #IMPLIED
+ output CDATA #IMPLIED
+ driver CDATA #IMPLIED
+ showheaders %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ delimitertype (normal | row) #IMPLIED
+ escapeprocessing %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ caching %boolean; #IMPLIED
+ keepformat %boolean; #IMPLIED
+ delimiter CDATA #IMPLIED>
+
+<!ELEMENT transaction (#PCDATA)>
+<!ATTLIST transaction
+ id ID #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT cvspass EMPTY>
+<!ATTLIST cvspass
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ passfile CDATA #IMPLIED>
+
+<!ELEMENT p4reopen EMPTY>
+<!ATTLIST p4reopen
+ id ID #IMPLIED
+ tochange CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT csc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST csc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ definitions CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED
+ fullpaths %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ utf8output %boolean; #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ warnlevel CDATA #IMPLIED
+ win32res CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ extraoptions CDATA #IMPLIED
+ incremental %boolean; #IMPLIED
+ noconfig %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ references CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ docfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ unsafe %boolean; #IMPLIED
+ filealign CDATA #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED>
+
+<!ELEMENT resource EMPTY>
+<!ATTLIST resource
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ embed %boolean; #IMPLIED>
+
+<!ELEMENT define EMPTY>
+<!ATTLIST define
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT reference (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST reference
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT src (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST src
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT dirname EMPTY>
+<!ATTLIST dirname
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT wlrun (classpath | wlclasspath)*>
+<!ATTLIST wlrun
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ pkpassword CDATA #IMPLIED
+ beahome CDATA #IMPLIED
+ domain CDATA #IMPLIED
+ username CDATA #IMPLIED
+ weblogicmainclass CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ policy CDATA #IMPLIED
+ properties CDATA #IMPLIED
+ args CDATA #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED>
+
+<!ELEMENT wlclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wlclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4label EMPTY>
+<!ATTLIST p4label
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ desc CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ lock CDATA #IMPLIED>
+
+<!ELEMENT p4revert EMPTY>
+<!ATTLIST p4revert
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ revertonlyunchanged %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT replaceregexp (fileset | substitution | regexp)*>
+<!ATTLIST replaceregexp
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ match CDATA #IMPLIED
+ file CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED>
+
+<!ELEMENT get EMPTY>
+<!ATTLIST get
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ ignoreerrors %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ usetimestamp %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jjtree EMPTY>
+<!ATTLIST jjtree
+ id ID #IMPLIED
+ nodedefaultvoid %boolean; #IMPLIED
+ buildnodefiles %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ static %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ nodeprefix CDATA #IMPLIED
+ nodefactory %boolean; #IMPLIED
+ multi %boolean; #IMPLIED
+ visitor %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ nodeusesparser %boolean; #IMPLIED
+ visitorexception CDATA #IMPLIED
+ nodescopehook %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nodepackage CDATA #IMPLIED>
+
+<!ELEMENT sleep EMPTY>
+<!ATTLIST sleep
+ id ID #IMPLIED
+ hours CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ milliseconds CDATA #IMPLIED
+ minutes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ seconds CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-display (fileset)*>
+<!ATTLIST jarlib-display
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dependset (patternset | exclude | include | custom | present | none | not | type | targetfileset | srcfileset | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | srcfilelist | date | excludesfile | depth | and | targetfilelist)*>
+<!ATTLIST dependset
+ id ID #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT targetfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST targetfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfilelist (file)*>
+<!ATTLIST srcfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT targetfilelist (file)*>
+<!ATTLIST targetfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT zip (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST zip
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT zipgroupfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipgroupfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT patch EMPTY>
+<!ATTLIST patch
+ id ID #IMPLIED
+ strip CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ originalfile CDATA #IMPLIED
+ patchfile CDATA #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ backups %boolean; #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jspc (patternset | exclude | include | custom | present | none | not | type | compilerclasspath | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | webapp | depth | and)*>
+<!ATTLIST jspc
+ id ID #IMPLIED
+ mapped %boolean; #IMPLIED
+ ieplugin CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ package CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ compilerclasspath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ uribase CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ uriroot CDATA #IMPLIED
+ webinc CDATA #IMPLIED>
+
+<!ELEMENT compilerclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST compilerclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT webapp EMPTY>
+<!ATTLIST webapp
+ id ID #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT style (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST style
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT factory (attribute)*>
+<!ATTLIST factory
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT attribute EMPTY>
+<!ATTLIST attribute
+ id ID #IMPLIED>
+
+<!ELEMENT outputproperty EMPTY>
+<!ATTLIST outputproperty
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT test (classpath | sysproperty | redirector | bootclasspath | env | syspropertyset | permissions | jvmarg | arg | assertions | testlet)*>
+<!ATTLIST test
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ forceshowtrace %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ showsuccess %boolean; #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ showbanner CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED
+ showtrace %boolean; #IMPLIED>
+
+<!ELEMENT sysproperty EMPTY>
+<!ATTLIST sysproperty
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT bootclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST bootclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT env EMPTY>
+<!ATTLIST env
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT syspropertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST syspropertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT permissions (grant | revoke)*>
+<!ATTLIST permissions
+ id ID #IMPLIED>
+
+<!ELEMENT grant EMPTY>
+<!ATTLIST grant
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT revoke EMPTY>
+<!ATTLIST revoke
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT jvmarg EMPTY>
+<!ATTLIST jvmarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT testlet (#PCDATA)>
+<!ATTLIST testlet
+ id ID #IMPLIED>
+
+<!ELEMENT tstamp (format)*>
+<!ATTLIST tstamp
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT format EMPTY>
+<!ATTLIST format
+ id ID #IMPLIED
+ locale CDATA #IMPLIED
+ timezone CDATA #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ property CDATA #IMPLIED
+ offset CDATA #IMPLIED>
+
+<!ELEMENT unwar (fileset | patternset)*>
+<!ATTLIST unwar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vsshistory EMPTY>
+<!ATTLIST vsshistory
+ id ID #IMPLIED
+ style (brief | codediff | nofile | default) #IMPLIED
+ numdays CDATA #IMPLIED
+ todate CDATA #IMPLIED
+ output CDATA #IMPLIED
+ fromlabel CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ fromdate CDATA #IMPLIED
+ user CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ tolabel CDATA #IMPLIED
+ dateformat CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT icontract (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST icontract
+ id ID #IMPLIED
+ classdir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ repositorydir CDATA #IMPLIED
+ instrumentdir CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ builddir CDATA #IMPLIED
+ updateicontrol %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ pre %boolean; #IMPLIED
+ controlfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ invariant %boolean; #IMPLIED
+ post %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ failthrowable CDATA #IMPLIED
+ verbosity CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ repbuilddir CDATA #IMPLIED
+ targets CDATA #IMPLIED>
+
+<!ELEMENT cvschangelog (fileset | user | commandline)*>
+<!ATTLIST cvschangelog
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ end CDATA #IMPLIED
+ package CDATA #IMPLIED
+ start CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ usersfile CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ daysinpast CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT user EMPTY>
+<!ATTLIST user
+ id ID #IMPLIED
+ userid CDATA #IMPLIED
+ displayname CDATA #IMPLIED>
+
+<!ELEMENT commandline (marker | argument)*>
+<!ATTLIST commandline
+ id ID #IMPLIED
+ executable CDATA #IMPLIED>
+
+<!ELEMENT marker EMPTY>
+<!ATTLIST marker
+ id ID #IMPLIED>
+
+<!ELEMENT argument EMPTY>
+<!ATTLIST argument
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4submit EMPTY>
+<!ATTLIST p4submit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ needsresolveproperty CDATA #IMPLIED
+ user CDATA #IMPLIED
+ changeproperty CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ccmcheckin (fileset)*>
+<!ATTLIST ccmcheckin
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT p4change EMPTY>
+<!ATTLIST p4change
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT bzip2 EMPTY>
+<!ATTLIST bzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT sync (fileset)*>
+<!ATTLIST sync
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT p4delete EMPTY>
+<!ATTLIST p4delete
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT vssadd EMPTY>
+<!ATTLIST vssadd
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT taglet (path)*>
+<!ATTLIST taglet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT doclet (path | param)*>
+<!ATTLIST doclet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT package EMPTY>
+<!ATTLIST package
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ id ID #IMPLIED
+ href CDATA #IMPLIED
+ offline %boolean; #IMPLIED
+ packagelistloc CDATA #IMPLIED>
+
+<!ELEMENT doctitle (#PCDATA)>
+<!ATTLIST doctitle
+ id ID #IMPLIED>
+
+<!ELEMENT bottom (#PCDATA)>
+<!ATTLIST bottom
+ id ID #IMPLIED>
+
+<!ELEMENT group (package | title)*>
+<!ATTLIST group
+ id ID #IMPLIED
+ packages CDATA #IMPLIED
+ title CDATA #IMPLIED>
+
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ id ID #IMPLIED>
+
+<!ELEMENT packageset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST packageset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT sourcepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST sourcepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT footer (#PCDATA)>
+<!ATTLIST footer
+ id ID #IMPLIED>
+
+<!ELEMENT source EMPTY>
+<!ATTLIST source
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT header (#PCDATA)>
+<!ATTLIST header
+ id ID #IMPLIED>
+
+<!ELEMENT excludepackage EMPTY>
+<!ATTLIST excludepackage
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT tag (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tag
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ enabled %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ scope CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT p4integrate EMPTY>
+<!ATTLIST p4integrate
+ id ID #IMPLIED
+ branch CDATA #IMPLIED
+ leavetargetrevision %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ forceintegrate %boolean; #IMPLIED
+ client CDATA #IMPLIED
+ enablebaselessmerges %boolean; #IMPLIED
+ fromfile CDATA #IMPLIED
+ reversebranchmappings %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ change CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ propagatesourcefiletype %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ nocopynewtargetfiles %boolean; #IMPLIED
+ tofile CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ restoredeletedrevisions %boolean; #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT translate (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST translate
+ id ID #IMPLIED
+ bundlecountry CDATA #IMPLIED
+ bundlelanguage CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ srcencoding CDATA #IMPLIED
+ bundle CDATA #IMPLIED
+ bundleencoding CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ destencoding CDATA #IMPLIED
+ bundlevariant CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ starttoken CDATA #IMPLIED>
+
+<!ELEMENT signjar (fileset)*>
+<!ATTLIST signjar
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ lazy %boolean; #IMPLIED
+ jar CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ sectionsonly %boolean; #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ sigfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ internalsf %boolean; #IMPLIED
+ storetype CDATA #IMPLIED
+ signedjar CDATA #IMPLIED>
+
+<!ELEMENT cclock EMPTY>
+<!ATTLIST cclock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nusers CDATA #IMPLIED
+ obsolete %boolean; #IMPLIED>
+
+<!ELEMENT chown (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chown
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ owner CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT srcfile EMPTY>
+<!ATTLIST srcfile
+ id ID #IMPLIED>
+
+<!ELEMENT targetfile EMPTY>
+<!ATTLIST targetfile
+ id ID #IMPLIED>
+
+<!ELEMENT vajload (vajproject)*>
+<!ATTLIST vajload
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ remote CDATA #IMPLIED
+ haltonerror %boolean; #IMPLIED>
+
+<!ELEMENT vajproject EMPTY>
+<!ATTLIST vajproject
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT jarlib-available (extensionset | extension)*>
+<!ATTLIST jarlib-available
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT extensionset (fileset | libfileset | extension)*>
+<!ATTLIST extensionset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rexec (write | read)*>
+<!ATTLIST rexec
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED
+ command CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT WsdlToDotnet EMPTY>
+<!ATTLIST WsdlToDotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildnumber EMPTY>
+<!ATTLIST buildnumber
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jpcovmerge (fileset)*>
+<!ATTLIST jpcovmerge
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ home CDATA #IMPLIED>
+
+<!ELEMENT ejbjar (patternset | exclude | include | custom | weblogictoplink | present | none | jboss | not | borland | weblogic | type | modified | iplanet | or | jonas | contains | depend | support | classpath | different | size | majority | websphere | containsregexp | dtd | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ejbjar
+ id ID #IMPLIED
+ descriptordir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basenameterminator CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ cmpversion (1.0 | 2.0) #IMPLIED
+ dependency CDATA #IMPLIED
+ basejarname CDATA #IMPLIED
+ flatdestdir %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ naming (ejb-name | directory | descriptor | basejarname) #IMPLIED
+ excludesfile CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT weblogictoplink (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogictoplink
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ toplinkdtd CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ toplinkdescriptor CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT jboss (classpath)*>
+<!ATTLIST jboss
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT borland (classpath)*>
+<!ATTLIST borland
+ id ID #IMPLIED
+ verifyargs CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ java2iiopparams CDATA #IMPLIED
+ version CDATA #IMPLIED
+ basdtd CDATA #IMPLIED
+ verify %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ generateclient %boolean; #IMPLIED>
+
+<!ELEMENT weblogic (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogic
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT iplanet (classpath)*>
+<!ATTLIST iplanet
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ iashome CDATA #IMPLIED>
+
+<!ELEMENT jonas (classpath)*>
+<!ATTLIST jonas
+ id ID #IMPLIED
+ jonasroot CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ additionalargs CDATA #IMPLIED
+ javac CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ orb CDATA #IMPLIED
+ jarsuffix CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ nogenic %boolean; #IMPLIED
+ rmicopts CDATA #IMPLIED
+ javacopts CDATA #IMPLIED
+ novalidation %boolean; #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ nocompil %boolean; #IMPLIED
+ secpropag %boolean; #IMPLIED>
+
+<!ELEMENT support (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST support
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT websphere (classpath | wasclasspath)*>
+<!ATTLIST websphere
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ rmicoptions CDATA #IMPLIED
+ noinform %boolean; #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ dbschema CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ ejbdeploy %boolean; #IMPLIED
+ use35 %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ novalidate %boolean; #IMPLIED
+ codegen %boolean; #IMPLIED
+ dbvendor (SQL92 | SQL99 | DB2UDBWIN_V71 | DB2UDBOS390_V6 | DB2UDBAS400_V4R5 | ORACLE_V8 | INFORMIX_V92 | SYBASE_V1192 | MSSQLSERVER_V7 | MYSQL_V323) #IMPLIED
+ classpath CDATA #IMPLIED
+ wasclasspath CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ dbname CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ trace %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT wasclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wasclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT war (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | lib | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | classes | date | excludesfile | webinf | depth | and)*>
+<!ATTLIST war
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ warfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT manifest (attribute | section)*>
+<!ATTLIST manifest
+ id ID #IMPLIED>
+
+<!ELEMENT section (attribute)*>
+<!ATTLIST section
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT metainf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST metainf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT lib (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST lib
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT indexjars (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST indexjars
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT classes (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST classes
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT webinf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST webinf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT rename EMPTY>
+<!ATTLIST rename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT sequential (%tasks;)*>
+<!ATTLIST sequential
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT serverdeploy (weblogic | generic | jonas)*>
+<!ATTLIST serverdeploy
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ action CDATA #IMPLIED
+ source CDATA #IMPLIED>
+
+<!ELEMENT generic (arg | classpath | jvmarg)*>
+<!ATTLIST generic
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ password CDATA #IMPLIED
+ server CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ username CDATA #IMPLIED>
+
+<!ELEMENT property (classpath)*>
+<!ATTLIST property
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ url CDATA #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ userproperty %boolean; #IMPLIED
+ resource CDATA #IMPLIED
+ environment CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ location CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT subant (reference | fileset | buildpathelement | dirset | buildpath | propertyset | filelist | property)*>
+<!ATTLIST subant
+ id ID #IMPLIED
+ genericantfile CDATA #IMPLIED
+ output CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ antfile CDATA #IMPLIED
+ target CDATA #IMPLIED
+ buildpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ buildpath CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildpathelement EMPTY>
+<!ATTLIST buildpathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT buildpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST buildpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT move (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST move
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT ildasm EMPTY>
+<!ATTLIST ildasm
+ id ID #IMPLIED
+ assembler %boolean; #IMPLIED
+ encoding (ascii | utf8 | unicode) #IMPLIED
+ executable CDATA #IMPLIED
+ progressbar %boolean; #IMPLIED
+ linenumbers %boolean; #IMPLIED
+ rawexceptionhandling %boolean; #IMPLIED
+ showsource %boolean; #IMPLIED
+ metadata %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ bytes %boolean; #IMPLIED
+ resourcedir CDATA #IMPLIED
+ quoteallnames %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ header %boolean; #IMPLIED
+ visibility CDATA #IMPLIED
+ sourcefile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ item CDATA #IMPLIED>
+
+<!ELEMENT copydir (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST copydir
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ src CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT cccheckin EMPTY>
+<!ATTLIST cccheckin
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT ccunlock EMPTY>
+<!ATTLIST ccunlock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT wljspc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST wljspc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ package CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT fixcrlf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fixcrlf
+ id ID #IMPLIED
+ tab (add | asis | remove) #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ cr (add | asis | remove) #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ javafiles %boolean; #IMPLIED
+ eof (add | asis | remove) #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ tablength CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ fixlast %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT telnet (write | read)*>
+<!ATTLIST telnet
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT sosget EMPTY>
+<!ATTLIST sosget
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocompress %boolean; #IMPLIED
+ nocache %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT pathconvert (map | path | mapper)*>
+<!ATTLIST pathconvert
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ pathsep CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ dirsep CDATA #IMPLIED
+ setonempty %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ targetos CDATA #IMPLIED>
+
+<!ELEMENT map EMPTY>
+<!ATTLIST map
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT record EMPTY>
+<!ATTLIST record
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ loglevel (error | warn | info | verbose | debug) #IMPLIED
+ description CDATA #IMPLIED
+ emacsmode %boolean; #IMPLIED
+ action (start | stop) #IMPLIED>
+
+<!ELEMENT p4sync EMPTY>
+<!ATTLIST p4sync
+ id ID #IMPLIED
+ force CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT exec (arg | redirector | env)*>
+<!ATTLIST exec
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ executable CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ os CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED>
+
+<!ELEMENT ccmklabel EMPTY>
+<!ATTLIST ccmklabel
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT p4edit EMPTY>
+<!ATTLIST p4edit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT maudit (fileset | jvmarg | classpath | rulespath | searchpath | sourcepath)*>
+<!ATTLIST maudit
+ id ID #IMPLIED
+ tofile CDATA #IMPLIED
+ exit %boolean; #IMPLIED
+ offsets %boolean; #IMPLIED
+ quiet %boolean; #IMPLIED
+ unused %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ fix %boolean; #IMPLIED
+ metamatahome CDATA #IMPLIED
+ list %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ fullsemanticize %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rulespath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST rulespath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT searchpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST searchpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT antlr (jvmarg | classpath)*>
+<!ATTLIST antlr
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ trace %boolean; #IMPLIED
+ tracetreewalker %boolean; #IMPLIED
+ html %boolean; #IMPLIED
+ tracelexer %boolean; #IMPLIED
+ diagnostic %boolean; #IMPLIED
+ traceparser %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ glib CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT netrexxc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST netrexxc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose (verbose | verbose0 | verbose1 | verbose2 | verbose3 | verbose4 | verbose5 | noverbose) #IMPLIED
+ keep %boolean; #IMPLIED
+ comments %boolean; #IMPLIED
+ strictimport %boolean; #IMPLIED
+ sourcedir %boolean; #IMPLIED
+ diag %boolean; #IMPLIED
+ compile %boolean; #IMPLIED
+ binary %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ suppressmethodargumentnotused %boolean; #IMPLIED
+ suppressvariablenotused %boolean; #IMPLIED
+ strictsignal %boolean; #IMPLIED
+ trace (trace | trace1 | trace2 | notrace) #IMPLIED
+ destdir CDATA #IMPLIED
+ console %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ format %boolean; #IMPLIED
+ explicit %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ suppressprivatepropertynotused %boolean; #IMPLIED
+ strictargs %boolean; #IMPLIED
+ suppressdeprecation %boolean; #IMPLIED
+ strictcase %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ savelog %boolean; #IMPLIED
+ logo %boolean; #IMPLIED
+ utf8 %boolean; #IMPLIED
+ strictprops %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ java %boolean; #IMPLIED
+ suppressexceptionnotsignalled %boolean; #IMPLIED
+ crossref %boolean; #IMPLIED
+ time %boolean; #IMPLIED
+ symbols %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ strictassign %boolean; #IMPLIED
+ compact %boolean; #IMPLIED
+ decimal %boolean; #IMPLIED>
+
+<!ELEMENT ftp (fileset)*>
+<!ATTLIST ftp
+ id ID #IMPLIED
+ binary %boolean; #IMPLIED
+ password CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timediffauto %boolean; #IMPLIED
+ remotedir CDATA #IMPLIED
+ separator CDATA #IMPLIED
+ port CDATA #IMPLIED
+ skipfailedtransfers %boolean; #IMPLIED
+ chmod CDATA #IMPLIED
+ timediffmillis CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ server CDATA #IMPLIED
+ newer %boolean; #IMPLIED
+ action (send | put | recv | get | del | delete | list | mkdir | chmod | rmdir) #IMPLIED
+ description CDATA #IMPLIED
+ passive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ listing CDATA #IMPLIED
+ umask CDATA #IMPLIED
+ ignorenoncriticalerrors %boolean; #IMPLIED
+ depends %boolean; #IMPLIED>
+
+<!ELEMENT jpcovreport (reference | coveragepath | sourcepath)*>
+<!ATTLIST jpcovreport
+ id ID #IMPLIED
+ snapshot CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ filters CDATA #IMPLIED
+ percent CDATA #IMPLIED
+ home CDATA #IMPLIED
+ type (executive | summary | detailed | verydetailed) #IMPLIED
+ taskname CDATA #IMPLIED
+ format (html | text | xml) #IMPLIED
+ includesource %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT coveragepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST coveragepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT execon (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST execon
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckout (fileset)*>
+<!ATTLIST ccmcheckout
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT ant (reference | propertyset | property)*>
+<!ATTLIST ant
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED
+ antfile CDATA #IMPLIED>
+
+<!ELEMENT xmlvalidate (fileset | classpath | attribute | dtd | xmlcatalog | property)*>
+<!ATTLIST xmlvalidate
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ lenient %boolean; #IMPLIED
+ warn %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT xslt (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST xslt
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT p4resolve EMPTY>
+<!ATTLIST p4resolve
+ id ID #IMPLIED
+ forcetextmode %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ markersforall %boolean; #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ resolvemode CDATA #IMPLIED
+ redoall %boolean; #IMPLIED>
+
+<!ELEMENT iplanet-ejbc (classpath)*>
+<!ATTLIST iplanet-ejbc
+ id ID #IMPLIED
+ ejbdescriptor CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ iasdescriptor CDATA #IMPLIED
+ iashome CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckintask (fileset)*>
+<!ATTLIST ccmcheckintask
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT gzip EMPTY>
+<!ATTLIST gzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT native2ascii (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST native2ascii
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ ext CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ccrmtype EMPTY>
+<!ATTLIST ccrmtype
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ rmall %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ ignore %boolean; #IMPLIED
+ typekind CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT starteam EMPTY>
+<!ATTLIST starteam
+ id ID #IMPLIED
+ targetfolderabsolute %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ recursion %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ targetfolder CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ foldername CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ear (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | archives | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST ear
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ earfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ appxml CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT archives (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST archives
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT input (#PCDATA)>
+<!ATTLIST input
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ addproperty CDATA #IMPLIED
+ description CDATA #IMPLIED
+ defaultvalue CDATA #IMPLIED
+ validargs CDATA #IMPLIED
+ message CDATA #IMPLIED>
+
+<!ELEMENT presetdef (%tasks;)*>
+<!ATTLIST presetdef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT rmic (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST rmic
+ id ID #IMPLIED
+ verify %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ iiop %boolean; #IMPLIED
+ idlopts CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ sourcebase CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ base CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ idl %boolean; #IMPLIED
+ iiopopts CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ stubversion CDATA #IMPLIED>
+
+<!ELEMENT compilerarg EMPTY>
+<!ATTLIST compilerarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ implementation CDATA #IMPLIED
+ file CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT checksum (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST checksum
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ fileext CDATA #IMPLIED
+ totalproperty CDATA #IMPLIED
+ property CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ readbuffersize CDATA #IMPLIED
+ verifyproperty CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ algorithm CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ provider CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED>
+
+<!ELEMENT mail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT bcc EMPTY>
+<!ATTLIST bcc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT message (#PCDATA)>
+<!ATTLIST message
+ id ID #IMPLIED
+ mimetype CDATA #IMPLIED
+ src CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+
+<!ELEMENT replyto EMPTY>
+<!ATTLIST replyto
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT cc EMPTY>
+<!ATTLIST cc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT to EMPTY>
+<!ATTLIST to
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT from EMPTY>
+<!ATTLIST from
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT loadfile (filterchain)*>
+<!ATTLIST loadfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ property CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT vsscheckout EMPTY>
+<!ATTLIST vsscheckout
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ date CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ getlocalcopy %boolean; #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT stylebook (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST stylebook
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ loaderconfig CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ targetdirectory CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ skindirectory CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ book CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT soscheckin EMPTY>
+<!ATTLIST soscheckin
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT mimemail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mimemail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT stlabel EMPTY>
+<!ATTLIST stlabel
+ id ID #IMPLIED
+ lastbuild CDATA #IMPLIED
+ url CDATA #IMPLIED
+ username CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ revisionlabel %boolean; #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ buildlabel %boolean; #IMPLIED>
+
+<!ELEMENT gunzip EMPTY>
+<!ATTLIST gunzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT concat (#PCDATA | filterchain | fileset | filelist | path | footer | header)*>
+<!ATTLIST concat
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ binary %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ fixlastline %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT cab (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST cab
+ id ID #IMPLIED
+ cabfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ options CDATA #IMPLIED>
+
+<!ELEMENT touch (fileset | filelist)*>
+<!ATTLIST touch
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ millis CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ datetime CDATA #IMPLIED>
+
+<!ELEMENT parallel (%tasks; | daemons)*>
+<!ATTLIST parallel
+ id ID #IMPLIED
+ pollinterval CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ threadsperprocessor CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ threadcount CDATA #IMPLIED
+ failonany %boolean; #IMPLIED>
+
+<!ELEMENT daemons (%tasks;)*>
+<!ATTLIST daemons
+ id ID #IMPLIED>
+
+<!ELEMENT splash EMPTY>
+<!ATTLIST splash
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ user CDATA #IMPLIED
+ proxy CDATA #IMPLIED
+ imageurl CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ showduration CDATA #IMPLIED
+ useproxy %boolean; #IMPLIED>
+
+<!ELEMENT antcall (reference | propertyset | param)*>
+<!ATTLIST antcall
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED>
+
+<!ELEMENT ccmkbl EMPTY>
+<!ATTLIST ccmkbl
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nlabel %boolean; #IMPLIED
+ full %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ baselinerootname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT cccheckout EMPTY>
+<!ATTLIST cccheckout
+ id ID #IMPLIED
+ reserved %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ out CDATA #IMPLIED
+ notco %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ nodata %boolean; #IMPLIED
+ version %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ branch CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT typedef (classpath)*>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT p4have EMPTY>
+<!ATTLIST p4have
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT xmlproperty EMPTY>
+<!ATTLIST xmlproperty
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ semanticattributes %boolean; #IMPLIED
+ keeproot %boolean; #IMPLIED
+ prefix CDATA #IMPLIED
+ collapseattributes %boolean; #IMPLIED
+ validate %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ rootdirectory CDATA #IMPLIED
+ includesemanticattribute %boolean; #IMPLIED>
+
+<!ELEMENT import EMPTY>
+<!ATTLIST import
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST copy
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT jsharpc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST jsharpc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ baseaddress CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ securescoping %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ purejava %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT symlink (fileset)*>
+<!ATTLIST symlink
+ id ID #IMPLIED
+ linkfilename CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ link CDATA #IMPLIED
+ action CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT antstructure EMPTY>
+<!ATTLIST antstructure
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT ccmcreatetask EMPTY>
+<!ATTLIST ccmcreatetask
+ id ID #IMPLIED
+ subsystem CDATA #IMPLIED
+ task CDATA #IMPLIED
+ platform CDATA #IMPLIED
+ resolver CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ ccmaction CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ release CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rpm EMPTY>
+<!ATTLIST rpm
+ id ID #IMPLIED
+ removesource %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ command CDATA #IMPLIED
+ cleanbuilddir %boolean; #IMPLIED
+ removespec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ specfile CDATA #IMPLIED
+ topdir CDATA #IMPLIED
+ rpmbuildcommand CDATA #IMPLIED>
+
+<!ELEMENT delete (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST delete
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ deleteonexit %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replace (patternset | exclude | include | custom | present | none | not | type | modified | replacefilter | or | contains | depend | replacetoken | different | size | majority | containsregexp | filename | selector | includesfile | replacevalue | date | excludesfile | depth | and)*>
+<!ATTLIST replace
+ id ID #IMPLIED
+ encoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ token CDATA #IMPLIED
+ propertyfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ summary %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ replacefilterfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replacefilter EMPTY>
+<!ATTLIST replacefilter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT replacetoken (#PCDATA)>
+<!ATTLIST replacetoken
+ id ID #IMPLIED>
+
+<!ELEMENT replacevalue (#PCDATA)>
+<!ATTLIST replacevalue
+ id ID #IMPLIED>
+
+<!ELEMENT mmetrics (fileset | jvmarg | classpath | path | sourcepath)*>
+<!ATTLIST mmetrics
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ home CDATA #IMPLIED
+ granularity (compilation-units | files | methods | types | packages) #IMPLIED>
+
+<!ELEMENT attrib (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST attrib
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ readonly %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ hidden %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ system %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ archive %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT waitfor (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST waitfor
+ id ID #IMPLIED
+ checkeveryunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ checkevery CDATA #IMPLIED
+ maxwaitunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ maxwait CDATA #IMPLIED
+ timeoutproperty CDATA #IMPLIED>
+
+<!ELEMENT isfalse EMPTY>
+<!ATTLIST isfalse
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isreference EMPTY>
+<!ATTLIST isreference
+ id ID #IMPLIED
+ type CDATA #IMPLIED
+ refid IDREF #IMPLIED>
+
+<!ELEMENT equals EMPTY>
+<!ATTLIST equals
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ arg2 CDATA #IMPLIED
+ arg1 CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED>
+
+<!ELEMENT available (classpath | filepath)*>
+<!ATTLIST available
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ ignoresystemclasses %boolean; #IMPLIED
+ type (file | dir) #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ filepath CDATA #IMPLIED>
+
+<!ELEMENT filepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST filepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT os EMPTY>
+<!ATTLIST os
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED
+ family CDATA #IMPLIED
+ arch CDATA #IMPLIED>
+
+<!ELEMENT filesmatch EMPTY>
+<!ATTLIST filesmatch
+ id ID #IMPLIED
+ file2 CDATA #IMPLIED
+ file1 CDATA #IMPLIED>
+
+<!ELEMENT istrue EMPTY>
+<!ATTLIST istrue
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isset EMPTY>
+<!ATTLIST isset
+ id ID #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT socket EMPTY>
+<!ATTLIST socket
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT http EMPTY>
+<!ATTLIST http
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ errorsbeginat CDATA #IMPLIED>
+
+<!ELEMENT uptodate (srcfiles | mapper)*>
+<!ATTLIST uptodate
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED
+ targetfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT srcfiles (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfiles
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT untar (fileset | patternset)*>
+<!ATTLIST untar
+ id ID #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT loadproperties (filterchain | classpath)*>
+<!ATTLIST loadproperties
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT echoproperties (propertyset)*>
+<!ATTLIST echoproperties
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ format (xml | text) #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT chgrp (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chgrp
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ group CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT vajexport (include | exclude)*>
+<!ATTLIST vajexport
+ id ID #IMPLIED
+ exportclasses %boolean; #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ exportresources %boolean; #IMPLIED
+ exportsources %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ exportdebuginfo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT bunzip2 EMPTY>
+<!ATTLIST bunzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT whichresource (classpath)*>
+<!ATTLIST whichresource
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT copyfile EMPTY>
+<!ATTLIST copyfile
+ id ID #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ filtering CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT p4labelsync EMPTY>
+<!ATTLIST p4labelsync
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ delete %boolean; #IMPLIED
+ add %boolean; #IMPLIED>
+
+<!ELEMENT vsscreate EMPTY>
+<!ATTLIST vsscreate
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT macrodef (sequential | element | attribute | text)*>
+<!ATTLIST macrodef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT element EMPTY>
+<!ATTLIST element
+ id ID #IMPLIED
+ implicit %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT text EMPTY>
+<!ATTLIST text
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ejbc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ejbc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT unjar (fileset | patternset)*>
+<!ATTLIST unjar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vbc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST vbc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ removeintchecks %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ optionstrict %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ rootnamespace CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ optionexplicit %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optioncompare CDATA #IMPLIED
+ imports CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT wsdltodotnet EMPTY>
+<!ATTLIST wsdltodotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT mkdir EMPTY>
+<!ATTLIST mkdir
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT condition (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST condition
+ id ID #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT cvs (commandline)*>
+<!ATTLIST cvs
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT tempfile EMPTY>
+<!ATTLIST tempfile
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT junitreport (report | fileset)*>
+<!ATTLIST junitreport
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED>
+
+<!ELEMENT report EMPTY>
+<!ATTLIST report
+ id ID #IMPLIED
+ todir CDATA #IMPLIED
+ styledir CDATA #IMPLIED
+ format (frames | noframes) #IMPLIED
+ extension CDATA #IMPLIED>
+
+<!ELEMENT ccmkattr EMPTY>
+<!ATTLIST ccmkattr
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ typevalue CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT taskdef (classpath)*>
+<!ATTLIST taskdef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT echo (#PCDATA)>
+<!ATTLIST echo
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ message CDATA #IMPLIED
+ level (error | warning | info | verbose | debug) #IMPLIED>
+
+<!ELEMENT ccupdate EMPTY>
+<!ATTLIST ccupdate
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ rename %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ log CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ graphical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ currenttime %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT java (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST java
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT renameext (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST renameext
+ id ID #IMPLIED
+ replace %boolean; #IMPLIED
+ toextension CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ fromextension CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT vsslabel EMPTY>
+<!ATTLIST vsslabel
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc2 (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc2
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT basename EMPTY>
+<!ATTLIST basename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT vsscp EMPTY>
+<!ATTLIST vsscp
+ id ID #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT tar (patternset | exclude | include | tarfileset | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST tar
+ id ID #IMPLIED
+ tarfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ longfile (warn | fail | truncate | gnu | omit) #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT tarfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tarfileset
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ preserveleadingslashes %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ uid CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ group CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ mode CDATA #IMPLIED
+ gid CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ dirmode CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT vajimport (fileset)*>
+<!ATTLIST vajimport
+ id ID #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ importsources %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ project CDATA #IMPLIED
+ description CDATA #IMPLIED
+ importresources %boolean; #IMPLIED
+ importclasses %boolean; #IMPLIED>
+
+<!ELEMENT p4fstat (fileset)*>
+<!ATTLIST p4fstat
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ showfilter CDATA #IMPLIED>
+
+<!ELEMENT setproxy EMPTY>
+<!ATTLIST setproxy
+ id ID #IMPLIED
+ nonproxyhosts CDATA #IMPLIED
+ proxyhost CDATA #IMPLIED
+ socksproxyhost CDATA #IMPLIED
+ proxyport CDATA #IMPLIED
+ socksproxyport CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ proxyuser CDATA #IMPLIED
+ description CDATA #IMPLIED
+ proxypassword CDATA #IMPLIED>
+
+<!ELEMENT wlstop (classpath)*>
+<!ATTLIST wlstop
+ id ID #IMPLIED
+ user CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ delay CDATA #IMPLIED
+ password CDATA #IMPLIED
+ url CDATA #IMPLIED
+ description CDATA #IMPLIED
+ beahome CDATA #IMPLIED>
+
+<!ELEMENT p4counter EMPTY>
+<!ATTLIST p4counter
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ilasm (patternset | exclude | include | custom | present | none | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ilasm
+ id ID #IMPLIED
+ owner CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ targettype (exe | library) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resourcefile CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ listing %boolean; #IMPLIED
+ keyfile CDATA #IMPLIED>
+
+<!ELEMENT soscheckout EMPTY>
+<!ATTLIST soscheckout
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT apply (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST apply
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-resolve (ant | location | url | extension)*>
+<!ATTLIST jarlib-resolve
+ id ID #IMPLIED
+ checkextension %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT location EMPTY>
+<!ATTLIST location
+ id ID #IMPLIED
+ location CDATA #IMPLIED>
+
+<!ELEMENT url EMPTY>
+<!ATTLIST url
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ url CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT ccuncheckout EMPTY>
+<!ATTLIST ccuncheckout
+ id ID #IMPLIED
+ objselect CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED>
+
+<!ELEMENT cvstagdiff (commandline)*>
+<!ATTLIST cvstagdiff
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ endtag CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ starttag CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ enddate CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ startdate CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT jlink (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | mergefiles | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | addfiles | depth | and)*>
+<!ATTLIST jlink
+ id ID #IMPLIED
+ outfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ addfiles CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ mergefiles CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergefiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST mergefiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT addfiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST addfiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT javacc EMPTY>
+<!ATTLIST javacc
+ id ID #IMPLIED
+ debugparser %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ forcelacheck %boolean; #IMPLIED
+ optimizetokenmanager %boolean; #IMPLIED
+ commontokenaction %boolean; #IMPLIED
+ buildtokenmanager %boolean; #IMPLIED
+ sanitycheck %boolean; #IMPLIED
+ buildparser %boolean; #IMPLIED
+ otherambiguitycheck CDATA #IMPLIED
+ lookahead CDATA #IMPLIED
+ debuglookahead %boolean; #IMPLIED
+ choiceambiguitycheck CDATA #IMPLIED
+ unicodeinput %boolean; #IMPLIED
+ usercharstream %boolean; #IMPLIED
+ debugtokenmanager %boolean; #IMPLIED
+ keeplinecolumn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ cachetokens %boolean; #IMPLIED
+ javaunicodeescape %boolean; #IMPLIED
+ static %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ ignorecase %boolean; #IMPLIED
+ usertokenmanager %boolean; #IMPLIED
+ errorreporting %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-manifest (options | attribute | depends | extension)*>
+<!ATTLIST jarlib-manifest
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT options (fileset | libfileset | extension)*>
+<!ATTLIST options
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depends (fileset | libfileset | extension)*>
+<!ATTLIST depends
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcs (pvcsproject)*>
+<!ATTLIST pvcs
+ id ID #IMPLIED
+ updateonly %boolean; #IMPLIED
+ force CDATA #IMPLIED
+ config CDATA #IMPLIED
+ workspace CDATA #IMPLIED
+ pvcsbin CDATA #IMPLIED
+ pvcsproject CDATA #IMPLIED
+ filenameformat CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ repository CDATA #IMPLIED
+ ignorereturncode %boolean; #IMPLIED
+ revision CDATA #IMPLIED
+ linestart CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ promotiongroup CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcsproject EMPTY>
+<!ATTLIST pvcsproject
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT chmod (mapper | include | srcfile | exclude | targetfile | patternset | redirector | env | filelist | fileset | dirset | arg)*>
+<!ATTLIST chmod
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ perm CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT ccmklbtype EMPTY>
+<!ATTLIST ccmklbtype
+ id ID #IMPLIED
+ global %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ shared %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ pbranch %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ ordinary %boolean; #IMPLIED>
+
+<!ELEMENT jar (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST jar
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT sound (fail | success)*>
+<!ATTLIST sound
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT fail EMPTY>
+<!ATTLIST fail
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT success EMPTY>
+<!ATTLIST success
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT scriptdef (#PCDATA | classpath | element | attribute)*>
+<!ATTLIST scriptdef
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ language CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ loaderref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT defaultexcludes EMPTY>
+<!ATTLIST defaultexcludes
+ id ID #IMPLIED
+ remove CDATA #IMPLIED
+ echo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ default %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ add CDATA #IMPLIED>
+
+<!ELEMENT mparse (fileset | jvmarg | classpath | sourcepath)*>
+<!ATTLIST mparse
+ id ID #IMPLIED
+ cleanup %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ debugparser %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ debugscanner %boolean; #IMPLIED>
+
+<!ELEMENT blgenclient (classpath)*>
+<!ATTLIST blgenclient
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ mode CDATA #IMPLIED
+ ejbjar CDATA #IMPLIED
+ version CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ clientjar CDATA #IMPLIED>
+
+<!ELEMENT jjdoc EMPTY>
+<!ATTLIST jjdoc
+ id ID #IMPLIED
+ outputfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ javacchome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ text %boolean; #IMPLIED
+ onetable %boolean; #IMPLIED>
+
+<!ELEMENT genkey (dname)*>
+<!ATTLIST genkey
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ sigalg CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ dname CDATA #IMPLIED
+ keysize CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ keyalg CDATA #IMPLIED
+ validity CDATA #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ storetype CDATA #IMPLIED>
+
+<!ELEMENT dname (param)*>
+<!ATTLIST dname
+ id ID #IMPLIED>
+
+<!ELEMENT ccmkelem EMPTY>
+<!ATTLIST ccmkelem
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ master %boolean; #IMPLIED
+ eltype CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ checkin %boolean; #IMPLIED>
+
+<!ELEMENT javah (classpath | class | bootclasspath)*>
+<!ATTLIST javah
+ id ID #IMPLIED
+ stubs %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ old %boolean; #IMPLIED
+ outputfile CDATA #IMPLIED
+ class CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT class EMPTY>
+<!ATTLIST class
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT ccmreconfigure EMPTY>
+<!ATTLIST ccmreconfigure
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ccmproject CDATA #IMPLIED
+ description CDATA #IMPLIED
+ recurse %boolean; #IMPLIED
+ ccmdir CDATA #IMPLIED>
+
+<!ELEMENT unzip (fileset | patternset)*>
+<!ATTLIST unzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT javac (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | src | or | contains | depend | classpath | sourcepath | different | size | majority | containsregexp | bootclasspath | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST javac
+ id ID #IMPLIED
+ target CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ compiler CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ debuglevel CDATA #IMPLIED
+ memoryinitialsize CDATA #IMPLIED
+ deprecation %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ depend %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ source CDATA #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ proceed %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ fork %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ memorymaximumsize CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ sourcepath CDATA #IMPLIED
+ listfiles %boolean; #IMPLIED
+ extdirs CDATA #IMPLIED>
+
+<!ELEMENT p4add (fileset)*>
+<!ATTLIST p4add
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ commandlength CDATA #IMPLIED>
+
+<!ELEMENT soslabel EMPTY>
+<!ATTLIST soslabel
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jpcoverage (arg | socket | fileset | jvmarg | classpath | triggers | filters)*>
+<!ATTLIST jpcoverage
+ id ID #IMPLIED
+ applet %boolean; #IMPLIED
+ recordfromstart (coverage | none | all) #IMPLIED
+ vm (java2 | jdk118 | jdk117) #IMPLIED
+ classname CDATA #IMPLIED
+ workingdir CDATA #IMPLIED
+ inputfile CDATA #IMPLIED
+ snapshotdir CDATA #IMPLIED
+ seedname CDATA #IMPLIED
+ javaexe CDATA #IMPLIED
+ home CDATA #IMPLIED
+ exitprompt CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ finalsnapshot CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tracknatives %boolean; #IMPLIED>
+
+<!ELEMENT triggers (method)*>
+<!ATTLIST triggers
+ id ID #IMPLIED>
+
+<!ELEMENT method EMPTY>
+<!ATTLIST method
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ event CDATA #IMPLIED
+ action CDATA #IMPLIED
+ param CDATA #IMPLIED>
+
+<!ELEMENT filters (include | exclude)*>
+<!ATTLIST filters
+ id ID #IMPLIED
+ defaultexclude %boolean; #IMPLIED>
+
+<!ELEMENT vssget EMPTY>
+<!ATTLIST vssget
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ date CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT deltree EMPTY>
+<!ATTLIST deltree
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ddcreator (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ddcreator
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
diff --git a/libs/FLib/build.xml b/libs/FLib/build.xml
new file mode 100644
index 0000000..aa926d8
--- /dev/null
+++ b/libs/FLib/build.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
+
+<project basedir="." default="all" name="FLib">
+
+ <!-- Common settings for all targets -->
+
+ <target name="init" description="Initialize.">
+ <tstamp/>
+ <property name="version" value="1.1.1"/>
+ </target>
+
+ <!-- Compile everything -->
+
+ <target depends="init" name="compile" description="Compile the sub-projects.">
+ <ant antfile="build.xml" dir="JCalendar" target="compile"/>
+ <ant antfile="build.xml" dir="JWizard" target="compile"/>
+ <ant antfile="build.xml" dir="TableLayout" target="compile"/>
+ </target>
+
+ <!-- Place the class files in a jar file -->
+
+ <target depends="init,compile" name="jars" description="Create jar files.">
+ <ant antfile="build.xml" dir="JCalendar" target="jar"/>
+ <ant antfile="build.xml" dir="JWizard" target="jar"/>
+ <ant antfile="build.xml" dir="TableLayout" target="jar"/>
+ </target>
+
+ <!-- Build all -->
+
+ <target depends="jars" name="all" description="Build everything.">
+ <echo message="JCalendar library built."/>
+ <echo message="JWizard library built."/>
+ <echo message="TableLayout library built."/>
+ </target>
+
+ <!-- Build the documentation -->
+
+ <target depends="init" name="javadoc" description="Javadoc for sub-projects.">
+ <ant antfile="build.xml" dir="JCalendar" target="javadoc"/>
+ <ant antfile="build.xml" dir="JWizard" target="javadoc"/>
+ <ant antfile="build.xml" dir="TableLayout" target="javadoc"/>
+ </target>
+
+ <!-- Clean the build tree -->
+
+ <target depends="init" name="clean" description="Clean all build products.">
+ <ant antfile="build.xml" dir="JCalendar" target="clean"/>
+ <ant antfile="build.xml" dir="JWizard" target="clean"/>
+ <ant antfile="build.xml" dir="TableLayout" target="clean"/>
+ </target>
+
+ <!-- Prepare a zip file for source distribution -->
+
+ <target depends="clean" name="zip" description="Create source zip file">
+ <zip destfile="FLib-${version}.zip" basedir="..">
+ <include name="FLib/**"/>
+ <exclude name="**/*.pspimage"/>
+ <exclude name="**/*.dwt"/>
+ <exclude name="**/*.zip"/>
+ <exclude name="**/*.ini"/>
+ <exclude name="**/robots.txt"/>
+ <exclude name="**/pad_file.xml"/>
+ <exclude name="**/flib.log"/>
+ <exclude name="**/FLib.ste"/>
+ <exclude name="**/bug samples/**"/>
+ </zip>
+ </target>
+
+ <!-- Generate a DTD for this buildfile -->
+
+ <target name="dtd" description="Generate a DTD">
+ <antstructure output="project.dtd"/>
+ <ant antfile="build.xml" dir="JCalendar" target="dtd"/>
+ <ant antfile="build.xml" dir="JWizard" target="dtd"/>
+ <ant antfile="build.xml" dir="TableLayout" target="dtd"/>
+ </target>
+
+</project>
diff --git a/libs/FLib/images/Logo.png b/libs/FLib/images/Logo.png
new file mode 100644
index 0000000..935c694
--- /dev/null
+++ b/libs/FLib/images/Logo.png
Binary files differ
diff --git a/libs/FLib/index.html b/libs/FLib/index.html
new file mode 100644
index 0000000..4c76631
--- /dev/null
+++ b/libs/FLib/index.html
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/FLib.dwt" codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<meta name="keywords" content="FLib Java JCalendar JWizard components GUI" />
+<meta name="description" content="FLib is a free, open source liibrary of high-quality Java components." />
+<title>FLib - High-Quality Java Components</title>
+<!-- InstanceEndEditable -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<!-- InstanceBeginEditable name="head" -->
+<!-- InstanceEndEditable -->
+<link href="JCalendar/doc/stylesheet.css" rel="stylesheet" type="text/css" />
+</head>
+
+<body>
+<p><img src="images/Logo.png" width="800" height="150" /></p>
+<table width="800" border="0" cellspacing="0" cellpadding="10">
+ <tr>
+ <td width="150" align="left" valign="top" id="sidebar">
+ <p><a href="JCalendar/doc/index.html">JCalendar</a></p>
+ <p><a href="JWizard/doc/index.html">JWizard</a></p>
+ <p><a href="TableLayout/doc/index.html">TableLayout</a></p>
+ <p><a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=113939&amp;type=1" alt="SourceForge.net Logo" width="88" height="31" border="0" align="top" title="" /></a></p>
+ <p><a href="http://www.jars.com/"><img src="http://www.jars.com/images/r750.gif" alt="Rated JARS Top 25%" width="104" height="56" border="0" align="top" title="" /></a></p>
+ </td>
+ <td id="content" width="614" align="left" valign="top"><!-- InstanceBeginEditable name="content" -->
+ <h1>Welcome to FLib!</h1>
+ <p>FLib is a free, open source library of high-quality Java components.
+ To view the components, select a component name from the list on the left.</p>
+ <p>JCalendar is a calendar component. You can use it to display a date
+ and/or time or to allow the user to enter a date and/or time. It appears
+ in two forms: a panel containing a calendar and a combo box with a drop-down
+ calendar. Although it needs some localization, most of the localization
+ work is done by taking advantage of the localization in the Java Calendar
+ class.</p>
+ <p>JWizard is a wizard component, which is like a dialog that leads the
+ user through a series of steps to complete some task. This component
+ is very easy to use and contains the common features of a wizard: a logo
+ on the left side, a title for the wizard, a title for each wizard step,
+ Back Next, Finish, Cancel and Help buttons, etc. It is fully internationalized
+ and ready for localization.</p>
+ <p>TableLayout is a layout manager. It is loosely based on the HTML table
+ and completely replaces the hard-to-use and hard-to-understand GridBagLayout
+ manager. There is no layout that the GridBagLayout can generate that
+ cannot be equivalently laid out with the TableLayout, but the latter
+ is dramatically easier to use.</p>
+ <p>There's a lot more information behind the links on the left: features
+ list, screen shots, tutorials and examples as well as full API documentation.</p>
+ <p>Tony Freixas</p>
+ <p><a href="http://sourceforge.net/donate/index.php?group_id=113939"><img src="http://images.sourceforge.net/images/project-support.jpg" width="88" height="32" border="0" alt="Support This Project" title=""/></a></p>
+ <!-- InstanceEndEditable --></td>
+ </tr>
+</table>
+</body>
+<!-- InstanceEnd --></html>
diff --git a/libs/FLib/project.dtd b/libs/FLib/project.dtd
new file mode 100644
index 0000000..b8153db
--- /dev/null
+++ b/libs/FLib/project.dtd
@@ -0,0 +1,5193 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!ENTITY % boolean "(true|false|on|off|yes|no)">
+<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert | replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch | jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog | p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc | p4integrate | translate | signjar | cclock | chown | vajload | jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar | war | stlist | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget | pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit | antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip | concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout | typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource | copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc | wsdltodotnet | mkdir | cvs | condition | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | vsslabel | renameext | basename | javadoc2 | tar | vsscp | vajimport | p4fstat | setproxy | p4counter | wlstop | ilasm | soscheckout | apply | ccuncheckout | jarlib-resolve | jlink | cvstagdiff | javacc | chmod | pvcs | jarlib-manifest | jar | ccmklbtype | sound | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | javah | ccmkelem | ccmreconfigure | fail | unzip | javac | p4add | jpcoverage | soslabel | depend | vssget | deltree | ddcreator">
+<!ENTITY % types "patternset | assertions | propertyset | filterset | libfileset | mergemapper | identitymapper | filterreader | unpackagemapper | scriptfilter | concatfilter | extension | fileset | dirset | globmapper | filelist | filterchain | path | compositemapper | classfileset | regexpmapper | selector | xmlcatalog | flattenmapper | description | chainedmapper | packagemapper | mapper | zipfileset | substitution | extensionSet | redirector | regexp">
+
+<!ELEMENT project (target | %tasks; | %types;)*>
+<!ATTLIST project
+ name CDATA #IMPLIED
+ default CDATA #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT target (%tasks; | %types;)*>
+
+<!ATTLIST target
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ if CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ depends CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT patternset (include | patternset | exclude | excludesfile | includesfile)*>
+<!ATTLIST patternset
+ id ID #IMPLIED
+ includes CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED>
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT exclude EMPTY>
+<!ATTLIST exclude
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT excludesfile EMPTY>
+<!ATTLIST excludesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT includesfile EMPTY>
+<!ATTLIST includesfile
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT assertions (disable | enable)*>
+<!ATTLIST assertions
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ enablesystemassertions %boolean; #IMPLIED>
+
+<!ELEMENT disable EMPTY>
+<!ATTLIST disable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT enable EMPTY>
+<!ATTLIST enable
+ id ID #IMPLIED
+ package CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT propertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST propertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT propertyref EMPTY>
+<!ATTLIST propertyref
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ builtin (all | system | commandline) #IMPLIED
+ regex CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT mapper (classpath | mapper)*>
+<!ATTLIST mapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST classpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT fileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT custom (classpath | param)*>
+<!ATTLIST custom
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ error CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ type CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT none (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST none
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT present (mapper)*>
+<!ATTLIST present
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ present (srconly | both) #IMPLIED>
+
+<!ELEMENT not (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST not
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT type EMPTY>
+<!ATTLIST type
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ type (file | dir) #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT modified (param)*>
+<!ATTLIST modified
+ id ID #IMPLIED
+ comparator (equal | rule) #IMPLIED
+ seldirs %boolean; #IMPLIED
+ cache (propertyfile) #IMPLIED
+ algorithm (hashvalue | digest) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ update %boolean; #IMPLIED>
+
+<!ELEMENT or (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST or
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT contains EMPTY>
+<!ATTLIST contains
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ text CDATA #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED>
+
+<!ELEMENT depend (mapper)*>
+<!ATTLIST depend
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT different (mapper)*>
+<!ATTLIST different
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ targetdir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ ignorefiletimes %boolean; #IMPLIED
+ granularity CDATA #IMPLIED>
+
+<!ELEMENT size EMPTY>
+<!ATTLIST size
+ id ID #IMPLIED
+ when (less | more | equal) #IMPLIED
+ units (K | k | kilo | KILO | Ki | KI | ki | kibi | KIBI | M | m | mega | MEGA | Mi | MI | mi | mebi | MEBI | G | g | giga | GIGA | Gi | GI | gi | gibi | GIBI | T | t | tera | TERA | Ti | TI | ti | tebi | TEBI) #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT majority (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST majority
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ allowtie %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT containsregexp EMPTY>
+<!ATTLIST containsregexp
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT filename EMPTY>
+<!ATTLIST filename
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ name CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED>
+
+<!ELEMENT selector (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST selector
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT date EMPTY>
+<!ATTLIST date
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ millis CDATA #IMPLIED
+ checkdirs %boolean; #IMPLIED
+ datetime CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ pattern CDATA #IMPLIED
+ when (before | after | equal) #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT and (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
+<!ATTLIST and
+ id ID #IMPLIED
+ error CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depth EMPTY>
+<!ATTLIST depth
+ id ID #IMPLIED
+ max CDATA #IMPLIED
+ error CDATA #IMPLIED
+ min CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dirset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST dirset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT extdirs (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST extdirs
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filelist (file)*>
+<!ATTLIST filelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT existing (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST existing
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT pathelement EMPTY>
+<!ATTLIST pathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT path (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST path
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT filterset (filterset | filter | filtersfile)*>
+<!ATTLIST filterset
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ filtersfile CDATA #IMPLIED>
+
+<!ELEMENT filter EMPTY>
+<!ATTLIST filter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT filtersfile EMPTY>
+<!ATTLIST filtersfile
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT libfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST libfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ urlbase CDATA #IMPLIED
+ file CDATA #IMPLIED
+ includeimpl %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeurl %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergemapper EMPTY>
+<!ATTLIST mergemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT identitymapper EMPTY>
+<!ATTLIST identitymapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterreader (classpath | param)*>
+<!ATTLIST filterreader
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT unpackagemapper EMPTY>
+<!ATTLIST unpackagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT scriptfilter (#PCDATA)>
+<!ATTLIST scriptfilter
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ token CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT concatfilter EMPTY>
+<!ATTLIST concatfilter
+ id ID #IMPLIED
+ append CDATA #IMPLIED
+ prepend CDATA #IMPLIED>
+
+<!ELEMENT extension EMPTY>
+<!ATTLIST extension
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ implementationversion CDATA #IMPLIED
+ specificationversion CDATA #IMPLIED
+ extensionname CDATA #IMPLIED
+ implementationvendorid CDATA #IMPLIED
+ specificationvendor CDATA #IMPLIED
+ implementationurl CDATA #IMPLIED
+ description CDATA #IMPLIED
+ implementationvendor CDATA #IMPLIED>
+
+<!ELEMENT globmapper EMPTY>
+<!ATTLIST globmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT filterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST filterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT headfilter EMPTY>
+<!ATTLIST headfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT classconstants EMPTY>
+<!ATTLIST classconstants
+ id ID #IMPLIED>
+
+<!ELEMENT linecontains (contains)*>
+<!ATTLIST linecontains
+ id ID #IMPLIED>
+
+<!ELEMENT replaceregex EMPTY>
+<!ATTLIST replaceregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT replacetokens (token)*>
+<!ATTLIST replacetokens
+ id ID #IMPLIED
+ begintoken CDATA #IMPLIED
+ endtoken CDATA #IMPLIED>
+
+<!ELEMENT token EMPTY>
+<!ATTLIST token
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT escapeunicode EMPTY>
+<!ATTLIST escapeunicode
+ id ID #IMPLIED>
+
+<!ELEMENT ignoreblank EMPTY>
+<!ATTLIST ignoreblank
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT tailfilter EMPTY>
+<!ATTLIST tailfilter
+ id ID #IMPLIED
+ lines CDATA #IMPLIED
+ skip CDATA #IMPLIED>
+
+<!ELEMENT tabstospaces EMPTY>
+<!ATTLIST tabstospaces
+ id ID #IMPLIED
+ tablength CDATA #IMPLIED>
+
+<!ELEMENT prefixlines EMPTY>
+<!ATTLIST prefixlines
+ id ID #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT expandproperties EMPTY>
+<!ATTLIST expandproperties
+ id ID #IMPLIED>
+
+<!ELEMENT striplinebreaks EMPTY>
+<!ATTLIST striplinebreaks
+ id ID #IMPLIED
+ linebreaks CDATA #IMPLIED>
+
+<!ELEMENT trim EMPTY>
+<!ATTLIST trim
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED>
+
+<!ELEMENT striplinecomments (comment)*>
+<!ATTLIST striplinecomments
+ id ID #IMPLIED>
+
+<!ELEMENT comment EMPTY>
+<!ATTLIST comment
+ id ID #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT replacestring EMPTY>
+<!ATTLIST replacestring
+ id ID #IMPLIED
+ byline %boolean; #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT tokenfilter (containsstring | linetokenizer | trim | stringtokenizer | replaceregex | replacestring | ignoreblank | deletecharacters | containsregex | filetokenizer)*>
+<!ATTLIST tokenfilter
+ id ID #IMPLIED
+ delimoutput CDATA #IMPLIED>
+
+<!ELEMENT containsstring EMPTY>
+<!ATTLIST containsstring
+ id ID #IMPLIED
+ contains CDATA #IMPLIED>
+
+<!ELEMENT linetokenizer EMPTY>
+<!ATTLIST linetokenizer
+ id ID #IMPLIED
+ includedelims %boolean; #IMPLIED>
+
+<!ELEMENT stringtokenizer EMPTY>
+<!ATTLIST stringtokenizer
+ id ID #IMPLIED
+ suppressdelims %boolean; #IMPLIED
+ includedelims %boolean; #IMPLIED
+ delimsaretokens %boolean; #IMPLIED
+ delims CDATA #IMPLIED>
+
+<!ELEMENT deletecharacters EMPTY>
+<!ATTLIST deletecharacters
+ id ID #IMPLIED
+ chars CDATA #IMPLIED>
+
+<!ELEMENT containsregex EMPTY>
+<!ATTLIST containsregex
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT filetokenizer EMPTY>
+<!ATTLIST filetokenizer
+ id ID #IMPLIED>
+
+<!ELEMENT stripjavacomments EMPTY>
+<!ATTLIST stripjavacomments
+ id ID #IMPLIED>
+
+<!ELEMENT linecontainsregexp (regexp)*>
+<!ATTLIST linecontainsregexp
+ id ID #IMPLIED>
+
+<!ELEMENT regexp EMPTY>
+<!ATTLIST regexp
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ pattern CDATA #IMPLIED>
+
+<!ELEMENT compositemapper (mapper)*>
+<!ATTLIST compositemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT classfileset (patternset | exclude | include | custom | rootfileset | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | root | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST classfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ rootclass CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT rootfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST rootfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT root EMPTY>
+<!ATTLIST root
+ id ID #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT regexpmapper EMPTY>
+<!ATTLIST regexpmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT xmlcatalog (entity | classpath | catalogpath | dtd | xmlcatalog)*>
+<!ATTLIST xmlcatalog
+ id ID #IMPLIED
+ catalogpathref IDREF #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT entity EMPTY>
+<!ATTLIST entity
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT catalogpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST catalogpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT dtd EMPTY>
+<!ATTLIST dtd
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ publicid CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ELEMENT flattenmapper EMPTY>
+<!ATTLIST flattenmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT chainedmapper (mapper)*>
+<!ATTLIST chainedmapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT packagemapper EMPTY>
+<!ATTLIST packagemapper
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT zipfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipfileset
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT substitution EMPTY>
+<!ATTLIST substitution
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ expression CDATA #IMPLIED>
+
+<!ELEMENT extensionSet (fileset | libfileset | extension)*>
+<!ATTLIST extensionSet
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT redirector (errorfilterchain | outputfilterchain | errormapper | inputfilterchain | outputmapper | inputmapper)*>
+<!ATTLIST redirector
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ inputencoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ createemptyfiles %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ error CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ input CDATA #IMPLIED
+ description CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorencoding CDATA #IMPLIED>
+
+<!ELEMENT errorfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST errorfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST outputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT errormapper (classpath | mapper)*>
+<!ATTLIST errormapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
+<!ATTLIST inputfilterchain
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT outputmapper (classpath | mapper)*>
+<!ATTLIST outputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT inputmapper (classpath | mapper)*>
+<!ATTLIST inputmapper
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT propertyfile (entry)*>
+<!ATTLIST propertyfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT entry EMPTY>
+<!ATTLIST entry
+ id ID #IMPLIED
+ operation CDATA #IMPLIED
+ default CDATA #IMPLIED
+ key CDATA #IMPLIED
+ type (int | date | string) #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT ccmkdir EMPTY>
+<!ATTLIST ccmkdir
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT importtypelib EMPTY>
+<!ATTLIST importtypelib
+ id ID #IMPLIED
+ unsafe %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ usesysarray %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT vsscheckin EMPTY>
+<!ATTLIST vsscheckin
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT sql (#PCDATA | fileset | classpath | transaction)*>
+<!ATTLIST sql
+ id ID #IMPLIED
+ onerror (continue | stop | abort) #IMPLIED
+ userid CDATA #IMPLIED
+ password CDATA #IMPLIED
+ autocommit %boolean; #IMPLIED
+ rdbms CDATA #IMPLIED
+ print %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ encoding CDATA #IMPLIED
+ version CDATA #IMPLIED
+ url CDATA #IMPLIED
+ src CDATA #IMPLIED
+ output CDATA #IMPLIED
+ driver CDATA #IMPLIED
+ showheaders %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ delimitertype (normal | row) #IMPLIED
+ escapeprocessing %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ caching %boolean; #IMPLIED
+ keepformat %boolean; #IMPLIED
+ delimiter CDATA #IMPLIED>
+
+<!ELEMENT transaction (#PCDATA)>
+<!ATTLIST transaction
+ id ID #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT cvspass EMPTY>
+<!ATTLIST cvspass
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ passfile CDATA #IMPLIED>
+
+<!ELEMENT p4reopen EMPTY>
+<!ATTLIST p4reopen
+ id ID #IMPLIED
+ tochange CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT csc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST csc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ definitions CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED
+ fullpaths %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ utf8output %boolean; #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ warnlevel CDATA #IMPLIED
+ win32res CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ extraoptions CDATA #IMPLIED
+ incremental %boolean; #IMPLIED
+ noconfig %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ references CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ docfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ unsafe %boolean; #IMPLIED
+ filealign CDATA #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED>
+
+<!ELEMENT resource EMPTY>
+<!ATTLIST resource
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ embed %boolean; #IMPLIED>
+
+<!ELEMENT define EMPTY>
+<!ATTLIST define
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ unless CDATA #IMPLIED
+ if CDATA #IMPLIED>
+
+<!ELEMENT reference (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST reference
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT src (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST src
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT dirname EMPTY>
+<!ATTLIST dirname
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT wlrun (classpath | wlclasspath)*>
+<!ATTLIST wlrun
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ pkpassword CDATA #IMPLIED
+ beahome CDATA #IMPLIED
+ domain CDATA #IMPLIED
+ username CDATA #IMPLIED
+ weblogicmainclass CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ policy CDATA #IMPLIED
+ properties CDATA #IMPLIED
+ args CDATA #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED>
+
+<!ELEMENT wlclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wlclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4label EMPTY>
+<!ATTLIST p4label
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ desc CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ lock CDATA #IMPLIED>
+
+<!ELEMENT p4revert EMPTY>
+<!ATTLIST p4revert
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ revertonlyunchanged %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT replaceregexp (fileset | substitution | regexp)*>
+<!ATTLIST replaceregexp
+ id ID #IMPLIED
+ flags CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ match CDATA #IMPLIED
+ file CDATA #IMPLIED
+ byline %boolean; #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED>
+
+<!ELEMENT get EMPTY>
+<!ATTLIST get
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ ignoreerrors %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ usetimestamp %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT jjtree EMPTY>
+<!ATTLIST jjtree
+ id ID #IMPLIED
+ nodedefaultvoid %boolean; #IMPLIED
+ buildnodefiles %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ static %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ nodeprefix CDATA #IMPLIED
+ nodefactory %boolean; #IMPLIED
+ multi %boolean; #IMPLIED
+ visitor %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ nodeusesparser %boolean; #IMPLIED
+ visitorexception CDATA #IMPLIED
+ nodescopehook %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nodepackage CDATA #IMPLIED>
+
+<!ELEMENT sleep EMPTY>
+<!ATTLIST sleep
+ id ID #IMPLIED
+ hours CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ milliseconds CDATA #IMPLIED
+ minutes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ seconds CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-display (fileset)*>
+<!ATTLIST jarlib-display
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT dependset (patternset | exclude | include | custom | present | none | not | type | targetfileset | srcfileset | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | srcfilelist | date | excludesfile | depth | and | targetfilelist)*>
+<!ATTLIST dependset
+ id ID #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT targetfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST targetfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT srcfilelist (file)*>
+<!ATTLIST srcfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT targetfilelist (file)*>
+<!ATTLIST targetfilelist
+ id ID #IMPLIED
+ dir CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ files CDATA #IMPLIED>
+
+<!ELEMENT zip (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST zip
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT zipgroupfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST zipgroupfileset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT patch EMPTY>
+<!ATTLIST patch
+ id ID #IMPLIED
+ strip CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ originalfile CDATA #IMPLIED
+ patchfile CDATA #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ backups %boolean; #IMPLIED
+ ignorewhitespace %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jspc (patternset | exclude | include | custom | present | none | not | type | compilerclasspath | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | webapp | depth | and)*>
+<!ATTLIST jspc
+ id ID #IMPLIED
+ mapped %boolean; #IMPLIED
+ ieplugin CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ package CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ compilerclasspath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ uribase CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ uriroot CDATA #IMPLIED
+ webinc CDATA #IMPLIED>
+
+<!ELEMENT compilerclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST compilerclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT webapp EMPTY>
+<!ATTLIST webapp
+ id ID #IMPLIED
+ basedir CDATA #IMPLIED>
+
+<!ELEMENT style (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST style
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT factory (attribute)*>
+<!ATTLIST factory
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT attribute EMPTY>
+<!ATTLIST attribute
+ id ID #IMPLIED>
+
+<!ELEMENT outputproperty EMPTY>
+<!ATTLIST outputproperty
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ value CDATA #IMPLIED>
+
+<!ELEMENT test (classpath | sysproperty | redirector | bootclasspath | env | syspropertyset | permissions | jvmarg | arg | assertions | testlet)*>
+<!ATTLIST test
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ forceshowtrace %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ showsuccess %boolean; #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ showbanner CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED
+ showtrace %boolean; #IMPLIED>
+
+<!ELEMENT sysproperty EMPTY>
+<!ATTLIST sysproperty
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT bootclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST bootclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT env EMPTY>
+<!ATTLIST env
+ id ID #IMPLIED
+ key CDATA #IMPLIED
+ file CDATA #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT syspropertyset (propertyref | propertyset | mapper)*>
+<!ATTLIST syspropertyset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ negate %boolean; #IMPLIED
+ dynamic %boolean; #IMPLIED>
+
+<!ELEMENT permissions (grant | revoke)*>
+<!ATTLIST permissions
+ id ID #IMPLIED>
+
+<!ELEMENT grant EMPTY>
+<!ATTLIST grant
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT revoke EMPTY>
+<!ATTLIST revoke
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ class CDATA #IMPLIED
+ actions CDATA #IMPLIED>
+
+<!ELEMENT jvmarg EMPTY>
+<!ATTLIST jvmarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT arg EMPTY>
+<!ATTLIST arg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT testlet (#PCDATA)>
+<!ATTLIST testlet
+ id ID #IMPLIED>
+
+<!ELEMENT tstamp (format)*>
+<!ATTLIST tstamp
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED>
+
+<!ELEMENT format EMPTY>
+<!ATTLIST format
+ id ID #IMPLIED
+ locale CDATA #IMPLIED
+ timezone CDATA #IMPLIED
+ unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
+ pattern CDATA #IMPLIED
+ property CDATA #IMPLIED
+ offset CDATA #IMPLIED>
+
+<!ELEMENT unwar (fileset | patternset)*>
+<!ATTLIST unwar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vsshistory EMPTY>
+<!ATTLIST vsshistory
+ id ID #IMPLIED
+ style (brief | codediff | nofile | default) #IMPLIED
+ numdays CDATA #IMPLIED
+ todate CDATA #IMPLIED
+ output CDATA #IMPLIED
+ fromlabel CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ fromdate CDATA #IMPLIED
+ user CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ tolabel CDATA #IMPLIED
+ dateformat CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT icontract (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST icontract
+ id ID #IMPLIED
+ classdir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ repositorydir CDATA #IMPLIED
+ instrumentdir CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ builddir CDATA #IMPLIED
+ updateicontrol %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ pre %boolean; #IMPLIED
+ controlfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ invariant %boolean; #IMPLIED
+ post %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ failthrowable CDATA #IMPLIED
+ verbosity CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ repbuilddir CDATA #IMPLIED
+ targets CDATA #IMPLIED>
+
+<!ELEMENT cvschangelog (fileset | user | commandline)*>
+<!ATTLIST cvschangelog
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ end CDATA #IMPLIED
+ package CDATA #IMPLIED
+ start CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ usersfile CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ daysinpast CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT user EMPTY>
+<!ATTLIST user
+ id ID #IMPLIED
+ userid CDATA #IMPLIED
+ displayname CDATA #IMPLIED>
+
+<!ELEMENT commandline (marker | argument)*>
+<!ATTLIST commandline
+ id ID #IMPLIED
+ executable CDATA #IMPLIED>
+
+<!ELEMENT marker EMPTY>
+<!ATTLIST marker
+ id ID #IMPLIED>
+
+<!ELEMENT argument EMPTY>
+<!ATTLIST argument
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ file CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT p4submit EMPTY>
+<!ATTLIST p4submit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ needsresolveproperty CDATA #IMPLIED
+ user CDATA #IMPLIED
+ changeproperty CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT ccmcheckin (fileset)*>
+<!ATTLIST ccmcheckin
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT p4change EMPTY>
+<!ATTLIST p4change
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT bzip2 EMPTY>
+<!ATTLIST bzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT sync (fileset)*>
+<!ATTLIST sync
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ granularity CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT p4delete EMPTY>
+<!ATTLIST p4delete
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT vssadd EMPTY>
+<!ATTLIST vssadd
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT javadoc (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT taglet (path)*>
+<!ATTLIST taglet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT doclet (path | param)*>
+<!ATTLIST doclet
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT package EMPTY>
+<!ATTLIST package
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ id ID #IMPLIED
+ href CDATA #IMPLIED
+ offline %boolean; #IMPLIED
+ packagelistloc CDATA #IMPLIED>
+
+<!ELEMENT doctitle (#PCDATA)>
+<!ATTLIST doctitle
+ id ID #IMPLIED>
+
+<!ELEMENT bottom (#PCDATA)>
+<!ATTLIST bottom
+ id ID #IMPLIED>
+
+<!ELEMENT group (package | title)*>
+<!ATTLIST group
+ id ID #IMPLIED
+ packages CDATA #IMPLIED
+ title CDATA #IMPLIED>
+
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title
+ id ID #IMPLIED>
+
+<!ELEMENT packageset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST packageset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT sourcepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST sourcepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT footer (#PCDATA)>
+<!ATTLIST footer
+ id ID #IMPLIED>
+
+<!ELEMENT source EMPTY>
+<!ATTLIST source
+ id ID #IMPLIED
+ file CDATA #IMPLIED>
+
+<!ELEMENT header (#PCDATA)>
+<!ATTLIST header
+ id ID #IMPLIED>
+
+<!ELEMENT excludepackage EMPTY>
+<!ATTLIST excludepackage
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT tag (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tag
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ name CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ enabled %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ scope CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT p4integrate EMPTY>
+<!ATTLIST p4integrate
+ id ID #IMPLIED
+ branch CDATA #IMPLIED
+ leavetargetrevision %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ forceintegrate %boolean; #IMPLIED
+ client CDATA #IMPLIED
+ enablebaselessmerges %boolean; #IMPLIED
+ fromfile CDATA #IMPLIED
+ reversebranchmappings %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ change CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ propagatesourcefiletype %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ nocopynewtargetfiles %boolean; #IMPLIED
+ tofile CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ restoredeletedrevisions %boolean; #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT translate (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST translate
+ id ID #IMPLIED
+ bundlecountry CDATA #IMPLIED
+ bundlelanguage CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ srcencoding CDATA #IMPLIED
+ bundle CDATA #IMPLIED
+ bundleencoding CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ destencoding CDATA #IMPLIED
+ bundlevariant CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ endtoken CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ starttoken CDATA #IMPLIED>
+
+<!ELEMENT signjar (fileset)*>
+<!ATTLIST signjar
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ lazy %boolean; #IMPLIED
+ jar CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ sectionsonly %boolean; #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ sigfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ internalsf %boolean; #IMPLIED
+ storetype CDATA #IMPLIED
+ signedjar CDATA #IMPLIED>
+
+<!ELEMENT cclock EMPTY>
+<!ATTLIST cclock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ nusers CDATA #IMPLIED
+ obsolete %boolean; #IMPLIED>
+
+<!ELEMENT chown (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chown
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ owner CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT srcfile EMPTY>
+<!ATTLIST srcfile
+ id ID #IMPLIED>
+
+<!ELEMENT targetfile EMPTY>
+<!ATTLIST targetfile
+ id ID #IMPLIED>
+
+<!ELEMENT vajload (vajproject)*>
+<!ATTLIST vajload
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ remote CDATA #IMPLIED
+ haltonerror %boolean; #IMPLIED>
+
+<!ELEMENT vajproject EMPTY>
+<!ATTLIST vajproject
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT jarlib-available (extensionset | extension)*>
+<!ATTLIST jarlib-available
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT extensionset (fileset | libfileset | extension)*>
+<!ATTLIST extensionset
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rexec (write | read)*>
+<!ATTLIST rexec
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED
+ command CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT WsdlToDotnet EMPTY>
+<!ATTLIST WsdlToDotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildnumber EMPTY>
+<!ATTLIST buildnumber
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jpcovmerge (fileset)*>
+<!ATTLIST jpcovmerge
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ home CDATA #IMPLIED>
+
+<!ELEMENT ejbjar (patternset | exclude | include | custom | weblogictoplink | present | none | jboss | not | borland | weblogic | type | modified | iplanet | or | jonas | contains | depend | support | classpath | different | size | majority | websphere | containsregexp | dtd | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ejbjar
+ id ID #IMPLIED
+ descriptordir CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basenameterminator CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ cmpversion (1.0 | 2.0) #IMPLIED
+ dependency CDATA #IMPLIED
+ basejarname CDATA #IMPLIED
+ flatdestdir %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ naming (ejb-name | directory | descriptor | basejarname) #IMPLIED
+ excludesfile CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT weblogictoplink (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogictoplink
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ toplinkdtd CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ toplinkdescriptor CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT jboss (classpath)*>
+<!ATTLIST jboss
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT borland (classpath)*>
+<!ATTLIST borland
+ id ID #IMPLIED
+ verifyargs CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ java2iiopparams CDATA #IMPLIED
+ version CDATA #IMPLIED
+ basdtd CDATA #IMPLIED
+ verify %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ generateclient %boolean; #IMPLIED>
+
+<!ELEMENT weblogic (classpath | wlclasspath | sysproperty)*>
+<!ATTLIST weblogic
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ args CDATA #IMPLIED
+ outputdir CDATA #IMPLIED
+ wldtd CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ weblogicdtd CDATA #IMPLIED
+ wlclasspath CDATA #IMPLIED
+ jvmdebuglevel CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ ejbcclass CDATA #IMPLIED
+ noejbc %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT iplanet (classpath)*>
+<!ATTLIST iplanet
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ iashome CDATA #IMPLIED>
+
+<!ELEMENT jonas (classpath)*>
+<!ATTLIST jonas
+ id ID #IMPLIED
+ jonasroot CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ additionalargs CDATA #IMPLIED
+ javac CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ orb CDATA #IMPLIED
+ jarsuffix CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED
+ nogenic %boolean; #IMPLIED
+ rmicopts CDATA #IMPLIED
+ javacopts CDATA #IMPLIED
+ novalidation %boolean; #IMPLIED
+ keepgenerated %boolean; #IMPLIED
+ nocompil %boolean; #IMPLIED
+ secpropag %boolean; #IMPLIED>
+
+<!ELEMENT support (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST support
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT websphere (classpath | wasclasspath)*>
+<!ATTLIST websphere
+ id ID #IMPLIED
+ newcmp %boolean; #IMPLIED
+ ejbdtd CDATA #IMPLIED
+ rmicoptions CDATA #IMPLIED
+ noinform %boolean; #IMPLIED
+ rebuild %boolean; #IMPLIED
+ suffix CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ dbschema CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ ejbdeploy %boolean; #IMPLIED
+ use35 %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ novalidate %boolean; #IMPLIED
+ codegen %boolean; #IMPLIED
+ dbvendor (SQL92 | SQL99 | DB2UDBWIN_V71 | DB2UDBOS390_V6 | DB2UDBAS400_V4R5 | ORACLE_V8 | INFORMIX_V92 | SYBASE_V1192 | MSSQLSERVER_V7 | MYSQL_V323) #IMPLIED
+ classpath CDATA #IMPLIED
+ wasclasspath CDATA #IMPLIED
+ oldcmp %boolean; #IMPLIED
+ dbname CDATA #IMPLIED
+ keepgeneric %boolean; #IMPLIED
+ trace %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ genericjarsuffix CDATA #IMPLIED>
+
+<!ELEMENT wasclasspath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST wasclasspath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT war (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | lib | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | classes | date | excludesfile | webinf | depth | and)*>
+<!ATTLIST war
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ webxml CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ warfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT manifest (attribute | section)*>
+<!ATTLIST manifest
+ id ID #IMPLIED>
+
+<!ELEMENT section (attribute)*>
+<!ATTLIST section
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT metainf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST metainf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT lib (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST lib
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT indexjars (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST indexjars
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT classes (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST classes
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT webinf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST webinf
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT rename EMPTY>
+<!ATTLIST rename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ replace CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT sequential (%tasks;)*>
+<!ATTLIST sequential
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT serverdeploy (weblogic | generic | jonas)*>
+<!ATTLIST serverdeploy
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ action CDATA #IMPLIED
+ source CDATA #IMPLIED>
+
+<!ELEMENT generic (arg | classpath | jvmarg)*>
+<!ATTLIST generic
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ password CDATA #IMPLIED
+ server CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ username CDATA #IMPLIED>
+
+<!ELEMENT property (classpath)*>
+<!ATTLIST property
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ url CDATA #IMPLIED
+ name CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ userproperty %boolean; #IMPLIED
+ resource CDATA #IMPLIED
+ environment CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ location CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT subant (reference | fileset | buildpathelement | dirset | buildpath | propertyset | filelist | property)*>
+<!ATTLIST subant
+ id ID #IMPLIED
+ genericantfile CDATA #IMPLIED
+ output CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ antfile CDATA #IMPLIED
+ target CDATA #IMPLIED
+ buildpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ buildpath CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT buildpathelement EMPTY>
+<!ATTLIST buildpathelement
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT buildpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST buildpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT move (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST move
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT ildasm EMPTY>
+<!ATTLIST ildasm
+ id ID #IMPLIED
+ assembler %boolean; #IMPLIED
+ encoding (ascii | utf8 | unicode) #IMPLIED
+ executable CDATA #IMPLIED
+ progressbar %boolean; #IMPLIED
+ linenumbers %boolean; #IMPLIED
+ rawexceptionhandling %boolean; #IMPLIED
+ showsource %boolean; #IMPLIED
+ metadata %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ bytes %boolean; #IMPLIED
+ resourcedir CDATA #IMPLIED
+ quoteallnames %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ header %boolean; #IMPLIED
+ visibility CDATA #IMPLIED
+ sourcefile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ item CDATA #IMPLIED>
+
+<!ELEMENT copydir (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST copydir
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ src CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT cccheckin EMPTY>
+<!ATTLIST cccheckin
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT ccunlock EMPTY>
+<!ATTLIST ccunlock
+ id ID #IMPLIED
+ objsel CDATA #IMPLIED
+ pname CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ objselect CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT wljspc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST wljspc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ package CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT fixcrlf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST fixcrlf
+ id ID #IMPLIED
+ tab (add | asis | remove) #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ cr (add | asis | remove) #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ javafiles %boolean; #IMPLIED
+ eof (add | asis | remove) #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ tablength CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ fixlast %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT telnet (write | read)*>
+<!ATTLIST telnet
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ password CDATA #IMPLIED
+ initialcr %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT sosget EMPTY>
+<!ATTLIST sosget
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocompress %boolean; #IMPLIED
+ nocache %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT pathconvert (map | path | mapper)*>
+<!ATTLIST pathconvert
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ pathsep CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ dirsep CDATA #IMPLIED
+ setonempty %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ targetos CDATA #IMPLIED>
+
+<!ELEMENT map EMPTY>
+<!ATTLIST map
+ id ID #IMPLIED
+ from CDATA #IMPLIED
+ to CDATA #IMPLIED>
+
+<!ELEMENT record EMPTY>
+<!ATTLIST record
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ loglevel (error | warn | info | verbose | debug) #IMPLIED
+ description CDATA #IMPLIED
+ emacsmode %boolean; #IMPLIED
+ action (start | stop) #IMPLIED>
+
+<!ELEMENT p4sync EMPTY>
+<!ATTLIST p4sync
+ id ID #IMPLIED
+ force CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT exec (arg | redirector | env)*>
+<!ATTLIST exec
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ executable CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ os CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED>
+
+<!ELEMENT ccmklabel EMPTY>
+<!ATTLIST ccmklabel
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT p4edit EMPTY>
+<!ATTLIST p4edit
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ change CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT maudit (fileset | jvmarg | classpath | rulespath | searchpath | sourcepath)*>
+<!ATTLIST maudit
+ id ID #IMPLIED
+ tofile CDATA #IMPLIED
+ exit %boolean; #IMPLIED
+ offsets %boolean; #IMPLIED
+ quiet %boolean; #IMPLIED
+ unused %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ fix %boolean; #IMPLIED
+ metamatahome CDATA #IMPLIED
+ list %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ fullsemanticize %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rulespath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST rulespath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT searchpath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST searchpath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT antlr (jvmarg | classpath)*>
+<!ATTLIST antlr
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ trace %boolean; #IMPLIED
+ tracetreewalker %boolean; #IMPLIED
+ html %boolean; #IMPLIED
+ tracelexer %boolean; #IMPLIED
+ diagnostic %boolean; #IMPLIED
+ traceparser %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ glib CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT netrexxc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST netrexxc
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose (verbose | verbose0 | verbose1 | verbose2 | verbose3 | verbose4 | verbose5 | noverbose) #IMPLIED
+ keep %boolean; #IMPLIED
+ comments %boolean; #IMPLIED
+ strictimport %boolean; #IMPLIED
+ sourcedir %boolean; #IMPLIED
+ diag %boolean; #IMPLIED
+ compile %boolean; #IMPLIED
+ binary %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ suppressmethodargumentnotused %boolean; #IMPLIED
+ suppressvariablenotused %boolean; #IMPLIED
+ strictsignal %boolean; #IMPLIED
+ trace (trace | trace1 | trace2 | notrace) #IMPLIED
+ destdir CDATA #IMPLIED
+ console %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ format %boolean; #IMPLIED
+ explicit %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ suppressprivatepropertynotused %boolean; #IMPLIED
+ strictargs %boolean; #IMPLIED
+ suppressdeprecation %boolean; #IMPLIED
+ strictcase %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ savelog %boolean; #IMPLIED
+ logo %boolean; #IMPLIED
+ utf8 %boolean; #IMPLIED
+ strictprops %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ java %boolean; #IMPLIED
+ suppressexceptionnotsignalled %boolean; #IMPLIED
+ crossref %boolean; #IMPLIED
+ time %boolean; #IMPLIED
+ symbols %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ strictassign %boolean; #IMPLIED
+ compact %boolean; #IMPLIED
+ decimal %boolean; #IMPLIED>
+
+<!ELEMENT ftp (fileset)*>
+<!ATTLIST ftp
+ id ID #IMPLIED
+ binary %boolean; #IMPLIED
+ password CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ timediffauto %boolean; #IMPLIED
+ remotedir CDATA #IMPLIED
+ separator CDATA #IMPLIED
+ port CDATA #IMPLIED
+ skipfailedtransfers %boolean; #IMPLIED
+ chmod CDATA #IMPLIED
+ timediffmillis CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ server CDATA #IMPLIED
+ newer %boolean; #IMPLIED
+ action (send | put | recv | get | del | delete | list | mkdir | chmod | rmdir) #IMPLIED
+ description CDATA #IMPLIED
+ passive %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ listing CDATA #IMPLIED
+ umask CDATA #IMPLIED
+ ignorenoncriticalerrors %boolean; #IMPLIED
+ depends %boolean; #IMPLIED>
+
+<!ELEMENT jpcovreport (reference | coveragepath | sourcepath)*>
+<!ATTLIST jpcovreport
+ id ID #IMPLIED
+ snapshot CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ filters CDATA #IMPLIED
+ percent CDATA #IMPLIED
+ home CDATA #IMPLIED
+ type (executive | summary | detailed | verydetailed) #IMPLIED
+ taskname CDATA #IMPLIED
+ format (html | text | xml) #IMPLIED
+ includesource %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT coveragepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST coveragepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT execon (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST execon
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckout (fileset)*>
+<!ATTLIST ccmcheckout
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT ant (reference | propertyset | property)*>
+<!ATTLIST ant
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED
+ antfile CDATA #IMPLIED>
+
+<!ELEMENT xmlvalidate (fileset | classpath | attribute | dtd | xmlcatalog | property)*>
+<!ATTLIST xmlvalidate
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ lenient %boolean; #IMPLIED
+ warn %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT xslt (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST xslt
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ processor CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ basedir CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ scanincludeddirectories %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ extension CDATA #IMPLIED
+ in CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ reloadstylesheet %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ out CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ style CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT p4resolve EMPTY>
+<!ATTLIST p4resolve
+ id ID #IMPLIED
+ forcetextmode %boolean; #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ markersforall %boolean; #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ resolvemode CDATA #IMPLIED
+ redoall %boolean; #IMPLIED>
+
+<!ELEMENT iplanet-ejbc (classpath)*>
+<!ATTLIST iplanet-ejbc
+ id ID #IMPLIED
+ ejbdescriptor CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ iasdescriptor CDATA #IMPLIED
+ iashome CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated %boolean; #IMPLIED>
+
+<!ELEMENT ccmcheckintask (fileset)*>
+<!ATTLIST ccmcheckintask
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ task CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ comment CDATA #IMPLIED>
+
+<!ELEMENT gzip EMPTY>
+<!ATTLIST gzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ zipfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT native2ascii (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | mapper | date | excludesfile | depth | and)*>
+<!ATTLIST native2ascii
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ ext CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ reverse %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ccrmtype EMPTY>
+<!ATTLIST ccrmtype
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ rmall %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ ignore %boolean; #IMPLIED
+ typekind CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT starteam EMPTY>
+<!ATTLIST starteam
+ id ID #IMPLIED
+ targetfolderabsolute %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ recursion %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ targetfolder CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ foldername CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT ear (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | archives | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST ear
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ earfile CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ appxml CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT archives (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST archives
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ filemode CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ dirmode CDATA #IMPLIED>
+
+<!ELEMENT input (#PCDATA)>
+<!ATTLIST input
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ addproperty CDATA #IMPLIED
+ description CDATA #IMPLIED
+ defaultvalue CDATA #IMPLIED
+ validargs CDATA #IMPLIED
+ message CDATA #IMPLIED>
+
+<!ELEMENT presetdef (%tasks;)*>
+<!ATTLIST presetdef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT rmic (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | or | contains | depend | classpath | different | size | majority | containsregexp | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST rmic
+ id ID #IMPLIED
+ verify %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ iiop %boolean; #IMPLIED
+ idlopts CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ sourcebase CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ base CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ compiler CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ idl %boolean; #IMPLIED
+ iiopopts CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filtering %boolean; #IMPLIED
+ stubversion CDATA #IMPLIED>
+
+<!ELEMENT compilerarg EMPTY>
+<!ATTLIST compilerarg
+ id ID #IMPLIED
+ line CDATA #IMPLIED
+ implementation CDATA #IMPLIED
+ file CDATA #IMPLIED
+ compiler CDATA #IMPLIED
+ pathref IDREF #IMPLIED
+ value CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT checksum (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST checksum
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ fileext CDATA #IMPLIED
+ totalproperty CDATA #IMPLIED
+ property CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ readbuffersize CDATA #IMPLIED
+ verifyproperty CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ algorithm CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ provider CDATA #IMPLIED
+ forceoverwrite %boolean; #IMPLIED>
+
+<!ELEMENT mail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT bcc EMPTY>
+<!ATTLIST bcc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT message (#PCDATA)>
+<!ATTLIST message
+ id ID #IMPLIED
+ mimetype CDATA #IMPLIED
+ src CDATA #IMPLIED
+ charset CDATA #IMPLIED>
+
+<!ELEMENT replyto EMPTY>
+<!ATTLIST replyto
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT cc EMPTY>
+<!ATTLIST cc
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT to EMPTY>
+<!ATTLIST to
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT from EMPTY>
+<!ATTLIST from
+ id ID #IMPLIED
+ address CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT loadfile (filterchain)*>
+<!ATTLIST loadfile
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ property CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT vsscheckout EMPTY>
+<!ATTLIST vsscheckout
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ date CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ getlocalcopy %boolean; #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT stylebook (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST stylebook
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ loaderconfig CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ targetdirectory CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ skindirectory CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ book CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT soscheckin EMPTY>
+<!ATTLIST soscheckin
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT mimemail (fileset | bcc | message | replyto | cc | to | from)*>
+<!ATTLIST mimemail
+ id ID #IMPLIED
+ cclist CDATA #IMPLIED
+ messagefile CDATA #IMPLIED
+ password CDATA #IMPLIED
+ encoding (auto | mime | uu | plain) #IMPLIED
+ charset CDATA #IMPLIED
+ files CDATA #IMPLIED
+ subject CDATA #IMPLIED
+ message CDATA #IMPLIED
+ ssl %boolean; #IMPLIED
+ tolist CDATA #IMPLIED
+ mailport CDATA #IMPLIED
+ messagemimetype CDATA #IMPLIED
+ from CDATA #IMPLIED
+ bcclist CDATA #IMPLIED
+ description CDATA #IMPLIED
+ replyto CDATA #IMPLIED
+ mailhost CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ includefilenames %boolean; #IMPLIED
+ user CDATA #IMPLIED>
+
+<!ELEMENT stlabel EMPTY>
+<!ATTLIST stlabel
+ id ID #IMPLIED
+ lastbuild CDATA #IMPLIED
+ url CDATA #IMPLIED
+ username CDATA #IMPLIED
+ viewname CDATA #IMPLIED
+ projectname CDATA #IMPLIED
+ revisionlabel %boolean; #IMPLIED
+ servername CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ serverport CDATA #IMPLIED
+ buildlabel %boolean; #IMPLIED>
+
+<!ELEMENT gunzip EMPTY>
+<!ATTLIST gunzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT concat (#PCDATA | filterchain | fileset | filelist | path | footer | header)*>
+<!ATTLIST concat
+ id ID #IMPLIED
+ force %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ binary %boolean; #IMPLIED
+ eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ fixlastline %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT cab (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST cab
+ id ID #IMPLIED
+ cabfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ options CDATA #IMPLIED>
+
+<!ELEMENT touch (fileset | filelist)*>
+<!ATTLIST touch
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ millis CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ datetime CDATA #IMPLIED>
+
+<!ELEMENT parallel (%tasks; | daemons)*>
+<!ATTLIST parallel
+ id ID #IMPLIED
+ pollinterval CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ threadsperprocessor CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ threadcount CDATA #IMPLIED
+ failonany %boolean; #IMPLIED>
+
+<!ELEMENT daemons (%tasks;)*>
+<!ATTLIST daemons
+ id ID #IMPLIED>
+
+<!ELEMENT splash EMPTY>
+<!ATTLIST splash
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ user CDATA #IMPLIED
+ proxy CDATA #IMPLIED
+ imageurl CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ password CDATA #IMPLIED
+ showduration CDATA #IMPLIED
+ useproxy %boolean; #IMPLIED>
+
+<!ELEMENT antcall (reference | propertyset | param)*>
+<!ATTLIST antcall
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ inheritall %boolean; #IMPLIED
+ inheritrefs %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ target CDATA #IMPLIED>
+
+<!ELEMENT ccmkbl EMPTY>
+<!ATTLIST ccmkbl
+ id ID #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nlabel %boolean; #IMPLIED
+ full %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ identical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ baselinerootname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT cccheckout EMPTY>
+<!ATTLIST cccheckout
+ id ID #IMPLIED
+ reserved %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ out CDATA #IMPLIED
+ notco %boolean; #IMPLIED
+ comment CDATA #IMPLIED
+ nodata %boolean; #IMPLIED
+ version %boolean; #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ branch CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT typedef (classpath)*>
+<!ATTLIST typedef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT p4have EMPTY>
+<!ATTLIST p4have
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT xmlproperty EMPTY>
+<!ATTLIST xmlproperty
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ semanticattributes %boolean; #IMPLIED
+ keeproot %boolean; #IMPLIED
+ prefix CDATA #IMPLIED
+ collapseattributes %boolean; #IMPLIED
+ validate %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ rootdirectory CDATA #IMPLIED
+ includesemanticattribute %boolean; #IMPLIED>
+
+<!ELEMENT import EMPTY>
+<!ATTLIST import
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
+<!ATTLIST copy
+ id ID #IMPLIED
+ flatten %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ file CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ enablemultiplemappings %boolean; #IMPLIED
+ granularity CDATA #IMPLIED
+ outputencoding CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ preservelastmodified %boolean; #IMPLIED
+ filtering %boolean; #IMPLIED>
+
+<!ELEMENT jsharpc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST jsharpc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ baseaddress CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ securescoping %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ purejava %boolean; #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT symlink (fileset)*>
+<!ATTLIST symlink
+ id ID #IMPLIED
+ linkfilename CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ link CDATA #IMPLIED
+ action CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT antstructure EMPTY>
+<!ATTLIST antstructure
+ id ID #IMPLIED
+ output CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED
+ language CDATA #IMPLIED>
+
+<!ELEMENT ccmcreatetask EMPTY>
+<!ATTLIST ccmcreatetask
+ id ID #IMPLIED
+ subsystem CDATA #IMPLIED
+ task CDATA #IMPLIED
+ platform CDATA #IMPLIED
+ resolver CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ ccmaction CDATA #IMPLIED
+ ccmdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ release CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT rpm EMPTY>
+<!ATTLIST rpm
+ id ID #IMPLIED
+ removesource %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ command CDATA #IMPLIED
+ cleanbuilddir %boolean; #IMPLIED
+ removespec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ specfile CDATA #IMPLIED
+ topdir CDATA #IMPLIED
+ rpmbuildcommand CDATA #IMPLIED>
+
+<!ELEMENT delete (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | fileset | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST delete
+ id ID #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ includeemptydirs %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ deleteonexit %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replace (patternset | exclude | include | custom | present | none | not | type | modified | replacefilter | or | contains | depend | replacetoken | different | size | majority | containsregexp | filename | selector | includesfile | replacevalue | date | excludesfile | depth | and)*>
+<!ATTLIST replace
+ id ID #IMPLIED
+ encoding CDATA #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ token CDATA #IMPLIED
+ propertyfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ summary %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ replacefilterfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT replacefilter EMPTY>
+<!ATTLIST replacefilter
+ id ID #IMPLIED
+ token CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT replacetoken (#PCDATA)>
+<!ATTLIST replacetoken
+ id ID #IMPLIED>
+
+<!ELEMENT replacevalue (#PCDATA)>
+<!ATTLIST replacevalue
+ id ID #IMPLIED>
+
+<!ELEMENT mmetrics (fileset | jvmarg | classpath | path | sourcepath)*>
+<!ATTLIST mmetrics
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED
+ maxmemory CDATA #IMPLIED
+ home CDATA #IMPLIED
+ granularity (compilation-units | files | methods | types | packages) #IMPLIED>
+
+<!ELEMENT attrib (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST attrib
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ readonly %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ hidden %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ system %boolean; #IMPLIED
+ outputproperty CDATA #IMPLIED
+ archive %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT waitfor (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST waitfor
+ id ID #IMPLIED
+ checkeveryunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ checkevery CDATA #IMPLIED
+ maxwaitunit (millisecond | second | minute | hour | day | week) #IMPLIED
+ maxwait CDATA #IMPLIED
+ timeoutproperty CDATA #IMPLIED>
+
+<!ELEMENT isfalse EMPTY>
+<!ATTLIST isfalse
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isreference EMPTY>
+<!ATTLIST isreference
+ id ID #IMPLIED
+ type CDATA #IMPLIED
+ refid IDREF #IMPLIED>
+
+<!ELEMENT equals EMPTY>
+<!ATTLIST equals
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ arg2 CDATA #IMPLIED
+ arg1 CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED>
+
+<!ELEMENT available (classpath | filepath)*>
+<!ATTLIST available
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ ignoresystemclasses %boolean; #IMPLIED
+ type (file | dir) #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ filepath CDATA #IMPLIED>
+
+<!ELEMENT filepath (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST filepath
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT os EMPTY>
+<!ATTLIST os
+ id ID #IMPLIED
+ version CDATA #IMPLIED
+ name CDATA #IMPLIED
+ family CDATA #IMPLIED
+ arch CDATA #IMPLIED>
+
+<!ELEMENT filesmatch EMPTY>
+<!ATTLIST filesmatch
+ id ID #IMPLIED
+ file2 CDATA #IMPLIED
+ file1 CDATA #IMPLIED>
+
+<!ELEMENT istrue EMPTY>
+<!ATTLIST istrue
+ id ID #IMPLIED
+ value %boolean; #IMPLIED>
+
+<!ELEMENT isset EMPTY>
+<!ATTLIST isset
+ id ID #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT socket EMPTY>
+<!ATTLIST socket
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ server CDATA #IMPLIED>
+
+<!ELEMENT http EMPTY>
+<!ATTLIST http
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ errorsbeginat CDATA #IMPLIED>
+
+<!ELEMENT uptodate (srcfiles | mapper)*>
+<!ATTLIST uptodate
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED
+ targetfile CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT srcfiles (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST srcfiles
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ file CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT untar (fileset | patternset)*>
+<!ATTLIST untar
+ id ID #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT loadproperties (filterchain | classpath)*>
+<!ATTLIST loadproperties
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ srcfile CDATA #IMPLIED>
+
+<!ELEMENT echoproperties (propertyset)*>
+<!ATTLIST echoproperties
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ format (xml | text) #IMPLIED
+ srcfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT chgrp (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST chgrp
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ command CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ group CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT vajexport (include | exclude)*>
+<!ATTLIST vajexport
+ id ID #IMPLIED
+ exportclasses %boolean; #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ destdir CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ exportresources %boolean; #IMPLIED
+ exportsources %boolean; #IMPLIED
+ overwrite %boolean; #IMPLIED
+ exportdebuginfo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT bunzip2 EMPTY>
+<!ATTLIST bunzip2
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT whichresource (classpath)*>
+<!ATTLIST whichresource
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ class CDATA #IMPLIED>
+
+<!ELEMENT copyfile EMPTY>
+<!ATTLIST copyfile
+ id ID #IMPLIED
+ forceoverwrite %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ filtering CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT p4labelsync EMPTY>
+<!ATTLIST p4labelsync
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ simulationmode %boolean; #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ delete %boolean; #IMPLIED
+ add %boolean; #IMPLIED>
+
+<!ELEMENT vsscreate EMPTY>
+<!ATTLIST vsscreate
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT macrodef (sequential | element | attribute | text)*>
+<!ATTLIST macrodef
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ name CDATA #IMPLIED
+ description CDATA #IMPLIED
+ uri CDATA #IMPLIED>
+
+<!ELEMENT element EMPTY>
+<!ATTLIST element
+ id ID #IMPLIED
+ implicit %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT text EMPTY>
+<!ATTLIST text
+ id ID #IMPLIED
+ trim %boolean; #IMPLIED
+ name CDATA #IMPLIED
+ optional %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ejbc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ejbc
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ keepgenerated CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT unjar (fileset | patternset)*>
+<!ATTLIST unjar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT vbc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST vbc
+ id ID #IMPLIED
+ references CDATA #IMPLIED
+ useresponsefile %boolean; #IMPLIED
+ removeintchecks %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ mainclass CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ additionalmodules CDATA #IMPLIED
+ win32icon CDATA #IMPLIED
+ optionstrict %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ utf8output %boolean; #IMPLIED
+ includedefaultreferences %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ optimize %boolean; #IMPLIED
+ targettype (exe | library | module | winexe) #IMPLIED
+ destfile CDATA #IMPLIED
+ rootnamespace CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ win32res CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ optionexplicit %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ optioncompare CDATA #IMPLIED
+ imports CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ referencefiles CDATA #IMPLIED>
+
+<!ELEMENT wsdltodotnet EMPTY>
+<!ATTLIST wsdltodotnet
+ id ID #IMPLIED
+ url CDATA #IMPLIED
+ srcfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ server %boolean; #IMPLIED
+ namespace CDATA #IMPLIED
+ language CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT mkdir EMPTY>
+<!ATTLIST mkdir
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT cvs (commandline)*>
+<!ATTLIST cvs
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT condition (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
+<!ATTLIST condition
+ id ID #IMPLIED
+ value CDATA #IMPLIED
+ property CDATA #IMPLIED>
+
+<!ELEMENT tempfile EMPTY>
+<!ATTLIST tempfile
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT junitreport (report | fileset)*>
+<!ATTLIST junitreport
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ todir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tofile CDATA #IMPLIED>
+
+<!ELEMENT report EMPTY>
+<!ATTLIST report
+ id ID #IMPLIED
+ todir CDATA #IMPLIED
+ styledir CDATA #IMPLIED
+ format (frames | noframes) #IMPLIED
+ extension CDATA #IMPLIED>
+
+<!ELEMENT ccmkattr EMPTY>
+<!ATTLIST ccmkattr
+ id ID #IMPLIED
+ recurse %boolean; #IMPLIED
+ typevalue CDATA #IMPLIED
+ replace %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED>
+
+<!ELEMENT taskdef (classpath)*>
+<!ATTLIST taskdef
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ file CDATA #IMPLIED
+ classname CDATA #IMPLIED
+ resource CDATA #IMPLIED
+ adaptto CDATA #IMPLIED
+ onerror (fail | report | ignore) #IMPLIED
+ loaderref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ adapter CDATA #IMPLIED
+ format (properties | xml) #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT echo (#PCDATA)>
+<!ATTLIST echo
+ id ID #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ message CDATA #IMPLIED
+ level (error | warning | info | verbose | debug) #IMPLIED>
+
+<!ELEMENT ccupdate EMPTY>
+<!ATTLIST ccupdate
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ rename %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ log CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ graphical %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ currenttime %boolean; #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT java (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
+<!ATTLIST java
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ jvmargs CDATA #IMPLIED
+ args CDATA #IMPLIED
+ fork %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ jar CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ jvm CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ jvmversion CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ classname CDATA #IMPLIED>
+
+<!ELEMENT vsslabel EMPTY>
+<!ATTLIST vsslabel
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT renameext (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST renameext
+ id ID #IMPLIED
+ replace %boolean; #IMPLIED
+ toextension CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ fromextension CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT basename EMPTY>
+<!ATTLIST basename
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ file CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ suffix CDATA #IMPLIED>
+
+<!ELEMENT javadoc2 (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
+<!ATTLIST javadoc2
+ id ID #IMPLIED
+ verbose %boolean; #IMPLIED
+ bottom CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ header CDATA #IMPLIED
+ link CDATA #IMPLIED
+ noindex %boolean; #IMPLIED
+ access (protected | public | package | private) #IMPLIED
+ doclet CDATA #IMPLIED
+ noqualifier CDATA #IMPLIED
+ public %boolean; #IMPLIED
+ author %boolean; #IMPLIED
+ footer CDATA #IMPLIED
+ docletpath CDATA #IMPLIED
+ package %boolean; #IMPLIED
+ useexternalfile %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ protected %boolean; #IMPLIED
+ breakiterator %boolean; #IMPLIED
+ nonavbar %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ group CDATA #IMPLIED
+ source CDATA #IMPLIED
+ linkoffline CDATA #IMPLIED
+ additionalparam CDATA #IMPLIED
+ locale CDATA #IMPLIED
+ linksource %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ private %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ charset CDATA #IMPLIED
+ nodeprecatedlist %boolean; #IMPLIED
+ classpathref IDREF #IMPLIED
+ stylesheetfile CDATA #IMPLIED
+ docencoding CDATA #IMPLIED
+ excludepackagenames CDATA #IMPLIED
+ docletpathref IDREF #IMPLIED
+ packagenames CDATA #IMPLIED
+ windowtitle CDATA #IMPLIED
+ notree %boolean; #IMPLIED
+ splitindex %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ packagelist CDATA #IMPLIED
+ doctitle CDATA #IMPLIED
+ serialwarn %boolean; #IMPLIED
+ old %boolean; #IMPLIED
+ use %boolean; #IMPLIED
+ sourcepath CDATA #IMPLIED
+ helpfile CDATA #IMPLIED
+ version %boolean; #IMPLIED
+ sourcefiles CDATA #IMPLIED
+ extdirs CDATA #IMPLIED
+ nohelp %boolean; #IMPLIED
+ nodeprecated %boolean; #IMPLIED
+ overview CDATA #IMPLIED>
+
+<!ELEMENT tar (patternset | exclude | include | tarfileset | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST tar
+ id ID #IMPLIED
+ tarfile CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ basedir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ compression (none | gzip | bzip2) #IMPLIED
+ longfile (warn | fail | truncate | gnu | omit) #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT tarfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST tarfileset
+ id ID #IMPLIED
+ excludes CDATA #IMPLIED
+ preserveleadingslashes %boolean; #IMPLIED
+ username CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ uid CDATA #IMPLIED
+ fullpath CDATA #IMPLIED
+ group CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ refid IDREF #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ mode CDATA #IMPLIED
+ gid CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ prefix CDATA #IMPLIED
+ dirmode CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED>
+
+<!ELEMENT vsscp EMPTY>
+<!ATTLIST vsscp
+ id ID #IMPLIED
+ login CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ vsspath CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ ssdir CDATA #IMPLIED
+ autoresponse CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT vajimport (fileset)*>
+<!ATTLIST vajimport
+ id ID #IMPLIED
+ haltonerror %boolean; #IMPLIED
+ remote CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ importsources %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ project CDATA #IMPLIED
+ description CDATA #IMPLIED
+ importresources %boolean; #IMPLIED
+ importclasses %boolean; #IMPLIED>
+
+<!ELEMENT p4fstat (fileset)*>
+<!ATTLIST p4fstat
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ showfilter CDATA #IMPLIED>
+
+<!ELEMENT setproxy EMPTY>
+<!ATTLIST setproxy
+ id ID #IMPLIED
+ nonproxyhosts CDATA #IMPLIED
+ proxyhost CDATA #IMPLIED
+ socksproxyhost CDATA #IMPLIED
+ proxyport CDATA #IMPLIED
+ socksproxyport CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ proxyuser CDATA #IMPLIED
+ description CDATA #IMPLIED
+ proxypassword CDATA #IMPLIED>
+
+<!ELEMENT p4counter EMPTY>
+<!ATTLIST p4counter
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ value CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ property CDATA #IMPLIED
+ errormessage CDATA #IMPLIED>
+
+<!ELEMENT wlstop (classpath)*>
+<!ATTLIST wlstop
+ id ID #IMPLIED
+ user CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ delay CDATA #IMPLIED
+ password CDATA #IMPLIED
+ url CDATA #IMPLIED
+ description CDATA #IMPLIED
+ beahome CDATA #IMPLIED>
+
+<!ELEMENT ilasm (patternset | exclude | include | custom | present | none | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
+<!ATTLIST ilasm
+ id ID #IMPLIED
+ owner CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ extraoptions CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ targettype (exe | library) #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ debug %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ outputfile CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resourcefile CDATA #IMPLIED
+ srcdir CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ listing %boolean; #IMPLIED
+ keyfile CDATA #IMPLIED>
+
+<!ELEMENT soscheckout EMPTY>
+<!ATTLIST soscheckout
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ file CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT apply (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
+<!ATTLIST apply
+ id ID #IMPLIED
+ resultproperty CDATA #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED
+ maxparallel CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ os CDATA #IMPLIED
+ errorproperty CDATA #IMPLIED
+ output CDATA #IMPLIED
+ timeout CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ spawn %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ logerror %boolean; #IMPLIED
+ dir CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ relative %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED>
+
+<!ELEMENT ccuncheckout EMPTY>
+<!ATTLIST ccuncheckout
+ id ID #IMPLIED
+ objselect CDATA #IMPLIED
+ keepcopy %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ failonerr %boolean; #IMPLIED>
+
+<!ELEMENT jarlib-resolve (ant | location | url | extension)*>
+<!ATTLIST jarlib-resolve
+ id ID #IMPLIED
+ checkextension %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ property CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED>
+
+<!ELEMENT location EMPTY>
+<!ATTLIST location
+ id ID #IMPLIED
+ location CDATA #IMPLIED>
+
+<!ELEMENT url EMPTY>
+<!ATTLIST url
+ id ID #IMPLIED
+ destdir CDATA #IMPLIED
+ url CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT jlink (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | mergefiles | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | addfiles | depth | and)*>
+<!ATTLIST jlink
+ id ID #IMPLIED
+ outfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ addfiles CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ mergefiles CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+
+<!ELEMENT mergefiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST mergefiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT addfiles (fileset | dirset | extdirs | filelist | existing | pathelement | path)*>
+<!ATTLIST addfiles
+ id ID #IMPLIED
+ location CDATA #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED
+ path CDATA #IMPLIED>
+
+<!ELEMENT cvstagdiff (commandline)*>
+<!ATTLIST cvstagdiff
+ id ID #IMPLIED
+ cvsrsh CDATA #IMPLIED
+ endtag CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ passfile CDATA #IMPLIED
+ command CDATA #IMPLIED
+ package CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ reallyquiet %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ starttag CDATA #IMPLIED
+ port CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ compressionlevel CDATA #IMPLIED
+ destfile CDATA #IMPLIED
+ enddate CDATA #IMPLIED
+ noexec %boolean; #IMPLIED
+ error CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ date CDATA #IMPLIED
+ startdate CDATA #IMPLIED
+ compression %boolean; #IMPLIED
+ tag CDATA #IMPLIED>
+
+<!ELEMENT javacc EMPTY>
+<!ATTLIST javacc
+ id ID #IMPLIED
+ debugparser %boolean; #IMPLIED
+ javacchome CDATA #IMPLIED
+ forcelacheck %boolean; #IMPLIED
+ optimizetokenmanager %boolean; #IMPLIED
+ commontokenaction %boolean; #IMPLIED
+ buildtokenmanager %boolean; #IMPLIED
+ sanitycheck %boolean; #IMPLIED
+ buildparser %boolean; #IMPLIED
+ otherambiguitycheck CDATA #IMPLIED
+ lookahead CDATA #IMPLIED
+ debuglookahead %boolean; #IMPLIED
+ choiceambiguitycheck CDATA #IMPLIED
+ unicodeinput %boolean; #IMPLIED
+ usercharstream %boolean; #IMPLIED
+ debugtokenmanager %boolean; #IMPLIED
+ keeplinecolumn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ outputdirectory CDATA #IMPLIED
+ cachetokens %boolean; #IMPLIED
+ javaunicodeescape %boolean; #IMPLIED
+ static %boolean; #IMPLIED
+ target CDATA #IMPLIED
+ ignorecase %boolean; #IMPLIED
+ usertokenmanager %boolean; #IMPLIED
+ errorreporting %boolean; #IMPLIED>
+
+<!ELEMENT chmod (mapper | include | srcfile | exclude | targetfile | patternset | redirector | env | filelist | fileset | dirset | arg)*>
+<!ATTLIST chmod
+ id ID #IMPLIED
+ addsourcefile %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ parallel %boolean; #IMPLIED
+ input CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ inputstring CDATA #IMPLIED
+ relative %boolean; #IMPLIED
+ skipemptyfilesets %boolean; #IMPLIED
+ command CDATA #IMPLIED
+ forwardslash %boolean; #IMPLIED
+ spawn %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ includes CDATA #IMPLIED
+ vmlauncher %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ logerror %boolean; #IMPLIED
+ errorproperty CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ output CDATA #IMPLIED
+ error CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ os CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ resolveexecutable %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ resultproperty CDATA #IMPLIED
+ ignoremissing %boolean; #IMPLIED
+ failifexecutionfails %boolean; #IMPLIED
+ append %boolean; #IMPLIED
+ timeout CDATA #IMPLIED
+ maxparallel CDATA #IMPLIED
+ outputproperty CDATA #IMPLIED
+ perm CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ newenvironment %boolean; #IMPLIED
+ type (file | dir | both) #IMPLIED>
+
+<!ELEMENT pvcs (pvcsproject)*>
+<!ATTLIST pvcs
+ id ID #IMPLIED
+ updateonly %boolean; #IMPLIED
+ force CDATA #IMPLIED
+ config CDATA #IMPLIED
+ workspace CDATA #IMPLIED
+ pvcsbin CDATA #IMPLIED
+ pvcsproject CDATA #IMPLIED
+ filenameformat CDATA #IMPLIED
+ userid CDATA #IMPLIED
+ repository CDATA #IMPLIED
+ ignorereturncode %boolean; #IMPLIED
+ revision CDATA #IMPLIED
+ linestart CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ promotiongroup CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT pvcsproject EMPTY>
+<!ATTLIST pvcsproject
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT jarlib-manifest (options | attribute | depends | extension)*>
+<!ATTLIST jarlib-manifest
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ destfile CDATA #IMPLIED>
+
+<!ELEMENT options (fileset | libfileset | extension)*>
+<!ATTLIST options
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT depends (fileset | libfileset | extension)*>
+<!ATTLIST depends
+ id ID #IMPLIED
+ refid IDREF #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT jar (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
+<!ATTLIST jar
+ id ID #IMPLIED
+ whenempty (fail | skip | create) #IMPLIED
+ keepcompression %boolean; #IMPLIED
+ duplicate (add | preserve | fail) #IMPLIED
+ roundup %boolean; #IMPLIED
+ excludes CDATA #IMPLIED
+ basedir CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ manifest CDATA #IMPLIED
+ jarfile CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ index %boolean; #IMPLIED
+ update %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ destfile CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ description CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ compress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ manifestencoding CDATA #IMPLIED
+ filesonly %boolean; #IMPLIED
+ file CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ filesetmanifest (skip | merge | mergewithoutmain) #IMPLIED
+ zipfile CDATA #IMPLIED>
+
+<!ELEMENT ccmklbtype EMPTY>
+<!ATTLIST ccmklbtype
+ id ID #IMPLIED
+ global %boolean; #IMPLIED
+ replace %boolean; #IMPLIED
+ shared %boolean; #IMPLIED
+ viewpath CDATA #IMPLIED
+ typename CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ pbranch %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ vob CDATA #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ ordinary %boolean; #IMPLIED>
+
+<!ELEMENT sound (fail | success)*>
+<!ATTLIST sound
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT fail EMPTY>
+<!ATTLIST fail
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT success EMPTY>
+<!ATTLIST success
+ id ID #IMPLIED
+ loops CDATA #IMPLIED
+ source CDATA #IMPLIED
+ duration CDATA #IMPLIED>
+
+<!ELEMENT scriptdef (#PCDATA | classpath | element | attribute)*>
+<!ATTLIST scriptdef
+ id ID #IMPLIED
+ src CDATA #IMPLIED
+ name CDATA #IMPLIED
+ uri CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ language CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ loaderref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ reverseloader %boolean; #IMPLIED>
+
+<!ELEMENT defaultexcludes EMPTY>
+<!ATTLIST defaultexcludes
+ id ID #IMPLIED
+ remove CDATA #IMPLIED
+ echo %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ default %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ add CDATA #IMPLIED>
+
+<!ELEMENT mparse (fileset | jvmarg | classpath | sourcepath)*>
+<!ATTLIST mparse
+ id ID #IMPLIED
+ cleanup %boolean; #IMPLIED
+ verbose %boolean; #IMPLIED
+ maxmemory CDATA #IMPLIED
+ metamatahome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ debugparser %boolean; #IMPLIED
+ home CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ debugscanner %boolean; #IMPLIED>
+
+<!ELEMENT blgenclient (classpath)*>
+<!ATTLIST blgenclient
+ id ID #IMPLIED
+ debug %boolean; #IMPLIED
+ classpath CDATA #IMPLIED
+ mode CDATA #IMPLIED
+ ejbjar CDATA #IMPLIED
+ version CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ clientjar CDATA #IMPLIED>
+
+<!ELEMENT jjdoc EMPTY>
+<!ATTLIST jjdoc
+ id ID #IMPLIED
+ outputfile CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ javacchome CDATA #IMPLIED
+ target CDATA #IMPLIED
+ text %boolean; #IMPLIED
+ onetable %boolean; #IMPLIED>
+
+<!ELEMENT genkey (dname)*>
+<!ATTLIST genkey
+ id ID #IMPLIED
+ storepass CDATA #IMPLIED
+ sigalg CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ keypass CDATA #IMPLIED
+ dname CDATA #IMPLIED
+ keysize CDATA #IMPLIED
+ alias CDATA #IMPLIED
+ keyalg CDATA #IMPLIED
+ validity CDATA #IMPLIED
+ keystore CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ storetype CDATA #IMPLIED>
+
+<!ELEMENT dname (param)*>
+<!ATTLIST dname
+ id ID #IMPLIED>
+
+<!ELEMENT javah (classpath | class | bootclasspath)*>
+<!ATTLIST javah
+ id ID #IMPLIED
+ stubs %boolean; #IMPLIED
+ force %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ old %boolean; #IMPLIED
+ outputfile CDATA #IMPLIED
+ class CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ classpathref IDREF #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT class EMPTY>
+<!ATTLIST class
+ id ID #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT ccmkelem EMPTY>
+<!ATTLIST ccmkelem
+ id ID #IMPLIED
+ preservetime %boolean; #IMPLIED
+ master %boolean; #IMPLIED
+ eltype CDATA #IMPLIED
+ viewpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ failonerr %boolean; #IMPLIED
+ objselect CDATA #IMPLIED
+ cleartooldir CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ nocheckout %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ commentfile CDATA #IMPLIED
+ checkin %boolean; #IMPLIED>
+
+<!ELEMENT ccmreconfigure EMPTY>
+<!ATTLIST ccmreconfigure
+ id ID #IMPLIED
+ ccmaction CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ ccmproject CDATA #IMPLIED
+ description CDATA #IMPLIED
+ recurse %boolean; #IMPLIED
+ ccmdir CDATA #IMPLIED>
+
+<!ELEMENT unzip (fileset | patternset)*>
+<!ATTLIST unzip
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
+<!ELEMENT javac (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | src | or | contains | depend | classpath | sourcepath | different | size | majority | containsregexp | bootclasspath | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
+<!ATTLIST javac
+ id ID #IMPLIED
+ target CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ bootclasspathref IDREF #IMPLIED
+ compiler CDATA #IMPLIED
+ executable CDATA #IMPLIED
+ debuglevel CDATA #IMPLIED
+ memoryinitialsize CDATA #IMPLIED
+ deprecation %boolean; #IMPLIED
+ includeantruntime %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ sourcepathref IDREF #IMPLIED
+ depend %boolean; #IMPLIED
+ includes CDATA #IMPLIED
+ source CDATA #IMPLIED
+ includejavaruntime %boolean; #IMPLIED
+ failonerror %boolean; #IMPLIED
+ destdir CDATA #IMPLIED
+ debug %boolean; #IMPLIED
+ tempdir CDATA #IMPLIED
+ classpath CDATA #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ bootclasspath CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ nowarn %boolean; #IMPLIED
+ proceed %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ classpathref IDREF #IMPLIED
+ fork %boolean; #IMPLIED
+ srcdir CDATA #IMPLIED
+ memorymaximumsize CDATA #IMPLIED
+ optimize %boolean; #IMPLIED
+ encoding CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ sourcepath CDATA #IMPLIED
+ listfiles %boolean; #IMPLIED
+ extdirs CDATA #IMPLIED>
+
+<!ELEMENT p4add (fileset)*>
+<!ATTLIST p4add
+ id ID #IMPLIED
+ port CDATA #IMPLIED
+ client CDATA #IMPLIED
+ inerror %boolean; #IMPLIED
+ user CDATA #IMPLIED
+ changelist CDATA #IMPLIED
+ cmdopts CDATA #IMPLIED
+ globalopts CDATA #IMPLIED
+ view CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ errormessage CDATA #IMPLIED
+ commandlength CDATA #IMPLIED>
+
+<!ELEMENT jpcoverage (arg | socket | fileset | jvmarg | classpath | triggers | filters)*>
+<!ATTLIST jpcoverage
+ id ID #IMPLIED
+ applet %boolean; #IMPLIED
+ recordfromstart (coverage | none | all) #IMPLIED
+ vm (java2 | jdk118 | jdk117) #IMPLIED
+ classname CDATA #IMPLIED
+ workingdir CDATA #IMPLIED
+ inputfile CDATA #IMPLIED
+ snapshotdir CDATA #IMPLIED
+ seedname CDATA #IMPLIED
+ javaexe CDATA #IMPLIED
+ home CDATA #IMPLIED
+ exitprompt CDATA #IMPLIED
+ taskname CDATA #IMPLIED
+ warnlevel CDATA #IMPLIED
+ finalsnapshot CDATA #IMPLIED
+ description CDATA #IMPLIED
+ tracknatives %boolean; #IMPLIED>
+
+<!ELEMENT triggers (method)*>
+<!ATTLIST triggers
+ id ID #IMPLIED>
+
+<!ELEMENT method EMPTY>
+<!ATTLIST method
+ id ID #IMPLIED
+ name CDATA #IMPLIED
+ event CDATA #IMPLIED
+ action CDATA #IMPLIED
+ param CDATA #IMPLIED>
+
+<!ELEMENT filters (include | exclude)*>
+<!ATTLIST filters
+ id ID #IMPLIED
+ defaultexclude %boolean; #IMPLIED>
+
+<!ELEMENT soslabel EMPTY>
+<!ATTLIST soslabel
+ id ID #IMPLIED
+ soshome CDATA #IMPLIED
+ verbose %boolean; #IMPLIED
+ vssserverpath CDATA #IMPLIED
+ username CDATA #IMPLIED
+ sosserverpath CDATA #IMPLIED
+ comment CDATA #IMPLIED
+ projectpath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ nocache %boolean; #IMPLIED
+ nocompress %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ localpath CDATA #IMPLIED
+ soscmd CDATA #IMPLIED
+ password CDATA #IMPLIED>
+
+<!ELEMENT vssget EMPTY>
+<!ATTLIST vssget
+ id ID #IMPLIED
+ ssdir CDATA #IMPLIED
+ date CDATA #IMPLIED
+ recursive %boolean; #IMPLIED
+ autoresponse CDATA #IMPLIED
+ quiet %boolean; #IMPLIED
+ vsspath CDATA #IMPLIED
+ version CDATA #IMPLIED
+ serverpath CDATA #IMPLIED
+ login CDATA #IMPLIED
+ writable %boolean; #IMPLIED
+ filetimestamp (current | modified | updated) #IMPLIED
+ taskname CDATA #IMPLIED
+ label CDATA #IMPLIED
+ description CDATA #IMPLIED
+ failonerror %boolean; #IMPLIED
+ localpath CDATA #IMPLIED
+ writablefiles (replace | skip | fail) #IMPLIED>
+
+<!ELEMENT deltree EMPTY>
+<!ATTLIST deltree
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dir CDATA #IMPLIED
+ description CDATA #IMPLIED>
+
+<!ELEMENT ddcreator (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | and | depth)*>
+<!ATTLIST ddcreator
+ id ID #IMPLIED
+ classpath CDATA #IMPLIED
+ defaultexcludes %boolean; #IMPLIED
+ followsymlinks %boolean; #IMPLIED
+ taskname CDATA #IMPLIED
+ casesensitive %boolean; #IMPLIED
+ dest CDATA #IMPLIED
+ description CDATA #IMPLIED
+ excludes CDATA #IMPLIED
+ includesfile CDATA #IMPLIED
+ excludesfile CDATA #IMPLIED
+ descriptors CDATA #IMPLIED
+ includes CDATA #IMPLIED>
+