<!-- $Id: texinfo.dtd,v 1.1.1.1 2003-09-27 01:38:54 wired_gr Exp $
   Document Type Definition for Texinfo.

   Author: Philippe Martin (feloy@free.fr)
   Contributors:
           Karl Eichwalder (keichwa@gmx.net)

   Copyright (C) 2001, 02 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
-->

<!-- ENTITIES -->

<!-- Meta-information -->
<!ENTITY % metainformation "setfilename | settitle | titlefont | dircategory">

<!-- block -->
<!-- ***** -->
<!ENTITY % block "menu | para | quotation | verbatim | example | smallexample | lisp
                  | smalllisp | cartouche | copying
                  | format | smallformat | display
                  | smalldisplay | itemize | enumerate | sp | center | group
                  | table | multitable">

<!-- Sectioning -->
<!-- ********** -->
<!ENTITY % section.level1 "top | chapter | unnumbered | appendix
                           | majorheading | chapheading">

<!ENTITY % section.level2 "section | unnumberedsec | appendixsec | heading">

<!ENTITY % section.level3 "subsection | unnumberedsubsec | appendixsubsec
                           | subheading">

<!ENTITY % section.level4 "subsubsection | unnumberedsubsubsec 
                           | appendixsubsubsec | subsubheading">

<!ENTITY % section.all "%section.level1; | %section.level2; | %section.level3;
                        | %section.level4;">


<!ENTITY % section.level1.content "(%block; 
                                   | %section.level2; 
                                   | %section.level3; 
                                   | %section.level4; 
                                   | printindex)*">

<!ENTITY % section.level2.content "(%block; 
                                   | %section.level3; 
                                   | %section.level4;)*">

<!ENTITY % section.level3.content "(%block; 
                                   | %section.level4;)*">

<!ENTITY % section.level4.content "(%block;)*">


<!-- Inline -->
<!-- ****** -->
<!ENTITY % Inline.emphasize "strong | emph">
<!ENTITY % Inline.smallcaps "sc">
<!ENTITY % Inline.fonts "i | b | tt | r">
<!ENTITY % Inline.markup "code | dfn | cite | key | kbd | var | acronym | url">
<!ENTITY % Inline.reference "xref | inforef | indexterm | email | uref">

<!ENTITY % Inline.phrase
           "%Inline.emphasize; | %Inline.smallcaps; | %Inline.fonts;
            | %Inline.markup; | %Inline.reference; ">


<!-- ************ -->
<!-- * ELEMENTS * -->
<!-- ************ -->

<!-- TOP Level Element -->
<!-- ***************** -->
<!ELEMENT texinfo ((%metainformation; | node | %block;)* )>

<!-- meta-information -->
<!ELEMENT setfilename (#PCDATA)>
<!ELEMENT settitle    (#PCDATA)>
<!ELEMENT titlefont   (#PCDATA)>
<!ELEMENT dircategory (#PCDATA)>

<!-- NODES -->
<!-- ***** -->
<!ELEMENT node (nodename, nodenext?, nodeprev?, nodeup?, 
                (para | menu | %section.all;)*) >

<!ELEMENT nodename (#PCDATA)>
<!ELEMENT nodenext (#PCDATA)>
<!ELEMENT nodeprev (#PCDATA)>
<!ELEMENT nodeup   (#PCDATA)>

<!-- SECTIONING -->
<!-- ********** -->

<!ELEMENT top           (title?, %section.level1.content;)>

<!ELEMENT chapter       (title?, %section.level1.content;)>
<!ELEMENT section       (title?, %section.level2.content;)>
<!ELEMENT subsection    (title?, %section.level3.content;)>
<!ELEMENT subsubsection (title?, %section.level4.content;)>

<!ELEMENT unnumbered          (title?, %section.level1.content;)>
<!ELEMENT unnumberedsec       (title?, %section.level2.content;)>
<!ELEMENT unnumberedsubsec    (title?, %section.level3.content;)>
<!ELEMENT unnumberedsubsubsec (title?, %section.level4.content;)>

<!ELEMENT appendix          (title?, %section.level1.content;)>
<!ELEMENT appendixsec       (title?, %section.level2.content;)>
<!ELEMENT appendixsubsec    (title?, %section.level3.content;)>
<!ELEMENT appendixsubsubsec (title?, %section.level4.content;)>

<!ELEMENT majorheading  (title?, %section.level1.content;)>
<!ELEMENT chapheading   (title?, %section.level1.content;)>
<!ELEMENT heading       (title?, %section.level2.content;)>
<!ELEMENT subheading    (title?, %section.level3.content;)>
<!ELEMENT subsubheading (title?, %section.level4.content;)>

<!ELEMENT title (#PCDATA | %Inline.phrase; | footnote)*>

<!-- BLOCK Elements -->
<!-- ************** -->

<!ELEMENT quotation    (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT example      (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT verbatim     (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT smallexample (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT lisp         (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT smalllisp    (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT cartouche    (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT copying      (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT format       (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT smallformat  (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT display      (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT smalldisplay (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT center       (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT group        (#PCDATA | %block; | %Inline.phrase;)*>
<!ELEMENT image        (#PCDATA)>

<!ELEMENT para         (#PCDATA | %Inline.phrase; | footnote)*>

<!ELEMENT menu ((menuentry | para)*)>
<!ELEMENT menuentry (menunode?, menutitle?, menucomment?)>
<!ELEMENT menunode (#PCDATA)>
<!ELEMENT menutitle (#PCDATA)>
<!ELEMENT menucomment (#PCDATA | para)*>

<!-- Lists -->
<!ELEMENT itemize (itemfunction, (item | itemize | enumerate | indexterm)*)>
<!ELEMENT enumerate (enumarg?, (item | itemize | enumerate)*)>
<!ATTLIST enumerate 
          first CDATA #IMPLIED>

<!ELEMENT item (%block;)*>
<!ELEMENT enumarg (#PCDATA)>

<!ELEMENT itemfunction (#PCDATA | %Inline.phrase;)*>

<!-- Tables -->
<!ELEMENT table (tableitem | indexterm)+>
<!ELEMENT tableitem (tableterm+, item)>
<!ELEMENT tableterm (#PCDATA | %Inline.phrase;)*>

<!ELEMENT multitable (columnfraction*, row*)>
<!ELEMENT columnfraction (#PCDATA)>
<!ELEMENT row (entry*)>
<!ELEMENT entry (#PCDATA | %Inline.phrase;)*>

<!-- INLINE Elements -->
<!-- *************** -->

<!-- Emphasize -->
<!ELEMENT strong (#PCDATA | %Inline.phrase;)*>
<!ELEMENT emph   (#PCDATA | %Inline.phrase;)*>

<!-- small caps -->
<!ELEMENT sc (#PCDATA | %Inline.phrase;)*>

<!-- fonts -->
<!ELEMENT i  (#PCDATA | %Inline.phrase;)*>
<!ELEMENT b  (#PCDATA | %Inline.phrase;)*>
<!ELEMENT tt (#PCDATA | %Inline.phrase;)*>
<!ELEMENT r  (#PCDATA | %Inline.phrase;)*>
<!ELEMENT notfixedwidth (#PCDATA | %Inline.phrase;)*>

<!-- markup -->
<!ELEMENT code    (#PCDATA | %Inline.phrase;)*>
<!ELEMENT dfn     (#PCDATA | %Inline.phrase;)*>
<!ELEMENT cite    (#PCDATA | %Inline.phrase;)*>
<!ELEMENT key     (#PCDATA | %Inline.phrase;)*>
<!ELEMENT kbd     (#PCDATA | %Inline.phrase;)*>
<!ELEMENT var     (#PCDATA | %Inline.phrase;)*>
<!ELEMENT acronym (#PCDATA | %Inline.phrase;)*>
<!ELEMENT url     (#PCDATA | %Inline.phrase;)*>

<!-- reference -->
<!ELEMENT anchor EMPTY>
<!ATTLIST anchor
          name CDATA #IMPLIED>

<!ELEMENT xref (xrefnodename | xrefinfoname | xrefinfofile
                | xrefprintedname | xrefprinteddesc)*>
<!ELEMENT xrefnodename    (#PCDATA | %Inline.phrase;)*>
<!ELEMENT xrefinfoname    (#PCDATA | %Inline.phrase;)*>
<!ELEMENT xrefinfofile    (#PCDATA | %Inline.phrase;)*>
<!ELEMENT xrefprintedname (#PCDATA | %Inline.phrase;)*>
<!ELEMENT xrefprinteddesc (#PCDATA | %Inline.phrase;)*>

<!ELEMENT inforef (inforefnodename | inforefrefname | inforefinfoname)*>
<!ELEMENT inforefnodename (#PCDATA | %Inline.phrase;)*>
<!ELEMENT inforefrefname  (#PCDATA | %Inline.phrase;)*>
<!ELEMENT inforefinfoname (#PCDATA | %Inline.phrase;)*>

<!ELEMENT indexterm (#PCDATA | %Inline.phrase;)*>
<!ATTLIST indexterm
          INDEX CDATA #IMPLIED>

<!ELEMENT email (emailaddress, emailname?)>
<!ELEMENT emailaddress (#PCDATA | %Inline.phrase;)*>
<!ELEMENT emailname (#PCDATA | %Inline.phrase;)*>

<!ELEMENT uref (urefurl, urefdesc?, urefreplacement?)>
<!ELEMENT urefurl         (#PCDATA | %Inline.phrase;)*>
<!ELEMENT urefdesc        (#PCDATA | %Inline.phrase;)*>
<!ELEMENT urefreplacement (#PCDATA | %Inline.phrase;)*>

<!ELEMENT footnote (para)>



<!ENTITY tex       "TeX">
<!ENTITY ellipsis  "">
<!ENTITY lt        "">
<!ENTITY gt        "">
<!ENTITY bullet    "">
<!ENTITY copyright "">
<!ENTITY minus     "">
<!ENTITY linebreak "">
<!ENTITY space     "">
<!ENTITY dots      "">
<!ENTITY enddots   "">
<!ENTITY amp       "">

<!ENTITY auml "">
<!ENTITY ouml "">
<!ENTITY uuml "">
<!ENTITY Auml "">
<!ENTITY Ouml "">
<!ENTITY Uuml "">
<!ENTITY Euml "">
<!ENTITY euml "">
<!ENTITY Iuml "">
<!ENTITY iuml "">
<!ENTITY yuml "">
<!ENTITY uml  "">

<!ENTITY Aacute "">
<!ENTITY Eacute "">
<!ENTITY Iacute "">
<!ENTITY Oacute "">
<!ENTITY Uacute "">
<!ENTITY Yacute "">
<!ENTITY aacute "">
<!ENTITY eacute "">
<!ENTITY iacute "">
<!ENTITY oacute "">
<!ENTITY uacute "">
<!ENTITY yacute "">

<!ENTITY ccedil "">
<!ENTITY Ccedil "">

<!ENTITY Acirc "">
<!ENTITY Ecirc "">
<!ENTITY Icirc "">
<!ENTITY Ocirc "">
<!ENTITY Ucirc "">
<!ENTITY acirc "">
<!ENTITY ecirc "">
<!ENTITY icirc "">
<!ENTITY ocirc "">
<!ENTITY ucirc "">

<!ENTITY Agrave "">
<!ENTITY Egrave "">
<!ENTITY Igrave "">
<!ENTITY Ograve "">
<!ENTITY Ugrave "">
<!ENTITY agrave "">
<!ENTITY egrave "">
<!ENTITY igrave "">
<!ENTITY ograve "">
<!ENTITY ugrave "">

<!ENTITY Atilde "">
<!ENTITY Ntilde "">
<!ENTITY Otilde "">
<!ENTITY atilde "">
<!ENTITY ntilde "">
<!ENTITY otilde "">

<!ENTITY oslash "">
<!ENTITY Oslash "">

<!ENTITY iexcl "">
<!ENTITY pound "">
<!ENTITY iquest "">
<!ENTITY AElig "">
<!ENTITY aelig "">
<!ENTITY Aring "">
<!ENTITY aring "">
<!ENTITY szlig "">

<!ENTITY macr "">


<!-- fixxme: not yet classified -->

<!ELEMENT sp (#PCDATA)>
<!ATTLIST sp
          lines CDATA #IMPLIED>
<!ELEMENT printindex (#PCDATA)>

