繁体   English   中英

JAXB maven 插件绑定不生成带接口的类

[英]JAXB maven plugin bindings does not generate classes with interface

我正在尝试使用 jaxb2-maven-plugin 从 XSD 生成 java 文件。 这没有任何问题,我可以在目标目录中看到生成的类。

现在我决定让所有生成的类实现一些接口。 所以我在定义接口的地方设置了bindings.xjb文件。 问题是插件无法识别定义 inheritance 的正确命名空间。

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

我认为代码注入器不是我想要的,因为它允许定义自定义代码片段以添加到生成的文件中。

我正在尝试使用最新的 maven 插件:

<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>3.1.0</version>

bindings.xjb 文件包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
               xmlns:xs="http://www.w3.org/2001/XMLSchema"
               xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
               jaxb:extensionBindingPrefixes="inheritance"
               version="3.0">

    <jaxb:bindings schemaLocation="application.xsd" node="/xs:schema">
        <jaxb:bindings node="//xs:complexType[@name='applicationType']">
            <inheritance:implements>com.example.SomeInterface</inheritance:implements>
            <jaxb:property name="inheritance"/>
        </jaxb:bindings>
    </jaxb:bindings>

</jaxb:bindings>

而application.xsd文件:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="application" type="applicationType"/>

    <xs:complexType name="applicationType">
        <xs:sequence>
            <xs:element type="xs:string" name="language"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

我在互联网上找到了这个命名空间 xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"。

另请注意插件需要 3.0 版的 bindings.xjb 文件。

让插件生成带接口的类的命名空间的正确定义是什么?

暂无
暂无

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

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