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.
+1 Buena pregunta. – skaffman