使用以下插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>${project.basedir}/src/main/resources/</schemaDirectory>
<clearOutputDir>false</clearOutputDir>
</configuration>
</plugin>
我从放置在 /src/main/resources
中的 XSD 模式(比如说 entity.xsd
)生成类,具有命名空间定义的根元素位于下面的例子:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:webpage="https://www.mywebpage.com"
targetNamespace="https://www.mywebpage.com"
elementFormDefault="qualified">
...
</xs:schema>
在mvn clean install
之后,target/generated-sources/jaxb
中生成的结构非常奇怪:
目标/生成源/jaxb
https
www_mywebpage
ObjectFactory.java
Entity.java
EntityDetailsRequest.java
EntityDetailsResponse.java
我期望的是这样的:
目标/生成源/jaxb
com.mywebpage
ObjectFactory.java
Entity.java
EntityDetailsRequest.java
EntityDetailsResponse.java
我做错了什么?
最佳答案
我的 XSD 架构有错误。 maven-jaxb2-plugin
无法识别 https
,只能识别 http
。
我改变了:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:webpage="https://www.mywebpage.com"
targetNamespace="https://www.mywebpage.com"
致:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:webpage="http://www.mywebpage.com"
targetNamespace="http://www.mywebpage.com"
生成的结构符合我的预期并在我的问题中进行了描述。
关于java - 从 XSD 模式生成 JAXB 类会导致奇怪的包结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654129/