首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CDATA的解释?

CDATA的解释?
EN

Stack Overflow用户
提问于 2012-05-24 21:28:12
回答 4查看 2.2K关注 0票数 0

我已经注意到,如果我将解码的XML发送到端点,它将失败并出现错误请求,但是如果我将请求包装在CDATA中或对字符进行编码,它将运行良好,因此我的两个问题是:

为什么我需要使用CDATA或对字符进行编码?

是什么web服务让我不得不这么做呢?

在CDATA中包装消息和对字符进行编码有什么区别?

如果CDATA被解析器忽略,这是否意味着您正在尝试发送的消息将不会被处理?

我的web服务有一个名为Process的web方法,但是试图发送的消息是MessageB,所以我是否需要将MessageB的内容包装在CDATA中,因为XML Parser不会理解它?

如果我的web服务包含一个名为MessageB的web方法,它是否仍然需要包装在CDATA中或进行转义?我的情况是,我没有web方法MessageB,而是一个名为Process的东西,它通过switch语句监听MessageB请求。我之所以思考,是因为我没有将MessageB定义为web方法,这就是为什么我必须将它包装在CDATA中或对其进行转义,但我相信我的想法是错误的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-24 21:32:56

如果不对数据进行包装或编码,它将成为主XML文档的一部分。当web服务试图解析文档时,它将找到无法映射到所需内容的元素,并将其输出。

这并不是特定于web服务的,而是在您想要将XML代码用作XML文档中的值时都适用。

使用CDATA和对字符进行编码之间几乎没有实际区别。这只是在XML文档的值中嵌入特殊字符的两种不同方式。

票数 1
EN

Stack Overflow用户

发布于 2012-05-24 21:30:07

&<这样的字符不允许出现在XML中。

标准要求它们要么用XML实体进行转义,要么包装在XML块中,这告诉<![CDATA[解析器将整个块视为纯文本。

您应该在自己的一端使用一个XML库来为您解决这个问题;您永远不应该手工构建XML。

票数 1
EN

Stack Overflow用户

发布于 2012-05-24 21:33:16

有些字符在XML中有特殊的含义。例如,<表示“标记的开始”,&表示“字符引用的开始”。

CDATA标记表示某些内容是纯文本而不是标记,因此<表示“小于符号”,&表示“与符号”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10738453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档