XML文档可以使用xsi:schemaLocation
属性引用外部模式。然而,在C#中进行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中文网其他相关文章!