简体   繁体   English

使用jaxb2-maven-plugin实现不同的接口

[英]Using jaxb2-maven-plugin to implement different interfaces

I'm using jaxb2-maven-plugin v.2.2 with xjc to generate objects from xsd files, and I need some (not all) generated classes to implement some of my interfaces. 我使用带有xjc的jaxb2-maven-plugin v.2.2从xsd文件生成对象,并且我需要一些(不是全部)生成的类来实现某些接口。 I have this binding file: 我有此绑定文件:

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

but keep getting an error 但是不断出错

lineNumber: 5; lineNumber:5; columnNumber: 78; columnNumber:78; Unsupported binding namespace " http://jaxb2-commons.dev.java.net/basic/inheritance ". 不支持的绑定名称空间“ http://jaxb2-commons.dev.java.net/basic/inheritance ”。 Perhaps you meant " http://jaxb.dev.java.net/plugin/code-injector "? 也许您的意思是“ http://jaxb.dev.java.net/plugin/code-injector ”?

How can I implement several interfaces? 如何实现多个接口?

In case it helps anyone: I ended up using maven-jaxb2-plugin in conjunction with org.jvnet.jaxb2_commons:jaxb2-basics which allowed to use -Xinheritance as an argument. 万一它对任何人maven-jaxb2-plugin帮助:我最终将maven-jaxb2-pluginorg.jvnet.jaxb2_commons:jaxb2-basics结合使用,后者允许使用-Xinheritance作为参数。 No changes were needed to binding file. 无需更改绑定文件。

Relevant pom fragment: 相关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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM