<!-- This is LINUXDOC.DTD, a hacked version of QWERTZ.DTD v1.3
      by Matt Welsh; modified from QWERTZ.DTD  by Tom Gordon     -->

<!-- Modified for the FreeBSD project by John Fieber.
     Specifically: added a PART element, which contains CHAPTers,
     replaced general and math entity sets with ISO 8879 entity
     sets, removed numerous ugly shortref maps.                  -->

<!-- Version 1.1, 17-Jan-1998
     Added manref element, submitted by 
     Wolfram Schneider <wosch@cs.tu-berlin.de>                   -->

<!-- =========================================================== -->
<!-- Parameter Entities                                          -->
<!-- =========================================================== -->

<!entity % emph 
	" em|it|bf|sf|sl|tt|cparam " >

<!entity % index "idx|cdx" >

<!-- url added by HG; htmlurl added by esr -->
<!entity % xref
	" label|ref|pageref|cite|url|htmlurl|manref|ncite|email " >

<!entity % inline 
	" (#pcdata | f| x| %emph; |sq| %xref | %index )* " >

<!entity % list 
        " list | itemize | enum | descrip " >

<!entity % par 	
	"  %list; | comment | lq | quote | tscreen " >

<!entity % mathpar " dm | eq " >

<!entity % thrm 
        " def | prop | lemma | coroll | proof | theorem " >

<!entity % litprog " code | verb " >

<!entity % sectpar 
        " %par; | figure | tabular | table | %mathpar; | 
	  %thrm; | %litprog; ">
<!element linuxdoc o o 
        (part | chapt | sect | article | report | 
	 book | letter | telefax | slides | notes | manpage ) >

<!ENTITY % ISOlat1 PUBLIC
  "ISO 8879:1986//ENTITIES Added Latin 1//EN">
%ISOlat1;
<!ENTITY % ISOnum PUBLIC
  "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN">
%ISOnum;
<!ENTITY % ISOdia PUBLIC
  "ISO 8879:1986//ENTITIES Diacritical Marks//EN">
%ISOdia;
<!ENTITY % ISOpub PUBLIC
  "ISO 8879:1986//ENTITIES Publishing//EN">
%ISOpub;
<!ENTITY % ISOamsa PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN">
%ISOamsa;
<!ENTITY % ISOamsb PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN">
%ISOamsb;
<!ENTITY % ISOamsc PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN">
%ISOamsc;
<!ENTITY % ISOamsn PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN">
%ISOamsn;
<!ENTITY % ISOamso PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN">
%ISOamso;
<!ENTITY % ISOamsr PUBLIC
  "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN">
%ISOamsr;

<!--
<!entity   Ae  '&Auml;' >
<!entity   ae  '&auml;' >
<!entity   Oe  '&Ouml;' >
<!entity   oe  '&ouml;' >
<!entity   Ue  '&Uuml;' >
<!entity   ue  '&uuml;' >
<!entity   sz  '&szlig;' >
-->

<!-- =========================================================== -->
<!-- Elements                                                    -->
<!-- =========================================================== -->

<!element  p o o (( %inline | %sectpar )+) +(newline) >
<!entity ptag '<p>' >
<!entity psplit '</p><p>' >

<!shortref pmap
	"&#RS;B" null 
	"&#RS;B&#RE;" psplit
	"&#RS;&#RE;" psplit>

<!usemap pmap p>
<!element em - - (%inline)>
<!element bf - - (%inline)>
<!element it - - (%inline)>
<!element sf - - (%inline)>
<!element sl - - (%inline)>
<!element tt - - (%inline)>
<!element sq - - (%inline)>
<!element cparam - - (%inline)>

<!entity   ftag     '<f>'    -- formula begin -- >
<!entity   qendtag  '</sq>'>

<!element lq - - (p*)>
<!element quote - - ((%inline; | %sectpar;)*, p*)+ >
<!element tscreen - - ((%inline; | %sectpar;)*, p*)+ >
<!element itemize - - (item+)>
<!element enum - - (item+)>
<!element list - - (item+)>

<!-- What a mess. The following is here to clean up problems with
     paragraph breaks in a descrip. I can think of cases where this might
     break, but it seems to work. mdw -->

<!shortref desmap
        "&#RS;B" null
        "&#RS;B&#RE;" ptag
        "&#RS;&#RE;" ptag>

<!element descrip - - (tag?, p+)+ >
<!usemap desmap descrip>

<!element item o o ((%inline; | %sectpar;)*, p*) >

<!element tag - o (%inline)>
<!usemap global (list,itemize,enum)>
<!entity space " ">
<!entity null "">

<!element figure - - ((eps | ph ), caption?)>
<!attlist figure
	loc cdata "tbp">

<!element eps - o empty  >
<!attlist eps
        file cdata #required>
<!element ph - o empty >
<!attlist ph
        vspace cdata #required>

<!element caption - o (%inline)>

<!shortref oneline
     "B&#RE;" space
     "&#RS;&#RE;" null 
     "&#RS;B&#RE;" null>

