XmlReaderSettings.ValidationEventHandler Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Treedt op wanneer de lezer validatiefouten tegenkomt.
public:
event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u de instellingen die moeten worden opgegeven om een lezer te maken die valideert met behulp van een inlineschema en die ook validatiewaarschuwingen weergeeft. De validatie gebeurtenis-handler maakt gebruik van de XmlSeverityType opsomming om onderscheid te maken tussen waarschuwingen en fouten.
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
Opmerkingen
Deze gebeurtenissen vinden plaats tijdens het lezen van een XML-exemplaardocument als deze ValidationType is ingesteld op of DTDSchema. Als de ReportValidationWarnings instelling is ingeschakeld voor de ValidationFlags eigenschap, vinden deze gebeurtenissen ook plaats wanneer er validatiewaarschuwingen worden aangetroffen.
Als de lezer is geconfigureerd voor validatie en er geen validatiegebeurtenishandler is ingesteld, wordt er een XmlSchemaValidationException gegenereerd voor alle validatiefouten. (Validatiewaarschuwingen zorgen er niet voor dat er een wordt XmlSchemaValidationException gegenereerd).
Important
Validatiefoutberichten kunnen informatie over gevoelige inhoudsmodellen beschikbaar maken. Validatiefouten en waarschuwingsberichten worden afgehandeld met behulp van de ValidationEventHandler gedelegeerde, of worden weergegeven als een XmlSchemaValidationException als er geen event-handler is toegewezen aan het XmlReaderSettings object (validatiewaarschuwingen veroorzaken geen XmlSchemaValidationException). Deze informatie over het inhoudsmodel mag niet worden weergegeven in niet-vertrouwde scenario's. Validatiewaarschuwingsberichten worden standaard onderdrukt en kunnen worden gerapporteerd door de ReportValidationWarnings vlag in te stellen.
De SourceUri eigenschap van een XmlSchemaValidationException retourneert het URI-pad naar het schemabestand dat de uitzondering heeft veroorzaakt. De SourceUri eigenschap mag niet worden weergegeven in niet-vertrouwde scenario's.