none
Validación documento XML RRS feed

  • Pregunta

  • Hola,

    Alguien sabe como validar un documento XML con el schema que pone en el atributo "xsi: SchemaLocation="..." "?

    Lo hacía con la clase XmlValidatingReader pero ésta esta obsoleta en el Framework 2.0. Tal como dice la especificación de dicha clase, lo he intentado con la clase XmlReader pero no logro conseguir que me valide de forma correcta

    Alguien me puede ayudar? Mi código utilitzando la clase OBSOLET XmlValidatingReader es el siguiente:

                FileStream stream = new FileStream("documento.xml", FileMode.Open);
                XmlValidatingReader vr = new XmlValidatingReader(stream, XmlNodeType.Element, null);
                vr.ValidationType = ValidationType.Schema;

                while (vr.Read()) ;

    Muchas gracias.
    miércoles, 29 de octubre de 2008 11:26

Todas las respuestas

  • Hola,

     

    Aqui puedes encontrar la informacion necesaria

     

    http://msdn.microsoft.com/es-es/library/hdf992b8(VS.80).aspx

     

    Un saludo.

     

    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.

    Javier Conesa

    MCP - Analista Programador

    Web: http://www.moreplus.es/index.aspx


    miércoles, 29 de octubre de 2008 11:51
  • Antes de todo muchas gracias por tu respuesta.

    El sitio donde me has dicho ya lo miré pero no consigo que me funcione.

    Si lo hago tal como dice en la dirección que me has puesto, siempre me dice que ha pasado con éxito la verificación contra un esquema XSD, aunque yo a propósito cambie algun nombre de tag.

    Por eso agredecería a alguien que lo haya hecho si me pudiera ayudar...

    El código que tengo utilitzando la clase XmlReader es el siguiente:

                XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
                xmlReaderSettings.ConformanceLevel = ConformanceLevel.Auto;
                xmlReaderSettings.ValidationType = ValidationType.Schema;
                xmlReaderSettings.ValidationFlags |= System.Xml.Schema.XmlSchemaValidationFlags.ProcessInlineSchema;
                xmlReaderSettings.ValidationFlags |= System.Xml.Schema.XmlSchemaValidationFlags.ReportValidationWarnings;
                xmlReaderSettings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationCallBack);

                XmlReader xmlReader = XmlReader.Create("documento.xml", xmlReaderSettings);

                while (xmlReader.Read()) ;

                xmlReader.Close();

    y después tengo la "private static void ValidationCallBack(object sender, ValidationEventArgs args)" declarada como dicen en "MSDN".

    Qué es lo que me falla???

    Muchas gracias.
    miércoles, 29 de octubre de 2008 14:45