<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % boolean "(true|false|on|off|yes|no)">
<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | csc | dirname | replaceregexp | get | jjtree | sleep | jarlib-display | length | dependset | zip | patch | jspc | style | nice | test | tstamp | unwar | vsshistory | cvschangelog | ccmcheckin | bzip2 | sync | vssadd | javadoc | translate | signjar | cclock | chown | jarlib-available | WsdlToDotnet | buildnumber | jpcovmerge | cvsversion | ejbjar | war | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | sosget | pathconvert | record | exec | ccmklabel | manifest | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | soscheckin | mimemail | gunzip | concat | cab | touch | parallel | antcall | ccmkbl | cccheckout | typedef | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | junit | chgrp | bunzip2 | whichresource | copyfile | vsscreate | macrodef | unjar | vbc | wsdltodotnet | mkdir | condition | cvs | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | renameext | vsslabel | basename | javadoc2 | vsscp | tar | setproxy | ilasm | soscheckout | apply | ccuncheckout | jarlib-resolve | cvstagdiff | jlink | javacc | chmod | pvcs | jarlib-manifest | jar | ccmklbtype | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | javah | ccmkelem | ccmreconfigure | fail | unzip | javac | jpcoverage | soslabel | depend | vssget | deltree">
<!ENTITY % types "patternset | assertions | propertyset | filtermapper | filterset | libfileset | isfileselected | mergemapper | identitymapper | filterreader | scriptfilter | unpackagemapper | 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
          dynamic %boolean; #IMPLIED
          negate %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
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT classpath (fileset | dirset | extdirs | existing | filelist | 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 present (mapper)*>
<!ATTLIST present
          id ID #IMPLIED
          error CDATA #IMPLIED
          targetdir CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          present (srconly | both) #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 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
          algorithm (hashvalue | digest) #IMPLIED
          cache (propertyfile) #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
          ignorewhitespace %boolean; #IMPLIED
          text CDATA #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
          ignorecontents %boolean; #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
          casesensitive %boolean; #IMPLIED
          name CDATA #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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | existing | filelist | pathelement | path)*>
<!ATTLIST extdirs
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT existing (fileset | dirset | extdirs | existing | filelist | pathelement | path)*>
<!ATTLIST existing
          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 pathelement EMPTY>
<!ATTLIST pathelement
          id ID #IMPLIED
          location CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT path (fileset | dirset | extdirs | existing | filelist | pathelement | path)*>
<!ATTLIST path
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT filtermapper (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | trim | expandproperties | striplinebreaks | replacestring | striplinecomments | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
<!ATTLIST filtermapper
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          to CDATA #IMPLIED
          from 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 filterreader (classpath | param)*>
<!ATTLIST filterreader
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          classname CDATA #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 trim EMPTY>
<!ATTLIST trim
          id ID #IMPLIED
          byline %boolean; #IMPLIED>

<!ELEMENT expandproperties EMPTY>
<!ATTLIST expandproperties
          id ID #IMPLIED>

<!ELEMENT striplinebreaks EMPTY>
<!ATTLIST striplinebreaks
          id ID #IMPLIED
          linebreaks CDATA #IMPLIED>

<!ELEMENT replacestring EMPTY>
<!ATTLIST replacestring
          id ID #IMPLIED
          byline %boolean; #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT striplinecomments (comment)*>
<!ATTLIST striplinecomments
          id ID #IMPLIED>

<!ELEMENT comment EMPTY>
<!ATTLIST comment
          id ID #IMPLIED
          value 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 filterset (filterset | filter | filtersfile)*>
<!ATTLIST filterset
          id ID #IMPLIED
          begintoken CDATA #IMPLIED
          endtoken CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          recurse %boolean; #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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST libfileset
          id ID #IMPLIED
          refid IDREF #IMPLIED
          urlbase CDATA #IMPLIED
          includeimpl %boolean; #IMPLIED
          file CDATA #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 isfileselected (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
<!ATTLIST isfileselected
          id ID #IMPLIED
          file CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          basedir CDATA #IMPLIED>

<!ELEMENT mergemapper EMPTY>
<!ATTLIST mergemapper
          id ID #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT identitymapper EMPTY>
<!ATTLIST identitymapper
          id ID #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT scriptfilter (#PCDATA)>
<!ATTLIST scriptfilter
          id ID #IMPLIED
          byline %boolean; #IMPLIED
          token CDATA #IMPLIED
          src CDATA #IMPLIED
          language CDATA #IMPLIED>

<!ELEMENT unpackagemapper EMPTY>
<!ATTLIST unpackagemapper
          id ID #IMPLIED
          handledirsep %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          to CDATA #IMPLIED
          from 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
          handledirsep %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT filterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | trim | expandproperties | striplinebreaks | replacestring | striplinecomments | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
<!ATTLIST filterchain
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT compositemapper (mapper)*>
<!ATTLIST compositemapper
          id ID #IMPLIED
          to CDATA #IMPLIED
          from 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          handledirsep %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          to CDATA #IMPLIED
          from 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
          base CDATA #IMPLIED
          publicid CDATA #IMPLIED>

<!ELEMENT catalogpath (fileset | dirset | extdirs | existing | filelist | 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
          base CDATA #IMPLIED
          publicid CDATA #IMPLIED>

<!ELEMENT flattenmapper EMPTY>
<!ATTLIST flattenmapper
          id ID #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT description (#PCDATA)>
<!ATTLIST description
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT chainedmapper (mapper)*>
<!ATTLIST chainedmapper
          id ID #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT packagemapper EMPTY>
<!ATTLIST packagemapper
          id ID #IMPLIED
          handledirsep %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT zipfileset (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          createemptyfiles %boolean; #IMPLIED
          output CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          outputencoding CDATA #IMPLIED
          errorproperty CDATA #IMPLIED
          error CDATA #IMPLIED
          inputstring CDATA #IMPLIED
          alwayslog %boolean; #IMPLIED
          input CDATA #IMPLIED
          description CDATA #IMPLIED
          errorencoding CDATA #IMPLIED
          logerror %boolean; #IMPLIED>

<!ELEMENT errorfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | trim | expandproperties | striplinebreaks | replacestring | striplinecomments | 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 | trim | expandproperties | striplinebreaks | replacestring | striplinecomments | 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
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT inputfilterchain (headfilter | classconstants | linecontains | filterreader | replaceregex | replacetokens | escapeunicode | ignoreblank | tailfilter | tabstospaces | prefixlines | trim | expandproperties | striplinebreaks | replacestring | striplinecomments | 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
          to CDATA #IMPLIED
          from 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
          to CDATA #IMPLIED
          from 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 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 replaceregexp (fileset | substitution | regexp)*>
<!ATTLIST replaceregexp
          id ID #IMPLIED
          flags CDATA #IMPLIED
          taskname CDATA #IMPLIED
          match CDATA #IMPLIED
          byline %boolean; #IMPLIED
          replace CDATA #IMPLIED
          file 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
          failonerror %boolean; #IMPLIED
          seconds CDATA #IMPLIED>

<!ELEMENT jarlib-display (fileset)*>
<!ATTLIST jarlib-display
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT length EMPTY>
<!ATTLIST length
          id ID #IMPLIED
          length CDATA #IMPLIED
          file CDATA #IMPLIED
          trim %boolean; #IMPLIED
          mode (each | all) #IMPLIED
          string CDATA #IMPLIED
          when (equal | greater | less) #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          property 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          comment CDATA #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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | existing | filelist | 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 nice EMPTY>
<!ATTLIST nice
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          newpriority CDATA #IMPLIED
          currentpriority 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 | existing | filelist | 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
          dynamic %boolean; #IMPLIED
          negate %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
          overwrite %boolean; #IMPLIED
          dest CDATA #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
          fromlabel CDATA #IMPLIED
          output 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 cvschangelog (fileset | user | commandline)*>
<!ATTLIST cvschangelog
          id ID #IMPLIED
          cvsrsh CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          passfile CDATA #IMPLIED
          end CDATA #IMPLIED
          command 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 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 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
          failonerror %boolean; #IMPLIED
          granularity 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
          bottom CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspathref IDREF #IMPLIED
          executable CDATA #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
          linksource %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          locale CDATA #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          includenosourcepackages %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
          packagelist CDATA #IMPLIED
          encoding 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
          resolvelink %boolean; #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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | existing | filelist | 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 translate (patternset | exclude | include | custom | present | none | 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
          addsourcefile %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          parallel %boolean; #IMPLIED
          input CDATA #IMPLIED
          executable CDATA #IMPLIED
          force %boolean; #IMPLIED
          inputstring CDATA #IMPLIED
          searchpath %boolean; #IMPLIED
          relative %boolean; #IMPLIED
          skipemptyfilesets %boolean; #IMPLIED
          command CDATA #IMPLIED
          forwardslash %boolean; #IMPLIED
          spawn %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
          owner 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
          dir CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          type (file | dir | both) #IMPLIED>

<!ELEMENT srcfile EMPTY>
<!ATTLIST srcfile
          id ID #IMPLIED>

<!ELEMENT targetfile EMPTY>
<!ATTLIST targetfile
          id ID #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 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 cvsversion (commandline)*>
<!ATTLIST cvsversion
          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
          serverversionproperty CDATA #IMPLIED
          port CDATA #IMPLIED
          compressionlevel CDATA #IMPLIED
          dest CDATA #IMPLIED
          clientversionproperty 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 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 wlclasspath (fileset | dirset | extdirs | existing | filelist | pathelement | path)*>
<!ATTLIST wlclasspath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | existing | filelist | 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
          keepcompression %boolean; #IMPLIED
          duplicate (add | preserve | fail) #IMPLIED
          whenempty (fail | skip | create) #IMPLIED
          comment CDATA #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
          webxml CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          compress %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          manifestencoding CDATA #IMPLIED
          filesonly %boolean; #IMPLIED
          warfile CDATA #IMPLIED
          file 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | existing | filelist | 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          value CDATA #IMPLIED
          location 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
          verbose %boolean; #IMPLIED
          inheritrefs %boolean; #IMPLIED
          antfile CDATA #IMPLIED
          buildpathref IDREF #IMPLIED
          target CDATA #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 | existing | filelist | 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
          tofile CDATA #IMPLIED
          encoding 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          excludes CDATA #IMPLIED
          includesfile 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 | present | none | 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
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT fixcrlf (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 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 (path | map | 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
          to CDATA #IMPLIED
          from 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 exec (arg | redirector | env)*>
<!ATTLIST exec
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          failifexecutionfails %boolean; #IMPLIED
          command CDATA #IMPLIED
          executable CDATA #IMPLIED
          os CDATA #IMPLIED
          errorproperty CDATA #IMPLIED
          output CDATA #IMPLIED
          timeout CDATA #IMPLIED
          spawn %boolean; #IMPLIED
          input CDATA #IMPLIED
          inputstring CDATA #IMPLIED
          searchpath %boolean; #IMPLIED
          logerror %boolean; #IMPLIED
          dir CDATA #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          resolveexecutable %boolean; #IMPLIED
          failonerror %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 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 | existing | filelist | 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
          force %boolean; #IMPLIED
          failifexecutionfails %boolean; #IMPLIED
          command CDATA #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
          searchpath %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 | target)*>
<!ATTLIST ant
          id ID #IMPLIED
          output CDATA #IMPLIED
          taskname CDATA #IMPLIED
          inheritall %boolean; #IMPLIED
          dir CDATA #IMPLIED
          inheritrefs %boolean; #IMPLIED
          description CDATA #IMPLIED
          antfile CDATA #IMPLIED
          target CDATA #IMPLIED>

<!ELEMENT target EMPTY>
<!ATTLIST target
          id ID #IMPLIED
          name CDATA #IMPLIED>

<!ELEMENT xmlvalidate (fileset | classpath | dtd | xmlcatalog | attribute | 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 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 | present | none | not | type | arg | 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
          implementation 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 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
          keepcompression %boolean; #IMPLIED
          duplicate (add | preserve | fail) #IMPLIED
          whenempty (fail | skip | create) #IMPLIED
          comment CDATA #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
          earfile CDATA #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          appxml 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 archives (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 | present | none | 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 | from | to)*>
<!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
          bcclist CDATA #IMPLIED
          from 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 from EMPTY>
<!ATTLIST from
          id ID #IMPLIED
          address CDATA #IMPLIED
          name CDATA #IMPLIED>

<!ELEMENT to EMPTY>
<!ATTLIST to
          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
          date CDATA #IMPLIED
          recursive %boolean; #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 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 | from | to)*>
<!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
          bcclist CDATA #IMPLIED
          from CDATA #IMPLIED
          description CDATA #IMPLIED
          replyto CDATA #IMPLIED
          mailhost CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          includefilenames %boolean; #IMPLIED
          user CDATA #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 | present | none | 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
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          includes CDATA #IMPLIED
          options CDATA #IMPLIED>

<!ELEMENT touch (fileset | filelist | mapper)*>
<!ATTLIST touch
          id ID #IMPLIED
          verbose %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          mkdirs %boolean; #IMPLIED
          millis CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          pattern 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 antcall (reference | propertyset | target | 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 xmlproperty (xmlcatalog)*>
<!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
          tofile CDATA #IMPLIED
          encoding 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
          quiet %boolean; #IMPLIED
          command CDATA #IMPLIED
          cleanbuilddir %boolean; #IMPLIED
          removespec %boolean; #IMPLIED
          error CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          specfile CDATA #IMPLIED
          topdir CDATA #IMPLIED
          rpmbuildcommand CDATA #IMPLIED>

<!ELEMENT delete (patternset | exclude | include | custom | present | none | 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
          force %boolean; #IMPLIED
          inputstring CDATA #IMPLIED
          readonly %boolean; #IMPLIED
          searchpath %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 | existing | filelist | 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          overwrite %boolean; #IMPLIED
          dest CDATA #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 junit (classpath | sysproperty | bootclasspath | syspropertyset | env | test | permissions | jvmarg | formatter | batchtest | assertions)*>
<!ATTLIST junit
          id ID #IMPLIED
          fork %boolean; #IMPLIED
          haltonerror %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          printsummary (true | yes | false | no | on | off | withOutAndErr) #IMPLIED
          haltonfailure %boolean; #IMPLIED
          failureproperty CDATA #IMPLIED
          showoutput %boolean; #IMPLIED
          errorproperty CDATA #IMPLIED
          timeout CDATA #IMPLIED
          tempdir CDATA #IMPLIED
          jvm CDATA #IMPLIED
          includeantruntime %boolean; #IMPLIED
          dir CDATA #IMPLIED
          filtertrace %boolean; #IMPLIED
          description CDATA #IMPLIED
          forkmode (once | perTest | perBatch) #IMPLIED
          taskname CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          reloading %boolean; #IMPLIED>

<!ELEMENT formatter EMPTY>
<!ATTLIST formatter
          id ID #IMPLIED
          usefile %boolean; #IMPLIED
          type (plain | xml | brief) #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED
          classname CDATA #IMPLIED
          extension CDATA #IMPLIED>

<!ELEMENT batchtest (fileset | formatter)*>
<!ATTLIST batchtest
          id ID #IMPLIED
          if CDATA #IMPLIED
          unless CDATA #IMPLIED
          haltonerror %boolean; #IMPLIED
          fork %boolean; #IMPLIED
          todir CDATA #IMPLIED
          failureproperty CDATA #IMPLIED
          filtertrace %boolean; #IMPLIED
          haltonfailure %boolean; #IMPLIED
          errorproperty CDATA #IMPLIED>

<!ELEMENT chgrp (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
<!ATTLIST chgrp
          id ID #IMPLIED
          addsourcefile %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          parallel %boolean; #IMPLIED
          input CDATA #IMPLIED
          executable CDATA #IMPLIED
          force %boolean; #IMPLIED
          inputstring CDATA #IMPLIED
          searchpath %boolean; #IMPLIED
          relative %boolean; #IMPLIED
          skipemptyfilesets %boolean; #IMPLIED
          command CDATA #IMPLIED
          forwardslash %boolean; #IMPLIED
          spawn %boolean; #IMPLIED
          description CDATA #IMPLIED
          vmlauncher %boolean; #IMPLIED
          group CDATA #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
          outputproperty CDATA #IMPLIED
          dir CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          type (file | dir | both) #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
          resource CDATA #IMPLIED
          class CDATA #IMPLIED
          property 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 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
          optional %boolean; #IMPLIED
          name CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT text EMPTY>
<!ATTLIST text
          id ID #IMPLIED
          trim %boolean; #IMPLIED
          optional %boolean; #IMPLIED
          name CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT unjar (fileset | patternset)*>
<!ATTLIST unjar
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          dest CDATA #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
          else 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 | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludesfile 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 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
          bottom CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspathref IDREF #IMPLIED
          executable CDATA #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
          linksource %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          locale CDATA #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          includenosourcepackages %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
          packagelist CDATA #IMPLIED
          encoding 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 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 | custom | tarfileset | present | none | 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
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          compression (none | gzip | bzip2) #IMPLIED
          longfile (warn | fail | truncate | gnu | omit) #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT tarfileset (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!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 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 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
          force %boolean; #IMPLIED
          failifexecutionfails %boolean; #IMPLIED
          command CDATA #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
          searchpath %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 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
          starttag CDATA #IMPLIED
          output CDATA #IMPLIED
          port CDATA #IMPLIED
          compressionlevel CDATA #IMPLIED
          dest 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
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          mergefiles CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT mergefiles (fileset | dirset | extdirs | existing | filelist | pathelement | path)*>
<!ATTLIST mergefiles
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT addfiles (fileset | dirset | extdirs | existing | filelist | 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 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
          force %boolean; #IMPLIED
          inputstring CDATA #IMPLIED
          searchpath %boolean; #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
          pvcsbin CDATA #IMPLIED
          workspace 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
          promotiongroup CDATA #IMPLIED
          label 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
          comment CDATA #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
          pbranch %boolean; #IMPLIED
          comment CDATA #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 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 (arg | 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
          implementation 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 fail (#PCDATA | condition)*>
<!ATTLIST fail
          id ID #IMPLIED
          status CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          message CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT unzip (fileset | patternset)*>
<!ATTLIST unzip
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          dest CDATA #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 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
          filetimestamp (current | modified | updated) #IMPLIED
          writable %boolean; #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>

