是否可以一起使用XML Schema验证和XMLSerializer?
我的项目目前使用XMLSerializer。为了验证模式,我们以编程方式检查值,如:
if(String.IsNullOrEmpty(person.Name))
throw new Exception();
谢谢!
答案 0 :(得分:2)
您可以使用元素限制元素向xsd添加一些额外的检查。每种类型都有一些可以应用于类型/元素的方面 - 从简单的最小/最大长度到正则表达式。
您甚至可以更进一步使用appinfo xsd元素,您可以在其中添加自定义规范以进行验证检查。但是,此步骤需要您单独解析每个xml节点,因为正常的Xml架构验证不会触发appinfo功能。
作为最后的手段,您甚至可以查看Schematron,这是一种为xsd添加相当复杂的验证的形式化方法,但它本身有点复杂,并且在许多情况下都是过度杀伤。
答案 1 :(得分:1)
我建议使用XmlValidatingReader来验证架构。有关示例,请参阅http://www.codeproject.com/KB/XML/Serialization.aspx ...
答案 2 :(得分:0)
实际上,您只需在XML中提供XSD即可。当您使用XMLSerializer读取它时,如果XML与XSD不匹配,它将抛出异常。