java - 从 XSD 模式生成 JAXB 类会导致奇怪的包结构

标签 java maven soap jaxb maven-jaxb2-plugin

使用以下插件:

<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/

相关文章:

java - 将对象数组转换为列表

java - 如何从第二个 .java 类文件获取 getSystemService 以在 Android Studio 中工作?

java - 如何通过冲突的 maven-surefire-plugin 和 org.ow2.asm 在 Maven 中使用 JUnit 5 和 Java 10

java - 使用 SOAP 中请求的证书注册协议(protocol) "https"多线程(轴 2)

c# - 如何区分WCF数据契约中用户指定的空值和默认值

wcf - BasicHttpBinding 和 CustomBinding/Soap11 有什么区别?

java - 在构造函数中生成简单赋值的 Eclipse 快捷方式?

java - 转换给定时区的日期/时间 - java

java - 如何在 Sparkjava 中启动服务器?

java - 如何将另一个模块中的类附加到jar中?