2010-03-18 12 views
8

He creado un esquema XML (foo.xsd) y he usado xjc para crear mis clases de enlace para JAXB. Digamos que el elemento raíz es collection y estoy escribiendo N document objetos, que son tipos complejos.Validación utilizando JAXB y Stax para calcular el documento XML

Como planeo escribir archivos XML grandes, estoy usando Stax para escribir el elemento raíz collection, y JAXB para ordenar los subárboles del documento usando Marshaller.marshal(JAXBElement, XMLEventWriter). Este es el enfoque recomendado por jaxb's unofficial user's guide.

Mi pregunta es, ¿cómo puedo validar el XML mientras se está organizando? Si enlace un esquema al marcador JAXB (usando Marshaller.setSchema()), obtengo errores de validación porque solo estoy coordinando un subárbol (se está quejando de que no está viendo el elemento raíz collection "). Supongo que lo que realmente quiero hacer es vincular un 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 forma de hacer esto, hágamelo saber.

+0

+1 Buena pregunta. – skaffman

Respuesta

3

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

Using Stax2 with Woodstox

Cuestiones relacionadas