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.

¿Fue útil?

Solución

Algunas implementaciones Stax parecen ser capaces de validar la salida. Ver la siguiente respuesta a una pregunta similar:

Uso Stax2 con Woodstox

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top