SharePoint Web サービスから受け取った無効な XML 文字を消去する必要があるケースに取り組んでいます。ソースを修正することが正しいことであることはわかっていますが、この問題は 2008 年に報告されており、Microsoft がパッチをリリースしたことはまだわかっていません。
ここでは、JAX-WS の Provider インターフェースを使用して Web サービスを呼び出します。返された XML を含むソースを問題なく受け取りましたが、ソースを有効な XML DOM に変換する方法を見つけようとして行き詰まりました。
次の疑似コードのようなものを試すたびに、不正な XML 文字に関する例外が発生します。
public void xmlTranform(javax.xml.transform.Source source) {
StreamResult sr = new StreamResult(new java.io.StringWriter());
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.transform(source, sr);
...
カスタム FilterReader を作成して Transformation に挿入することはできますか?
または、マーシャラーをカスタマイズできますか?
これらの無効な文字を除外するために変換にコードを挿入する最良の方法は何でしょうか?