ホームページ >バックエンド開発 >C++ >C# で参照された XSD スキーマに対して XML を検証する方法

C# で参照された XSD スキーマに対して XML を検証する方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-21 18:57:09617ブラウズ

How to Validate XML against a Referenced XSD Schema in C#?

参照された XSD スキーマに対する C# XML 検証

定義されたスキーマに対して XML ドキュメントの有効性を確認することは非常に重要です。 この記事では、XSD スキーマに対して XmlDocument クラスを使用した C# XML 検証を示します。

デフォルトの動作とは異なり、XmlDocument は XML 内に埋め込まれたスキーマに対して自動的に検証しません。 これを有効にするには、XmlReaderSettings を構成します。 具体的には、ValidationTypeSchema に設定し、ValidationFlags を利用してインライン スキーマ、スキーマの場所、レポート警告を処理します。

<code class="language-csharp">XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;</code>

次に、これらの設定を使用して XmlReader を作成し、検証結果を取得するために ValidationEventHandler を登録します。

<code class="language-csharp">XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);
reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);</code>

ValidationCallBack メソッドは検証イベントを処理します:

<code class="language-csharp">private static void ValidationCallBack(object sender, ValidationEventArgs args)
{
    if (args.Severity == XmlSeverityType.Warning)
        Console.WriteLine("\tWarning: " + args.Message);
    else
        Console.WriteLine("\tValidation error: " + args.Message);
}</code>

この合理化されたメソッドは、埋め込まれたスキーマに対して XML を自動的に検証するため、XmlDocument オブジェクトに手動でスキーマを読み込む必要がなくなります。 ValidationCallBack 関数は、明確な警告とエラー メッセージを提供します。

以上がC# で参照された XSD スキーマに対して XML を検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。