编码的xml值是否必要?

时间:2011-05-21 23:00:01

标签: java xml web-services encoding

我有一个用Java编写的SOAP Web服务,通​​过XML-utf-8进行通信。

我生成的xml的属性值应该包含带有额外字符的html和/或普通文本,那么在开始构建我的xml之前,是否需要安全地编写我的xml值?

我的实体类中的每个值都是这样的?还是其他意见?

String encodedString = URLEncoder.encode(s, "UTF-8");

并为客户提供:

ByteArrayInputStream stream = new ByteArrayInputStream(
            response.getBytes("UTF-8"));
    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(stream);

2 个答案:

答案 0 :(得分:1)

如果您正在使用任何类型的Web服务框架包,那么该程序包的工作就是处理所有这些,并且您没有理由这样做。此外,除非你控制两端,否则另一端很可能来扭转这个过程,最终会出现混乱。

答案 1 :(得分:0)

  

我生成的xml的属性值应该包含带有额外字符的html和/或普通文本,所以在开始构建我的xml之前,是否需要安全地编写我的xml值?

完全取决于您用于创建XML的内容:

  • 如果您正在创建DOM并对其进行序列化,那么您不需要事先对属性值进行编码。

  • 如果您正在使用Web服务框架或XStream或类似的东西,那么您可能不需要事先对属性值进行编码。

  • 如果您通过连接字符串来创建XML,那么您需要对属性进行编码。

“良好做法”没有进入它。如果你需要这样做,那就去做吧。否则你不能这样做。

当您在另一端读取/解析XML时,同样的参数适用。


底线是没有一般答案。您需要了解您正在使用的中间件技术的特定要求。 javadocs和其他API文档/教程是第一个寻找答案的地方。