XML-Schema-Referenz
-
09-10-2019 - |
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?
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.