dom4jでバリデーションを効かせたくないのでいろいろやった結果
いちいちhttpでDTD取ってこられると大変なので、ローカルに置いたものでValidationしてほしいわけで。ところがDOCTYPEの書き換えをしようとする際にもこのDTDバリデーションをしてしまってては意味がないわけでして。
dom4jのDocumentみると
dom4j - Frequently Asked Questions
// turn validation on SAXReader reader = new SAXReader(true);
とか書かれててるんだけどこれをfalseにしてもValidationしてしまう。
IDEでsetValidation(boolean validating)が出てきたのだけど・・・
これで
reader.setValidation(false);
とかしてもダメ。Validationしてしまう。
で見つけたのがこの記事
Disable DOM DTD validation - Ruben Laguna's blog
//factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); // it doesn't work factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
でようやく効いた。