いくつかの基本データを受け入れる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:(とりわけ)持つため
<
に すべての特殊文字をエスケープする>
- 解決策2:XMLをbase64に変換し、Webサービスでデコードします
- 別の解決策を歓迎します
この質問を見ましたが、XMLデータは別の側で生成されるため、Javaオブジェクトをシリアル化することはできません。