<!-- ===================================================================
     
   Copyright 2000 The Apache Software Foundation 

   Licensed 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 FAQ DTD (Version 1.0)

PURPOSE:
  This DTD was developed to create a simple yet powerful document 
  type for software FAQ's 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 FAQ Vx.yz//EN"
       "http://xml.apache.org/DTD/faq-vxyz.dtd">

  where 
  
    x := major version
    y := minor version
    z := status identifier (optional)
      
NOTES:  
  FAQs represent a powerful knowledge base and a very good way of solving
  common user problems reducing messages on mail lists and reducing the effort
  required for software installation and usage. Thid DTD want to be a common
  format for FAQ interchange to allow FAQ-O-Matic-type workgroup services to 
  be published in other formats as well as enhancing data interchange.
  
AUTHORS:
  Stefano Mazzocchi <stefano@apache.org>
  
FIXME:

CHANGE HISTORY:
  19991129 Initial version. (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.
  
==================================================================== -->

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


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

<!ELEMENT faqs (authors?, faq)+>
<!ATTLIST faqs %common.att; 
               %title.att;>

    <!ELEMENT faq (question, answer)>
    <!ATTLIST faq %common.att;>
    
        <!ELEMENT question (%content.mix;)*>
        <!ATTLIST question %common.att;>
            
        <!ELEMENT answer (%blocks;)*>
        <!ATTLIST answer author IDREF #IMPLIED>

<!-- =============================================================== -->
<!-- End of DTD -->
<!-- =============================================================== -->
