Web browsers do not do markup validation, beyond checking that XML is well-formed (that is, it is XML at all). They do not even read DTDs.
To validate an XML document, you need an XML validator. One clumsy possibility is the W3C Markup Validator. Even though it is in many ways HTML oriented, it has an SGML and XML validator as the basis, and you can use it on XML documents. You would need to put the DTD on a web server so that it can be referred to by URL, or include it in the XML document. Note that an external DTD file should not have a <!DOCTYPE Main [...]>
wrapper around the declarations, as it only belongs to a case where the DTD is embedded in the XML document, e.g.
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="Style.css"?>
<!DOCTYPE Main
[
<!ELEMENT Main (Heading,Body,Newline,Bullet)>
<!ELEMENT Heading (#PCDATA)>
<!ELEMENT Bodyzzz (#PCDATA)>
<!ELEMENT Newline (#PCDATA)>
<!ELEMENT Bullet (#PCDATA)>
]>
<Main xmlns:html="http://www.w3.org/1999/xhtml">
...
By the way, even without the zzz
, the document is invalid – your DTD declares a structure that has four specific elements as children of the root element, in the specified order, and without any repetition.