【问题标题】:null elements not showing in response xml (SOAP web service)响应 xml 中未显示 null 元素(SOAP Web 服务)
【发布时间】:2012-05-28 14:50:33
【问题描述】:

我为我们的客户创建了一个asp.net Web 服务,它返回多个包含复杂类型的List 对象。客户端一直在接收数据就好了。

尽管并非所有标签都始终存在,但他注意到了。例如,如果我在列表中返回 3 个对象,对象 A B 和 C。当我返回它时,C 为空。它会显示:

<A>data</A>
<B>data</B>

当我希望它显示以下内容时:

<A>data</A>
<B>data</B>
<C/>

或者至少:

<A>data</A>
<B>data</B>
<C></C>

基本上,我希望 XML 的结构保持不变,无论哪些数据可用以及哪些数据为空。

有什么建议吗?

非常感谢!!

【问题讨论】:

标签: .net xml web-services


【解决方案1】:

Soap spec. 状态:

NULL 值或默认值可以通过省略访问器元素来表示。 NULL 值也可以由包含属性 xsi:null 且值为“1”的访问器元素或可能的其他应用程序相关属性和值来指示。

不幸的是,MS 为这种情况选择了第一个选项。

另一方面,你不能像这样设置 NULL 值:

<C></C>

因为空字符串和 null 有什么区别?

这个选项

<C/>

看起来很有希望。我猜您的服务使用 XMLSerializer 来序列化您的数据。检查this post。也许您可以为您的对象实现IXMLSerializable 并为您的数据提供自定义xml。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多