如何避免序列化null或空字段到XML,仍然对模式进行验证?



我有一个c#类,它有许多属性,我用信息填充它,然后将字段序列化到一个XML文件中,然后我想根据我创建的XSD模式对它进行验证。

核心问题是XML文件将包含可以从几个不同来源检索的信息,并且非常非常可能有几个字段为空或为空。我不希望这些字段出现在XML文件中,但是XSD模式仍然期望它们在那里。

考虑到许多字段可能为空,如何避免在XML中包含空字段标记,同时又能够根据模式进行验证?最传统的方法是什么?

这里有三种可能的方法:

  • 更改模式以匹配实例文档
  • 更改实例文档以匹配模式
  • 将验证作为两步过程运行:首先运行XSLT转换以使文档对模式有效,然后在转换后的文档
  • 上运行验证

最新更新