[英]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.