XML ドキュメントは、xsi:schemaLocation
属性を使用して外部スキーマを参照できます。ただし、C# で XML 検証を行う場合は、XML ファイルを手動でロードするのではなく、XML ファイルで指定されたスキーマを利用することが必要な場合があります。
インライン モードに基づいた自動検証を実装するには、次のメソッドを使用できます:
<code class="language-csharp">using System.Xml; using System.Xml.Schema; using System.IO; public class ValidXSD { public static void Main() { // 初始化 XmlReaderSettings 实例。 XmlReaderSettings settings = new XmlReaderSettings { ValidationType = ValidationType.Schema, ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema | XmlSchemaValidationFlags.ProcessSchemaLocation | XmlSchemaValidationFlags.ReportValidationWarnings }; // 注册验证事件处理程序。 settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); // 使用设置创建 XmlReader。 XmlReader reader = XmlReader.Create("inlineSchema.xml", settings); // 处理 XML 文件。 while (reader.Read()) ; } // 验证回调的事件处理程序。 private static void ValidationCallBack(object sender, ValidationEventArgs args) { // 处理验证警告或错误。 if (args.Severity == XmlSeverityType.Warning) Console.WriteLine($"\t警告: {args.Message}"); else Console.WriteLine($"\t错误: {args.Message}"); } }</code>
このメソッドは、ValidationType
属性を使用してスキーマ検証を指定し、関連付けられた ValidationFlags
を使用してインライン スキーマとスキーマ配置の使用を示します。 ValidationEventHandler
は、解析中に発生する可能性のある検証エラーまたは警告を処理するために使用されます。
以上がC# で埋め込みスキーマ検証を使用して XML を解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。