ホームページ > バックエンド開発 > C++ > C# で埋め込みスキーマ検証を使用して XML を解析するにはどうすればよいですか?

C# で埋め込みスキーマ検証を使用して XML を解析するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-21 18:52:15
オリジナル
306 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート