wsdl2java 自定义绑定类型到特定 java class

wsdl2java custom bind types to specific java class

使用 wsdl2java,有没有办法将 xsd 类型绑定到特定的 java class? 我的 wsdl 包含以下内容:

<xsd:complexType name="Dimension">
    <xsd:attribute name="height" type="xsd:decimal" />
    <xsd:attribute name="length" type="xsd:decimal" />
    <xsd:attribute name="width" type="xsd:decimal" />
</xsd:complexType>

并且我想将 'Dimension' 元素中的所有 xsd:decimal 元素绑定到整数(我有我的理由)。

我能够使用具有以下绑定的自定义绑定文件在全局范围内执行此操作:

<jxb:globalBindings>
    <jxb:javaType name="java.lang.Integer" xmlType="xsd:decimal"/>
</jxb:globalBindings>

但我只想针对这些特定元素执行此操作。我无法更改 wsdl。

我使用 属性 绑定解决了这个问题:

    <jxb:bindings node="//xsd:complexType[@name='Dimension']/xsd:attribute[@name='height']">
        <jxb:property>
          <jxb:baseType>
            <jxb:javaType name="java.lang.Integer"/>
          </jxb:baseType>
        </jxb:property>
    </jxb:bindings>