2015-08-11 2 views
1

У меня есть схема a.xsd, которая импортирует b.xsd. У меня есть запись в схеме a.xsd следующим образом:XJC-каталог не заменяет локальный путь для импорта схемы

<xs:import namespace="http://www.example.com/v1.0" 
       schemaLocation="b.xsd"/> 

мне нужно использовать схемы b.xsd из баночки (общественного SDK). Поэтому я использовать файл каталога следующим

SYSTEM "b.xsd" "jar:file:example-api-schemas.jar!/schemas/b.xsd" 

или SYSTEM "b.xsd" "schemas/b.xsd" в случае, если я его на локальной файловой системе.

Поскольку я не могу редактировать ни один из этих xsd-файлов, я думаю, что использование каталога - это только последнее средство. Но при генерации файлов-заглушек с помощью файла каталога не найдено исключение. Я использую следующую команду для создания файлов

xjc -extension -catalog catalog.cat a.xsd 

ответ

0

Вы можете поразить этот вопрос:

https://java.net/jira/browse/JAXB-942

Или, может быть, некоторые другие XJC особенность. Возможно, XJC пытается сопоставить разрешенный локальный URI b.xsd, который будет чем-то вроде file:..../b.xsd - и это не соответствует вашему каталогу, естественно.

Попробуйте следующее:

  • Попробуйте добавить -nv поставить его XJC в режим «непроверяющим». Иногда это помогает.
  • Вместо связывания с помощью местоположения файла вы можете попробовать связывание с помощью пространства имен:

    PUBLIC «урны: пространство имен: из: б» «кувшин: файл: Пример-Апи-schemas.jar /schemas/b.xsd! "

 Смежные вопросы

  • Нет связанных вопросов^_^