<!usemap oneline tag>
<!usemap oneline caption>

<!entity % tabrow "(%inline, (colsep, %inline)*)" >
<!element tabular - - 
	(%tabrow, (rowsep, hline?, %tabrow)*, caption?) >

<!attlist tabular
	ca cdata #required>

<!element rowsep - o empty>
<!element colsep - o empty>
<!element hline  - o empty>

<!entity rowsep "<rowsep>">
<!entity colsep "<colsep>">

<!shortref tabmap
     "&#RE;" null
     "&#RS;&#RE;" null
     "&#RS;B&#RE;" null
     "&#RS;B" null
      "B&#RE;" null
      "BB"  space>

<!usemap  tabmap tabular>
<!element table   - - (tabular, caption?) >
<!attlist table
	loc cdata "tbp">

<!element code - - rcdata>
<!element verb - - rcdata>

<!shortref ttmap     -- also on one-line --
        "B&#RE;" space
        "&#RS;&#RE;" null 
        "&#RS;B&#RE;" null
	"&#RS;B" null>

<!usemap ttmap  tt>
<!element  mc  - - cdata >
<!entity % sppos     "tu" >
<!entity % fcs       "%sppos;|phr" >
<!entity % fcstxt    "#pcdata|mc|%fcs;" >
<!entity % fscs      "rf|v|fi" >
<!entity % limits    "pr|in|sum" >
<!entity % fbu       "fr|lim|ar|root" >
<!entity % fph       "unl|ovl|sup|inf" >
<!entity % fbutxt    "(%fbu;) | (%limits;) | 
                      (%fcstxt;)|(%fscs;)|(%fph;)" >
<!entity % fphtxt    "p|#pcdata" >
<!element  f        - - ((%fbutxt;)*) >

<!entity   fendtag  '</f>'   -- formula end -- >

<!shortref fmap 
      "&#RS;B" null
      "&#RS;B&#RE;" null
      "&#RS;&#RE;" null>

<!usemap   fmap     f >

<!element  dm       - - ((%fbutxt;)*)>
<!element  eq       - - ((%fbutxt;)*)>

<!shortref dmmap
     "&#RE;" space>

<!usemap dmmap (dm,eq)>
<!element  fr       - - (nu,de) >
<!element  nu       o o ((%fbutxt;)*) >
<!element  de       o o ((%fbutxt;)*) >
<!element  ll       o o ((%fbutxt;)*) >
<!element  ul       o o ((%fbutxt;)*) >
<!element  opd      - o ((%fbutxt;)*) >
<!element  pr       - - (ll,ul,opd?) >
<!element  in       - - (ll,ul,opd?) >
<!element  sum      - - (ll,ul,opd?) >
<!element  lim      - - (op,ll,ul,opd?) >
<!element  op       o o (%fcstxt;|rf|%fph;) -(tu) >
<!element  root     - - ((%fbutxt;)*) >
<!attlist  root
        n cdata "">
<!element col o o ((%fbutxt;)*) >
<!element row o o (col, (arc, col)*) >

<!element  ar       - - (row, (arr, row)*) >
<!attlist  ar
    ca     cdata    #required >
<!element  arr      - o empty >
<!element  arc      - o empty >
<!entity   arr "<arr>" >
<!entity   arc "<arc>" >

<!shortref arrmap
     "&#RE;" space>

