JavaでXSLTを持つDTDを持つXMLファイルを処理する必要があります。 DTDは私が使用するエンティティの定義を含んでいるので本当に必要です。 (脇に:はい、ユニコードを使用できるもののエンティティを使用することは悪い考えです;-)XSLT(XML Transformer)を使用しているときにDTDをダウンロードしないようにする
変換を実行すると、毎回外部ソースからDTDがダウンロードされます。私はTransformerFactory
を与えたので、それはDTDをキャッシュするためにXMLカタログを使用したいCatalogResolver
URIResolver
として:
URIResolver cr = new CatalogResolver();
tf = TransformerFactory.newInstance();
tf.setURIResolver(cr);
Transformer t = tf.newTransformer(xsltSrc);
t.setURIResolver(cr);
Result res = new SAXResult(myDefaultHandler());
t.transform(xmlSrc, res);
しかし、私はそれがまだネットワーク上のDTDをダウンロードする変換を実行したとき。 (XalanとXercesをJava5やスタンドアロン、SaxonとXercesのいずれかとして使用)
DTDのローカルコピーのみを使用するように強制するには何が必要ですか?
+1あなた自身で解決して結果を共有するには(これまで見た質問を削除するのではなく)。 – Tomalak