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). La classe XmlValidatingReader utilise la déclaration d'espaces de noms x-schema: dans un document XML pour déterminer que le schéma à valider est un schéma XDR. Dans l'exemple suivant, l'élément racine du fichier de données est <HeadCount xmlns='x-schema:HeadCount.xdr'>.
Remarque |
---|
La classe XmlValidatingReader est obsolète dans le .NET Framework version 2.0.Vous pouvez créer une instance de l'objet XmlReader de validation à l'aide de la classe XmlReaderSettings et de la méthode Create.Pour plus d'informations, voir Validation de données XML avec XmlReader. |
Exemple
L'exemple de code suivant crée un objet XmlValidatingReader qui prend un objet XmlTextReader. Le fichier d'entrée, HeadCount.xml, est validé par rapport à un fichier de 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
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 suivant 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 suivant 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>