null元素未在响应中显示xml(SOAP Web服务)

时间:2012-05-28 14:50:33

标签: .net xml web-services

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

他注意到并非所有标签都在那里。例如,如果我在列表中返回3个对象,则返回时,对象A B和C.以及C为null。它将显示:

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

如果我希望它显示以下内容:

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

或者至少:

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

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

有什么建议吗?

非常感谢!!

1 个答案:

答案 0 :(得分:2)

Soap spec.州:

  

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

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

另一方面,你不能像这样制作NULL值:

<C></C>

因为空字符串和null之间的区别如何?

此选项

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