SAX2 provides the ability to use a customer provided
external DTD when there is no external subset. Check
out the definition of getExternalSubset on this page:
I patched Expat to enable such behaviour.
When the user calls the new API function
XML_UseForeignDTD() with an argument of XML_TRUE,
then the externalEntityRefHandler will be called
even if there is no external subset/DTD declared.
In such a case the systemId argument will be NULL.
A "foreign DTD" would be interpreted just as if
the document had an external subset reference,
that is, the internal field dtd.hasParamEntityRefs
would become true.
This patch also includes additional improvements/fixes
that became apparent when working on the patch.
These affect the function dtdReset() and the