我使用服务提供者提供的 WSDL 和几个 XSD 文件编写了一个公共 SOAP Web 服务的客户端。我想找到一种简单的方法来根据 XSD 文件验证用户数据,因此我使用了 MSDN 中的标准示例,对 XSD 文件使用 XmlSchemaSet、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 文件中,这就是为什么我希望自动处理它,而不是为每个用户输入字段编写验证例程。
提前致谢。