0

我使用服务提供者提供的 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 文件中,这就是为什么我希望自动处理它,而不是为每个用户输入字段编写验证例程。

提前致谢。

4

1 回答 1

0

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

于 2013-04-05T11:26:12.920 回答