HyperJaxb - Любой способ исключить XML-схемы, которые импортируются во включенные схемы? - PullRequest
1 голос
/ 09 августа 2011

Вот моя проблема:

У меня есть два файла .xsd, назовем их a.xsd и b.xsd. Чего я хочу добиться - это сгенерировать все классы из a.xsd, за исключением классов в b.xsd. Теперь проблема заключается в том, что a.xsd ссылается на тип в b.xsd (через a), поэтому даже если исключить, классы в b.xsd получают сборку. Есть ли способ обойти это?

1 Ответ

1 голос
/ 16 августа 2011

Вы не можете исключить схему, но вы можете исключить пакет, полученный из схемы.

Пожалуйста, смотрите Игнорирование пакетов :

<jaxb:bindings schemaLocation="schema-ignored.xsd" node="/xsd:schema">
    <jaxb:schemaBindings>
        <jaxb:package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
    </jaxb:schemaBindings>
    <hj:ignored-package name="org.jvnet.hyperjaxb3.ejb.tests.issuesignored"/>
</jaxb:bindings>

Поскольку у вас есть ссылка на тип из b.xsd где-то в a.xsd, вам нужно будет прервать эту ссылку. Вы можете либо игнорировать это свойство с помощью hj:ignored, либо настроить его с помощью xjc:dom, чтобы сделать его элементом DOM в классе Java.

пс. Я отвечаю на users@hyperjaxb.java.net быстрее, чем на вопросы по SO.

...