Ссылка на XML-схему
-
09-10-2019 - |
Вопрос
У меня есть две XML-схемы.Первый (A.xsd
) находится в файле jar библиотеки (mylib.jar
) и второй (B.xsd
) есть в моем проекте.
Я хочу импортировать A.xsd
в B.xsd
и проверяйте входящий XML с помощью Jaxb2Marshaller
встроенный валидатор.
Однако я не могу заставить его работать должным образом:похоже, что внутренний XML-валидатор Jaxb2Marshaller
не понимает ссылок на файлы в jar-файлах (я просто хочу написать что-то вроде <xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">
).
Как это можно было бы исправить?Как можно ссылаться на схему библиотеки из схемы проекта?
Решение
Проверьте мой ответ на предыдущий вопрос о том, как может быть использован ResourceCresolver для решения этой проблемы:
Ваша реализация LSRESourCereSolver будет обрабатывать загрузку схемы из классов и преобразовывать ее в соответствующий результат.
Другие советы
Вам нужно будет настроить свой собственный распознаватель.Ничто в jaxb не будет использовать classpath:.
Существует образец JAXB, который показывает подобные вещи.
Classath: не является действительным URL для схемы. Вам придется использовать XML каталоги загрузить схемы от банок.