référence XML Schema
-
09-10-2019 - |
Question
J'ai deux schémas XML. Tout d'abord (A.xsd
) se trouve dans un fichier jar bibliothèque (mylib.jar
) et le second (B.xsd
) est dans mon projet.
Je veux A.xsd
l'importation dans le B.xsd
et validons XML entrant via Jaxb2Marshaller
validateur intégré.
Cependant, je suis incapable de le faire fonctionner correctement. Il semble que validateur XML interne de Jaxb2Marshaller
ne comprend pas les références aux fichiers dans un pot-fichiers (je veux juste écrire quelque chose comme <xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">
)
Comment ça pourrait être fixé? Comment schéma bibliothèque pourrait être référencé à partir d'un schéma de projet?
La solution
Vérifiez ma réponse à une question précédente sur la façon dont un ResourceResolver peut être utilisé pour résoudre ce problème:
Votre mise en œuvre de LSResourceResolver va gérer le chargement du schéma du classpath et la conversion au résultat approprié.
Autres conseils
Vous devez configurer votre propre serveur. Rien dans JAXB utilisera classpath:.
Il y a un échantillon de JAXB qui montre ce genre de chose.
classpath: n'est pas une URL valide pour l'emplacement du schéma. Vous devrez utiliser XML catalogues pour charger des schémas de pots.