Вопрос

У меня есть две 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 каталоги загрузить схемы от банок.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top