У меня есть 2 служебных XSD файла AService.xsd и BService.xsd, каждый с различным целевым пространством имен. Оба они используют обычный XSD, называемый common.xsd. Я использую плагин JAXB Maven для генерации классов. Вот как,
<execution>
<id>generate-package</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<extension>true</extension>
<schemaIncludes>
<include>schema/Aservice.xsd</include>
<include>schema/Bservice.xsd</include>
</schemaIncludes>
<bindingIncludes>
<include>schema/*.xjb</include>
</bindingIncludes>
<generatePackage>com.schema</generatePackage>
<generateDirectory>src/main/java</generateDirectory>
</configuration>
</execution>
Когда я пытаюсь запустить это, я получаю следующую ошибку. ValidationType
определяется в common.xsd
org.xml.sax.SAXParseException: A class/interface with the same name "com.schema.ValidationType" is already in use. Use a class customization to resolve this conflict.
..........
org.xml.sax.SAXParseException: (Relevant to above error) another "ValidationType" is generated from here.
......
com.sun.istack.SAXParseException2: Two declarations cause a collision in the ObjectFactory class.
Если я запустил 2 службы xsds в 2 разных исполнениях, генерирующих в 2 разных пакета, я получаю тот же класс ValidationType
в двух разных пакетах.
Любые идеи о том, как заставить JAXB распознавать общие схемы?