XMLファイルの後処理用にJavaアプリケーションを作成しています。 これらのXMLファイルは、Semantic MediawikiのRDF-Exportから来ているので、rdf/xmlの構文を持っています。JDOM/DOMでXMLエンティティの解決を無効にする
私の問題は次のとおりです。 xmlファイルを読むと、ファイル内のすべてのエンティティがDoctypeで指定された値に解決されます。文書型の例では私は
<!DOCTYPE rdf:RDF[
<!ENTITY wiki 'http://example.org/smartgrid/index.php/Special:URIResolver/'>
..
]>
を有し、ルート要素に
<rdf:RDF
xmlns:wiki="&wiki;"
..
>
これは私はJDOMと使用しようとしている
<swivt:Subject rdf:about="http://example.org/smartgrid/index.php/Special:URIResolver/Main_Page">
<swivt:Subject rdf:about="&wiki;Main_Page">
となる手段標準のJava DOMです。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setExpandEntityReferences(false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
とJDOM
ためSAXBuilder builder = new SAXBuilder();
builder.setExpandEntities(false); //Retain Entities
builder.setValidation(false);
builder.setFeature("http://xml.org/sax/features/resolve-dtd-uris", false);
しかし、実体はXML文書全体のどれも少なく全体で解決されます: 私はここでは関係だと思うのコードは、標準のDOMのためです。 何か不足していますか?検索の時間は「ExpandEntities」コマンドにしか導かれませんでしたが、動作していないようです。
任意のヒントが高く評価される:)