Возможно ли создавать общие объекты с использованием JAXB? - PullRequest
2 голосов
/ 27 мая 2010

У меня есть 3 xsd файла:

  • a.xsd
  • b.xsd
  • shared.xsd

shared.xsd импортируется в a.xsd и b.xsd с использованием

<xs:import schemaLocation="shared.xsd"/>

shared.xsd определяет

<xs:element name="item">
<xs:complexType> ....

Если я сгенерирую Java-код, используя xjc, то a.xsd и b.xsd будут сгенерированы в разные пакеты, и в каждом пакете для элемента будет создан отдельный класс Java. Как можно было бы иметь один общий класс для элемента и заставить a и b использовать его?

Ответы [ 2 ]

0 голосов
/ 27 мая 2010

Либо сделайте то, что сказал @Chris Dail, либо объедините a.xsd и b.xsd в один файл схемы, поскольку JAXB ищет пространство имен для создания пакета.

0 голосов
/ 27 мая 2010

Вы можете переопределить пакет, в который сгенерированы файлы. Это должно позволить обоим общим объектам перейти в одно и то же место.

xjc -p com.test a.xsd b.xsd shared.xsd

Я думаю, это то, что вы ищете.

...