¿El orden de origen de JAXB SchemaFactory debe seguir el orden de importación entre esquemas?
Utilizando el último JAXB (Sun) y tener una jerarquía de esquemas que usan directivas de importación entre esquemas para compartir definiciones de tipo. La validación de esquema se activa en la llamada setSchema a Marshaller / Unmarshaller en JAXB, que debería diferir la validación a Xerces (usando Java 1.5). No quiero saber el orden de las directivas de importación entre esquemas al crear el objeto Schema con SchemaFactory. Desafortunadamente, no he encontrado una característica / propiedad de Xerces que permita esto. Por ejemplo, si a.xsd se extrae en b.xsd con una importación, el siguiente código no funciona:
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)
}
);
El orden de la matriz de origen debe ser a.xsd y luego b.xsd. ¿Alguna forma de evitar esto?