¿Cómo controlar el orden / secuencia de generación de esquemas en memoria JAXB?

Tengo 3 archivos xsd que dependen unos de otros para construir mis definiciones de elementos. Cada archivo xsd tiene su propio espacio de nombres. Cuando genero mis clases usando JAXB xjc, obtengo 3 paquetes correspondientes. Hasta aquí todo bien

Mi problema surge cuando quiero hacer una validación de esquema con el desensamblador. Para evitar tener que leer en los archivos xsd, genero los esquemas sobre la marcha de la clase en cuestión que se desarma. Sin embargo, dado que la clase depende de objetos de otros 2 paquetes, no puede generar los esquemas a menos que especifique los 3 paquetes. Ya no es una solución muy práctica, ya que requiere que conozca de antemano el árbol de jerarquía / dependencia de objetos y especifique la lista de paquetes en consecuencia.

Mi problema más grande surge cuando intento crear un nuevo esquema a partir de los 3 esquemas generados usando SchemaFactory (SchemaFactory.newSchema (Source [])). Aparentemente, el orden en que se proporcionan los esquemas a la fábrica de esquemas es crítico para que resuelva las dependencias. Si el primer esquema de la matriz depende de una definición de tipo del último elemento de la matriz, aparece un error de resolución:

org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'ns1:InCalculationDataType' to a(n) 'type definition' component.

Si modifico el orden y pongo el 3er esquema primero, tiene éxito sin error.

Esto hace que sea casi imposible escribir un método bastante genérico, sino que tiene que codificar para cada caso XSD individualmente.

¿Hay algo que pueda hacer para aliviar este problema? ¿Hay alguna forma de obligar a SchemaFactory a leer todo primero y solo luego generar sus errores si encuentra alguno? Sé que puede crear un ErrorHandler, sin embargo, los JavaDocs indican que si arroja un error Fatal, cualquier procesamiento posterior no es confiable.

EDITA

Solo para mi tranquilidad, traté de crear un controlador de errores que ignorara los errores no fatales (solo los registré), sin embargo, el esquema generado no era confiable y no pudo validar adecuadamente los errores xml. En consecuencia, no tenía valor para mí.

END EDIT

Cualquier sugerencia o pensamiento sería apreciado.

¡Gracias

Eric

Respuestas a la pregunta(2)

Su respuesta a la pregunta