【问题标题】:How to throw a XmlSchemaException on XML Schema validation errors?如何在 XML Schema 验证错误上引发 XmlSchemaException?
【发布时间】:2010-09-14 10:19:19
【问题描述】:

XmlDocument 上调用 Validate() 需要传入 ValidationEventHandler 委托。该事件函数获得一个ValidationEventArgs 参数,该参数又具有XmlSchemaException 类型的Exception 属性。呼!

我当前的代码如下所示:

ValidationEventHandler onValidationError = delegate(object sender,
    ValidationEventArgs args)
{
    throw(args.Exception);
}

doc.Validate(onValidationError);

如果验证失败(警告完全忽略),是否有其他我忽略的方法抛出 XmlSchemaException

【问题讨论】:

  • 在我的系统 (.NET Framework 4.5.2 / 4.7.2) 上,我没有收到原始的 XmlSchemaException。我只是得到一个没有 SourceSchemaObject 等变量的稀疏副本。
  • 啊,我不完全正确。有时您会在 (ValidationEventArgs)args.Exception.InnerException 中获得原始 XmlSchemaException

标签: c# .net xml schema


【解决方案1】:

因为 Validate 方法采用 ValidationEventHandler 委托,所以由开发人员决定如何处理异常。你的做法是对的。

【讨论】:

    【解决方案2】:

    validationEventHandler参数传递null如果有任何错误会抛出异常。

    Extensions.Validate 方法的 MSDN 文档将 validationEventHandler 参数描述为:

    ValidationEventHandler 表示当阅读器发生时发生的事件 遇到验证错误。如果null,则抛出异常 验证错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多