0

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 に挿入することはできますか?

または、マーシャラーをカスタマイズできますか?

これらの無効な文字を除外するために変換にコードを挿入する最良の方法は何でしょうか?

4

1 に答える 1

1

私自身の質問に答えるために-私はJAXを完全に放棄しました。

JAX-WS は、受信する SOAP メッセージが標準に厳密に従っている場合に最適に機能します。しかし、標準に準拠していない SOAP メッセージを処理する方法をまだ見つけていません (「Microsoft SOAP メッセージ」を参照してください)。この問題を解決するのは非常に簡単な単純な POJO コードを使用しました。

Br Jan

于 2010-11-09T21:50:33.897 に答える