我正在使用com.sun.tools.jxc.maven2:maven-jaxb-schemagen-plugin
从我项目中的各种POJO类生成XSD文件。这样可以正常工作并创建文件A.xsd
。
其中一个文件引用了一个我无法控制且无法更改的外部包中的枚举。该枚举没有指定名称空间或任何类型的注释。
生成工作正常但它为我的命名空间生成文件A.xsd
,为枚举生成文件schema2.xsd
,然后在A.xsd
中导入。
由于我不会涉及的原因,我只能有1个XSD文件,因此我需要将枚举也生成为A.xsd
。
这是我用于此的pom.xml
代码:
<plugins>
<plugin>
<groupId>com.sun.tools.jxc.maven2</groupId>
<artifactId>maven-jaxb-schemagen-plugin</artifactId>
<version>${maven-jaxb-schemagen-version}</version>
<inherited>false</inherited>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<destdir>${basedir}/src/main/resources/xsds</destdir>
<srcdir>${basedir}/src/main/java/domain;${basedir}/src/main/java/enums</srcdir>
<includes>
<include>*.java</include>
</includes>
<verbose>true</verbose>
<schemas>
<schema>
<namespace>http://www.w3.org/2001/XMLSchema/A</namespace>
<file>A.xsd</file>
</schema>
</schemas>
</configuration>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</plugin>
</plugins>
我尝试用此替换<schema>
:
<schema>
<namespace>*</namespace>
<file>A.xsd</file>
</schema>
和此:
<schema>
<namespace>http://www.w3.org/2001/XMLSchema</namespace>
<file>A.xsd</file>
</schema>
和此:
<schema>
<namespace>http://www.w3.org/2001/XMLSchema/*</namespace>
<file>A.xsd</file>
</schema>
我尝试将其添加到指定A.xsd
:
<schema>
<namespace>http://www.w3.org/2001/XMLSchema</namespace>
<file>A.xsd</file>
</schema>
以上都没有。
我如何达到所需的行为?