<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- ===================================================================
     
     Apache Todos DTD (Version 1.0)

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.yz//EN"
       "todo-vxyz.dtd">

  where 
  
    x := major version
    y := minor version
    z := status identifier (optional)
      
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.

FIXME:
  - do we need anymore working contexts? (SM)

CHANGE HISTORY:
  19991129 Initial version. (SM)
  19991225 Added actions element for better structure (SM)
    
==================================================================== -->

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

<!-- FIXME (SM): this is hardcoding. Find a better way of doing this
     possibly using public identifiers -->
<!ENTITY % document-dtd SYSTEM "document-v10.dtd">
%document-dtd;

<!-- =============================================================== -->
<!-- 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 -->
<!-- =============================================================== -->
