3

 などの文字参照を含む文字列をやり取りする Web サービスとクライアントがあります。(0x1A)。これらは XML 1.0 では無効ですが、XML 1.1 では有効です。これらの文字参照が原因で、Axis の XML パーサーが例外をスローしています。応答を XML 1.1 として解析するよう強制する方法、または XML 宣言を挿入する方法はありますか? (現在はありません。) ハンドラーの使用を調べましたが、XML が既に解析された後にハンドラーが呼び出されることを理解しています。

4

3 に答える 3

1

あなたはこれでかなり苦労すると思います。私の理解では、WSDL 2.0 標準は XML 1.0 に基づいて構築されています。では、WSDL (XML 1.0 を想定) で自身を記述し、XML 1.1 文字を含むメッセージの送信を開始する、どのような種類のサービスを呼び出しているのでしょうか?

Axis2 サービスを定義する場合、services.xml ファイルでそのサービスが持つハンドラーを定義できます。たとえば、このページでは、org.apache.axis2.receivers.RawXMLINOutMessageReceiver を使用したサービスを提供しています...それはあなたがやろうとしていることではないことはわかっていますが、探したり考えたりするための場所かもしれません。

于 2009-01-21T20:26:38.690 に答える
1

またはを渡していますInputStreamReader? その場合、ソースを別のクラス ( BufferedReaderworks など) でラップできますが、それを使用して不要な文字を削除できます。

于 2009-10-01T12:57:06.437 に答える