Desativar entidade XML resolvendo em JDOM / DOM
Estou escrevendo um aplicativo Java para o pós-processamento de arquivos XML. Esses arquivos xml vêm de uma RDF-Export de um Semantic Mediawiki, portanto, possuem sintaxe rdf / xm
Meu problema é o seguinte: Quando leio o arquivo xml, todas as entidades no arquivo são resolvidas com o valor especificado no Doctype. Por exemplo, no Doctype, tenho
<!DOCTYPE rdf:RDF[
<!ENTITY wiki 'http://example.org/smartgrid/index.php/Special:URIResolver/'>
..
]>
e no elemento raiz
<rdf:RDF
xmlns:wiki="&wiki;"
..
>
Isso signific
<swivt:Subject rdf:about="&wiki;Main_Page">
torna-s
<swivt:Subject rdf:about="http://example.org/smartgrid/index.php/Special:URIResolver/Main_Page">
Tentei usar o JDOM e o DOM Java padrão. O código que acho relevante aqui é para o DOM padrão:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setExpandEntityReferences(false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
e para JDOM
SAXBuilder builder = new SAXBuilder();
builder.setExpandEntities(false); //Retain Entities
builder.setValidation(false);
builder.setFeature("http://xml.org/sax/features/resolve-dtd-uris", false);
Mas as entidades são resolvidas em todo o documento xml. Estou esquecendo de algo? As horas de pesquisa só me levaram aos comandos 'ExpandEntities', mas eles parecem não funcionar.
Qualquer dica é muito apreciada:)