To parse a whole document, xmlParse' file content takes a filename
(for generating error reports) and the string content of that file.
Any parse error message is passed back to the caller through the
Either type.

Parse just a DTD

To parse just a DTD, dtdParse file content takes a filename
(for generating error reports) and the string content of that
file. If no DTD was found, you get Nothing rather than an error.
However, if a DTD is found but contains errors, the program crashes.

To parse just a DTD, dtdParse' file content takes a filename
(for generating error reports) and the string content of that
file. If no DTD was found, you get Right Nothing.
If a DTD was found but contains errors, you get a Left message.