Vb.net XSD数据验证在.NET4.0中可靠吗?

Vb.net XSD数据验证在.NET4.0中可靠吗?,vb.net,.net-4.0,xsd,validation,xmlschemaset,Vb.net,.net 4.0,Xsd,Validation,Xmlschemaset,我已经使用服务提供者提供的WSDL和几个XSD文件将一个客户机编写到一个公共SOAPWeb服务。我想找到一种根据XSD文件验证用户数据的简单方法,因此我使用了MSDN中的标准示例,对XSD文件使用XmlSchemaSet,使用XmlReader和验证例程捕获错误消息。(代码位于)它适用于某些数据元素,但其他数据元素无效时不会抛出错误。如果我包括“ValidationFlags=ValidationFlags或XmlSchemaValidationFlags.ReportValidationWar

我已经使用服务提供者提供的WSDL和几个XSD文件将一个客户机编写到一个公共SOAPWeb服务。我想找到一种根据XSD文件验证用户数据的简单方法,因此我使用了MSDN中的标准示例,对XSD文件使用XmlSchemaSet,使用XmlReader和验证例程捕获错误消息。(代码位于)它适用于某些数据元素,但其他数据元素无效时不会抛出错误。如果我包括“ValidationFlags=ValidationFlags或XmlSchemaValidationFlags.ReportValidationWarnings”,那么我会收到很多警告,例如“找不到元素“MyRequest”的架构信息”、“找不到属性“TheDate”的架构信息等。但是我可以在VS2010 IDE中打开XSD文件,它的XMLSchemaExplorer显示了这些元素和属性

因此,对于熟悉以这种方式在VS2010中验证XML数据的人,我的主要问题是,XmlReader验证能够处理的XSD文件的复杂性是否有限制?目标名称空间的前缀会让XmlReader感到困惑吗?模式中定义了数千种复杂类型,分布在7个XSD文件中,这就是为什么我希望自动处理这些类型,而不是为每个用户输入字段编写验证例程


提前感谢。

虽然.NET验证可能并不完美,但它是业界最好的验证之一。他们肯定有一个问题是模式加载器(我们使用自己的),它有时太容易上当了(我会说)。除此之外,我不知道还有任何其他限制,正如你所描述的那样。我们通常使用.NET XmlSchemaSet加载和验证分布在数百个文件中的XSD,这些XSD采用各种名称空间组合,包含数千个元素、类型等。

感谢您的响应。我将深入研究XSD文件,试图找到忽略哪类元素的模式。经过一些研究,我认为我发现可选元素被忽略了,但事实证明,在所有可选类型中,它似乎并不一致。星期一我得继续干下去。