JAXB绑定通用转换器

时间:2013-06-19 14:43:29

标签: binding xml-parsing jaxb

在JAXB绑定中,我可以将元素类型从int更改为string,依此类推。

但我不仅要数据类型转换。我想用等效的字符串替换整数Id。

这意味着对于每个字段我都需要写方法。

无论如何从parse方法获取字段名称?

<!-- Resolve ID's -->
<jaxb:bindings node="/xs:schema/xs:element/xs:complexType/xs:sequence/xs:element[@name='Classification']/xs:complexType/xs:attribute[@name='id']">
    <jaxb:property>
        <jaxb:baseType>
            <jaxb:javaType name="java.lang.String" parseMethod="com.company.lookup.Resolver.resolve" />
        </jaxb:baseType>
    </jaxb:property>
</jaxb:bindings>

1 个答案:

答案 0 :(得分:2)

您可以在外部绑定文档的全局绑定部分中覆盖XML模式类型的Java类型,而不是基于每个属性定义javaType

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    version="2.1">

   <jxb:bindings>
       <jxb:globalBindings>
           <jxb:javaType name="String" xmlType="xs:int"/>
       </jxb:globalBindings>
   </jxb:bindings>

</jxb:bindings>