1

いくつかの基本データを受け入れるJAX-WSWebサービスと、XMLファイル全体のコンテンツを含むことになっている文字列があります。初めて、このXMLを次のようなCDATAセクションとしてSOAPリクエストに入れることができます。

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
    ...
      <contentData>
    <![CDATA[
      <my>
        <xml>
          <here>
            ...
          </here>
        </xml>
      </my>
    ]]>
       </contentData>
       ...
   </soapenv:Body>
</soapenv:Envelope>

しかし、問題は、私のXMLデータにもいくつかのCDATAセクションが含まれており、ネストされたCDATAが許可されていないため、このように機能しないことです(W3Schoolリファレンス)。

そのようなデータを送信するためのベストプラクティスは何でしょうか?

  • 解決策1:(とりわけ)持つため&lt;に すべての特殊文字をエスケープする&gt;
  • 解決策2:XMLをbase64に変換し、Webサービスでデコードします
  • 別の解決策を歓迎します

この質問を見ましたが、XMLデータは別の側で生成されるため、Javaオブジェクトをシリアル化することはできません。

4

2 に答える 2

2

私は間違いなくソリューション2、Base64形式のエンコードとデコードを好みます。

于 2012-10-12T14:39:11.860 に答える
1

私はこの答えを見つけました:

文字列ではなく、WebサービスのパラメータタイプとしてXmlDocumentを使用します

これは、私が通信しているWebサービスが使用しているものです。

于 2015-08-19T14:33:31.600 に答える