Frage

Ich habe zwei XML-Schema. First (A.xsd) in einer Bibliothek JAR-Datei (mylib.jar) und dem zweiten (B.xsd) befindet sich in meinem Projekt.

Ich mag Import A.xsd in die B.xsd und zu validieren eingehenden XML über Jaxb2Marshaller Embedded-Validator.

Jedoch habe ich nicht in der Lage bin, damit es richtig funktioniert. Es scheint, dass innere XML-Validator von Jaxb2Marshaller versteht nicht, Verweise auf Dateien in jar-Dateien (ich will nur etwas schreiben wie <xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">)

Wie könnte es behoben werden? Wie kann Bibliothek Schema aus einem Projekt Schema verwiesen werden?

War es hilfreich?

Lösung

Überprüfen Sie meine Antwort auf eine vorherige Frage auf, wie ein ResourceResolver verwendet werden kann, um dieses Problem zu lösen:

Ihre Implementierung von LSResourceResolver wird handhabt das Schema aus dem Classpath geladen und es in dem entsprechenden Ergebnis umgewandelt werden.

Andere Tipps

Sie müssen Ihre eigenen Resolver konfigurieren. Nichts in jaxb wird Classpath verwenden.

Es gibt eine JAXB Probe, die diese Art der Sache zeigt.

Classpath: ist keine gültige URL für Schemaposition. Sie XML Kataloge verwenden Schemata aus Gläsern laden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top