.Net 4.0中的XSD数据验证是否可靠?

时间:2013-04-05 07:59:55

标签: vb.net .net-4.0 xsd validation xmlschemaset

我使用WSDL和服务提供商提供的几个XSD文件为公共SOAP Web服务编写了一个客户端。我想找到一种简单的方法来验证XSD文件的用户数据,所以我使用了MSDN的标准示例,使用XmlSchemaSet作为XSD文件,XmlReader和验证例程来捕获错误消息。 (代码在http://msdn.microsoft.com/en-us/library/as3tta56.aspx处可用)它适用于某些数据元素,但其他数据元素在无效时不会抛出错误。如果我包含“ValidationFlags = ValidationFlags或XmlSchemaValidationFlags.ReportValidationWarnings”,那么我会收到很多警告,例如“无法找到元素'MyRequest'的架构信息”,“无法找到属性'TheDate'的架构信息”等。但我可以在VS2010 IDE中打开XSD文件,其XML Schema Explorer显示这些元素和属性。

所以,对于那些熟悉以这种方式验证VS2010中的XML数据的人来说,我的主要问题是,XmlReader验证可以处理的XSD文件的复杂性是否有限制?目标命名空间的前缀是否会混淆XmlReader?模式中定义了数千种复杂类型,分布在7个XSD文件中,这就是为什么我希望自动处理它,而不是为每个用户输入字段编写验证例程。

提前致谢。

1 个答案:

答案 0 :(得分:0)

.NET验证可能并不完美,但它仍然是业内最好的。他们肯定的一个问题是使用模式加载器(我们使用自己的模式加载器),有时候很容易被愚弄(我会说)。除此之外,我不知道你所描述的任何其他限制。我们经常使用.NET XmlSchemaSet来加载和验证分布在数百个文件,各种命名空间组合以及数千个元素,类型等中的XSD。