>백엔드 개발 >C++ >C#에서 포함된 스키마 유효성 검사를 사용하여 XML을 구문 분석하려면 어떻게 해야 합니까?

C#에서 포함된 스키마 유효성 검사를 사용하여 XML을 구문 분석하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-21 18:52:15308검색

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

C#의 XML 구문 분석 및 인라인 스키마 유효성 검사

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.