Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: November 2007
Puede utilizar XmlValidatingReader para validar documentos XML con respecto a un lenguaje de definición de esquemas XML (XSD) a partir de varios esquemas.
Nota: |
|---|
La clase XmlValidatingReader es obsoleta en .NET Framework versión 2.0. Se puede crear una instancia de validación XmlReader mediante la clase XmlReaderSettings y el método Create. Para obtener más información, vea Validación de datos XML con XmlReader. |
Ejemplo
En el ejemplo de código siguiente se crea un XmlValidatingReader que acepta una secuencia, Mixed.xml, como entrada y valida fragmentos de XML con respecto a varios orígenes de esquema. El constructor XmlValidatingReader toma una secuencia de un fragmento XML, XmlNodeType y XmlParserContext.
Nota: |
|---|
En el ejemplo siguiente, el elemento del nivel superior no se valida. XmlValidatingReader lanza una advertencia para el elemento raíz si ValidationType se establece en ValidationType.Schema. |
Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema
Namespace ValidationSample
Class Sample
Public Shared Sub Main()
Dim stream As New FileStream("Mixed.xml", FileMode.Open)
Dim vr As New XmlValidatingReader(stream, XmlNodeType.Element, Nothing)
vr.Schemas.Add(Nothing, "Book.xsd")
vr.Schemas.Add(Nothing, "Tape.xsd")
vr.ValidationType = ValidationType.Schema
AddHandler vr.ValidationEventHandler, AddressOf ValidationHandler
While vr.Read()
End While
Console.WriteLine("Validation finished")
End Sub
' Main
Public Shared Sub ValidationHandler(sender As Object, args As ValidationEventArgs)
Console.WriteLine("***Validation error")
Console.WriteLine("Severity:{0}", args.Severity)
Console.WriteLine("Message:{0}", args.Message)
End Sub
' ValidationHandler
End Class
' Sample
End Namespace
' ValidationSample
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
namespace ValidationSample
{
class Sample
{
public static void Main()
{
FileStream stream = new FileStream("Mixed.xml", FileMode.Open);
XmlValidatingReader vr = new XmlValidatingReader(stream, XmlNodeType.Element, null);
vr.Schemas.Add(null, "Book.xsd");
vr.Schemas.Add(null, "Tape.xsd");
vr.ValidationType = ValidationType.Schema;
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);
}
}
}
A continuación se describe el contenido de un archivo de esquema XML, Book.xsd, que se va a utilizar como referencia para la validación.
<xs:schema xmlns="urn:bookstore-schema"
targetNamespace="urn:bookstore-schema"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="book">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="price" type="xs:decimal" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
A continuación se describe el contenido de un archivo de esquema XML, Tape.xsd, que se va a utilizar como referencia para la validación.
<xs:schema xmlns="urn:tapestore-schema"
targetNamespace="urn:tapestore-schema"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tape" type="xs:string"/>
</xs:schema>
A continuación se describe el contenido de la secuencia XML, Mixed.xml, que contiene los fragmentos de XML que se van a validar.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:dvdstore-schema" targetNamespace="urn:dvdstore-schema">
<xs:element name="dvd" type="xs:string" />
</xs:schema>
<pb:book price="7.99" xmlns:pb="urn:bookstore-schema">The Autobiography of Benjamin Franklin</pb:book>
<pd:dvd xmlns:pd="urn:dvdstore-schema">The Godfather</pd:dvd>
<pt:tape xmlns:pt="urn:tapestore-schema" xsi:schemaLocation="urn:tapestore-schema tape.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Il Postino</pt:tape>
Vea también
Conceptos
Leer fragmentos de XML con XmlReader
Nota: