【发布时间】:2012-10-01 22:59:23
【问题描述】:
我有一个 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 reference)。
发送此类数据的最佳做法是什么?
- 解决方案 1:转义所有特殊字符以获得
&lt;和&gt;(等等) - 解决方案 2:将我的 XML 转换为 base64 并解码 它在我的网络服务中
- 欢迎提供其他解决方案
我看到了this question,但是序列化 Java 对象不是一个选项,因为 XML 数据是由另一方生成的。
【问题讨论】: