参照された XSD スキーマに対する C# XML 検証
定義されたスキーマに対して XML ドキュメントの有効性を確認することは非常に重要です。 この記事では、XSD スキーマに対して XmlDocument
クラスを使用した C# XML 検証を示します。
デフォルトの動作とは異なり、XmlDocument
は XML 内に埋め込まれたスキーマに対して自動的に検証しません。 これを有効にするには、XmlReaderSettings
を構成します。 具体的には、ValidationType
を Schema
に設定し、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 サイトの他の関連記事を参照してください。