Apache DOMParser(org.apache.xerces.parsers.DOMParser)
実装を使用すると、次の機能を使用して DTD 検証を抑制することができます。
parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
ただし、これにより、xml 自体から DTD 宣言が削除されます。xml を文字列形式で出力すると、XML ファイル内の元の DTD 宣言が欠落していることがわかります。この問題の解決策は何ですか? このようなものでも: 1. ドキュメントをロードします。2. dtd 宣言を抽出します。3. dtd 検証を抑制します (DTD 宣言は削除されます)。4. ドキュメントを解析して更新します。5. DTD 宣言をもう一度追加します。