A DTD for the Maven project descriptor would answer a lot of these
questions.  What do you think?

<!--
    Maven Project Descriptor Doctype Declaration
-->

<!ELEMENT project
  (name, id, currentVersion, organization?, inceptionYear, package,
   shortDescription, gumpRepositoryId?, description?, url, cvsWebUrl?,
   siteAddress?, siteDirectory?, distributionDirectory?, distributions,
   branches, mailingLists, developers, dependencies, build)
>

<!ELEMENT id>

<!ELEMENT currentVersion>

<!ELEMENT organization>

<!ELEMENT inceptionYear>

<!ELEMENT package>

<!ELEMENT shortDescription>

<!ELEMENT gumpRepositoryId>

<!ELEMENT description>

<!ELEMENT url>

<!ELEMENT cvsWebUrl>

<!ELEMENT siteAddress>

<!ELEMENT siteDirectory>

<!ELEMENT distributionDirectory>

<!ELEMENT distributions (distribution*)>

<!ELEMENT distribution (version,tag)>

<!ELEMENT version>

<!ELEMENT tag>

<!ELEMENT branches (branch*)>

<!ELEMENT branch (tag)>

<!ELEMENT mailingLists (mailingList*)>

<!ELEMENT mailingList (name,subscribe,unsubscribe,archive?)>

<!ELEMENT name>

<!ELEMENT subscribe>

<!ELEMENT unsubscribe>

<!ELEMENT archive>

<!ELEMENT developers (developer*)>

<!ELEMENT developer (name,id,email,organization?)>

<!ELEMENT email>

<!ELEMENT dependencies (dependency*)>

<!ELEMENT dependency (name,type,version,jar,homepage)>

<!--
Indicates the type of dependency.

required      - The dependency is required.
documentation - The dependency is documentation.
-->
<!ELEMENT type>

<!ELEMENT jar>

<!-- TODO: Replace with url element -->
<!ELEMENT homepage>

<!ELEMENT build
 (sourceDirectories, testSourceDirectories?, aspectSourceDirectories?,
  unitTestClassEntries?, integrationUnitTestClassEntries?,
  jarResources?, jars?)
>

<!ELEMENT sourceDirectories (sourceDirectory*)>

<!ELEMENT sourceDirectory>

<!ELEMENT testSourceDirectories (testSourceDirectory*)>

<!ELEMENT testSourceDirectory>

<!ELEMENT aspecteSourceDirectories (aspecteSourceDirectory*)>

<!ELEMENT aspecteSourceDirectory>

<!ELEMENT unitTestClassEntries (unitTestClassEntry*)>

<!ELEMENT unitTestClassEntry>

<!ELEMENT integrationUnitTestClassEntries (integrationUnitTestClassEntry*)>

<!ELEMENT integrationUnitTestClassEntry>

<!ELEMENT jarResources (jarResource*)>

<!ELEMENT jarResource>

<!ELEMENT jars (jar*)>

<!ELEMENT jar>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to