(Todo lo que sigue es que ser escrito en Java)de análisis muy grandes documentos XML (y un poco más) en java
Tengo que construir una aplicación que tendrá como documentos XML de entrada que son, potencialmente, muy grande. El documento está encriptado, no con XMLsec, pero con el algoritmo de cifrado preexistente de mi cliente. Se procesará en tres fases:
Primero, la secuencia se descifrará de acuerdo con el algoritmo mencionado anteriormente.
En segundo lugar, una clase de extensión (escrita por un tercero en una API que estoy proporcionando) leerá una parte del archivo. La cantidad que se lee no es predecible; en particular, no se garantiza que esté en el encabezado del archivo, pero puede ocurrir en cualquier punto del XML.
Por último, otra clase de extensión (misma oferta) subdividirá el XML de entrada en documentos de subconjuntos 1..n. Es posible que en alguna parte se superpongan con la parte del documento tratada por la segunda operación, es decir: creo que tendré que rebobinar cualquier mecanismo que esté utilizando para tratar con este objeto.
Aquí es mi pregunta:
¿Hay una manera de hacer esto sin tener que leer todo el trozo de datos en la memoria al mismo tiempo? Obviamente, puedo implementar el descifrado como un filtro de flujo de entrada, pero no estoy seguro de si es posible analizar XML en la forma en que estoy describiendo; al recorrer la mayor parte del documento para recopilar la información del segundo paso y, a continuación, rebobinar el documento y volver a pasarlo para dividirlo en trabajos, idealmente liberando todas las partes del documento que ya no se utilizan después ellos han sido pasados
Parece un enfoque interesante y potencialmente útil, pero en ninguna parte de la documentación allí sugiere una forma de controlar el análisis del documento en la forma descrita. Creo que puede, pero la capacidad de no está documentada de una manera razonable de descubrir. –