Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesahkan XML Terhadap XSD yang Dirujuk dalam C#?

Bagaimana untuk Mengesahkan XML Terhadap XSD yang Dirujuk dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-21 19:12:11871semak imbas

How to Validate an XML Against a Referenced XSD in C#?

Sahkan XML dengan skema XSD luaran dalam C#

Dalam C#, mengesahkan dokumen XML terhadap skema XSD luaran biasanya boleh dicapai dengan memanfaatkan secara langsung maklumat yang diberikan dalam atribut xsi:schemaLocation XML. Walau bagaimanapun, dalam beberapa kes, campur tangan manual diperlukan untuk melakukan pengesahan.

Untuk mengesahkan XML secara automatik terhadap skema yang ditentukan, anda perlu mencipta contoh XmlReaderSettings dan menghantarnya kepadanya apabila mencipta XmlReader. Dengan menetapkan ValidationType kepada Schema dan ValidationFlags untuk memasukkan ProcessInlineSchema, ProcessSchemaLocation dan ReportValidationWarnings, pembaca akan memproses dan mengesahkan XML secara automatik terhadap skema yang dirujuk dalam atribut xsi:schemaLocation.

Berikut ialah coretan kod yang menunjukkan pendekatan ini:

<code class="language-csharp">using System.Xml;
using System.Xml.Schema;
using System.IO;

public class ValidXSD
{
    public static void Main()
    {
        // 设置验证设置。
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ValidationType = ValidationType.Schema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
        settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        // 创建XmlReader对象。
        XmlReader reader = XmlReader.Create("inlineSchema.xml", settings);

        // 解析文件。
        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>

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan XML Terhadap XSD yang Dirujuk dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn