XmlSchemaCollection.ValidationEventHandler Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece un controlador de eventos para recibir información sobre errores de validación de esquemas XDR y XML.
public:
event System::Xml::Schema::ValidationEventHandler ^ ValidationEventHandler;
public event System.Xml.Schema.ValidationEventHandler ValidationEventHandler;
member this.ValidationEventHandler : System.Xml.Schema.ValidationEventHandler
Tipo de evento
Ejemplos
En el ejemplo siguiente se muestra cómo establecer un controlador de eventos para controlar esquemas XML no válidos.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Schema;
public ref class Sample
{
private:
//Display the schema error information.
static void ValidationCallBack( Object^ sender, ValidationEventArgs^ args )
{
Console::WriteLine( "Invalid XSD schema: {0}", args->Exception->Message );
}
public:
static void main()
{
// Create the schema collection.
XmlSchemaCollection^ xsc = gcnew XmlSchemaCollection;
//Set an event handler to manage invalid schemas.
xsc->ValidationEventHandler += gcnew ValidationEventHandler( Sample::ValidationCallBack );
//Add the schema to the collection.
xsc->Add( nullptr, "invalid.xsd" );
}
};
int main()
{
Sample::main();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
public class Sample
{
public static void Main (){
//Create the schema collection.
XmlSchemaCollection xsc = new XmlSchemaCollection();
//Set an event handler to manage invalid schemas.
xsc.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
//Add the schema to the collection.
xsc.Add(null, "invalid.xsd");
}
//Display the schema error information.
private static void ValidationCallBack (object sender, ValidationEventArgs args){
Console.WriteLine("Invalid XSD schema: " + args.Exception.Message);
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema
public class Sample
public shared sub Main ()
'Create the schema collection.
Dim xsc as XmlSchemaCollection = new XmlSchemaCollection()
'Set an event handler to manage invalid schemas.
AddHandler xsc.ValidationEventHandler, AddressOf ValidationCallBack
'Add the schema to the collection.
xsc.Add(nothing, "invalid.xsd")
end sub
'Display the schema error information.
Private shared sub ValidationCallBack (sender as object, args as ValidationEventArgs)
Console.WriteLine("Invalid XSD schema: " + args.Exception.Message)
end sub
end class
En el ejemplo anterior se usa el archivo invalid.xsd
como entrada.
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema' >
<xsd:complexType name="personName">
<xsd:sequence>
<xsd:element name="title" minOccurs="0" maxOccurs="1"/>
<xsd:element name="forename" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="surname"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="simpleName">
<xsd:complexContent>
<xsd:restriction base="personName">
<xsd:sequence>
<xsd:element name="title" minOccurs="0" maxOccurs="0"/>
<xsd:element name="firstname" minOccurs="1" maxOccurs="1"/>
<xsd:element name="surname"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
Comentarios
Estos eventos se producen cuando los esquemas se agregan a la colección. Si no se proporciona un controlador de eventos, se produce un XmlSchemaException error de validación en el que Severity es XmlSeverityType.Error
. Para especificar un controlador de eventos, defina una función de devolución de llamada y agréguela a ValidationEventHandler
.
Importante
La XmlSchemaCollection clase está obsoleta en .NET Framework versión 2.0 y se ha reemplazado por la XmlSchemaSet clase .