我有一个 JAX-WS Web 服务,它接受一些基本数据和一个应该包含整个 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 并在我的网络服务中对其进行解码
- 欢迎另一个解决方案
我看到了这个问题,但是序列化 Java 对象不是一个选项,因为 XML 数据是由另一方生成的。