#jaxb #maven-jaxb2-plugin
Вопрос:
У меня есть два xsd:
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request" type="SearchRequestType"/>
<xs:complexType name="SearchRequestType">
<xs:sequence>
<xs:element name="oid" type="xs:string" minOccurs="0"/>
<xs:element name="referenceDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="startIndex" type="xs:long" minOccurs="0"/>
<xs:element name="pageSize" type="xs:long" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
и catalegs-schema.xsd
:
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request" type="SearchRequestType"/>
<xs:complexType name="SearchRequestType">
<xs:sequence>
<xs:element name="tableName" type="xs:string" minOccurs="0"/>
<xs:element name="oid" type="xs:string" minOccurs="0"/>
<xs:element name="owner" type="OwnerType"/>
<xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="term" type="xs:string" minOccurs="0"/>
<xs:element name="referenceDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="startIndex" type="xs:long" minOccurs="0"/>
<xs:element name="pageSize" type="xs:long" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OwnerType">
<xs:sequence>
<xs:element name="ownerType" type="xs:string"/>
<xs:element name="ownerCode" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Я знаю, что могу создать два исполнения. Однако, используя этот подход, он сгенерирует два ObjectFactory
.
Мой подход заключается в создании классов, разделяющих один ObjectFactory
.
<execution>
<id>generate-merged</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaLanguage>XMLSCHEMA</schemaLanguage>
<generateDirectory>${project.basedir}/src/main/java</generateDirectory>
<generatePackage>cat.catsalut.hes.mpi.hazelcast.loader.domain.serveiterritorial</generatePackage>
<schemaDirectory>${basedir}/xsd/servei-territorial/merge</schemaDirectory>
<schemaIncludes>
<include>oid-schema.xsd</include>
<include>catalegs-schema.xsd</include>
</schemaIncludes>
<episode>false</episode>
<args>
<arg>-npa</arg>
<arg>-no-header</arg>
</args>
<bindingDirectory>${project.basedir}/xsd/servei-territorial/merge</bindingDirectory>
<bindingIncludes>*.xml</bindingIncludes>
</configuration>
</execution>
Проблема в том, что у обоих xsd
есть SearchRequestType
, как вы можете видеть выше.
Итак, я получаю это сообщение, так как обе схемы имеют SearchRequestType
определение:
'SearchRequestType' is already defined
Как я мог это устроить?