http://www.w3.org/TR/html4/strict.dtd"> WebHowTo.dtd.html
<!-- WebHowTo DTD -->

<!-- Parameter Entities
 inlined:  various internal distinguishing tags
 para:     various block-like tags
 -->
<!ENTITY % emph "i | b | u | code">
<!ENTITY % inlined "%emph; | f | attr | rpm | tag | c | prompt | url | note | space">
<!ENTITY % para "#PCDATA | deflist | list | output | table | %inlined;">

<!-- Elements
 WebHowTo               (the container tag)
  -may have zero or more tags of type comment
  -must have a title, at least 1 section, 1 optional appendices, and 1 footer

 -->
<!ELEMENT WebHowTo      ((comment*),(title,section+,appendices?,footer))>

<!ELEMENT comment       (#PCDATA)>

<!ELEMENT title         (#PCDATA|%emph;)*>

<!ELEMENT section       (title,prolog*,(block|sect2)*)>
<!ATTLIST section       id ID #REQUIRED>

<!ELEMENT prolog        (block*)>

<!ELEMENT sect2 (title,(block|sect3)*)>
<!ATTLIST sect2 id ID #REQUIRED>
<!ATTLIST sect2 type (numbered) #IMPLIED>

<!ELEMENT sect3 (title,(block|sect4)*)>
<!ATTLIST sect3 id ID #REQUIRED>
<!ATTLIST sect3 type (numbered) #IMPLIED>

<!ELEMENT sect4 (title, block*)>
<!ATTLIST sect4 id ID #REQUIRED>

<!ELEMENT footer        (date*)>
<!ELEMENT date          EMPTY>
<!ATTLIST date          created CDATA #IMPLIED
                        modified CDATA #IMPLIED
>
<!ELEMENT appendices    (appendix+)>
<!ATTLIST appendices    id ID #REQUIRED>
<!ELEMENT appendix      (title,block*)>
<!ATTLIST appendix      id ID #REQUIRED>
<!ATTLIST appendix      type CDATA #IMPLIED>

<!ELEMENT block         (%para;)*>

<!ELEMENT list          (item+)>
<!ATTLIST list          type (bullet|numbered|lettered|roman) #REQUIRED>

<!ELEMENT deflist       ((term,def+)+)>

<!ELEMENT item          (%para;)*>
<!ELEMENT term          (#PCDATA)>
<!ELEMENT def           (%para;)*>
<!ELEMENT i             (#PCDATA|%emph;)*>
<!ELEMENT b             (#PCDATA|%emph;)*>
<!ELEMENT u             (#PCDATA|%emph;)*>
<!ELEMENT code          (#PCDATA|%emph;)*>
<!ELEMENT tag           (#PCDATA)>
<!ELEMENT attr          (#PCDATA)>
<!ELEMENT c             (#PCDATA)>
<!ELEMENT f             (#PCDATA)>
<!ATTLIST f             eg CDATA #IMPLIED>

<!ELEMENT rpm           (#PCDATA)>
<!ATTLIST rpm           note (exclude) #IMPLIED>

<!ELEMENT space         EMPTY>

<!ELEMENT url           (#PCDATA)>
<!ATTLIST url           val CDATA #IMPLIED>

<!ELEMENT table         (row)+>
<!ELEMENT row           EMPTY>
<!ATTLIST row           type (header) #IMPLIED
                        prop CDATA #REQUIRED
                        ref CDATA #IMPLIED
                        val CDATA #REQUIRED
>

<!ELEMENT prompt        (#PCDATA)>
<!ATTLIST prompt        type (root|user) #REQUIRED>
<!ATTLIST prompt        note (exclude) #IMPLIED>

<!ELEMENT note          (#PCDATA)>

<!ELEMENT output        (#PCDATA|prompt)*>