Hi.
I wrote some DTD. It is not perfect but it can be use.
In this DTD:
- all deprecated argumens (according to the Ant documentation) are not
supported.
- there are some problems with the "available", "javadoc" and
"property"
tasks: these tags need have some required attributes (for property,
some of the following attributes are needed: value OR resource OR
file).
I didn't find any way to model this in a DTD. One solution could be
to change to something like this:
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
type (value, resource,file) #REQUIRED
data CDATA #REQUIRED>
But then some changes are needed in the sources and documentation.
Waiting for some feedback.
Willy Picard
"Pierre, Sebastian" wrote:
> Hi all !
>
> I'm wondering if there is an Ant DTD ?
>
> It could be useful for those who use an XML editor that is DTD-aware, or
> someone like me who uses Vim and some scripts to validate their XML
> files - but I must say it's quite hard to validate without the DTD ;)
>
> Cheers,
>
> Sebastien PIERRE_______________________
>
> XML technology intern
>
> R a t i o n a l Software
> Rational Unified Process team.
> Vancouver, Canada.
>
> ---------------------------------------
> [EMAIL PROTECTED] | www.rational.com
<?xml encoding="US-ASCII"?>
<!ENTITY % replace '(add|asis|remove)'>
<!ENTITY % yesNo '(yes|no)'>
<!ENTITY % onOff '(on|off)'>
<!ENTITY % trueFalse '(true|false)'>
<!ENTITY % dirExclus 'includes CDATA #IMPLIED
excludes
CDATA #IMPLIED'>
<!ENTITY % dirExclusDefault '%dirExclus;
defaultexcludes
%yesNo; #IMPLIED'>
<!ENTITY % filtering 'filtering %onOff;
#IMPLIED'>
<!ELEMENT project ((property | filter)*, target+)>
<!ATTLIST project
name CDATA #REQUIRED
default CDATA #REQUIRED
basedir CDATA #REQUIRED>
<!ELEMENT target (#PCDATA|
ant|
chmod|
copydir|
copyfile|
cvs|
delete|
deltree|
echo|
exec|
expand|
filter|
get|
gunzip|
gzip|
fixcrlf|
jar|
java|
javac|
javadoc|
keysubst|
mkdir|
property|
rename|
replace|
rmic|
tar|
taskdef|
tstamp|
untar|
zip)*>
<!ATTLIST target
name CDATA #REQUIRED
depends CDATA #IMPLIED
if CDATA #IMPLIED>
<!-- Incomplete -->
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
<!ELEMENT filter EMPTY>
<!ATTLIST filter
token CDATA #REQUIRED
value CDATA #REQUIRED>
<!ELEMENT ant EMPTY>
<!ATTLIST ant
antfile CDATA #IMPLIED
dir CDATA #REQUIRED
target CDATA #IMPLIED>
<!-- Incomplete -->
<!ELEMENT available EMPTY>
<!ATTLIST available
property CDATA #REQUIRED
classname CDATA #REQUIRED>
<!ELEMENT chmod EMPTY>
<!ATTLIST chmod
src CDATA #REQUIRED
perm CDATA #REQUIRED>
<!ELEMENT copydir EMPTY>
<!ATTLIST copydir
src CDATA #REQUIRED
dest CDATA #REQUIRED
%filtering;
%dirExclusDefault;>
<!ELEMENT copyfile EMPTY>
<!ATTLIST copyfile
src CDATA #REQUIRED
dest CDATA #REQUIRED
%filtering;>
<!ELEMENT cvs EMPTY>
<!ATTLIST cvs
cvsRoot CDATA #REQUIRED
dest CDATA #REQUIRED
package CDATA #REQUIRED
tag CDATA #IMPLIED>
<!ELEMENT delete EMPTY>
<!ATTLIST delete
file CDATA #REQUIRED>
<!ELEMENT deltree EMPTY>
<!ATTLIST deltree
dir CDATA #REQUIRED>
<!ELEMENT echo EMPTY>
<!ATTLIST echo
messsage CDATA #REQUIRED>
<!ELEMENT exec EMPTY>
<!ATTLIST exec
command CDATA #REQUIRED
dir CDATA #REQUIRED
os CDATA #IMPLIED
output CDATA #REQUIRED>
<!ELEMENT expand EMPTY>
<!ATTLIST expand
src CDATA #REQUIRED
dest CDATA #REQUIRED>
<!ELEMENT get EMPTY>
<!ATTLIST get
src CDATA #REQUIRED
dest CDATA #REQUIRED
verbose %onOff; #IMPLIED>
<!ELEMENT gunzip EMPTY>
<!ATTLIST gunzip
src CDATA #REQUIRED
dest CDATA #IMPLIED>
<!ELEMENT gzip EMPTY>
<!ATTLIST gzip
src CDATA #REQUIRED
zipfile CDATA #REQUIRED>
<!ELEMENT fixcrlf EMPTY>
<!ATTLIST fixcrlf
srcDir CDATA #REQUIRED
destDir CDATA #IMPLIED
%dirExclus;
cr %replace; #IMPLIED
tab %replace; #IMPLIED
eof %replace; #IMPLIED>
<!ELEMENT jar EMPTY>
<!ATTLIST jar
jarfile CDATA #REQUIRED
basedire CDATA #REQUIRED
compress %trueFalse; #IMPLIED
%dirExclusDefault;
manifest CDATA #IMPLIED>
<!ELEMENT java EMPTY>
<!ATTLIST java
classname CDATA #REQUIRED
args CDATA #IMPLIED
fork %yesNo; #IMPLIED
jvmargs CDATA #IMPLIED>
<!ELEMENT javac EMPTY>
<!ATTLIST javac
srcdir CDATA #REQUIRED
destdir CDATA #REQUIRED
%dirExclusDefault;
classpath CDATA #IMPLIED
bootclasspath CDATA #IMPLIED
extdirs CDATA #IMPLIED
debug %onOff; #IMPLIED
optimize %onOff; #IMPLIED
deprecation %onOff; #IMPLIED
%filtering;>
<!-- Incomplete -->
<!ELEMENT javadoc EMPTY>
<!ATTLIST javadoc
sourcepath CDATA #REQUIRED
destdir CDATA #REQUIRED
packagenames CDATA #REQUIRED
classpath CDATA #IMPLIED
bootclasspath CDATA #IMPLIED
extdirs CDATA #IMPLIED
overview %trueFalse; #IMPLIED
public %trueFalse; #IMPLIED
protected %trueFalse; #IMPLIED
package %trueFalse; #IMPLIED
private %trueFalse; #IMPLIED
old %trueFalse; #IMPLIED
verbose %trueFalse; #IMPLIED
locale CDATA #IMPLIED
encoding CDATA #IMPLIED
version %trueFalse; #IMPLIED
author %trueFalse; #IMPLIED
splitindex %trueFalse; #IMPLIED
windowtitle CDATA #IMPLIED
doctitle CDATA #IMPLIED
header CDATA #IMPLIED
footer CDATA #IMPLIED
bottom CDATA #IMPLIED
link CDATA #IMPLIED
linkoffline CDATA #IMPLIED
group CDATA #IMPLIED
nodeprecated %trueFalse; #IMPLIED
nodeprecatedlist %trueFalse; #IMPLIED
notree %trueFalse; #IMPLIED
noindex %trueFalse; #IMPLIED
nohelp %trueFalse; #IMPLIED
nonavbar %trueFalse; #IMPLIED
serialwarn %trueFalse; #IMPLIED
helpfile CDATA #IMPLIED
stylesheetfile CDATA #IMPLIED
charset CDATA #IMPLIED
docencoding CDATA #IMPLIED>
<!ELEMENT keysubst EMPTY>
<!ATTLIST keysubst
src CDATA #REQUIRED
dest CDATA #REQUIRED
sep CDATA #IMPLIED
keys CDATA #REQUIRED>
<!ELEMENT mkdir EMPTY>
<!ATTLIST mkdir
dir CDATA #REQUIRED>
<!ELEMENT rename EMPTY>
<!ATTLIST rename
src CDATA #REQUIRED
dest CDATA #REQUIRED
replace %onOff; #IMPLIED>
<!ELEMENT replace EMPTY>
<!ATTLIST replace
file CDATA #REQUIRED
token CDATA #REQUIRED
value CDATA #IMPLIED>
<!ELEMENT rmic EMPTY>
<!ATTLIST rmic
base CDATA #REQUIRED
classname CDATA #REQUIRED
%filtering;>
<!ELEMENT tar EMPTY>
<!ATTLIST tar
tarfile CDATA #REQUIRED
basedir CDATA #REQUIRED
%dirExclusDefault;>
<!ELEMENT taskdef EMPTY>
<!ATTLIST taskdef
name CDATA #REQUIRED
classname CDATA #REQUIRED>
<!ELEMENT tstamp EMPTY>
<!ELEMENT untar EMPTY>
<!ATTLIST untar
src CDATA #REQUIRED
dest CDATA #REQUIRED>
<!ELEMENT zip EMPTY>
<!ATTLIST zip
zipfile CDATA #REQUIRED
basedir CDATA #REQUIRED
compress %trueFalse; #IMPLIED
%dirExclusDefault;>
