2

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

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

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

无论如何要从解析方法中获取字段名称?

<!-- 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>
4

1 回答 1

2

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

<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>
于 2013-06-19T19:10:14.793 回答