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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top