JAXB2的继承插件不适用于simpleTypes

时间:2017-09-21 10:03:47

标签: maven-jaxb2-plugin jaxb2-basics xjb

我在将xjb继承绑定应用于simpleType时遇到了一些麻烦。将它应用于complexType似乎工作正常。

我得到的错误是:

compiler was unable to honor this implements customization. It is attached to a wrong place, or its inconsistent with other bindings.

我的绑定看起来像这样:

 <jaxb:bindings version="1.0"
           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
           xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
           jaxb:extensionBindingPrefixes="xjc">
    <jaxb:bindings schemaLocation="../xsd/schema.xsd" node="/xs:schema">
    <jaxb:bindings multiple="true"
                   node="//xs:complexType[substring(@name, string-length(@name)-string-length('-e')+1)='-e']">
        <inheritance:implements>mypackage.Element</inheritance:implements>
    </jaxb:bindings>
    <jaxb:bindings multiple="true"
                   node="//xs:simpleType[descendant::xs:restriction[@base='string']]">
        <inheritance:implements>mypackage.Element</inheritance:implements>
    </jaxb:bindings>
</jaxb:bindings>

我的xsd包含以下几行:

   <simpleType name="checkOut">
            <restriction base="string"/>
      </simpleType>
    <simpleType name="checkIn"> 
        <restriction base="string"/>
    </simpleType>
 <complexType name="Author-e"></complexType>

因此,任何将此插件/修改应用于simpleType的尝试都会失败。继承插件不支持simpleType吗?

1 个答案:

答案 0 :(得分:1)

此处是作者或继承插件。

该插件不处理简单类型。

如果我没有弄错的话,XJC(必然)不会为派生的简单类型生成类。因此,您可能无法生成mypackage.CheckOutmypackage.CheckIn。因此,没有类可以将implements mypackage.MyElement添加到。