cache external DTDs to speed up execution (parsing DTD time went down from 45s to 0.5s)