JAXB связывает несколько файлов с одинаковым пространством имен в одном пакете
У меня есть иерархия схем, как это:
common
|---legacy
| |---legacy.xsd xmlns="http://common/legacy"
| |---other.xsd xmlns="http://common/legacy"
| '---....xsd xmlns="http://common/legacy"
|---send
|---file.xsd xmlns="http://common/send"
'---text.xsd xmlns="http://common/send"
'---....xsd xmlns="http://common/send"
Все файлы в одной папке имеют одинаковое пространство имен.
Теперь я хочу сопоставить пространства имен с конкретными пакетами Java (я не могу изменить пространство имен).
Я нашел решение связать схему с пакетом. Но тогда я должен был бы создать одну запись для xsd-файла:
<jaxb:bindings schemaLocation="./common/legacy/legacy.xsd">
<jaxb:schemaBindings>
<jaxb:package name="com.company/legacy"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="./common/legacy/other.xsd">
<jaxb:schemaBindings>
<jaxb:package name="com.company/legacy"/>
</jaxb:schemaBindings>
</jaxb:bindings>
.....
Есть ли способ напрямую определить связь между пространством имен и именем пакета?
Другой способ - определить пакет в maven:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<configuration>
<generatePackage>com.company/legacy</generatePackage>
</configuration>
</plugin>
Но тогда я должен был бы создать одно исполнение для каждой папки, а это не совсем то, чего я хочу.