我是JAXB的新手。对于一个项目,我得到了带有xsd的绑定文件,这样我就可以使用模式类。Jaxb绑定文件(mainbindings.xjb)如下所示:
<jxb:bindings version="2.0">
<jxb:bindings schemaLocation="main.xsd" node="/xsd:schema">
<jxb:globalBindings fixedAttributeAsConstantProperty="true" collectionType="com.example.Impl" choiceContentProperty="false" typesafeEnumMemberName="generateName" enableFailFastCheck="false" generateIsSetMethod="true" underscoreBinding="asWordSeparator">
<xjc:serializable uid="100"/>
<xjc:superClass name="com.example.mySuperClass"/>
<jxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime" parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
</jxb:globalBindings>
</jxb:bindings>
</jxb:bindings>
我使用生成的类没有xjc编译器错误:
xjc-b mainbindings.xjb-b main.xsd-扩展
从这个网站上,我了解到编译器不会生成超类:http://blog.frankel.ch/customize-your-jaxb-bindings
然而,当我在eclipse项目下复制这些类时,我在大多数类上都会看到以下错误:类型的层次结构不一致
我在谷歌上搜索了这个错误,并从这个网站上找到了(http://java.syntaxerrors.info/index.php?title=Inconsistent_hierarchy)如果超类不存在,则会弹出此错误。我按照这里的建议尝试了刷新,但错误仍然存在。
此外,如果xjc没有生成一个超类,那么如果我不手动创建一个随机超类,怎么能解决这个问题呢?
提前感谢
该扩展旨在让您生成的类扩展现有的类。您将需要提供此类。BTW-你目前是如何尝试使用这个扩展的?