我无法获取生成的类来实现任何接口。
这是我的xml架构文件:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb/"
xmlns:ai="http://jaxb.dev.java.net/plugin/if_insertion"
jxb:extensionBindingPrefixes="ai">
<xs:element name="header">
<xs:annotation>
<xs:appinfo>
<ai:interfaces check="1">
utility.RuleInterface
</ai:interfaces>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
bla bla bla
</xs:complexType>
....
我检查了JAXB选项中的“扩展”选项,并将xjc-if-ins.jar
添加到项目属性的“库”部分。
但是生成的Header类没有实现utility.RuleInterface
。
我可以弄清楚我做错了什么......是不是缺少了什么?
答案 0 :(得分:1)
你真的启动了这个插件吗?使用-Xinheritance
等选项
这是您可以使用的另一个插件:
http://confluence.highsource.org/display/J2B/Inheritance+plugin
这是一个示例项目(Ant和Maven):
http://download.java.net/maven/2/org/jvnet/jaxb2_commons/jaxb2-basics-sample-po/0.5.2/
答案 1 :(得分:1)
对于遇到同样问题的其他人来说,这是另一个注释。 xml模式文件中的元素应该以这种方式编写:
<xs:complexType name="header">
<xs:annotation>
<xs:appinfo>
<ai:interfaces check="0">
utility.RuleInterface
</ai:interfaces>
</xs:appinfo>
</xs:annotation>
</xs:complexType>
你可以参考它们:
<xs:element name="rule">
<xs:complexType>
<xs:sequence>
<xs:element name="header" type="header" maxOccurs="unbounded" />
...
</xs:sequence>
<xs:complexType>
我的问题是我已将标题声明为<xs:element name="header">
而我指的是<xs:element ref="header" maxOccurs="unbounded" />
的元素,这种方法似乎不起作用...