Validación XML

11/08/2004 - 11:24 por Roberto G.A. | Informe spam
Hola a tod@s,

alguien me podría guiar de cual es la mejor manera de
validar un xml contra un xsd mediante código.

Gracias de antemano.
Roberto G. A.

Preguntas similare

Leer las respuestas

#1 Alejandro Perez
11/08/2004 - 15:58 | Informe spam
Hola Roberto! La mejor manera es con la clase
XmlValidatingReader. Aqui te dejo una referencia:

http://msdn.microsoft.com/library/default.asp?
url=/library/en-
us/cpguide/html/cpconvalidationagainstxsdwithxmlvalidatingr
eader.asp

Cuidate. Bye
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Mostrar la cita
#2 Roberto G. A.
11/08/2004 - 16:31 | Informe spam
Hola Alejandro, en el ejemplo que me envías, como los que
ya había visto tienen una pequeña pega por lo que no me
vale.

Cuento lo que quiero hacer, a ver si es posible:

Tengo un método que hacepta como parámetro un string
Por ej:) +Procesar(param string)

El parámetro de dicha función en realidad es un xml el
cual cargo en un XmlDocument para procesarlo.

Para comprobar la validez del mismo había pensado en
validarlo contra un xsd, pero no encuentro ningún ejemplo
que valide un xml contra un xsd seleccionado por mi.

Había pensado la posibilidad de adjuntar ambos archivos
en otro objeto y validarlo después, pero no se si hay
otra forma más simple.

Gracias de antemano,
Roberto G.A.



Mostrar la cita
gr
Mostrar la cita
#3 Alejandro Perez
11/08/2004 - 18:48 | Informe spam
Como estas Roberto?, fijate, el ejemplo era referencial.
Para tu caso seria algo como:

public void Procesar(string DocumentoXML)
{
XmlValidatingReader vr = new XmlValidatingReader
(DocumentoXML, XmlNodeType.Element, null);
vr.Schemas.Add(null, "Esquema.xsd");
vr.ValidationType = ValidationType.Schema;
vr.ValidationEventHandler += new
ValidationEventHandler (ValidationHandler);

while(vr.Read());
Console.WriteLine("Validacion Finalizada");
}

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

Si lo vez? Avisame cualquier cosa.

Bye Bye
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Mostrar la cita
#4 Nataly Elva
11/08/2004 - 20:49 | Informe spam
hola, espero te sirva
/////////////// con este trozo de codigo relaciona el
archivo XML con el XSD


StringReader xmlStringReader = new StringReader
(ArchivoXML);
XmlTextReader txtreader = new XmlTextReader
(xmlStringReader);
XmlValidatingReader vr;
vr = new XmlValidatingReader(txtreader);
vr.ValidationType = ValidationType.Schema;
StringReader xsdStringReader = new StringReader
(ArchivoXSD);
XmlTextReader xsdReader = new XmlTextReader
(xsdStringReader);
vr.Schemas.Add("", xsdReader);
vr.ValidationEventHandler += new ValidationEventHandler
(ValidationCallBack);

///////////////

///////////funcion ValidationCallBack


private void ValidationCallBack (object sender,
ValidationEventArgs args)
{
// aqui es donde saltara cuando encuentre un error
en la validacion, aui podrias ver en que lugar y que
datoas, explorando tu Archivo XML
}



Mostrar la cita
#5 Roberto G.A.
11/08/2004 - 23:41 | Informe spam
Muchas gracias a esta era la solución a mis problemas :)

Roberto G.A.

Alejandro Perez wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida