【问题标题】:Using jaxb2-maven-plugin to implement different interfaces使用 jaxb2-maven-plugin 实现不同的接口
【发布时间】:2019-01-08 02:25:36
【问题描述】:

我使用 jaxb2-maven-plugin v.2.2 和 xjc 从 xsd 文件生成对象,我需要一些(不是全部)生成的类来实现我的一些接口。 我有这个绑定文件:

<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
          xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
          jxb:extensionBindingPrefixes="xjc"
          version="1.0">
<jxb:bindings schemaLocation="UserProfiles.xsd">
<jxb:bindings node="//xs:complexType[@name='StudentProfileGeneral']">
   <inheritance:implements>org.ande.prf.ProfileGeneral</inheritance:implements>    
</jxb:bindings>
<jxb:bindings node="//xs:complexType[@name='StudentProfileDetail']">
  <inheritance:implements>org.ande.prf.ProfileDetails</inheritance:implements>
</jxb:bindings>
</jxb:bindings>

但是一直报错

行号:5;列号:78;不支持的绑定命名空间“http://jaxb2-commons.dev.java.net/basic/inheritance”。也许您的意思是“http://jaxb.dev.java.net/plugin/code-injector”?

如何实现多个接口?

【问题讨论】:

    标签: java jaxb code-generation xjc


    【解决方案1】:

    如果它对任何人有帮助:我最终使用了maven-jaxb2-plugin 结合org.jvnet.jaxb2_commons:jaxb2-basics 允许使用-Xinheritance 作为参数。绑定文件无需更改。

    相关pom片段:

            <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.14.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <extension>true</extension>
                <args>
                    <arg>-Xinheritance</arg>
                    <arg>-XautoNameResolution</arg>
                </args>
                <schemaDirectory>
                    ${basedir}/src/main/resources/xsd
                </schemaDirectory>
                <schemaIncludes>
                    <include>*.xsd</include>
                </schemaIncludes>
                <plugins>
                    <plugin>
                        <groupId>org.jvnet.jaxb2_commons</groupId>
                        <artifactId>jaxb2-basics</artifactId>
                        <version>1.11.1</version>
                    </plugin>
                </plugins>
            </configuration>
        </plugin>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多