JAXB Die SchemaFactory-Quellreihenfolge muss der Importreihenfolge zwischen Schemas entsprechen?

Verwenden Sie das neueste JAXB (Sun) und verwenden Sie eine Hierarchie von Schemas, die Importdirektiven zwischen Schemas verwenden, um Typdefinitionen gemeinsam zu nutzen. Die Schemaüberprüfung wird beim Aufruf von setSchema an Marshaller / Unmarshaller in JAXB aktiviert, wodurch die Überprüfung auf Xerces (unter Verwendung von Java 1.5) verschoben werden sollte. Ich möchte beim Erstellen des Schema-Objekts mit SchemaFactory nicht die Reihenfolge der Importdirektiven zwischen Schemas kennen. Leider habe ich keine Xerces-Funktion / -Eigenschaft gefunden, die dies ermöglicht. Wenn beispielsweise a.xsd mit einem Import in b.xsd gezogen wird, funktioniert der folgende Code nicht:

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) 
      }
   );

Die Reihenfolge des Quell-Arrays muss a.xsd und dann b.xsd sein. Wie kann man das umgehen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage