<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % boolean "(true|false|on|off|yes|no)">
<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql | cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert | replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch | jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog | p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc | p4integrate | translate | signjar | cclock | chown | vajload | jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar | war | stlist | rename | sequential | serverdeploy | property | subant | move | ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget | pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit | antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate | xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii | ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail | loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip | concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout | typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink | antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics | attrib | waitfor | untar | loadproperties | available | echoproperties | stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource | copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc | wsdltodotnet | mkdir | cvs | condition | tempfile | junitreport | ccmkattr | taskdef | echo | ccupdate | java | vsslabel | renameext | basename | javadoc2 | tar | vsscp | vajimport | p4fstat | setproxy | p4counter | wlstop | ilasm | soscheckout | apply | ccuncheckout | jarlib-resolve | jlink | cvstagdiff | javacc | chmod | pvcs | jarlib-manifest | jar | ccmklbtype | sound | scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | javah | ccmkelem | ccmreconfigure | fail | unzip | javac | p4add | jpcoverage | soslabel | depend | vssget | deltree | ddcreator | junit | sshexec | scp">
<!ENTITY % types "patternset | assertions | propertyset | filterset | libfileset | mergemapper | identitymapper | filterreader | unpackagemapper | scriptfilter | concatfilter | extension | fileset | dirset | globmapper | filelist | filterchain | path | compositemapper | classfileset | regexpmapper | selector | xmlcatalog | flattenmapper | description | chainedmapper | packagemapper | mapper | zipfileset | substitution | extensionSet | redirector | regexp">

<!ELEMENT project (target | %tasks; | %types;)*>
<!ATTLIST project
          name    CDATA #IMPLIED
          default CDATA #IMPLIED
          basedir CDATA #IMPLIED>

<!ELEMENT target (%tasks; | %types;)*>

<!ATTLIST target
          id          ID    #IMPLIED
          name        CDATA #REQUIRED
          if          CDATA #IMPLIED
          unless      CDATA #IMPLIED
          depends     CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT patternset (include | patternset | exclude | excludesfile | includesfile)*>
<!ATTLIST patternset
          id ID #IMPLIED
          includes CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED>

<!ELEMENT include EMPTY>
<!ATTLIST include
          id ID #IMPLIED
          name CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT exclude EMPTY>
<!ATTLIST exclude
          id ID #IMPLIED
          name CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT excludesfile EMPTY>
<!ATTLIST excludesfile
          id ID #IMPLIED
          name CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT includesfile EMPTY>
<!ATTLIST includesfile
          id ID #IMPLIED
          name CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT assertions (disable | enable)*>
<!ATTLIST assertions
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          enablesystemassertions %boolean; #IMPLIED>

<!ELEMENT disable EMPTY>
<!ATTLIST disable
          id ID #IMPLIED
          package CDATA #IMPLIED
          class CDATA #IMPLIED>

<!ELEMENT enable EMPTY>
<!ATTLIST enable
          id ID #IMPLIED
          package CDATA #IMPLIED
          class CDATA #IMPLIED>

<!ELEMENT propertyset (propertyref | propertyset | mapper)*>
<!ATTLIST propertyset
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          negate %boolean; #IMPLIED
          dynamic %boolean; #IMPLIED>

<!ELEMENT propertyref EMPTY>
<!ATTLIST propertyref
          id ID #IMPLIED
          name CDATA #IMPLIED
          builtin (all | system | commandline) #IMPLIED
          regex CDATA #IMPLIED
          prefix CDATA #IMPLIED>

<!ELEMENT mapper (classpath | mapper)*>
<!ATTLIST mapper
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          classname CDATA #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

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

<!ELEMENT fileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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
          expression CDATA #IMPLIED
          if CDATA #IMPLIED
          unless CDATA #IMPLIED>

<!ELEMENT none (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
<!ATTLIST none
          id ID #IMPLIED
          error CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT present (mapper)*>
<!ATTLIST present
          id ID #IMPLIED
          error CDATA #IMPLIED
          targetdir CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          present (srconly | both) #IMPLIED>

<!ELEMENT not (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
<!ATTLIST not
          id ID #IMPLIED
          error CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT type EMPTY>
<!ATTLIST type
          id ID #IMPLIED
          error CDATA #IMPLIED
          refid IDREF #IMPLIED
          type (file | dir) #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT modified (param)*>
<!ATTLIST modified
          id ID #IMPLIED
          comparator (equal | rule) #IMPLIED
          seldirs %boolean; #IMPLIED
          cache (propertyfile) #IMPLIED
          algorithm (hashvalue | digest) #IMPLIED
          error CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          update %boolean; #IMPLIED>

<!ELEMENT or (custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | date | and | depth)*>
<!ATTLIST or
          id ID #IMPLIED
          error CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT contains EMPTY>
<!ATTLIST contains
          id ID #IMPLIED
          error CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          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
          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 | none | present | 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 | filelist | existing | pathelement | path)*>
<!ATTLIST extdirs
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT filelist (file)*>
<!ATTLIST filelist
          id ID #IMPLIED
          dir CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          files CDATA #IMPLIED>

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

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

<!ELEMENT pathelement EMPTY>
<!ATTLIST pathelement
          id ID #IMPLIED
          location CDATA #IMPLIED
          path CDATA #IMPLIED>

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

<!ELEMENT filterset (filterset | filter | filtersfile)*>
<!ATTLIST filterset
          id ID #IMPLIED
          begintoken CDATA #IMPLIED
          endtoken CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          filtersfile CDATA #IMPLIED>

<!ELEMENT filter EMPTY>
<!ATTLIST filter
          id ID #IMPLIED
          token CDATA #IMPLIED
          value CDATA #IMPLIED>

<!ELEMENT filtersfile EMPTY>
<!ATTLIST filtersfile
          id ID #IMPLIED
          file CDATA #IMPLIED>

<!ELEMENT libfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 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 filterreader (classpath | param)*>
<!ATTLIST filterreader
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          classname CDATA #IMPLIED>

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

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

<!ELEMENT headfilter EMPTY>
<!ATTLIST headfilter
          id ID #IMPLIED
          lines CDATA #IMPLIED
          skip CDATA #IMPLIED>

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

<!ELEMENT linecontains (contains)*>
<!ATTLIST linecontains
          id ID #IMPLIED>

<!ELEMENT replaceregex EMPTY>
<!ATTLIST replaceregex
          id ID #IMPLIED
          flags CDATA #IMPLIED
          byline %boolean; #IMPLIED
          replace CDATA #IMPLIED
          pattern CDATA #IMPLIED>

<!ELEMENT replacetokens (token)*>
<!ATTLIST replacetokens
          id ID #IMPLIED
          begintoken CDATA #IMPLIED
          endtoken CDATA #IMPLIED>

<!ELEMENT token EMPTY>
<!ATTLIST token
          id ID #IMPLIED
          key CDATA #IMPLIED
          value CDATA #IMPLIED>

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

<!ELEMENT ignoreblank EMPTY>
<!ATTLIST ignoreblank
          id ID #IMPLIED
          byline %boolean; #IMPLIED>

<!ELEMENT tailfilter EMPTY>
<!ATTLIST tailfilter
          id ID #IMPLIED
          lines CDATA #IMPLIED
          skip CDATA #IMPLIED>

<!ELEMENT tabstospaces EMPTY>
<!ATTLIST tabstospaces
          id ID #IMPLIED
          tablength CDATA #IMPLIED>

<!ELEMENT prefixlines EMPTY>
<!ATTLIST prefixlines
          id ID #IMPLIED
          prefix CDATA #IMPLIED>

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

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

<!ELEMENT trim EMPTY>
<!ATTLIST trim
          id ID #IMPLIED
          byline %boolean; #IMPLIED>

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

<!ELEMENT comment EMPTY>
<!ATTLIST comment
          id ID #IMPLIED
          value CDATA #IMPLIED>

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

<!ELEMENT tokenfilter (containsstring | linetokenizer | trim | stringtokenizer | replaceregex | replacestring | ignoreblank | deletecharacters | containsregex | filetokenizer)*>
<!ATTLIST tokenfilter
          id ID #IMPLIED
          delimoutput CDATA #IMPLIED>

<!ELEMENT containsstring EMPTY>
<!ATTLIST containsstring
          id ID #IMPLIED
          contains CDATA #IMPLIED>

<!ELEMENT linetokenizer EMPTY>
<!ATTLIST linetokenizer
          id ID #IMPLIED
          includedelims %boolean; #IMPLIED>

<!ELEMENT stringtokenizer EMPTY>
<!ATTLIST stringtokenizer
          id ID #IMPLIED
          suppressdelims %boolean; #IMPLIED
          includedelims %boolean; #IMPLIED
          delimsaretokens %boolean; #IMPLIED
          delims CDATA #IMPLIED>

<!ELEMENT deletecharacters EMPTY>
<!ATTLIST deletecharacters
          id ID #IMPLIED
          chars CDATA #IMPLIED>

<!ELEMENT containsregex EMPTY>
<!ATTLIST containsregex
          id ID #IMPLIED
          flags CDATA #IMPLIED
          byline %boolean; #IMPLIED
          replace CDATA #IMPLIED
          pattern CDATA #IMPLIED>

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

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

<!ELEMENT linecontainsregexp (regexp)*>
<!ATTLIST linecontainsregexp
          id ID #IMPLIED>

<!ELEMENT regexp EMPTY>
<!ATTLIST regexp
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          pattern CDATA #IMPLIED>

<!ELEMENT compositemapper (mapper)*>
<!ATTLIST compositemapper
          id ID #IMPLIED
          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
          excludesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT rootfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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
          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 | filelist | existing | pathelement | path)*>
<!ATTLIST catalogpath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT dtd EMPTY>
<!ATTLIST dtd
          id ID #IMPLIED
          location CDATA #IMPLIED
          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
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

<!ELEMENT zipfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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
          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 | expandproperties | striplinebreaks | trim | striplinecomments | replacestring | tokenfilter | stripjavacomments | containsregex | deletecharacters | linecontainsregexp)*>
<!ATTLIST errorfilterchain
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

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

<!ELEMENT errormapper (classpath | mapper)*>
<!ATTLIST errormapper
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          classname CDATA #IMPLIED
          to CDATA #IMPLIED
          from CDATA #IMPLIED>

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

<!ELEMENT outputmapper (classpath | mapper)*>
<!ATTLIST outputmapper
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          type (identity | flatten | glob | merge | regexp | package | unpackage) #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          classname CDATA #IMPLIED
          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 p4reopen EMPTY>
