Como controlar a ordem / sequência de geração de esquema em memória JAX

Eu tenho 3 arquivos xsd que dependem um do outro para criar minhas definições de elementos. Cada arquivo xsd possui seu próprio espaço para nome. Quando eu gero minhas classes usando JAXB xjc, recebo 3 pacotes correspondentes. Por enquanto, tudo bem

Meu problema surge quando quero fazer a validação de esquema com o unmarshaller. Para evitar a necessidade de ler os arquivos xsd, eu gero os esquemas em tempo real a partir da classe em questão que não está ordenada. No entanto, como a classe depende de objetos de 2 outros pacotes, ela não poderá gerar os esquemas, a menos que eu especifique todos os 3 pacotes. Essa já não é uma solução muito prática, pois exige que eu conheça com antecedência a hierarquia de objetos / árvore de dependência e especifique a lista de pacotes de acord

Meu maior problema ocorre quando tento criar um novo esquema a partir dos 3 esquemas gerados usando o SchemaFactory (SchemaFactory.newSchema (Source [])). Aparentemente, a ordem na qual os esquemas são fornecidos à fábrica de esquemas é crítica para resolver dependências. Se o primeiro esquema da matriz depender de uma definição de tipo do último elemento da matriz, eu recebo um erro de resolução:

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

Se eu modificar a ordem e colocar o terceiro esquema em primeiro lugar, ele será bem-sucedido sem erro

Isso torna quase impossível escrever um método bastante genérico, mas é necessário codificar cada caso XSD individualment

Existe algo que eu possa fazer para aliviar esse problema? Existe alguma maneira de forçar o SchemaFactory a ler tudo primeiro e só depois gerar seus erros, se encontrar algum? Sei que você pode criar um ErrorHandler, no entanto, os JavaDocs indicam que, se gerar um erro fatal, qualquer outro processamento não é confiáve

EDITA

Apenas para minha própria paz de espírito, tentei criar um manipulador de erros que ignorasse erros não fatais (apenas os registrei), no entanto, o esquema gerado não era confiável e não era capaz de validar corretamente os erros xml. Consequentemente, não tinha valor para mim.

END EDIT

uaisquer sugestões ou pensamentos serão apreciado

Obrigado

Eric

questionAnswers(1)

yourAnswerToTheQuestion