Validación utilizando JAXB y Stax para reunir documento XML
Pregunta
He creado un esquema XML (foo.xsd) y se utiliza para crear xjc
mis Clases de vinculación de JAXB. Digamos que el elemento raíz es collection
y le escribo objetos document
N, que son tipos complejos.
Debido a que planeo escribir a cabo grandes archivos XML, estoy usando Stax para escribir el elemento raíz collection
y JAXB a Mariscal subárboles documento mediante Marshaller.marshal(JAXBElement, XMLEventWriter)
. Este es el enfoque recomendado por guía del usuario no oficial de jaxb .
Mi pregunta es, ¿cómo puedo validar el XML mientras que se está marshalled? Si Ato un esquema para el contador de referencias JAXB (usando Marshaller.setSchema()
), consigo errores de validación porque yo sólo estoy Marshalling un subárbol (que se queja de que no está viendo el elemento raíz collection
"). Supongo que lo que realmente quiero hacer es unirse a una esquema a la Stax XMLEventWriter
o algo por el estilo.
Cualquier comentario sobre este enfoque global sería de gran ayuda. Básicamente quiero ser capaz de utilizar JAXB
para reunir y grandes documentos XML unmarshal sin el funcionamiento de la memoria, por lo que si hay una mejor manera de hacer esto que me haga saber.
Solución
Algunas implementaciones Stax parecen ser capaces de validar la salida. Ver la siguiente respuesta a una pregunta similar: