A ordem de origem JAXB SchemaFactory deve seguir a ordem de importação entre esquemas?
Utilizando o JAXB (Sun) mais recente e possuindo uma hierarquia de esquemas que usam diretivas de importação entre esquemas para compartilhar definições de tipo. A validação do esquema é ativada na chamada setSchema para Marshaller / Unmarshaller no JAXB, que deve adiar a validação para o Xerces (usando Java 1.5). Não quero saber a ordem das diretivas de importação entre esquemas ao criar o objeto Schema com SchemaFactory. Infelizmente, não encontrei um recurso / propriedade do Xerces que permita isso. Por exemplo, se a.xsd for puxado para b.xsd com uma importação, o código a seguir não funcionará:
FileInputStream a = new FileInputStream("a.xsd");
FileInputStream b = new FileInputStream("b.xsd");
Schema schema = SchemaFactory.newInstance(
XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(
new Source[] {
new StreamSource(b),
new StreamSource(a)
}
);
A ordem da matriz de origem deve ser a.xsd e b.xsd. Alguma maneira de contornar isso?