关于webservice调用xml格式参数时CDATA的问题

stone5751 2011-05-04 10:49:14

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://www.new.com/ContentProviderInfo/">
<soapenv:Header/>
<soapenv:Body>
<con:userInfoXml>?</con:userInfoXml>
<con:requestXml>?</con:requestXml>
</soapenv:Body>
</soapenv:Envelope>

这是soapUI根据wsdl文件自动生成的。

测试时传入xml格式参数会报错,所以必须手动加上<![CDATA[]]>。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://www.new.com/ContentProviderInfo/">
<soapenv:Header/>
<soapenv:Body>
<con:userInfoXml><![CDATA[?]]></con:userInfoXml>
<con:requestXml><![CDATA[?]]></con:requestXml>
</soapenv:Body>
</soapenv:Envelope>


我的问题来了,请问xfire有没有什么方法,能让webservice的wsdl文件自动生成<![CDATA[]]>标签?
...全文
2301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
stone5751 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cds27 的回复:]
会报错应该是你的格式有问题吧。或者你的参数有问题。
你的userInfoXml是什么类型?字符串吗?如果是字符串,你肯定是不能直接把XML串拼进去了。而是必须先进行转义。或者你自己加上CDATA节。
如果不是字符串,那么你肯定是格式错了。

而不管是是哪种,这你生成什么样的格式是没关系的。理论上讲,好的框架是会自动帮你将XML串进行转义的。难道你是用拼字符串的方式生成SOAP包?
[/Quote]

userInfoXml与requestXml都是字符串类型的,在<con:userInfoXml><![CDATA[?]]></con:userInfoXml>之间必须用CDATA,要不然会报错:无法解析xml。
我用的是xfire,但是他没有帮你对xml串进行转义……
cds27 2011-05-05
  • 打赏
  • 举报
回复
会报错应该是你的格式有问题吧。或者你的参数有问题。
你的userInfoXml是什么类型?字符串吗?如果是字符串,你肯定是不能直接把XML串拼进去了。而是必须先进行转义。或者你自己加上CDATA节。
如果不是字符串,那么你肯定是格式错了。

而不管是是哪种,这你生成什么样的格式是没关系的。理论上讲,好的框架是会自动帮你将XML串进行转义的。难道你是用拼字符串的方式生成SOAP包?
stone5751 2011-05-05
  • 打赏
  • 举报
回复
自己先顶一个!~

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