Maison >développement back-end >C++ >Comment valider automatiquement un fichier XML par rapport à son XSD référencé en C# ?

Comment valider automatiquement un fichier XML par rapport à son XSD référencé en C# ?

DDD
DDDoriginal
2025-01-21 19:02:101009parcourir

How to Automatically Validate an XML File Against its Referenced XSD in C#?

Valider XML par rapport au XSD référencé en C#

Question :

Comment valider automatiquement un fichier XML contenant un emplacement de schéma spécifié en C# sans spécifier explicitement le schéma à valider, comme le fait Visual Studio lors de l'ouverture du fichier ?

Réponse :

Pour valider automatiquement un fichier XML par rapport à un XSD référencé en C#, sans spécifier explicitement le schéma, vous devez créer une instance de XmlReaderSettings et lui transmettre lors de la création du XmlReader. Des erreurs de validation peuvent être reçues en vous abonnant à settings dans ValidationEventHandler.

Voici un exemple de code illustrant cette méthode :

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

public class XML验证
{
    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>

En utilisant cette méthode, la validation sera effectuée automatiquement en fonction du modèle spécifié dans l'attribut xsi:schemaLocation du fichier XML.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn