XmlReaderSettings.ValidationEventHandler イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
リーダーが検証エラーを検出すると発生します。
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
注釈
が または SchemaにDTD設定されている場合、XML インスタンス ドキュメントのValidationType読み取り中にこれらのイベントが発生します。 プロパティで ReportValidationWarnings 設定が有効 ValidationFlags になっている場合、検証の警告が発生したときにもこれらのイベントが発生します。
リーダーが検証用に構成されていて、検証イベント ハンドラーが設定されていない場合は、 XmlSchemaValidationException すべての検証エラーに対して がスローされます。 (検証の警告では、 は XmlSchemaValidationException スローされません)。
重要
検証エラー メッセージでは、機密性の高いコンテンツ モデル情報が公開される場合があります。 検証エラーメッセージと警告メッセージはデリゲートをValidationEventHandler使用して処理されるか、オブジェクトにイベント ハンドラーが指定XmlReaderSettingsされていない場合は としてXmlSchemaValidationException公開されます (検証警告では がXmlSchemaValidationExceptionスローされません)。 このコンテンツ モデル情報は、信頼されていないシナリオでは公開しないでください。 検証の警告メッセージは既定では抑制され、 フラグを ReportValidationWarnings 設定することで報告できます。
の XmlSchemaValidationException プロパティはSourceUri、例外の原因となったスキーマ ファイルへの URI パスを返します。 SourceUri信頼されていないシナリオでは、 プロパティを公開しないでください。
適用対象
こちらもご覧ください
.NET