<!usemap   arrmap   ar >
<!element  sup      - - ((%fbutxt;)*) -(tu) >
<!element  inf      - - ((%fbutxt;)*) -(tu) >
<!element  unl - - ((%fbutxt;)*) >
<!element  ovl - - ((%fbutxt;)*) >
<!element  rf  - o (#pcdata) >
<!element  phr - o ((%fphtxt;)*) >
<!element  v   - o ((%fcstxt;)*) 
	-(tu|%limits;|%fbu;|%fph;) >
<!element  fi  - o (#pcdata) >
<!element  tu  - o empty >

<!usemap global (rf,phr)>
<!element def - - (thtag?, p+) >
<!element prop - - (thtag?, p+) >
<!element lemma - - (thtag?, p+) >
<!element coroll - - (thtag?, p+) >
<!element proof - - (p+) >
<!element theorem - - (thtag?, p+) >
<!element thtag - - (%inline)>

<!usemap global (def,prop,lemma,coroll,proof,theorem)>
<!usemap oneline thtag>
<!entity   qtag     '<sq>' >

<!shortref global
      "&#RS;B" null  -- delete leading blanks -- >

<!usemap global linuxdoc>
<!element label - o empty>
<!attlist label id cdata #required>

<!-- ref modified to have an optional name field HG -->
<!element ref - o empty>
<!attlist ref   
        id cdata #required
        name cdata #implied>

<!-- url entity added to have direct url references HG -->
<!element url - o empty>
<!attlist url   
        url cdata #required
        name cdata #implied>

<!-- htmlurl entity added to have quieter url references esr -->
<!element htmlurl - o empty>
<!attlist htmlurl   
        url cdata #required
        name cdata #implied>

<!-- htmlurl entity added to have quieter url references esr -->
<!element manref - o empty>
<!attlist manref   
        name cdata #required
        path cdata #implied
        section cdata #implied>

<!element pageref - o empty>
<!attlist pageref
        id cdata #required>
<!element comment - - (%inline)>
<!element x - - ((#pcdata | mc)*) >
<!usemap   #empty   x >

<!-- Hacked by mdw to exclude abstract; abstract now part of titlepag -->
<!element article - -
        (titlepag, header?, 
         toc?, lof?, lot?, p*, (part | sect)*, 
         (appendix, sect+)?, biblio?) +(footnote)>

<!attlist article
        opts cdata #IMPLIED>

<!-- Hacked by mdw to exclude abstract; abstract now part of titlepag -->
<!element report - - 
        (titlepag, header?, toc?, lof?, lot?, p*,
         (part | chapt)*, (appendix, chapt+)?, biblio?) +(footnote)>

<!attlist report
        opts cdata #IMPLIED>
<!element book  - - 
        (titlepag, header?, toc?, lof?, lot?, p*, (part | chapt)*, 
         (appendix, chapt+)?, biblio?) +(footnote) >

<!attlist book
        opts cdata #IMPLIED>

<!-- Hacked by mdw, abstract now part of titlepag -->
<!element titlepag o o (title, author, date?, abstract?)>
<!element title - o (%inline, subtitle?) +(newline)>
<!element subtitle - o (%inline)>
<!usemap oneline titlepag>
<!element author - o (name, thanks?, inst?, 
                        (and, name, thanks?, inst?)*)>
<!element name o o (%inline) +(newline)>
<!element and - o empty>
<!element thanks - o (%inline)>
<!element inst - o (%inline) +(newline)>
<!element date - o (#pcdata) >

<!usemap global thanks>
 
<!element newline - o empty >
<!entity nl "<newline>"> 

<!-- Hacked by mdw -->
<!element abstract - o (%inline)>
<!usemap oneline abstract>


<!element toc - o empty>
<!element lof - o empty>
<!element lot - o empty>
<!element header - - (lhead, rhead) >
<!element lhead - o (%inline)>
<!element rhead - o (%inline)>
<!entity % sect "heading, header?, p* " >
<!element heading o o (%inline)>
<!element part  - o (%sect, (chapt* | sect*))>
<!element chapt - o (%sect, sect*) +(footnote)> 
<!element sect  - o (%sect, sect1*) +(footnote)>
<!element sect1 - o (%sect, sect2*)>
<!element sect2 - o (%sect, sect3*)>
<!element sect3 - o (%sect, sect4*)>
<!element sect4 - o (%sect)>
<!usemap oneline (part,chapt,sect,sect1,sect2,sect3,sect4)>
<!element appendix - o empty >
<!element footnote - - (%inline)>
<!usemap global footnote>
<!element cite - o empty>
<!attlist cite 
        id cdata #required>

<!element ncite - o empty>
<!attlist ncite 
        id cdata #required
	note cdata #required>


<!element idx - - (#pcdata)>
<!element cdx - - (#pcdata)>

<!element biblio - o empty>
<!attlist biblio
	style cdata "linuxdoc"
        files cdata "">
<!element slides - - (slide*) >

<!attlist slides
	opts cdata "null">
<!element slide - o (title?, p+) >
<!entity  % addr "(address?, email?, phone?, fax?)" >  
	
<!element letter - - 
	(from, %addr, to, %addr, cc?, subject?, sref?, rref?,
         rdate?, opening, p+, closing, encl?, ps?)>

<!attlist letter
	opts cdata "null">
	
<!element from		- o (#pcdata) >
<!element to		- o (#pcdata) >
	
<!usemap oneline (from,to)>
	
<!element address 	- o (#pcdata) +(newline) >
<!element email		- o (#pcdata) >
<!element phone		- o (#pcdata) >
<!element fax 		- o (#pcdata) >
	
<!element subject 	- o (%inline;) >
<!element sref		- o (#pcdata) >
<!element rref          - o (#pcdata) >
<!element rdate         - o (#pcdata) >
	
<!element opening 	- o (%inline;) >
<!usemap oneline opening>
	
<!element closing - o (%inline;) >
<!element cc - o (%inline;) +(newline) >
<!element encl - o (%inline;) +(newline) >
	
<!element ps - o (p+) >

<!element telefax - - 
	(from, %addr, to, address, email?, 
         phone?, fax, cc?, subject?,
         opening, p+, closing, ps?)>

<!attlist telefax
	opts cdata "null"
	length cdata "2">

<!element notes - - (title?, p+) >
<!attlist notes
	opts cdata "null" >
<!element manpage - - (sect1*) 
	-(sect2 | f | %mathpar | figure | tabular | 
          table | %xref | %thrm )>


<!attlist manpage
	opts cdata "null"
	title cdata ""
	sectnum cdata "1" >
<!shortref manpage
      "&#RS;B" null>

<!usemap manpage  manpage >
<!-- end of linuxdoc dtd -->
