Buenas!!
Estoy usando el sgte codigo para validar un documento xml en vb.net Pero no estoy obteniendo el nro de linea correcto(args.Exception.LineNumber), sino que tengo el nro de linea sin espacios en el xml, no se como hacer para obtener el código de línea correcto, respetando los espacios del xml, (Por ejemplo el validate me informa error en la línea 88,(esto es correcto considerando el xml sin espacios) pero esa línea coincide si el xml no contiene espacios, tendría que obtener ese mismo nro respetando los espacios del xml) por favor, alguien puede darme una pista de que como validar el xml obteniendo los datos de nro de línea correctos? (una opcion podría ser poder obtener el nro de líneas del xml con espacios , el nro de líneas del xml sin espacios y la diferencia asignarla a la propiedad settings.LineNumberOffset, pero estoy buscando una forma mas rapida de resilverlo) Public Function Validate(ByVal DocXml As String, ByVal DocXsd As String) As Boolean Implements IValidaContrato.Validate Dim res As Boolean = False Dim oXmlSchema As XmlSchema = New XmlSchema() Dim settings As XmlReaderSettings = New XmlReaderSettings() Try settings.CloseInput = True settings.ValidationType = ValidationType.Schema settings.IgnoreComments = False settings.IgnoreProcessingInstructions = False settings.IgnoreWhitespace = False Dim sr As StringReader = New StringReader(DocXsd) Dim tr As TextReader = sr oXmlSchema = XmlSchema.Read(tr, AddressOf ValidationCallbackOne) settings.Schemas.Add(oXmlSchema) AddHandler settings.ValidationEventHandler, AddressOf ValidationCallbackOne Dim r As StringReader = New StringReader(DocXml) Dim valReader As XmlReader = XmlReader.Create(r, settings) Do While valReader.Read() Loop Catch ex As Exception m_ErrorMessage = m_ErrorMessage & ex.Message res = False End Try Return res End Function Public Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs) m_ErrorMessage = m_ErrorMessage & args.Message.ToString() & " Error Nro linea: " & args.Exception.LineNumber.ToString & " Posicion: " & args.Exception.LinePosition.ToString() End Sub Muchas gracias! Saludos, Clarisa PD.: Vale la aclaracion, no cambie de sexo, Clari, una amiga, me pidio que lo envie la lista... Saludos! Clarisa Savio Obeid Software Engineer NEORIS ARGENTINA Dorrego 1042 - Rosario, S2000DHV Teléfono Rosario: (54-341) 5127400 ............................................................................ .......... L.N.Alem 518, Piso 4 - Bs As, C1001AAN Teléfono Bs As: (54-11) 51677519/7500 ............................................................................ .......... <http://by121fd.bay121.hotmail.msn.com/cgi-bin/compose?mailto=1&msg=E51EAE0E -4915-46E5-8CFE-73962D2E7E5A&start=0&len=31191&src=&type=x&to=clarisa.obeid@ neoris.com&cc=&bcc=&subject=&body=&curmbox=00000000-0000-0000-0000-000000000 001&a=7ab23df6b23566baa1389e5cd9f7fffa217d8d46e509a87885348b8b39d98c9f> [EMAIL PROTECTED] www.neoris.com