<!-- ===================================================================
     
     Apache Todos DTD (Version 1.1)

PURPOSE:
  This DTD was developed to create a simple yet powerful document 
  type for software development todo lists for use with the Apache projects.  
  It is an XML-compliant DTD and it's maintained by the Apache XML 
  project.

TYPICAL INVOCATION:

  <!DOCTYPE document PUBLIC
       "-//APACHE//DTD Todo Vx.y//EN"
       "todo-vxy.dtd">

  where 
  
    x := major version
    y := minor version
      
NOTES:  
  It is important, expecially in open developped software projects, to keep
  track of software changes that need to be done, planned features, development
  assignment, etc. in order to allow better work parallelization and create
  an entry point for people that want to help. This DTD wants to provide
  a solid foundation to provide such information and to allow it to be
  published as well as distributed in a common format.

AUTHORS:
  Stefano Mazzocchi <stefano@apache.org>
  
FIXME:
  - do we need anymore working contexts? (SM)

CHANGE HISTORY:
[Version 1.0]
  19991129 Initial version. (SM)
  19991225 Added actions element for better structure (SM)
[Version 1.1]
  20011212 Used public identifiers for external entities (SM)
    
COPYRIGHT:
  Copyright (c) @year@ The Apache Software Foundation.
  
  Permission to copy in any form is granted provided this notice is 
  included in all copies. Permission to redistribute is granted 
  provided this file is distributed untouched in all its parts and 
  included files.
  
==================================================================== -->

<!-- =============================================================== -->
<!-- Include the Documentation DTD -->
<!-- =============================================================== -->

<!ENTITY % document PUBLIC
    "-//APACHE//DTD Documentation V1.1//EN"
    "document-v11.dtd">
%document;


<!-- =============================================================== -->
<!-- Common entities -->
<!-- =============================================================== -->

<!ENTITY % priorities "showstopper|high|medium|low|wish|dream">

<!ENTITY % contexts "build|docs|code|admin|design">

<!-- =============================================================== -->
<!-- Document Type Definition -->
<!-- =============================================================== -->

<!ELEMENT todo (devs, actions*)>
<!ATTLIST todo %common.att; 
               %title.att;>

    <!ELEMENT devs (person+)>
    <!ATTLIST devs %common.att;>

    <!ELEMENT actions (action+)>
    <!ATTLIST actions %common.att;
                     priority     (%priorities;)  #IMPLIED>

        <!ELEMENT action (%content.mix;)*>
        <!ATTLIST action %common.att;
                         assigned-to  IDREF           #IMPLIED
                         context      (%contexts;)    #REQUIRED>
    
<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