<!ATTLIST p4reopen
          id ID #IMPLIED
          tochange CDATA #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT csc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST csc
          id ID #IMPLIED
          excludes CDATA #IMPLIED
          executable CDATA #IMPLIED
          destfile CDATA #IMPLIED
          win32icon CDATA #IMPLIED
          definitions CDATA #IMPLIED
          referencefiles CDATA #IMPLIED
          fullpaths %boolean; #IMPLIED
          description CDATA #IMPLIED
          outputfile CDATA #IMPLIED
          includes CDATA #IMPLIED
          mainclass CDATA #IMPLIED
          utf8output %boolean; #IMPLIED
          useresponsefile %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          destdir CDATA #IMPLIED
          debug %boolean; #IMPLIED
          includedefaultreferences %boolean; #IMPLIED
          warnlevel CDATA #IMPLIED
          win32res CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          extraoptions CDATA #IMPLIED
          incremental %boolean; #IMPLIED
          noconfig %boolean; #IMPLIED
          includesfile CDATA #IMPLIED
          references CDATA #IMPLIED
          taskname CDATA #IMPLIED
          srcdir CDATA #IMPLIED
          optimize %boolean; #IMPLIED
          additionalmodules CDATA #IMPLIED
          docfile CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          unsafe %boolean; #IMPLIED
          filealign CDATA #IMPLIED
          targettype (exe | library | module | winexe) #IMPLIED>

<!ELEMENT resource EMPTY>
<!ATTLIST resource
          id ID #IMPLIED
          name CDATA #IMPLIED
          file CDATA #IMPLIED
          public %boolean; #IMPLIED
          embed %boolean; #IMPLIED>

<!ELEMENT define EMPTY>
<!ATTLIST define
          id ID #IMPLIED
          name CDATA #IMPLIED
          unless CDATA #IMPLIED
          if CDATA #IMPLIED>

<!ELEMENT reference (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | none | present | 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 wlrun (classpath | wlclasspath)*>
<!ATTLIST wlrun
          id ID #IMPLIED
          name CDATA #IMPLIED
          classpath CDATA #IMPLIED
          pkpassword CDATA #IMPLIED
          beahome CDATA #IMPLIED
          domain CDATA #IMPLIED
          username CDATA #IMPLIED
          weblogicmainclass CDATA #IMPLIED
          wlclasspath CDATA #IMPLIED
          policy CDATA #IMPLIED
          properties CDATA #IMPLIED
          args CDATA #IMPLIED
          home CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          password CDATA #IMPLIED
          jvmargs CDATA #IMPLIED>

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

<!ELEMENT p4label EMPTY>
<!ATTLIST p4label
          id ID #IMPLIED
          name CDATA #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          desc CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED
          lock CDATA #IMPLIED>

<!ELEMENT p4revert EMPTY>
<!ATTLIST p4revert
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          revertonlyunchanged %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          change CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT replaceregexp (fileset | substitution | regexp)*>
<!ATTLIST replaceregexp
          id ID #IMPLIED
          flags CDATA #IMPLIED
          taskname CDATA #IMPLIED
          match CDATA #IMPLIED
          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
          seconds CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

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

<!ELEMENT dependset (patternset | exclude | include | custom | present | none | not | type | targetfileset | srcfileset | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | srcfilelist | date | excludesfile | depth | and | targetfilelist)*>
<!ATTLIST dependset
          id ID #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT targetfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | none | present | 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
          duplicate (add | preserve | fail) #IMPLIED
          roundup %boolean; #IMPLIED
          excludes CDATA #IMPLIED
          basedir CDATA #IMPLIED
          encoding CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          update %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          destfile CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          compress %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          filesonly %boolean; #IMPLIED
          file CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          zipfile CDATA #IMPLIED>

<!ELEMENT zipgroupfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | filelist | existing | pathelement | path)*>
<!ATTLIST compilerclasspath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT webapp EMPTY>
<!ATTLIST webapp
          id ID #IMPLIED
          basedir CDATA #IMPLIED>

