XmlReaderSettings.ValidationEventHandler Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возникает, когда средство чтения обнаруживает ошибки проверки.
public:
event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler
Тип события
Примеры
В следующем примере показаны параметры, которые необходимо указать для создания средства чтения, проверяющего использование встроенной схемы, а также предупреждения о проверке. Обработчик событий проверки использует XmlSeverityType перечисление для различения предупреждений и ошибок.
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class ValidXSD {
public static void Main() {
// Set the validation settings.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);
// Parse the file.
while (reader.Read());
}
// Display any warnings or errors.
private static void ValidationCallBack (object sender, ValidationEventArgs args) {
if (args.Severity==XmlSeverityType.Warning)
Console.WriteLine("\tWarning: Matching schema not found. No validation occurred." + args.Message);
else
Console.WriteLine("\tValidation error: " + args.Message);
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class ValidXSD
public shared sub Main()
' Set the validation settings.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.ValidationFlags = settings.ValidationFlags Or XmlSchemaValidationFlags.ProcessInlineSchema
settings.ValidationFlags = settings.ValidationFlags Or XmlSchemaValidationFlags.ReportValidationWarnings
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("inlineSchema.xml", settings)
' Parse the file.
while (reader.Read())
end while
end sub
' Display any warnings or errors.
private shared sub ValidationCallBack (sender as object, args as ValidationEventArgs)
if (args.Severity=XmlSeverityType.Warning)
Console.WriteLine(" Warning: Matching schema not found. No validation occurred." + args.Message)
else
Console.WriteLine(" Validation error: " + args.Message)
end if
end sub
end class
Комментарии
Эти события происходят при чтении документа xml-экземпляра, если ValidationType задано значение DTD или Schema. ReportValidationWarnings Если параметр включен в свойствеValidationFlags, эти события также возникают при обнаружении предупреждений проверки.
Если средство чтения настроено для проверки и не задан обработчик событий проверки, XmlSchemaValidationException создается исключение для всех ошибок проверки. (Предупреждения о проверке не вызывают XmlSchemaValidationException возникновения ошибки).
Это важно
Сообщения об ошибках проверки могут предоставлять конфиденциальные сведения о модели содержимого. Сообщения об ошибке проверки и предупреждения обрабатываются с помощью ValidationEventHandler делегата или передаются напрямую как XmlSchemaValidationException, если обработчик событий не предоставлен объекту XmlReaderSettings (предупреждения проверки не приводят к выбросу XmlSchemaValidationException). Эти сведения о модели содержимого не должны предоставляться в ненадежных сценариях. Предупреждающие сообщения проверки подавляются по умолчанию и могут быть сообщены, задав ReportValidationWarnings флаг.
Свойство SourceUri элемента XmlSchemaValidationException возвращает путь URI к файлу схемы, который вызвал исключение. Свойство SourceUri не должно быть предоставлено в ненадежных сценариях.