Ack! No! Don't make folks edit the DTD!
The prologue:
<!DOCTYPE HTML "-//IETF//DTD HTML Level 1//2.0">
currently invokes the level 1 dtd via that public identifier. It
should stay that way. For example, we could say that the public
text identifier "-//IETF//DTD HTML Level 1//2.0" refers to:
<!ENTITY % HTML.Level2 "IGNORE">
<!ENTITY % html.dtd "-//IETF//DTD HTML//2.0">
(which might be stored in a file called html-1.dtd)
and similarly "-//IETF//DTD HTML Level 0//2.0" refers to:
<!ENTITY % HTML.Level1 "IGNORE">
<!ENTITY % HTML.Level2 "IGNORE">
<!ENTITY % html.dtd "-//IETF//DTD HTML//2.0">
and finally "-//IETF//DTD HTML//2.0" and "-//IETF//DTD HTML Level 2//2.0"
refer to the combination of the current html-0.dtd,
html-1.dtd, and html.dtd, with marked sections for HTML.Level1 and
HTML.Level2 features.
Dan