Estoy creando un archivo XML muy grande (700mb +) que procesa grandes cantidades de datos por lotes. El programa sirve como una interfaz entre una base de datos sybase extremadamente grande y una aplicación. Actualmente tengo el esquema xsd vinculado a las clases. Necesito una forma de poder escribir el XML con la lógica de reinicio en mente.Java JAXB - Escritura de archivos XML con lógica de reinicio
I.E. poder saber dónde lo dejé. O en otras palabras, si el programa falla, necesito poder ver lo que fue la última vez que escribí en el archivo XML para que pueda reanudar donde lo dejé. Aquí hay un ejemplo.
<root>
<WorkSet>
<Work>
<Customer>
<Work>
<Customer>
<WorkSet>
<Work>
.....
<root>
Digamos que el programa falla después de escribir un nodo de escritura de 'trabajo' o 'workset'. ¿Hay alguna manera de retomar el procesamiento donde lo dejé? Estoy intentando evitar volver a leer el archivo XML en la memoria debido al tamaño de corte del archivo XML (Digamos que termina 500 MB de XML y falla).
Gracias por la ayuda.
+1 - Iba a sugerir algo en esta línea. –
¿Agregaría la etiqueta @XmlRootElement a la clase Java WorkSet afecta la funcionalidad de un archivo XML grande después de la concatenación de múltiples WorkSets? Soy un poco nuevo JAXB, así que avíseme si no lo estoy entendiendo correctamente. – TyC
No creo que agregar un '@ XmlRootElement' afecte su funcionalidad anterior. Sin agregar el '@ XmlRootElement' el' Marshaller.marshal() 'arroja la siguiente excepción:' com.sun.istack.SAXException2: no se puede ordenar el tipo "org.package.MyWorkSet" como un elemento porque le falta un @ Anotación XmlRootElement'. – palacsint