Error al leer XML de gran volumen con SAX

Luis
29 de Julio del 2005
He hecho una implementaci贸n con SAX para leer un fichero de 35000 registros, con 4 o 5 campos cada registro. Tras varias verificaciones he comprobado que se producen unos 70 errores en una extracci贸n de este tipo. El error consiste en que algunos registros al azar presentan errores de lectura de alg煤n campo. Dos de estos campos son de longitud fija, 4 y 16 caracteres de tipo texto, y durante el proceso de lectura del xml en ocasiones se leen menos caracteres, produci茅ndose el error. Compruebo manualmente los registros afectados verificando que la informaci贸n en el xml es correcta. Cuendo exploto un fichero de menor volumen (entre 500 - 1000 registros) no ocurre ning煤n tipo de error. Si alguien pudiera ayudarme le estar铆a muy agradecido. Un saludo a todos y gracias de antemano

rty
29 de Julio del 2005
No entiendo del todo bien lo que te pasa. Aunque en un curso de XML que acabo de impartir, nos advirtieron de que SAX, en la especificaci贸n no asegura para el evento

public void characters(char[] ch, int start, int end){
}

se lea toda la informaci贸n de golpe, es decir

<loquesea> esto no tiene porque leerse de una s贸la vez </loquesea>

Normalmente se leer谩 de una sola tacada, aunque para ficheros grandes pudiera no ser as铆. E incocarse varias veces a characters().

Quiz谩s sea ese tu problema, guarda la informaci贸n en un StringBuffer, hasta que estes seguro de que se leyo por completo

xose
29 de Julio del 2005
Solo decir que a m铆 tambien me pasa, estoy parseando un archivo de unos 80 mb y hay elementos que no los parsea completamente.