CXF 未将 superclass 添加到生成的 class
CXF not adding superclass to generated class
我尝试根据传入的 XML 复杂类型向生成的 class 添加一个 superclass 定义。当我像这样使映射通用时,它起作用了:
<jaxb:globalBindings generateElementProperty="false">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:globalBindings>
现在我只想要一种类型来子class 这个class。我尝试了很多选择器,但这是唯一能准确找到一种类型的选择器:
<jaxb:bindings schemaLocation="../xsd/OrganisatieTypes.xsd" node="//xs:complexType[@name='DatumIncompleetType']">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:bindings>
尽管许多备选方案给出了“0 个节点”的结果,而这个没有,但生成的 class 不会子class Hashable。我做错了什么?
这是在 ../xsd/OrganisatieTypes 中定义复杂类型的 XSD。xsd:
<xsd:complexType name="DatumIncompleetType">
<xsd:choice minOccurs="0">
<xsd:element name="datum" type="xsd:date"/>
<xsd:element name="jaarMaand" type="xsd:gYearMonth"/>
<xsd:element name="jaar" type="xsd:gYear"/>
</xsd:choice>
</xsd:complexType>
我们正在使用 CXF 2.7.18
试试这个方法
<jaxb:bindings schemaLocation="../xsd/OrganisatieTypes.xsd" node="/xs:schema">
<jaxb:bindings>
<jaxb:bindings node="//xs:complexType[@name='DatumIncompleetType']">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
编辑
好的,抱歉,那行不通:根据 https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/jaxb/vendorCustomizations.html#superclass 这仅适用于全局绑定,即所有生成的 类,不适用于单个生成的 类
我尝试根据传入的 XML 复杂类型向生成的 class 添加一个 superclass 定义。当我像这样使映射通用时,它起作用了:
<jaxb:globalBindings generateElementProperty="false">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:globalBindings>
现在我只想要一种类型来子class 这个class。我尝试了很多选择器,但这是唯一能准确找到一种类型的选择器:
<jaxb:bindings schemaLocation="../xsd/OrganisatieTypes.xsd" node="//xs:complexType[@name='DatumIncompleetType']">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:bindings>
尽管许多备选方案给出了“0 个节点”的结果,而这个没有,但生成的 class 不会子class Hashable。我做错了什么?
这是在 ../xsd/OrganisatieTypes 中定义复杂类型的 XSD。xsd:
<xsd:complexType name="DatumIncompleetType">
<xsd:choice minOccurs="0">
<xsd:element name="datum" type="xsd:date"/>
<xsd:element name="jaarMaand" type="xsd:gYearMonth"/>
<xsd:element name="jaar" type="xsd:gYear"/>
</xsd:choice>
</xsd:complexType>
我们正在使用 CXF 2.7.18
试试这个方法
<jaxb:bindings schemaLocation="../xsd/OrganisatieTypes.xsd" node="/xs:schema">
<jaxb:bindings>
<jaxb:bindings node="//xs:complexType[@name='DatumIncompleetType']">
<xjc:superClass name="nl.ilent.bpo.interceptor.Hashable" />
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
编辑
好的,抱歉,那行不通:根据 https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/jaxb/vendorCustomizations.html#superclass 这仅适用于全局绑定,即所有生成的 类,不适用于单个生成的 类