将空字符串序列化为空值,以便不输出它们

时间:2017-06-07 07:23:34

标签: c# xml serialization

我有一个由第三方提供的XSD,然后我使用xsd.exe将其转换为类。

由于我们不拥有此XSD,我试图不以任何方式改变生成的类。

无需手动将空白字符串检查应用于我们要映射的每个字段,例如:

!String.IsNullOrWhiteSpace(field) ? field : null;

我无法想出一种简单的方法来串行化空白字符串,这意味着它们根本不输出(没有标记产生)。

我们无法输出空字符串的原因是因为XSD具有模式约束,例如StringM50m1,我认为这意味着需要最小长度为1(但是,如果没有,他们很乐意不接收标签使用以下消息对输出后验证失败的内容:

  

'field'元素无效 - 值''根据其数据类型'StringM50m1'无效 - 模式约束失败。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

如果您使用XmlSerializer,您可以为所需属性添加XmlDefaultValue:

[ '1.0.0-beta',
  '1.0.1-beta',
   …
  '2.0.3-beta',
  '2.1.0-beta' ]