Обычно это функция вашего анализатора XML. Ищите что-то под названием «обработчик сущностей». Когда объявление DOCTYPE найдено, этот обработчик вызывается для загрузки DTD. Он получит URL и некоторую другую информацию в качестве параметров.
[EDIT] Обработчик объекта будет возвращать некий «поток», который будет читать анализатор XML. Поэтому вам нужно сохранить DTD в файл, открыть файл в обработчике сущностей и вернуть полученный поток в анализатор XML.
В документации вашего XML-анализатора должны быть примеры, как это сделать. Обратите внимание, что поток должен быть где-то закрыт; обычно это делает синтаксический анализатор XML (поскольку только он знает, когда это сделано с потоком).