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;>     

Reply via email to