首頁 >後端開發 >C++ >如何使用 C# 中的嵌入式架構驗證來解析 XML?

如何使用 C# 中的嵌入式架構驗證來解析 XML?

Susan Sarandon
Susan Sarandon原創
2025-01-21 18:52:15312瀏覽

How Can I Parse XML with Embedded Schema Validation in C#?

C# 中的 XML 解析與內嵌模式驗證

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn