This class recognizes most of the grammer for an XML processor.
Additional support is provided by the XMLEntityHandler, via the
XMLEntityReader instances it creates, which are used to process
simple constructs like string literals and character data between
markup. The XMLDTDScanner class contains the remaining support
for the grammer of DTD declarations. When a <!DOCTYPE ...> is
found in the document, the scanDoctypeDecl method will then be
called and the XMLDocumentScanner subclass is responsible for
"connecting" that method to the corresponding method provided
by the XMLDTDScanner class.