Next Previous Contents

## 16. Linuxdoc dtd Source

This is the `linuxdoc.dtd` used to parse this document. The revision log, revision comments and a few redundant lines are taken out for saving paper and screenspace.

    <!-- This is a DTD, but will be read as -*- sgml -*-   -->
    <!-- ================================================= -->
    <!-- $Id: lnd.sgml,v 1.1.1.1 2000/03/05 14:40:31 uwe Exp $

         This is LINUXDOC96 DTD for SGML-Tools.

         This was LINUXDOC.DTD,
         a hacked version of QWERTZ.DTD v1.3 by Matt Welsh,
         Greg Hankins, Eric Raymond, Marc Baudoin and
         Tristan Debeaupuis; modified from QWERTZ.DTD by
         Tom Gordon.

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

    <!entity % index "idx|cdx|nidx|ncdx" >

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

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

    <!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
            (sect | chapt | article | report |
             book | letter | telefax | slides | notes | manpage ) >

    <!-- `general' entity replaced with ISO entities - kwm -->
    <!entity % isoent system "isoent">
    %isoent;

    <!entity urlnam sdata "urlnam" >
    <!entity refnam sdata "refnam" >
    <!entity tex sdata "[tex   ]" >
    <!entity latex       sdata "[latex ]" >
    <!entity latexe      sdata "[latexe]" >
    <!entity tm     sdata "[trade ]" >
    <!entity dquot  sdata "[quot  ]" >
    <!entity ero    sdata "[amp   ]" >
    <!entity etago '</' >
    <!entity   Ae  '&Auml;' >
    <!entity   ae  '&auml;' >
    <!entity   Oe  '&Ouml;' >
    <!entity   oe  '&ouml;' >
    <!entity   Ue  '&Uuml;' >
    <!entity   ue  '&uuml;' >
    <!entity   sz  '&szlig;' >
    <!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
    --      '"' qtag  --
            "[" lsqb
            "~" nbsp
            "_" lowbar
            "#" num
            "%" percnt
            "^" circ
            "{" lcub
            "}" rcub
            "|" verbar >

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

    <!shortref sqmap
          "&#RS;B" null
    --      '"' qendtag  --
          "[" lsqb
          "~" nbsp
          "_" lowbar
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar >

    <!usemap   sqmap    sq >

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

    <!shortref desmap
            "&#RS;B" null
            "&#RS;B&#RE;" ptag
            "&#RS;&#RE;" ptag
            "~" nbsp
            "_" lowbar
            "#" num
            "%" percnt
            "^" circ
            "[" lsqb
            "]" rsqb
            "{" lcub
            "}" rcub
            "|" verbar >

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

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

    <!element tag - o (%inline)>
    <!usemap desmap tag>

    <!usemap global (list,itemize,enum)>
    <!entity space " ">
    <!entity null "">

    <!--
    <!shortref bodymap
         "&#RS;B&#RE;" ptag
         "&#RS;&#RE;" ptag
          '"' qtag
          "[" lsqb
          "~" nbsp
          "_" lowbar
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>
    -->

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

    <!-- eps attributes added by mb and td  -->
    <!element eps - o empty  >
    <!attlist eps
            file cdata #required
            height cdata "5cm"
            angle cdata "0">

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

    <!element img - o empty>
    <!attlist img
            src cdata #required>

    <!element caption - o (%inline)>

    <!shortref oneline
         "B&#RE;" space
         "&#RS;&#RE;" null
         "&#RS;B&#RE;" null
    --      '"' qtag  --
          "[" ftag
          "~" nbsp
          "_" lowbar
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>

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

    <!entity % tabrow "(%inline, (colsep, %inline)*)" >
    <!element tabular - -
           (hline?, %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
          "@" rowsep
          "|" colsep
          "[" ftag
    --      '"' qtag --
          "_" thinsp
          "~" nbsp
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub >

    <!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
            '#'     num
            '%'     percnt
            '~'     tilde
            '_'     lowbar
            '^'     circ
            '{'     lcub
            '}'     rcub
            '|'     verbar >

    <!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
          "_" thinsp
          "~" nbsp
          "]" rsqb
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>

    <!usemap   fmap     f >

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

    <!shortref dmmap
         "&#RE;" space
          "_" thinsp
          "~" nbsp
          "]" rsqb
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>

    <!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
          "@" arr
          "|" arc
          "_" thinsp
          "~" nbsp
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub >

    <!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 --
      --    '"' qtag --
          "[" ftag
          "~" nbsp
          "_" lowbar
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>

    <!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 "&refnam">

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

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

    <!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*, sect*,
             (appendix, sect+)?, biblio?) +(footnote)>

    <!attlist article
            opts cdata "null">

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

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

    <!attlist book
            opts cdata "null">

    <!-- 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 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 (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 file - - (#pcdata)>

    <!element idx - - (#pcdata)>
    <!element cdx - - (#pcdata)>
    <!element nidx - - (#pcdata)>
    <!element ncdx - - (#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
    --      '"' qtag  --
          "[" ftag
          "~" nbsp
          "_" lowbar
          "#" num
          "%" percnt
          "^" circ
          "{" lcub
          "}" rcub
          "|" verbar>

    <!usemap manpage  manpage >

Next Previous Contents