我想将XML文档反序列化为POCO对象。但我收到了意想不到的结果。实际上我需要为Country属性获取输出null
值,但它的值为String.Empty
。
<?xml version="1.0"?>
<ZIP xmlns:xs="http://www.w3.org/2001/XMLSchema">
<ZIP>11111</ZIP>
<CITY>111</CITY>
<STATE>UT</STATE>
<COUNTRY xs:Nil="true" />
</ZIP>
属性如下:
[XmlElement(IsNullable = true)]
public string ZIP { get; set; }
[XmlElement(IsNullable = true)]
public string CITY { get; set; }
[XmlElement(IsNullable = true)]
public string STATE { get; set; }
[XmlElement(IsNullable = true)]
public string COUNTRY { get; set; }
我知道我可以使用自定义属性或实现IXmlSerializable
的一些钩子,但它只是一百个XML文档和POCO类中的一个。有没有通用的解决方案?
答案 0 :(得分:2)
现在尝试使用正确的命名空间; xs
这里应该是"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
的别名,它应该是xs:nil
,而不是xs:Nil
。
<?xml version="1.0"?>
<ZIP xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<ZIP>11111</ZIP>
<CITY>111</CITY>
<STATE>UT</STATE>
<COUNTRY xs:nil="true" />
</ZIP>