XML Schema di riferimento
-
09-10-2019 - |
Domanda
Ho due schemi XML. In primo luogo (A.xsd
) si trova in un file jar libreria (mylib.jar
) e la seconda (B.xsd
) è nel mio progetto.
Voglio importazione A.xsd
nella B.xsd
e convalidare XML in ingresso tramite Jaxb2Marshaller
validatore incorporato.
Tuttavia sono in grado di farlo funzionare correttamente:. Sembra che interno validatore XML di Jaxb2Marshaller
non capisce i riferimenti ai file in vaso-files (Voglio solo scrivere qualcosa di simile <xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">
)
Come potrebbe essere risolto? Come potrebbe schema biblioteca essere referenziato da uno schema di progetto?
Soluzione
Scopri la mia risposta ad una precedente interrogazione su come un ResourceResolver può essere utilizzato per risolvere questo problema:
L'implementazione di LSResourceResolver gestirà il caricamento dello schema dal percorso di classe e la sua conversione al risultato appropriato.
Altri suggerimenti
Sarà necessario configurare il proprio risolutore. Nulla in JAXB utilizzerà classpath:.
C'è un campione JAXB che mostra questo tipo di cose.
classpath: non è un URL valido per la posizione dello schema. Si dovrà utilizzare XML cataloghi per caricare gli schemi da barattoli.