在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>
答案 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>