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
Libérer: 2025-01-21 19:02:10
original
1006 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal