JAXB2 的继承插件不适用于 simpleTypes
Inheritance plugin for JAXB2 not working on simpleTypes
我在将 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>
因此,任何将此 plugin/modification 应用于 simpleType 的尝试都会失败。继承插件不支持简单类型吗?
作者或此处的jaxb2-basics继承插件。
插件不处理简单类型。
如果我没记错的话,XJC 不会(必然)为派生的简单类型生成 类。因此,您可能不会生成 mypackage.CheckOut
或 mypackage.CheckIn
。所以不会有类加implements mypackage.MyElement
.
我在将 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>
因此,任何将此 plugin/modification 应用于 simpleType 的尝试都会失败。继承插件不支持简单类型吗?
作者或此处的jaxb2-basics继承插件。
插件不处理简单类型。
如果我没记错的话,XJC 不会(必然)为派生的简单类型生成 类。因此,您可能不会生成 mypackage.CheckOut
或 mypackage.CheckIn
。所以不会有类加implements mypackage.MyElement
.