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 に答える