Я написал Office.xsd
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:element name="name" type="xsd:string" />
<xsd:complexType name="Employee">
<xsd:sequence>
<xsd:element name="entry_time" type="xsd:decimal"
minOccurs="0" />
<xsd:element name="exit_time" type="xsd:decimal"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Furniture">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"
minOccurs="0" />
<xsd:element name="quantity" type="xsd:int"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Office">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0" />
<xsd:element name="address" type="xsd:string" minOccurs="0" />
<xsd:element name="employee" type="Employee"
minOccurs="0" />
<xsd:element name="furniture" type="Furniture"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
Я создаю еще один Institute.xsd
, в который я включил Office.xsd
, как показано ниже.
<xsd:include schemaLocation="Office.xsd" />
<xsd:complexType name="Institute">
<xsd:sequence>
<xsd:element name="id" type="xsd:in" minOccurs="1" />
<xsd:element name="name" type="xsd:string" minOccurs="1" />
<xsd:element name="employee" type="Employee"
minOccurs="0" />
<xsd:element name="furniture" type="Furniture"
minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
I am using maven-jaxb2-plugin
plug-in .. here is my plug-in
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.3</version>
<executions>
<execution>
<id>emp</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<forceRegenerate>true</forceRegenerate>
<schemaDirectory>src/main/resources/xsd</schemaDirectory>
<schemaIncludes>
<include>Office.xsd</include>
</schemaIncludes>
<generatePackage>com.nuovo.employee.model</generatePackage>
</configuration>
</execution>
<execution>
<id>inst</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<forceRegenerate>true</forceRegenerate>
<schemaDirectory>src/main/resources/xsd</schemaDirectory>
<schemaIncludes>
<include>Institute.xsd</include>
</schemaIncludes>
<generatePackage>com.nuovo.institute.model</generatePackage>
<args>
<arg>-XtoString</arg>
<arg>-Xcopyable</arg>
<arg>-Xequals</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.4</version>
</plugin>
</plugins>
</configuration>
</execution>
<dependencies>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.1.3</version>
</dependency>
</dependencies>
</plugin>
Я получаю Employee.java, Furniture.Java and Office.java
в обоих пакетах (com.nuovo.institute.model
и com.nuovo.employee.model
). Не только в Institute.xsd, я должен использовать только Employee
как type
в другом xsd
, так и в некоторых XSDs
я должен использовать только Furniture
как type
как мне убедиться, что эти классы не дублируются в других пакетах и как сделать эти сгенерированные классы( Employee.java
, Furniture.java
и Office.java
) как общие для других классов