<!ELEMENT style (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
<!ATTLIST style
          id ID #IMPLIED
          force %boolean; #IMPLIED
          excludes CDATA #IMPLIED
          processor CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          basedir CDATA #IMPLIED
          destdir CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          scanincludeddirectories %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          extension CDATA #IMPLIED
          in CDATA #IMPLIED
          classpath CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          reloadstylesheet %boolean; #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          out CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          style CDATA #IMPLIED
          taskname CDATA #IMPLIED
          excludesfile CDATA #IMPLIED>

<!ELEMENT factory (attribute)*>
<!ATTLIST factory
          id ID #IMPLIED
          name CDATA #IMPLIED>

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

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

<!ELEMENT sysproperty EMPTY>
<!ATTLIST sysproperty
          id ID #IMPLIED
          key CDATA #IMPLIED
          file CDATA #IMPLIED
          value CDATA #IMPLIED
          path CDATA #IMPLIED>

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

<!ELEMENT env EMPTY>
<!ATTLIST env
          id ID #IMPLIED
          key CDATA #IMPLIED
          file CDATA #IMPLIED
          value CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT syspropertyset (propertyref | propertyset | mapper)*>
<!ATTLIST syspropertyset
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          negate %boolean; #IMPLIED
          dynamic %boolean; #IMPLIED>

<!ELEMENT permissions (grant | revoke)*>
<!ATTLIST permissions
          id ID #IMPLIED>

<!ELEMENT grant EMPTY>
<!ATTLIST grant
          id ID #IMPLIED
          name CDATA #IMPLIED
          class CDATA #IMPLIED
          actions CDATA #IMPLIED>

<!ELEMENT revoke EMPTY>
<!ATTLIST revoke
          id ID #IMPLIED
          name CDATA #IMPLIED
          class CDATA #IMPLIED
          actions CDATA #IMPLIED>

<!ELEMENT jvmarg EMPTY>
<!ATTLIST jvmarg
          id ID #IMPLIED
          line CDATA #IMPLIED
          file CDATA #IMPLIED
          pathref IDREF #IMPLIED
          value CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT arg EMPTY>
<!ATTLIST arg
          id ID #IMPLIED
          line CDATA #IMPLIED
          file CDATA #IMPLIED
          pathref IDREF #IMPLIED
          value CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT testlet (#PCDATA)>
<!ATTLIST testlet
          id ID #IMPLIED>

<!ELEMENT tstamp (format)*>
<!ATTLIST tstamp
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          prefix CDATA #IMPLIED>

<!ELEMENT format EMPTY>
<!ATTLIST format
          id ID #IMPLIED
          locale CDATA #IMPLIED
          timezone CDATA #IMPLIED
          unit (millisecond | second | minute | hour | day | week | month | year) #IMPLIED
          pattern CDATA #IMPLIED
          property CDATA #IMPLIED
          offset CDATA #IMPLIED>

<!ELEMENT unwar (fileset | patternset)*>
<!ATTLIST unwar
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT vsshistory EMPTY>
<!ATTLIST vsshistory
          id ID #IMPLIED
          style (brief | codediff | nofile | default) #IMPLIED
          numdays CDATA #IMPLIED
          todate CDATA #IMPLIED
          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 icontract (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 icontract
          id ID #IMPLIED
          classdir CDATA #IMPLIED
          excludes CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          classpathref IDREF #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          repositorydir CDATA #IMPLIED
          instrumentdir CDATA #IMPLIED
          followsymlinks %boolean; #IMPLIED
          builddir CDATA #IMPLIED
          updateicontrol %boolean; #IMPLIED
          classpath CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          pre %boolean; #IMPLIED
          controlfile CDATA #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          invariant %boolean; #IMPLIED
          post %boolean; #IMPLIED
          includesfile CDATA #IMPLIED
          taskname CDATA #IMPLIED
          srcdir CDATA #IMPLIED
          failthrowable CDATA #IMPLIED
          verbosity CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          repbuilddir CDATA #IMPLIED
          targets CDATA #IMPLIED>

<!ELEMENT cvschangelog (fileset | user | commandline)*>
<!ATTLIST cvschangelog
          id ID #IMPLIED
          cvsrsh CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          passfile CDATA #IMPLIED
          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 p4submit EMPTY>
<!ATTLIST p4submit
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          needsresolveproperty CDATA #IMPLIED
          changeproperty CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          change CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT ccmcheckin (fileset)*>
<!ATTLIST ccmcheckin
          id ID #IMPLIED
          ccmaction CDATA #IMPLIED
          task CDATA #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          ccmdir CDATA #IMPLIED
          comment CDATA #IMPLIED>

<!ELEMENT p4change EMPTY>
<!ATTLIST p4change
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          description CDATA #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT bzip2 EMPTY>
<!ATTLIST bzip2
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          zipfile CDATA #IMPLIED
          description CDATA #IMPLIED
          src CDATA #IMPLIED
          destfile CDATA #IMPLIED>

<!ELEMENT sync (fileset)*>
<!ATTLIST sync
          id ID #IMPLIED
          verbose %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          todir CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          includeemptydirs %boolean; #IMPLIED
          description CDATA #IMPLIED
          granularity CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT p4delete EMPTY>
<!ATTLIST p4delete
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          change CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT vssadd EMPTY>
<!ATTLIST vssadd
          id ID #IMPLIED
          ssdir CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          autoresponse CDATA #IMPLIED
          vsspath CDATA #IMPLIED
          comment CDATA #IMPLIED
          serverpath CDATA #IMPLIED
          writable %boolean; #IMPLIED
          login CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          localpath CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT javadoc (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
<!ATTLIST javadoc
          id ID #IMPLIED
          bottom CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspathref IDREF #IMPLIED
          header CDATA #IMPLIED
          link CDATA #IMPLIED
          noindex %boolean; #IMPLIED
          access (protected | public | package | private) #IMPLIED
          doclet CDATA #IMPLIED
          noqualifier CDATA #IMPLIED
          public %boolean; #IMPLIED
          author %boolean; #IMPLIED
          footer CDATA #IMPLIED
          docletpath CDATA #IMPLIED
          package %boolean; #IMPLIED
          useexternalfile %boolean; #IMPLIED
          description CDATA #IMPLIED
          sourcepathref IDREF #IMPLIED
          protected %boolean; #IMPLIED
          breakiterator %boolean; #IMPLIED
          nonavbar %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          group CDATA #IMPLIED
          source CDATA #IMPLIED
          linkoffline CDATA #IMPLIED
          additionalparam CDATA #IMPLIED
          linksource %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          locale CDATA #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          bootclasspath CDATA #IMPLIED
          private %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          charset CDATA #IMPLIED
          nodeprecatedlist %boolean; #IMPLIED
          classpathref IDREF #IMPLIED
          stylesheetfile CDATA #IMPLIED
          docencoding CDATA #IMPLIED
          excludepackagenames CDATA #IMPLIED
          docletpathref IDREF #IMPLIED
          packagenames CDATA #IMPLIED
          windowtitle CDATA #IMPLIED
          notree %boolean; #IMPLIED
          splitindex %boolean; #IMPLIED
          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>

<!ELEMENT doctitle (#PCDATA)>
<!ATTLIST doctitle
          id ID #IMPLIED>

<!ELEMENT bottom (#PCDATA)>
<!ATTLIST bottom
          id ID #IMPLIED>

<!ELEMENT group (package | title)*>
<!ATTLIST group
          id ID #IMPLIED
          packages CDATA #IMPLIED
          title CDATA #IMPLIED>

<!ELEMENT title (#PCDATA)>
<!ATTLIST title
          id ID #IMPLIED>

<!ELEMENT packageset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | filelist | existing | pathelement | path)*>
<!ATTLIST sourcepath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT footer (#PCDATA)>
<!ATTLIST footer
          id ID #IMPLIED>

<!ELEMENT source EMPTY>
<!ATTLIST source
          id ID #IMPLIED
          file CDATA #IMPLIED>

<!ELEMENT header (#PCDATA)>
<!ATTLIST header
          id ID #IMPLIED>

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

<!ELEMENT tag (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 p4integrate EMPTY>
<!ATTLIST p4integrate
          id ID #IMPLIED
          branch CDATA #IMPLIED
          leavetargetrevision %boolean; #IMPLIED
          errormessage CDATA #IMPLIED
          forceintegrate %boolean; #IMPLIED
          client CDATA #IMPLIED
          enablebaselessmerges %boolean; #IMPLIED
          fromfile CDATA #IMPLIED
          reversebranchmappings %boolean; #IMPLIED
          port CDATA #IMPLIED
          change CDATA #IMPLIED
          simulationmode %boolean; #IMPLIED
          propagatesourcefiletype %boolean; #IMPLIED
          view CDATA #IMPLIED
          nocopynewtargetfiles %boolean; #IMPLIED
          tofile CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          restoredeletedrevisions %boolean; #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED>

<!ELEMENT translate (patternset | exclude | include | custom | 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 srcfile EMPTY>
<!ATTLIST srcfile
          id ID #IMPLIED>

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

<!ELEMENT vajload (vajproject)*>
<!ATTLIST vajload
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          remote CDATA #IMPLIED
          haltonerror %boolean; #IMPLIED>

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

<!ELEMENT jarlib-available (extensionset | extension)*>
<!ATTLIST jarlib-available
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          property CDATA #IMPLIED>

<!ELEMENT extensionset (fileset | libfileset | extension)*>
<!ATTLIST extensionset
          id ID #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT rexec (write | read)*>
<!ATTLIST rexec
          id ID #IMPLIED
          port CDATA #IMPLIED
          server CDATA #IMPLIED
          command CDATA #IMPLIED
          userid CDATA #IMPLIED
          timeout CDATA #IMPLIED
          initialcr %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          password CDATA #IMPLIED>

<!ELEMENT WsdlToDotnet EMPTY>
<!ATTLIST WsdlToDotnet
          id ID #IMPLIED
          url CDATA #IMPLIED
          srcfile CDATA #IMPLIED
          destfile CDATA #IMPLIED
          server %boolean; #IMPLIED
          namespace CDATA #IMPLIED
          language CDATA #IMPLIED
          extraoptions CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT buildnumber EMPTY>
<!ATTLIST buildnumber
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT jpcovmerge (fileset)*>
<!ATTLIST jpcovmerge
          id ID #IMPLIED
          verbose %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          tofile CDATA #IMPLIED
          home CDATA #IMPLIED>

<!ELEMENT ejbjar (patternset | exclude | include | custom | weblogictoplink | present | none | jboss | not | borland | weblogic | type | modified | iplanet | or | jonas | contains | depend | support | classpath | different | size | majority | websphere | containsregexp | dtd | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST ejbjar
          id ID #IMPLIED
          descriptordir CDATA #IMPLIED
          excludes CDATA #IMPLIED
          manifest CDATA #IMPLIED
          destdir CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          basenameterminator CDATA #IMPLIED
          classpath CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          cmpversion (1.0 | 2.0) #IMPLIED
          dependency CDATA #IMPLIED
          basejarname CDATA #IMPLIED
          flatdestdir %boolean; #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          taskname CDATA #IMPLIED
          srcdir CDATA #IMPLIED
          naming (ejb-name | directory | descriptor | basejarname) #IMPLIED
          excludesfile CDATA #IMPLIED
          genericjarsuffix CDATA #IMPLIED>

<!ELEMENT weblogictoplink (classpath | wlclasspath | sysproperty)*>
<!ATTLIST weblogictoplink
          id ID #IMPLIED
          newcmp %boolean; #IMPLIED
          ejbdtd CDATA #IMPLIED
          jvmargs CDATA #IMPLIED
          rebuild %boolean; #IMPLIED
          suffix CDATA #IMPLIED
          args CDATA #IMPLIED
          outputdir CDATA #IMPLIED
          toplinkdtd CDATA #IMPLIED
          wldtd CDATA #IMPLIED
          destdir CDATA #IMPLIED
          weblogicdtd CDATA #IMPLIED
          wlclasspath CDATA #IMPLIED
          jvmdebuglevel CDATA #IMPLIED
          classpath CDATA #IMPLIED
          keepgenerated CDATA #IMPLIED
          compiler CDATA #IMPLIED
          oldcmp %boolean; #IMPLIED
          keepgeneric %boolean; #IMPLIED
          ejbcclass CDATA #IMPLIED
          noejbc %boolean; #IMPLIED
          toplinkdescriptor CDATA #IMPLIED
          genericjarsuffix CDATA #IMPLIED>

<!ELEMENT jboss (classpath)*>
<!ATTLIST jboss
          id ID #IMPLIED
          destdir CDATA #IMPLIED
          genericjarsuffix CDATA #IMPLIED
          classpath CDATA #IMPLIED
          suffix CDATA #IMPLIED>

<!ELEMENT borland (classpath)*>
<!ATTLIST borland
          id ID #IMPLIED
          verifyargs CDATA #IMPLIED
          debug %boolean; #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          genericjarsuffix CDATA #IMPLIED
          java2iiopparams CDATA #IMPLIED
          version CDATA #IMPLIED
          basdtd CDATA #IMPLIED
          verify %boolean; #IMPLIED
          suffix CDATA #IMPLIED
          generateclient %boolean; #IMPLIED>

<!ELEMENT weblogic (classpath | wlclasspath | sysproperty)*>
<!ATTLIST weblogic
          id ID #IMPLIED
          newcmp %boolean; #IMPLIED
          ejbdtd CDATA #IMPLIED
          jvmargs CDATA #IMPLIED
          rebuild %boolean; #IMPLIED
          suffix CDATA #IMPLIED
          args CDATA #IMPLIED
          outputdir CDATA #IMPLIED
          wldtd CDATA #IMPLIED
          destdir CDATA #IMPLIED
          weblogicdtd CDATA #IMPLIED
          wlclasspath CDATA #IMPLIED
          jvmdebuglevel CDATA #IMPLIED
          classpath CDATA #IMPLIED
          keepgenerated CDATA #IMPLIED
          compiler CDATA #IMPLIED
          oldcmp %boolean; #IMPLIED
          keepgeneric %boolean; #IMPLIED
          ejbcclass CDATA #IMPLIED
          noejbc %boolean; #IMPLIED
          genericjarsuffix CDATA #IMPLIED>

<!ELEMENT iplanet (classpath)*>
<!ATTLIST iplanet
          id ID #IMPLIED
          destdir CDATA #IMPLIED
          genericjarsuffix CDATA #IMPLIED
          classpath CDATA #IMPLIED
          keepgenerated %boolean; #IMPLIED
          debug %boolean; #IMPLIED
          suffix CDATA #IMPLIED
          iashome CDATA #IMPLIED>

<!ELEMENT jonas (classpath)*>
<!ATTLIST jonas
          id ID #IMPLIED
          jonasroot CDATA #IMPLIED
          keepgeneric %boolean; #IMPLIED
          additionalargs CDATA #IMPLIED
          javac CDATA #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          orb CDATA #IMPLIED
          jarsuffix CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          genericjarsuffix CDATA #IMPLIED
          nogenic %boolean; #IMPLIED
          rmicopts CDATA #IMPLIED
          javacopts CDATA #IMPLIED
          novalidation %boolean; #IMPLIED
          keepgenerated %boolean; #IMPLIED
          nocompil %boolean; #IMPLIED
          secpropag %boolean; #IMPLIED>

<!ELEMENT support (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | filelist | existing | pathelement | path)*>
<!ATTLIST wasclasspath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT war (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | lib | fileset | different | size | majority | containsregexp | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | classes | date | excludesfile | webinf | depth | and)*>
<!ATTLIST war
          id ID #IMPLIED
          keepcompression %boolean; #IMPLIED
          whenempty (fail | skip | create) #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
          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 | none | present | 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 | none | present | 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 | filelist | existing | pathelement | path)*>
<!ATTLIST indexjars
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT classes (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 | none | present | 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
          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 | filelist | existing | pathelement | path)*>
<!ATTLIST buildpath
          id ID #IMPLIED
          location CDATA #IMPLIED
          refid IDREF #IMPLIED
          description CDATA #IMPLIED
          path CDATA #IMPLIED>

<!ELEMENT move (filterchain | fileset | filterset | mapper)*>
<!ATTLIST move
          id ID #IMPLIED
          flatten %boolean; #IMPLIED
          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 | none | present | 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
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          filtering %boolean; #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT cccheckin EMPTY>
<!ATTLIST cccheckin
          id ID #IMPLIED
          preservetime %boolean; #IMPLIED
          viewpath CDATA #IMPLIED
          comment CDATA #IMPLIED
          nowarn %boolean; #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          identical %boolean; #IMPLIED
          cleartooldir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          keepcopy %boolean; #IMPLIED
          description CDATA #IMPLIED
          commentfile CDATA #IMPLIED>

<!ELEMENT ccunlock EMPTY>
<!ATTLIST ccunlock
          id ID #IMPLIED
          objsel CDATA #IMPLIED
          pname CDATA #IMPLIED
          viewpath CDATA #IMPLIED
          comment CDATA #IMPLIED
          failonerr %boolean; #IMPLIED
          cleartooldir CDATA #IMPLIED
          objselect CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT wljspc (patternset | exclude | include | custom | 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
          excludesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT fixcrlf (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 telnet (write | read)*>
<!ATTLIST telnet
          id ID #IMPLIED
          userid CDATA #IMPLIED
          port CDATA #IMPLIED
          taskname CDATA #IMPLIED
          password CDATA #IMPLIED
          initialcr %boolean; #IMPLIED
          description CDATA #IMPLIED
          timeout CDATA #IMPLIED
          server CDATA #IMPLIED>

<!ELEMENT sosget EMPTY>
<!ATTLIST sosget
          id ID #IMPLIED
          soshome CDATA #IMPLIED
          file CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          vssserverpath CDATA #IMPLIED
          username CDATA #IMPLIED
          sosserverpath CDATA #IMPLIED
          projectpath CDATA #IMPLIED
          version CDATA #IMPLIED
          nocompress %boolean; #IMPLIED
          nocache %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          description CDATA #IMPLIED
          localpath CDATA #IMPLIED
          soscmd CDATA #IMPLIED
          password CDATA #IMPLIED>

<!ELEMENT pathconvert (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 p4sync EMPTY>
<!ATTLIST p4sync
          id ID #IMPLIED
          force CDATA #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT exec (arg | redirector | env)*>
<!ATTLIST exec
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          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
          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 p4edit EMPTY>
<!ATTLIST p4edit
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          change CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT maudit (fileset | jvmarg | classpath | rulespath | searchpath | sourcepath)*>
<!ATTLIST maudit
          id ID #IMPLIED
          tofile CDATA #IMPLIED
          exit %boolean; #IMPLIED
          offsets %boolean; #IMPLIED
          quiet %boolean; #IMPLIED
          unused %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          fix %boolean; #IMPLIED
          metamatahome CDATA #IMPLIED
          list %boolean; #IMPLIED
          home CDATA #IMPLIED
          fullsemanticize %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED>

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

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

<!ELEMENT antlr (jvmarg | classpath)*>
<!ATTLIST antlr
          id ID #IMPLIED
          debug %boolean; #IMPLIED
          outputdirectory CDATA #IMPLIED
          fork %boolean; #IMPLIED
          dir CDATA #IMPLIED
          trace %boolean; #IMPLIED
          tracetreewalker %boolean; #IMPLIED
          html %boolean; #IMPLIED
          tracelexer %boolean; #IMPLIED
          diagnostic %boolean; #IMPLIED
          traceparser %boolean; #IMPLIED
          target CDATA #IMPLIED
          taskname CDATA #IMPLIED
          glib CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT netrexxc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST netrexxc
          id ID #IMPLIED
          excludes CDATA #IMPLIED
          verbose (verbose | verbose0 | verbose1 | verbose2 | verbose3 | verbose4 | verbose5 | noverbose) #IMPLIED
          keep %boolean; #IMPLIED
          comments %boolean; #IMPLIED
          strictimport %boolean; #IMPLIED
          sourcedir %boolean; #IMPLIED
          diag %boolean; #IMPLIED
          compile %boolean; #IMPLIED
          binary %boolean; #IMPLIED
          description CDATA #IMPLIED
          includes CDATA #IMPLIED
          suppressmethodargumentnotused %boolean; #IMPLIED
          suppressvariablenotused %boolean; #IMPLIED
          strictsignal %boolean; #IMPLIED
          trace (trace | trace1 | trace2 | notrace) #IMPLIED
          destdir CDATA #IMPLIED
          console %boolean; #IMPLIED
          replace %boolean; #IMPLIED
          classpath CDATA #IMPLIED
          followsymlinks %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          format %boolean; #IMPLIED
          explicit %boolean; #IMPLIED
          includesfile CDATA #IMPLIED
          suppressprivatepropertynotused %boolean; #IMPLIED
          strictargs %boolean; #IMPLIED
          suppressdeprecation %boolean; #IMPLIED
          strictcase %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          savelog %boolean; #IMPLIED
          logo %boolean; #IMPLIED
          utf8 %boolean; #IMPLIED
          strictprops %boolean; #IMPLIED
          srcdir CDATA #IMPLIED
          java %boolean; #IMPLIED
          suppressexceptionnotsignalled %boolean; #IMPLIED
          crossref %boolean; #IMPLIED
          time %boolean; #IMPLIED
          symbols %boolean; #IMPLIED
          excludesfile CDATA #IMPLIED
          strictassign %boolean; #IMPLIED
          compact %boolean; #IMPLIED
          decimal %boolean; #IMPLIED>

<!ELEMENT ftp (fileset)*>
<!ATTLIST ftp
          id ID #IMPLIED
          binary %boolean; #IMPLIED
          password CDATA #IMPLIED
          userid CDATA #IMPLIED
          timediffauto %boolean; #IMPLIED
          remotedir CDATA #IMPLIED
          separator CDATA #IMPLIED
          port CDATA #IMPLIED
          skipfailedtransfers %boolean; #IMPLIED
          chmod CDATA #IMPLIED
          timediffmillis CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          server CDATA #IMPLIED
          newer %boolean; #IMPLIED
          action (send | put | recv | get | del | delete | list | mkdir | chmod | rmdir) #IMPLIED
          description CDATA #IMPLIED
          passive %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          preservelastmodified %boolean; #IMPLIED
          listing CDATA #IMPLIED
          umask CDATA #IMPLIED
          ignorenoncriticalerrors %boolean; #IMPLIED
          depends %boolean; #IMPLIED>

<!ELEMENT jpcovreport (reference | coveragepath | sourcepath)*>
<!ATTLIST jpcovreport
          id ID #IMPLIED
          snapshot CDATA #IMPLIED
          tofile CDATA #IMPLIED
          filters CDATA #IMPLIED
          percent CDATA #IMPLIED
          home CDATA #IMPLIED
          type (executive | summary | detailed | verydetailed) #IMPLIED
          taskname CDATA #IMPLIED
          format (html | text | xml) #IMPLIED
          includesource %boolean; #IMPLIED
          description CDATA #IMPLIED>

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

<!ELEMENT execon (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
<!ATTLIST execon
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          skipemptyfilesets %boolean; #IMPLIED
          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
          logerror %boolean; #IMPLIED
          dir CDATA #IMPLIED
          forwardslash %boolean; #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          resolveexecutable %boolean; #IMPLIED
          append %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          ignoremissing %boolean; #IMPLIED
          vmlauncher %boolean; #IMPLIED
          newenvironment %boolean; #IMPLIED
          relative %boolean; #IMPLIED
          parallel %boolean; #IMPLIED>

<!ELEMENT ccmcheckout (fileset)*>
<!ATTLIST ccmcheckout
          id ID #IMPLIED
          ccmaction CDATA #IMPLIED
          task CDATA #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          ccmdir CDATA #IMPLIED
          comment CDATA #IMPLIED>

<!ELEMENT ant (reference | propertyset | property)*>
<!ATTLIST ant
          id ID #IMPLIED
          output CDATA #IMPLIED
          taskname CDATA #IMPLIED
          inheritall %boolean; #IMPLIED
          dir CDATA #IMPLIED
          inheritrefs %boolean; #IMPLIED
          description CDATA #IMPLIED
          antfile CDATA #IMPLIED
          target CDATA #IMPLIED>

<!ELEMENT xmlvalidate (fileset | classpath | attribute | dtd | xmlcatalog | property)*>
<!ATTLIST xmlvalidate
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          file CDATA #IMPLIED
          classname CDATA #IMPLIED
          lenient %boolean; #IMPLIED
          warn %boolean; #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT xslt (patternset | exclude | include | custom | present | none | not | type | factory | modified | param | or | contains | depend | classpath | different | size | majority | containsregexp | filename | xmlcatalog | selector | includesfile | outputproperty | mapper | date | excludesfile | depth | and)*>
<!ATTLIST xslt
          id ID #IMPLIED
          force %boolean; #IMPLIED
          excludes CDATA #IMPLIED
          processor CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          basedir CDATA #IMPLIED
          destdir CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          scanincludeddirectories %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          extension CDATA #IMPLIED
          in CDATA #IMPLIED
          classpath CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          reloadstylesheet %boolean; #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          out CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          style CDATA #IMPLIED
          taskname CDATA #IMPLIED
          excludesfile CDATA #IMPLIED>

<!ELEMENT p4resolve EMPTY>
<!ATTLIST p4resolve
          id ID #IMPLIED
          forcetextmode %boolean; #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          markersforall %boolean; #IMPLIED
          simulationmode %boolean; #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          errormessage CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          resolvemode CDATA #IMPLIED
          redoall %boolean; #IMPLIED>

<!ELEMENT iplanet-ejbc (classpath)*>
<!ATTLIST iplanet-ejbc
          id ID #IMPLIED
          ejbdescriptor CDATA #IMPLIED
          debug %boolean; #IMPLIED
          classpath CDATA #IMPLIED
          iasdescriptor CDATA #IMPLIED
          iashome CDATA #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          keepgenerated %boolean; #IMPLIED>

<!ELEMENT ccmcheckintask (fileset)*>
<!ATTLIST ccmcheckintask
          id ID #IMPLIED
          ccmaction CDATA #IMPLIED
          task CDATA #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          ccmdir CDATA #IMPLIED
          comment CDATA #IMPLIED>

<!ELEMENT gzip EMPTY>
<!ATTLIST gzip
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          zipfile CDATA #IMPLIED
          description CDATA #IMPLIED
          src CDATA #IMPLIED
          destfile CDATA #IMPLIED>

<!ELEMENT native2ascii (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | mapper | date | excludesfile | depth | and)*>
<!ATTLIST native2ascii
          id ID #IMPLIED
          src CDATA #IMPLIED
          encoding CDATA #IMPLIED
          ext CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          reverse %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT ccrmtype EMPTY>
<!ATTLIST ccrmtype
          id ID #IMPLIED
          viewpath CDATA #IMPLIED
          typename CDATA #IMPLIED
          rmall %boolean; #IMPLIED
          comment CDATA #IMPLIED
          ignore %boolean; #IMPLIED
          typekind CDATA #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          vob CDATA #IMPLIED
          description CDATA #IMPLIED
          commentfile CDATA #IMPLIED>

<!ELEMENT starteam EMPTY>
<!ATTLIST starteam
          id ID #IMPLIED
          targetfolderabsolute %boolean; #IMPLIED
          force %boolean; #IMPLIED
          recursion %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          username CDATA #IMPLIED
          targetfolder CDATA #IMPLIED
          viewname CDATA #IMPLIED
          projectname CDATA #IMPLIED
          servername CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          password CDATA #IMPLIED
          serverport CDATA #IMPLIED
          foldername CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT ear (patternset | exclude | include | custom | present | none | not | manifest | type | metainf | modified | or | contains | depend | fileset | different | size | majority | containsregexp | archives | indexjars | filename | selector | includesfile | zipgroupfileset | zipfileset | date | excludesfile | depth | and)*>
<!ATTLIST ear
          id ID #IMPLIED
          keepcompression %boolean; #IMPLIED
          whenempty (fail | skip | create) #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
          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 | none | present | 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 | to | from)*>
<!ATTLIST mail
          id ID #IMPLIED
          cclist CDATA #IMPLIED
          messagefile CDATA #IMPLIED
          password CDATA #IMPLIED
          encoding (auto | mime | uu | plain) #IMPLIED
          charset CDATA #IMPLIED
          files CDATA #IMPLIED
          subject CDATA #IMPLIED
          message CDATA #IMPLIED
          ssl %boolean; #IMPLIED
          tolist CDATA #IMPLIED
          mailport CDATA #IMPLIED
          messagemimetype CDATA #IMPLIED
          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 to EMPTY>
<!ATTLIST to
          id ID #IMPLIED
          address CDATA #IMPLIED
          name CDATA #IMPLIED>

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

<!ELEMENT loadfile (filterchain)*>
<!ATTLIST loadfile
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          property CDATA #IMPLIED
          srcfile CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT vsscheckout EMPTY>
<!ATTLIST vsscheckout
          id ID #IMPLIED
          ssdir CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          date CDATA #IMPLIED
          autoresponse CDATA #IMPLIED
          vsspath CDATA #IMPLIED
          getlocalcopy %boolean; #IMPLIED
          version CDATA #IMPLIED
          serverpath CDATA #IMPLIED
          login CDATA #IMPLIED
          filetimestamp (current | modified | updated) #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          localpath CDATA #IMPLIED
          writablefiles (replace | skip | fail) #IMPLIED>

<!ELEMENT stylebook (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
<!ATTLIST stylebook
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          jvmargs CDATA #IMPLIED
          loaderconfig CDATA #IMPLIED
          args CDATA #IMPLIED
          fork %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          jar CDATA #IMPLIED
          errorproperty CDATA #IMPLIED
          targetdirectory CDATA #IMPLIED
          output CDATA #IMPLIED
          timeout CDATA #IMPLIED
          spawn %boolean; #IMPLIED
          skindirectory CDATA #IMPLIED
          input CDATA #IMPLIED
          jvm CDATA #IMPLIED
          inputstring CDATA #IMPLIED
          book CDATA #IMPLIED
          classpath CDATA #IMPLIED
          logerror %boolean; #IMPLIED
          dir CDATA #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          jvmversion CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          append %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          classname CDATA #IMPLIED>

<!ELEMENT soscheckin EMPTY>
<!ATTLIST soscheckin
          id ID #IMPLIED
          soshome CDATA #IMPLIED
          file CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          vssserverpath CDATA #IMPLIED
          username CDATA #IMPLIED
          sosserverpath CDATA #IMPLIED
          comment CDATA #IMPLIED
          projectpath CDATA #IMPLIED
          nocache %boolean; #IMPLIED
          nocompress %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          localpath CDATA #IMPLIED
          soscmd CDATA #IMPLIED
          password CDATA #IMPLIED>

<!ELEMENT mimemail (fileset | bcc | message | replyto | cc | to | from)*>
<!ATTLIST mimemail
          id ID #IMPLIED
          cclist CDATA #IMPLIED
          messagefile CDATA #IMPLIED
          password CDATA #IMPLIED
          encoding (auto | mime | uu | plain) #IMPLIED
          charset CDATA #IMPLIED
          files CDATA #IMPLIED
          subject CDATA #IMPLIED
          message CDATA #IMPLIED
          ssl %boolean; #IMPLIED
          tolist CDATA #IMPLIED
          mailport CDATA #IMPLIED
          messagemimetype CDATA #IMPLIED
          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 stlabel EMPTY>
<!ATTLIST stlabel
          id ID #IMPLIED
          lastbuild CDATA #IMPLIED
          url CDATA #IMPLIED
          username CDATA #IMPLIED
          viewname CDATA #IMPLIED
          projectname CDATA #IMPLIED
          revisionlabel %boolean; #IMPLIED
          servername CDATA #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          serverport CDATA #IMPLIED
          description CDATA #IMPLIED
          password CDATA #IMPLIED
          buildlabel %boolean; #IMPLIED>

<!ELEMENT gunzip EMPTY>
<!ATTLIST gunzip
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT concat (#PCDATA | filterchain | fileset | filelist | path | footer | header)*>
<!ATTLIST concat
          id ID #IMPLIED
          force %boolean; #IMPLIED
          encoding CDATA #IMPLIED
          append %boolean; #IMPLIED
          destfile CDATA #IMPLIED
          binary %boolean; #IMPLIED
          eol (asis | cr | lf | crlf | mac | unix | dos) #IMPLIED
          outputencoding CDATA #IMPLIED
          taskname CDATA #IMPLIED
          fixlastline %boolean; #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT cab (patternset | exclude | include | custom | 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
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includes CDATA #IMPLIED
          options CDATA #IMPLIED>

<!ELEMENT touch (fileset | filelist)*>
<!ATTLIST touch
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          millis CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          datetime CDATA #IMPLIED>

<!ELEMENT parallel (%tasks; | daemons)*>
<!ATTLIST parallel
          id ID #IMPLIED
          pollinterval CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          threadsperprocessor CDATA #IMPLIED
          timeout CDATA #IMPLIED
          threadcount CDATA #IMPLIED
          failonany %boolean; #IMPLIED>

<!ELEMENT daemons (%tasks;)*>
<!ATTLIST daemons
          id ID #IMPLIED>

<!ELEMENT splash EMPTY>
<!ATTLIST splash
          id ID #IMPLIED
          port CDATA #IMPLIED
          user CDATA #IMPLIED
          proxy CDATA #IMPLIED
          imageurl CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          password CDATA #IMPLIED
          showduration CDATA #IMPLIED
          useproxy %boolean; #IMPLIED>

<!ELEMENT antcall (reference | propertyset | param | target)*>
<!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
          nodata %boolean; #IMPLIED
          comment CDATA #IMPLIED
          version %boolean; #IMPLIED
          nowarn %boolean; #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          branch CDATA #IMPLIED
          description CDATA #IMPLIED
          commentfile CDATA #IMPLIED>

<!ELEMENT typedef (classpath)*>
<!ATTLIST typedef
          id ID #IMPLIED
          name CDATA #IMPLIED
          uri CDATA #IMPLIED
          classpath CDATA #IMPLIED
          file CDATA #IMPLIED
          classname CDATA #IMPLIED
          resource CDATA #IMPLIED
          adaptto CDATA #IMPLIED
          onerror (fail | report | ignore) #IMPLIED
          loaderref IDREF #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          adapter CDATA #IMPLIED
          format (properties | xml) #IMPLIED
          description CDATA #IMPLIED
          reverseloader %boolean; #IMPLIED>

<!ELEMENT p4have EMPTY>
<!ATTLIST p4have
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT xmlproperty EMPTY>
<!ATTLIST xmlproperty
          id ID #IMPLIED
          file CDATA #IMPLIED
          semanticattributes %boolean; #IMPLIED
          keeproot %boolean; #IMPLIED
          prefix CDATA #IMPLIED
          collapseattributes %boolean; #IMPLIED
          validate %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          rootdirectory CDATA #IMPLIED
          includesemanticattribute %boolean; #IMPLIED>

<!ELEMENT import EMPTY>
<!ATTLIST import
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          optional %boolean; #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
<!ATTLIST copy
          id ID #IMPLIED
          flatten %boolean; #IMPLIED
          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
          command CDATA #IMPLIED
          cleanbuilddir %boolean; #IMPLIED
          removespec %boolean; #IMPLIED
          error CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          specfile CDATA #IMPLIED
          topdir CDATA #IMPLIED
          rpmbuildcommand CDATA #IMPLIED>

<!ELEMENT delete (patternset | exclude | include | custom | 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 waitfor (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
<!ATTLIST waitfor
          id ID #IMPLIED
          checkeveryunit (millisecond | second | minute | hour | day | week) #IMPLIED
          checkevery CDATA #IMPLIED
          maxwaitunit (millisecond | second | minute | hour | day | week) #IMPLIED
          maxwait CDATA #IMPLIED
          timeoutproperty CDATA #IMPLIED>

<!ELEMENT isfalse EMPTY>
<!ATTLIST isfalse
          id ID #IMPLIED
          value %boolean; #IMPLIED>

<!ELEMENT isreference EMPTY>
<!ATTLIST isreference
          id ID #IMPLIED
          type CDATA #IMPLIED
          refid IDREF #IMPLIED>

<!ELEMENT equals EMPTY>
<!ATTLIST equals
          id ID #IMPLIED
          trim %boolean; #IMPLIED
          arg2 CDATA #IMPLIED
          arg1 CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED>

<!ELEMENT available (classpath | filepath)*>
<!ATTLIST available
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          file CDATA #IMPLIED
          classname CDATA #IMPLIED
          resource CDATA #IMPLIED
          ignoresystemclasses %boolean; #IMPLIED
          type (file | dir) #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          value CDATA #IMPLIED
          description CDATA #IMPLIED
          property CDATA #IMPLIED
          filepath CDATA #IMPLIED>

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

<!ELEMENT os EMPTY>
<!ATTLIST os
          id ID #IMPLIED
          version CDATA #IMPLIED
          name CDATA #IMPLIED
          family CDATA #IMPLIED
          arch CDATA #IMPLIED>

<!ELEMENT filesmatch EMPTY>
<!ATTLIST filesmatch
          id ID #IMPLIED
          file2 CDATA #IMPLIED
          file1 CDATA #IMPLIED>

<!ELEMENT istrue EMPTY>
<!ATTLIST istrue
          id ID #IMPLIED
          value %boolean; #IMPLIED>

<!ELEMENT isset EMPTY>
<!ATTLIST isset
          id ID #IMPLIED
          property CDATA #IMPLIED>

<!ELEMENT socket EMPTY>
<!ATTLIST socket
          id ID #IMPLIED
          port CDATA #IMPLIED
          server CDATA #IMPLIED>

<!ELEMENT http EMPTY>
<!ATTLIST http
          id ID #IMPLIED
          url CDATA #IMPLIED
          errorsbeginat CDATA #IMPLIED>

<!ELEMENT uptodate (srcfiles | mapper)*>
<!ATTLIST uptodate
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          value CDATA #IMPLIED
          property CDATA #IMPLIED
          targetfile CDATA #IMPLIED
          srcfile CDATA #IMPLIED>

<!ELEMENT srcfiles (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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
          dest CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT loadproperties (filterchain | classpath)*>
<!ATTLIST loadproperties
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          taskname CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          resource CDATA #IMPLIED
          srcfile CDATA #IMPLIED>

<!ELEMENT echoproperties (propertyset)*>
<!ATTLIST echoproperties
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          prefix CDATA #IMPLIED
          format (xml | text) #IMPLIED
          srcfile CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          destfile CDATA #IMPLIED>

<!ELEMENT vajexport (include | exclude)*>
<!ATTLIST vajexport
          id ID #IMPLIED
          exportclasses %boolean; #IMPLIED
          haltonerror %boolean; #IMPLIED
          remote CDATA #IMPLIED
          destdir CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          exportresources %boolean; #IMPLIED
          exportsources %boolean; #IMPLIED
          overwrite %boolean; #IMPLIED
          exportdebuginfo %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT bunzip2 EMPTY>
<!ATTLIST bunzip2
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT whichresource (classpath)*>
<!ATTLIST whichresource
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          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 p4labelsync EMPTY>
<!ATTLIST p4labelsync
          id ID #IMPLIED
          name CDATA #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          simulationmode %boolean; #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED
          delete %boolean; #IMPLIED
          add %boolean; #IMPLIED>

<!ELEMENT vsscreate EMPTY>
<!ATTLIST vsscreate
          id ID #IMPLIED
          ssdir CDATA #IMPLIED
          autoresponse CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          vsspath CDATA #IMPLIED
          comment CDATA #IMPLIED
          serverpath CDATA #IMPLIED
          login CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT macrodef (sequential | element | attribute | text)*>
<!ATTLIST macrodef
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          name CDATA #IMPLIED
          description CDATA #IMPLIED
          uri CDATA #IMPLIED>

<!ELEMENT element EMPTY>
<!ATTLIST element
          id ID #IMPLIED
          implicit %boolean; #IMPLIED
          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 ejbc (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST ejbc
          id ID #IMPLIED
          src CDATA #IMPLIED
          manifest CDATA #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          keepgenerated CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          descriptors CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT unjar (fileset | patternset)*>
<!ATTLIST unjar
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT vbc (patternset | exclude | include | custom | present | none | resource | define | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST vbc
          id ID #IMPLIED
          references CDATA #IMPLIED
          useresponsefile %boolean; #IMPLIED
          removeintchecks %boolean; #IMPLIED
          excludes CDATA #IMPLIED
          mainclass CDATA #IMPLIED
          extraoptions CDATA #IMPLIED
          additionalmodules CDATA #IMPLIED
          win32icon CDATA #IMPLIED
          optionstrict %boolean; #IMPLIED
          destdir CDATA #IMPLIED
          executable CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          utf8output %boolean; #IMPLIED
          includedefaultreferences %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          optimize %boolean; #IMPLIED
          targettype (exe | library | module | winexe) #IMPLIED
          destfile CDATA #IMPLIED
          rootnamespace CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          win32res CDATA #IMPLIED
          debug %boolean; #IMPLIED
          optionexplicit %boolean; #IMPLIED
          includes CDATA #IMPLIED
          description CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          warnlevel CDATA #IMPLIED
          srcdir CDATA #IMPLIED
          optioncompare CDATA #IMPLIED
          imports CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          referencefiles CDATA #IMPLIED>

<!ELEMENT wsdltodotnet EMPTY>
<!ATTLIST wsdltodotnet
          id ID #IMPLIED
          url CDATA #IMPLIED
          srcfile CDATA #IMPLIED
          destfile CDATA #IMPLIED
          server %boolean; #IMPLIED
          namespace CDATA #IMPLIED
          language CDATA #IMPLIED
          extraoptions CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT mkdir EMPTY>
<!ATTLIST mkdir
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dir CDATA #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT cvs (commandline)*>
<!ATTLIST cvs
          id ID #IMPLIED
          cvsrsh CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          passfile CDATA #IMPLIED
          command CDATA #IMPLIED
          package CDATA #IMPLIED
          cvsroot CDATA #IMPLIED
          reallyquiet %boolean; #IMPLIED
          output CDATA #IMPLIED
          port CDATA #IMPLIED
          dest CDATA #IMPLIED
          compressionlevel CDATA #IMPLIED
          noexec %boolean; #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          append %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          date CDATA #IMPLIED
          compression %boolean; #IMPLIED
          tag CDATA #IMPLIED>

<!ELEMENT condition (isfalse | isreference | equals | available | not | contains | os | or | and | filesmatch | checksum | istrue | isset | socket | http | uptodate)*>
<!ATTLIST condition
          id ID #IMPLIED
          value CDATA #IMPLIED
          property CDATA #IMPLIED
          else CDATA #IMPLIED>

<!ELEMENT tempfile EMPTY>
<!ATTLIST tempfile
          id ID #IMPLIED
          destdir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          prefix CDATA #IMPLIED
          property CDATA #IMPLIED
          suffix CDATA #IMPLIED>

<!ELEMENT junitreport (report | fileset)*>
<!ATTLIST junitreport
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          todir CDATA #IMPLIED
          description CDATA #IMPLIED
          tofile CDATA #IMPLIED>

<!ELEMENT report EMPTY>
<!ATTLIST report
          id ID #IMPLIED
          todir CDATA #IMPLIED
          styledir CDATA #IMPLIED
          format (frames | noframes) #IMPLIED
          extension CDATA #IMPLIED>

<!ELEMENT ccmkattr EMPTY>
<!ATTLIST ccmkattr
          id ID #IMPLIED
          recurse %boolean; #IMPLIED
          typevalue CDATA #IMPLIED
          replace %boolean; #IMPLIED
          viewpath CDATA #IMPLIED
          typename CDATA #IMPLIED
          comment CDATA #IMPLIED
          version CDATA #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          commentfile CDATA #IMPLIED>

<!ELEMENT taskdef (classpath)*>
<!ATTLIST taskdef
          id ID #IMPLIED
          name CDATA #IMPLIED
          uri CDATA #IMPLIED
          classpath CDATA #IMPLIED
          file CDATA #IMPLIED
          classname CDATA #IMPLIED
          resource CDATA #IMPLIED
          adaptto CDATA #IMPLIED
          onerror (fail | report | ignore) #IMPLIED
          loaderref IDREF #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          adapter CDATA #IMPLIED
          format (properties | xml) #IMPLIED
          description CDATA #IMPLIED
          reverseloader %boolean; #IMPLIED>

<!ELEMENT echo (#PCDATA)>
<!ATTLIST echo
          id ID #IMPLIED
          append %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          message CDATA #IMPLIED
          level (error | warning | info | verbose | debug) #IMPLIED>

<!ELEMENT ccupdate EMPTY>
<!ATTLIST ccupdate
          id ID #IMPLIED
          preservetime %boolean; #IMPLIED
          rename %boolean; #IMPLIED
          viewpath CDATA #IMPLIED
          log CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          graphical %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          currenttime %boolean; #IMPLIED
          description CDATA #IMPLIED>

<!ELEMENT java (classpath | sysproperty | redirector | bootclasspath | syspropertyset | env | permissions | jvmarg | arg | assertions)*>
<!ATTLIST java
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          jvmargs CDATA #IMPLIED
          args CDATA #IMPLIED
          fork %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          jar CDATA #IMPLIED
          errorproperty CDATA #IMPLIED
          output CDATA #IMPLIED
          timeout CDATA #IMPLIED
          spawn %boolean; #IMPLIED
          input CDATA #IMPLIED
          jvm CDATA #IMPLIED
          inputstring CDATA #IMPLIED
          classpath CDATA #IMPLIED
          logerror %boolean; #IMPLIED
          dir CDATA #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          jvmversion CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          append %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          classname CDATA #IMPLIED>

<!ELEMENT vsslabel EMPTY>
<!ATTLIST vsslabel
          id ID #IMPLIED
          ssdir CDATA #IMPLIED
          autoresponse CDATA #IMPLIED
          vsspath CDATA #IMPLIED
          comment CDATA #IMPLIED
          version CDATA #IMPLIED
          serverpath CDATA #IMPLIED
          login CDATA #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT renameext (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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
          excludesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT basename EMPTY>
<!ATTLIST basename
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          file CDATA #IMPLIED
          description CDATA #IMPLIED
          property CDATA #IMPLIED
          suffix CDATA #IMPLIED>

<!ELEMENT javadoc2 (taglet | doclet | package | arg | link | doctitle | bottom | group | packageset | fileset | classpath | sourcepath | footer | source | bootclasspath | header | excludepackage | tag)*>
<!ATTLIST javadoc2
          id ID #IMPLIED
          bottom CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspathref IDREF #IMPLIED
          header CDATA #IMPLIED
          link CDATA #IMPLIED
          noindex %boolean; #IMPLIED
          access (protected | public | package | private) #IMPLIED
          doclet CDATA #IMPLIED
          noqualifier CDATA #IMPLIED
          public %boolean; #IMPLIED
          author %boolean; #IMPLIED
          footer CDATA #IMPLIED
          docletpath CDATA #IMPLIED
          package %boolean; #IMPLIED
          useexternalfile %boolean; #IMPLIED
          description CDATA #IMPLIED
          sourcepathref IDREF #IMPLIED
          protected %boolean; #IMPLIED
          breakiterator %boolean; #IMPLIED
          nonavbar %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          group CDATA #IMPLIED
          source CDATA #IMPLIED
          linkoffline CDATA #IMPLIED
          additionalparam CDATA #IMPLIED
          linksource %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          locale CDATA #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          bootclasspath CDATA #IMPLIED
          private %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          charset CDATA #IMPLIED
          nodeprecatedlist %boolean; #IMPLIED
          classpathref IDREF #IMPLIED
          stylesheetfile CDATA #IMPLIED
          docencoding CDATA #IMPLIED
          excludepackagenames CDATA #IMPLIED
          docletpathref IDREF #IMPLIED
          packagenames CDATA #IMPLIED
          windowtitle CDATA #IMPLIED
          notree %boolean; #IMPLIED
          splitindex %boolean; #IMPLIED
          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 tar (patternset | exclude | include | tarfileset | custom | 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
          includesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          compression (none | gzip | bzip2) #IMPLIED
          longfile (warn | fail | truncate | gnu | omit) #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT tarfileset (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | 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 vsscp EMPTY>
<!ATTLIST vsscp
          id ID #IMPLIED
          login CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          vsspath CDATA #IMPLIED
          serverpath CDATA #IMPLIED
          ssdir CDATA #IMPLIED
          autoresponse CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT vajimport (fileset)*>
<!ATTLIST vajimport
          id ID #IMPLIED
          haltonerror %boolean; #IMPLIED
          remote CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          importsources %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          project CDATA #IMPLIED
          description CDATA #IMPLIED
          importresources %boolean; #IMPLIED
          importclasses %boolean; #IMPLIED>

<!ELEMENT p4fstat (fileset)*>
<!ATTLIST p4fstat
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          changelist CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED
          showfilter CDATA #IMPLIED>

<!ELEMENT setproxy EMPTY>
<!ATTLIST setproxy
          id ID #IMPLIED
          nonproxyhosts CDATA #IMPLIED
          proxyhost CDATA #IMPLIED
          socksproxyhost CDATA #IMPLIED
          proxyport CDATA #IMPLIED
          socksproxyport CDATA #IMPLIED
          taskname CDATA #IMPLIED
          proxyuser CDATA #IMPLIED
          description CDATA #IMPLIED
          proxypassword CDATA #IMPLIED>

<!ELEMENT p4counter EMPTY>
<!ATTLIST p4counter
          id ID #IMPLIED
          name CDATA #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          value CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          property CDATA #IMPLIED
          errormessage CDATA #IMPLIED>

<!ELEMENT wlstop (classpath)*>
<!ATTLIST wlstop
          id ID #IMPLIED
          user CDATA #IMPLIED
          classpath CDATA #IMPLIED
          taskname CDATA #IMPLIED
          delay CDATA #IMPLIED
          password CDATA #IMPLIED
          url CDATA #IMPLIED
          description CDATA #IMPLIED
          beahome CDATA #IMPLIED>

<!ELEMENT ilasm (patternset | exclude | include | custom | present | none | not | type | modified | reference | src | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST ilasm
          id ID #IMPLIED
          owner CDATA #IMPLIED
          excludes CDATA #IMPLIED
          extraoptions CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          targettype (exe | library) #IMPLIED
          destfile CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          debug %boolean; #IMPLIED
          includes CDATA #IMPLIED
          outputfile CDATA #IMPLIED
          description CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          resourcefile CDATA #IMPLIED
          srcdir CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          listing %boolean; #IMPLIED
          keyfile CDATA #IMPLIED>

<!ELEMENT soscheckout EMPTY>
<!ATTLIST soscheckout
          id ID #IMPLIED
          soshome CDATA #IMPLIED
          file CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          vssserverpath CDATA #IMPLIED
          username CDATA #IMPLIED
          sosserverpath CDATA #IMPLIED
          projectpath CDATA #IMPLIED
          nocache %boolean; #IMPLIED
          nocompress %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          localpath CDATA #IMPLIED
          soscmd CDATA #IMPLIED
          password CDATA #IMPLIED>

<!ELEMENT apply (mapper | srcfile | targetfile | redirector | filelist | env | fileset | dirset | arg)*>
<!ATTLIST apply
          id ID #IMPLIED
          resultproperty CDATA #IMPLIED
          skipemptyfilesets %boolean; #IMPLIED
          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
          logerror %boolean; #IMPLIED
          dir CDATA #IMPLIED
          forwardslash %boolean; #IMPLIED
          error CDATA #IMPLIED
          description CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          resolveexecutable %boolean; #IMPLIED
          append %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          ignoremissing %boolean; #IMPLIED
          vmlauncher %boolean; #IMPLIED
          newenvironment %boolean; #IMPLIED
          relative %boolean; #IMPLIED
          parallel %boolean; #IMPLIED>

<!ELEMENT ccuncheckout EMPTY>
<!ATTLIST ccuncheckout
          id ID #IMPLIED
          objselect CDATA #IMPLIED
          keepcopy %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          viewpath CDATA #IMPLIED
          failonerr %boolean; #IMPLIED>

<!ELEMENT jarlib-resolve (ant | location | url | extension)*>
<!ATTLIST jarlib-resolve
          id ID #IMPLIED
          checkextension %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          property CDATA #IMPLIED
          failonerror %boolean; #IMPLIED>

<!ELEMENT location EMPTY>
<!ATTLIST location
          id ID #IMPLIED
          location CDATA #IMPLIED>

<!ELEMENT url EMPTY>
<!ATTLIST url
          id ID #IMPLIED
          destdir CDATA #IMPLIED
          url CDATA #IMPLIED
          destfile CDATA #IMPLIED>

<!ELEMENT jlink (patternset | exclude | include | custom | present | none | not | type | modified | or | contains | depend | mergefiles | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | addfiles | depth | and)*>
<!ATTLIST jlink
          id ID #IMPLIED
          outfile CDATA #IMPLIED
          compress %boolean; #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          addfiles CDATA #IMPLIED
          taskname CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          description CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          mergefiles CDATA #IMPLIED
          includes CDATA #IMPLIED>

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

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

<!ELEMENT cvstagdiff (commandline)*>
<!ATTLIST cvstagdiff
          id ID #IMPLIED
          cvsrsh CDATA #IMPLIED
          endtag CDATA #IMPLIED
          quiet %boolean; #IMPLIED
          passfile CDATA #IMPLIED
          command CDATA #IMPLIED
          package CDATA #IMPLIED
          cvsroot CDATA #IMPLIED
          reallyquiet %boolean; #IMPLIED
          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 javacc EMPTY>
<!ATTLIST javacc
          id ID #IMPLIED
          debugparser %boolean; #IMPLIED
          javacchome CDATA #IMPLIED
          forcelacheck %boolean; #IMPLIED
          optimizetokenmanager %boolean; #IMPLIED
          commontokenaction %boolean; #IMPLIED
          buildtokenmanager %boolean; #IMPLIED
          sanitycheck %boolean; #IMPLIED
          buildparser %boolean; #IMPLIED
          otherambiguitycheck CDATA #IMPLIED
          lookahead CDATA #IMPLIED
          debuglookahead %boolean; #IMPLIED
          choiceambiguitycheck CDATA #IMPLIED
          unicodeinput %boolean; #IMPLIED
          usercharstream %boolean; #IMPLIED
          debugtokenmanager %boolean; #IMPLIED
          keeplinecolumn %boolean; #IMPLIED
          description CDATA #IMPLIED
          taskname CDATA #IMPLIED
          outputdirectory CDATA #IMPLIED
          cachetokens %boolean; #IMPLIED
          javaunicodeescape %boolean; #IMPLIED
          static %boolean; #IMPLIED
          target CDATA #IMPLIED
          ignorecase %boolean; #IMPLIED
          usertokenmanager %boolean; #IMPLIED
          errorreporting %boolean; #IMPLIED>

<!ELEMENT chmod (mapper | include | srcfile | exclude | targetfile | patternset | redirector | env | filelist | fileset | dirset | arg)*>
<!ATTLIST chmod
          id ID #IMPLIED
          addsourcefile %boolean; #IMPLIED
          excludes CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          parallel %boolean; #IMPLIED
          input CDATA #IMPLIED
          executable CDATA #IMPLIED
          inputstring CDATA #IMPLIED
          relative %boolean; #IMPLIED
          skipemptyfilesets %boolean; #IMPLIED
          command CDATA #IMPLIED
          forwardslash %boolean; #IMPLIED
          spawn %boolean; #IMPLIED
          description CDATA #IMPLIED
          includes CDATA #IMPLIED
          vmlauncher %boolean; #IMPLIED
          file CDATA #IMPLIED
          logerror %boolean; #IMPLIED
          errorproperty CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          output CDATA #IMPLIED
          error CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          os CDATA #IMPLIED
          dest CDATA #IMPLIED
          resolveexecutable %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          resultproperty CDATA #IMPLIED
          ignoremissing %boolean; #IMPLIED
          failifexecutionfails %boolean; #IMPLIED
          append %boolean; #IMPLIED
          timeout CDATA #IMPLIED
          maxparallel CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          perm CDATA #IMPLIED
          dir CDATA #IMPLIED
          newenvironment %boolean; #IMPLIED
          type (file | dir | both) #IMPLIED>

<!ELEMENT pvcs (pvcsproject)*>
<!ATTLIST pvcs
          id ID #IMPLIED
          updateonly %boolean; #IMPLIED
          force CDATA #IMPLIED
          config CDATA #IMPLIED
          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
          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 sound (fail | success)*>
<!ATTLIST sound
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED>

<!--define the top level fail which is more common than the sound fail nested element-->
<!ELEMENT fail EMPTY>
<!ATTLIST fail
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          message CDATA #IMPLIED
          if CDATA #IMPLIED
          unless CDATA #IMPLIED>

<!ELEMENT success EMPTY>
<!ATTLIST success
          id ID #IMPLIED
          loops CDATA #IMPLIED
          source CDATA #IMPLIED
          duration CDATA #IMPLIED>

<!ELEMENT scriptdef (#PCDATA | classpath | element | attribute)*>
<!ATTLIST scriptdef
          id ID #IMPLIED
          src CDATA #IMPLIED
          name CDATA #IMPLIED
          uri CDATA #IMPLIED
          classpath CDATA #IMPLIED
          language CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          loaderref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          reverseloader %boolean; #IMPLIED>

<!ELEMENT defaultexcludes EMPTY>
<!ATTLIST defaultexcludes
          id ID #IMPLIED
          remove CDATA #IMPLIED
          echo %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          default %boolean; #IMPLIED
          description CDATA #IMPLIED
          add CDATA #IMPLIED>

<!ELEMENT mparse (fileset | jvmarg | classpath | sourcepath)*>
<!ATTLIST mparse
          id ID #IMPLIED
          cleanup %boolean; #IMPLIED
          verbose %boolean; #IMPLIED
          maxmemory CDATA #IMPLIED
          metamatahome CDATA #IMPLIED
          target CDATA #IMPLIED
          debugparser %boolean; #IMPLIED
          home CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          debugscanner %boolean; #IMPLIED>

<!ELEMENT blgenclient (classpath)*>
<!ATTLIST blgenclient
          id ID #IMPLIED
          debug %boolean; #IMPLIED
          classpath CDATA #IMPLIED
          mode CDATA #IMPLIED
          ejbjar CDATA #IMPLIED
          version CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          clientjar CDATA #IMPLIED>

<!ELEMENT jjdoc EMPTY>
<!ATTLIST jjdoc
          id ID #IMPLIED
          outputfile CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          javacchome CDATA #IMPLIED
          target CDATA #REQUIRED
          text %boolean; #IMPLIED
          onetable %boolean; #IMPLIED>

<!ELEMENT genkey (dname)*>
<!ATTLIST genkey
          id ID #IMPLIED
          storepass CDATA #IMPLIED
          sigalg CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          keypass CDATA #IMPLIED
          dname CDATA #IMPLIED
          keysize CDATA #IMPLIED
          alias CDATA #IMPLIED
          keyalg CDATA #IMPLIED
          validity CDATA #IMPLIED
          keystore CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          storetype CDATA #IMPLIED>

<!ELEMENT dname (param)*>
<!ATTLIST dname
          id ID #IMPLIED>

<!ELEMENT javah (classpath | class | bootclasspath)*>
<!ATTLIST javah
          id ID #IMPLIED
          stubs %boolean; #IMPLIED
          force %boolean; #IMPLIED
          destdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          old %boolean; #IMPLIED
          outputfile CDATA #IMPLIED
          class CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspath CDATA #IMPLIED
          bootclasspathref IDREF #IMPLIED
          classpathref IDREF #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED>

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

<!ELEMENT ccmkelem EMPTY>
<!ATTLIST ccmkelem
          id ID #IMPLIED
          preservetime %boolean; #IMPLIED
          master %boolean; #IMPLIED
          eltype CDATA #IMPLIED
          viewpath CDATA #IMPLIED
          comment CDATA #IMPLIED
          nowarn %boolean; #IMPLIED
          failonerr %boolean; #IMPLIED
          objselect CDATA #IMPLIED
          cleartooldir CDATA #IMPLIED
          taskname CDATA #IMPLIED
          nocheckout %boolean; #IMPLIED
          description CDATA #IMPLIED
          commentfile CDATA #IMPLIED
          checkin %boolean; #IMPLIED>

<!ELEMENT ccmreconfigure EMPTY>
<!ATTLIST ccmreconfigure
          id ID #IMPLIED
          ccmaction CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          ccmproject CDATA #IMPLIED
          description CDATA #IMPLIED
          recurse %boolean; #IMPLIED
          ccmdir CDATA #IMPLIED>

<!ELEMENT unzip (fileset | patternset)*>
<!ATTLIST unzip
          id ID #IMPLIED
          taskname CDATA #IMPLIED
          dest CDATA #IMPLIED
          overwrite %boolean; #IMPLIED
          description CDATA #IMPLIED
          encoding CDATA #IMPLIED
          src CDATA #IMPLIED>

<!ELEMENT javac (patternset | exclude | include | custom | present | none | extdirs | not | type | modified | src | or | contains | depend | classpath | sourcepath | different | size | majority | containsregexp | bootclasspath | filename | selector | includesfile | compilerarg | date | excludesfile | depth | and)*>
<!ATTLIST javac
          id ID #IMPLIED
          target CDATA #IMPLIED
          excludes CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          bootclasspathref IDREF #IMPLIED
          compiler CDATA #IMPLIED
          executable CDATA #IMPLIED
          debuglevel CDATA #IMPLIED
          memoryinitialsize CDATA #IMPLIED
          deprecation %boolean; #IMPLIED
          includeantruntime %boolean; #IMPLIED
          description CDATA #IMPLIED
          sourcepathref IDREF #IMPLIED
          depend %boolean; #IMPLIED
          includes CDATA #IMPLIED
          source CDATA #IMPLIED
          includejavaruntime %boolean; #IMPLIED
          failonerror %boolean; #IMPLIED
          destdir CDATA #IMPLIED
          debug %boolean; #IMPLIED
          tempdir CDATA #IMPLIED
          classpath CDATA #IMPLIED
          followsymlinks %boolean; #IMPLIED
          casesensitive %boolean; #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          bootclasspath CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          nowarn %boolean; #IMPLIED
          proceed %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          classpathref IDREF #IMPLIED
          fork %boolean; #IMPLIED
          srcdir CDATA #IMPLIED
          memorymaximumsize CDATA #IMPLIED
          optimize %boolean; #IMPLIED
          encoding CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          sourcepath CDATA #IMPLIED
          listfiles %boolean; #IMPLIED
          extdirs CDATA #IMPLIED>

<!ELEMENT p4add (fileset)*>
<!ATTLIST p4add
          id ID #IMPLIED
          port CDATA #IMPLIED
          client CDATA #IMPLIED
          inerror %boolean; #IMPLIED
          user CDATA #IMPLIED
          changelist CDATA #IMPLIED
          cmdopts CDATA #IMPLIED
          globalopts CDATA #IMPLIED
          view CDATA #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          errormessage CDATA #IMPLIED
          commandlength CDATA #IMPLIED>

<!ELEMENT jpcoverage (arg | socket | fileset | jvmarg | classpath | triggers | filters)*>
<!ATTLIST jpcoverage
          id ID #IMPLIED
          applet %boolean; #IMPLIED
          recordfromstart (coverage | none | all) #IMPLIED
          vm (java2 | jdk118 | jdk117) #IMPLIED
          classname CDATA #IMPLIED
          workingdir CDATA #IMPLIED
          inputfile CDATA #IMPLIED
          snapshotdir CDATA #IMPLIED
          seedname CDATA #IMPLIED
          javaexe CDATA #IMPLIED
          home CDATA #IMPLIED
          exitprompt CDATA #IMPLIED
          taskname CDATA #IMPLIED
          warnlevel CDATA #IMPLIED
          finalsnapshot CDATA #IMPLIED
          description CDATA #IMPLIED
          tracknatives %boolean; #IMPLIED>

<!ELEMENT triggers (method)*>
<!ATTLIST triggers
          id ID #IMPLIED>

<!ELEMENT method EMPTY>
<!ATTLIST method
          id ID #IMPLIED
          name CDATA #IMPLIED
          event CDATA #IMPLIED
          action CDATA #IMPLIED
          param CDATA #IMPLIED>

<!ELEMENT filters (include | exclude)*>
<!ATTLIST filters
          id ID #IMPLIED
          defaultexclude %boolean; #IMPLIED>

<!ELEMENT soslabel EMPTY>
<!ATTLIST soslabel
          id ID #IMPLIED
          soshome CDATA #IMPLIED
          verbose %boolean; #IMPLIED
          vssserverpath CDATA #IMPLIED
          username CDATA #IMPLIED
          sosserverpath CDATA #IMPLIED
          comment CDATA #IMPLIED
          projectpath CDATA #IMPLIED
          version CDATA #IMPLIED
          nocache %boolean; #IMPLIED
          nocompress %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          label CDATA #IMPLIED
          description CDATA #IMPLIED
          localpath CDATA #IMPLIED
          soscmd CDATA #IMPLIED
          password CDATA #IMPLIED>

<!ELEMENT vssget EMPTY>
<!ATTLIST vssget
          id ID #IMPLIED
          ssdir CDATA #IMPLIED
          recursive %boolean; #IMPLIED
          date CDATA #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>

<!ELEMENT ddcreator (patternset | exclude | include | custom | none | present | not | type | modified | or | contains | depend | different | size | majority | containsregexp | filename | selector | includesfile | date | excludesfile | depth | and)*>
<!ATTLIST ddcreator
          id ID #IMPLIED
          classpath CDATA #IMPLIED
          defaultexcludes %boolean; #IMPLIED
          followsymlinks %boolean; #IMPLIED
          taskname CDATA #IMPLIED
          casesensitive %boolean; #IMPLIED
          dest CDATA #IMPLIED
          description CDATA #IMPLIED
          excludes CDATA #IMPLIED
          includesfile CDATA #IMPLIED
          excludesfile CDATA #IMPLIED
          descriptors CDATA #IMPLIED
          includes CDATA #IMPLIED>

<!ELEMENT junit (classpath | jvmarg | sysproperty | syspropertyset | env | bootclasspath | permissions | assertions | formatter | batchtest | test)*>
<!ATTLIST junit
          id ID #IMPLIED
          showoutput %boolean; #IMPLIED
          haltonerror %boolean; #IMPLIED
          fork %boolean; #IMPLIED
          jvm CDATA #IMPLIED
          dir CDATA #IMPLIED
          failureproperty CDATA #IMPLIED
          maxmemory CDATA #IMPLIED
          filtertrace %boolean; #IMPLIED
          includeantruntime %boolean; #IMPLIED
          haltonfailure %boolean; #IMPLIED
          errorproperty CDATA #IMPLIED
          timeout CDATA #IMPLIED
          printsummary (true | yes | false | no | on | off | withOutAndErr) #IMPLIED
          taskname CDATA #IMPLIED
          description CDATA #IMPLIED
          newenvironment %boolean; #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 test (formatter)*>
  <!ATTLIST test
  			name CDATA #REQUIRED
            id ID #IMPLIED
            if CDATA #IMPLIED
            unless CDATA #IMPLIED
            haltonerror %boolean; #IMPLIED
            fork %boolean; #IMPLIED
            todir CDATA #IMPLIED
			outfile CDATA #IMPLIED
            failureproperty CDATA #IMPLIED
            filtertrace %boolean; #IMPLIED
            haltonfailure %boolean; #IMPLIED
            errorproperty CDATA #IMPLIED>

<!ELEMENT formatter EMPTY>
<!ATTLIST formatter
          id ID #IMPLIED
          usefile %boolean; #IMPLIED
          type (plain | xml | brief) #IMPLIED
          classname CDATA #IMPLIED
          extension CDATA #IMPLIED>
          
<!ELEMENT scp (fileset)*>
<!ATTLIST scp
          id ID #IMPLIED
          file CDATA #REQUIRED
          localFile CDATA #IMPLIED
          remoteFile CDATA #IMPLIED
          todir CDATA #REQUIRED
          localTodir CDATA #IMPLIED
          localTofile CDATA #IMPLIED
		  remoteTodir CDATA #IMPLIED
          remoteTofile CDATA #IMPLIED                    
          port CDATA #IMPLIED
          trust %boolean; #IMPLIED
          knownhosts CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          password CDATA #IMPLIED
          keyfile CDATA #IMPLIED
          passphrase CDATA #IMPLIED
          verbose %boolean; #IMPLIED>
          
<!ELEMENT sshexec EMPTY>
<!ATTLIST sshexec
          id ID #IMPLIED
          host CDATA #REQUIRED
          username CDATA #IMPLIED
          command CDATA #IMPLIED
          port CDATA #IMPLIED
          trust %boolean; #IMPLIED
          knownhosts CDATA #IMPLIED
          failonerror %boolean; #IMPLIED
          password CDATA #IMPLIED
          keyfile CDATA #IMPLIED
          passphrase CDATA #IMPLIED
          output CDATA #IMPLIED
          append CDATA #IMPLIED
          outputproperty CDATA #IMPLIED
          timeout CDATA #IMPLIED>
          
<!ELEMENT attrib (fileset | dirset | filelist)*>
<!ATTLIST attrib
          id ID #IMPLIED
          file CDATA #REQUIRED
          readonly CDATA #IMPLIED
          archive CDATA #IMPLIED
          system CDATA #IMPLIED
          hidden CDATA #IMPLIED
          verbose %boolean; #IMPLIED>
          
<!ELEMENT chgrp (fileset | dirset | filelist)*>
<!ATTLIST chgrp
          id ID #IMPLIED
          file CDATA #REQUIRED
          group CDATA #REQUIRED
          parallel %boolean; #IMPLIED
          type (file | dir) #IMPLIED
          maxparallel CDATA #IMPLIED
          verbose %boolean; #IMPLIED>
          
<!ELEMENT chown (fileset | dirset | filelist)*>
<!ATTLIST chown
          id ID #IMPLIED
          file CDATA #REQUIRED
          owner CDATA #REQUIRED
          parallel %boolean; #IMPLIED
          type (file | dir) #IMPLIED
          maxparallel CDATA #IMPLIED
          verbose %boolean; #IMPLIED>
     