質問

プロジェクトのjaxbバージョンを1から2に更新しようとしています。プロジェクトでこれを試したことがありますか。各プロジェクトはユニークであり、一般的なヒントを探しているだけです。

役に立ちましたか?

解決

JAXB2は、simpletype制限の列挙クラスを生成します。これらのタイプを使用するために文字列値を設定することに依存するJavaコードでは、代わりに適切な列挙を使用する必要があります。実行時の検証警告ではなく、コンパイル時に型チェックが行われるため、これは素晴らしいと思います。

JABX2は、型なしリストではなく型付きリストを使用するため、Javaコードから多くのキャストを削除できます。

日付のサポートが大幅に改善されました。 IIRC、JAXB1のほとんどの日付タイプはカレンダーを生成しますが、JAXB2ではXMLGregorianCalendarを生成します。

他のヒント

今日、私はJAXB 1のチュートリアルを読んでいて、JAXB 2.1(JavaSE 6に含まれる)を使用して例をコンパイルしようとしました。 XSDの要素は、次のような名前のない型を使用しました。

<xs:element name="logging">
        <xs:complexType>
                <xs:attribute name="debug" type="xs:boolean" use="required"/>
                <xs:attribute name="file" type="xs:string" use="required"/>
        </xs:complexType>
</xs:element>

見たところ、JAXB 1.0はLoggingクラスとLoggingTypeクラス(ロギング要素の名前のないタイプを参照)を生成しましたが、JAXB 2は単なるLoggingクラスを生成します。これは、この例のすべてのタグで定期的に発生するため、このような場合は非常に定期的に発生すると思います。ただし、「タイプ」を削除するだけで十分です。他の変更を必要とせずに、コンパイルを修正する接尾辞。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top