在Java应用程序的SOAP信封请求中传递编码的XML内容

时间:2018-07-24 05:19:49

标签: soap java-8 cxf

我正在开发Java应用程序,我需要使用SOAP协议提出Web服务请求。在该SOAP信封请求中,称为 content 的XML属性/属性之一将保存XML文件本身,如下所示:-

<n1:envelope>
        <message>
            <id>67872894892424</id>
        </message>
        <sender agency="GS1" scheme="tGLK">ur.0</sender>
        <recipients>
            <id agency="GS1" scheme="tGLK">test</id>
        </recipients>
        <content encoding="XML" extension="A" format="ATTP">
------
----
</content></n1:envelope>

我是新手,需要一些帮助来澄清我的疑问。我正在使用JDK1.8和Apache CXF。如何针对此特定内容属性进行编组/拆组?普通的SOAP信封请求很容易做到,但是不确定如何在SOAP请求中传递编码的XML本身。有参考链接吗?谢谢

1 个答案:

答案 0 :(得分:0)

您的案例是在XML中包含XML的示例。是的,XML可以包含在SOAP(XML)中,有两种方法,尽管两者的含义几乎相同。

  

使用CDATA编码

<hello><![CDATA[<El><E2><E3 attr="D1">Text</E3></E2></El>]]></hello>

  

通过将<替换为&lt;,将"替换为&quote;,将>替换为&gt;,将XML转换为文本

<hello><El><E2><E3 attr="D1">Text</E3></E2></El></hello>

收件人

<hello>&gt;El&lt;&gt;E2&lt;&gt;E3 attr="D1"&lt;Text&gt;/E3&lt;&gt;/E2&lt;&gt;/El&lt;</hello>

因此,要将XML包含在SOAP中,同时添加XML元素,则在编组/拆组时需要遵循这两种方法。