Partager via


Validation par rapport à un schéma XDR à l'aide de XmlValidatingReader

La validation de schéma XDR (XML-Data Reduced) est implémentée à l'aide des contraintes de validité définies dans les spécifications du schéma de l'analyseur Microsoft XML Parser (MSXML). XmlValidatingReader utilise la déclaration d'espace de noms x-schema: dans un document XML pour déterminer que le schéma par rapport auquel la validation doit s'effectuer est un schéma XDR. Dans l'exemple ci-dessous, l'élément racine du fichier de données est <HeadCount xmlns='x-schema:HeadCount.xdr'>.

L'exemple de code ci-dessous crée une classe XmlValidatingReader qui prend XmlTextReader. Le fichier d'entrée, HeadCount.xml, est validé par rapport à un schéma XDR, HeadCount.xdr.

Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema

public class ValidationSample

      public shared sub Main()

         Dim tr As XmlTextReader = new XmlTextReader("HeadCount.xml")
         Dim vr As XmlValidatingReader = new XmlValidatingReader(tr)

         vr.ValidationType = ValidationType.XDR
         AddHandler vr.ValidationEventHandler, AddressOf ValidationCallback      

         while(vr.Read())
         end while
         Console.WriteLine("Validation finished")
     end sub

      public shared sub ValidationCallBack(sender As object, args as ValidationEventArgs)
         Console.WriteLine("***Validation error")
         Console.WriteLine("Severity:{0}", args.Severity)
         Console.WriteLine("Message:{0}", args.Message)
     end sub
end class
[C#]
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

namespace ValidationSample
{
   class Sample
   {
      public static void Main()
      {
         XmlTextReader tr = new XmlTextReader("HeadCount.xml");
         XmlValidatingReader vr = new XmlValidatingReader(tr);

         vr.ValidationType = ValidationType.XDR;
         vr.ValidationEventHandler += new ValidationEventHandler (ValidationHandler);

         while(vr.Read());
         Console.WriteLine("Validation finished");
      }

      public static void ValidationHandler(object sender, ValidationEventArgs args)
      {
         Console.WriteLine("***Validation error");
         Console.WriteLine("\tSeverity:{0}", args.Severity);
         Console.WriteLine("\tMessage  :{0}", args.Message);
      }
   }
}

Le code ci-dessous présente le contenu du fichier d'entrée, HeadCount.xml, à valider.

<HeadCount xmlns='x-schema:HeadCount.xdr'>
   <Name>Waldo Pepper</Name>
   <Name>Red Pepper</Name>
</HeadCount>

Le code ci-dessous présente le contenu du fichier de schéma XDR, HeadCount.xdr, par rapport auquel la validation doit s'effectuer.

<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
   <ElementType name="Name" content="textOnly"/>
   <AttributeType name="Bldg" default="2"/>
   <ElementType name="HeadCount" content="eltOnly">
      <element type="Name"/>
      <attribute type="Bldg"/>
   </ElementType>
</Schema>

Voir aussi

Validation XML à l'aide de XmlValidatingReader | Validation XML à l'aide de schémas