プロジェクトのjaxbバージョンを1から2に更新したいと思っています。プロジェクトでこれを試した人はいますか。これを実行したい人にヒントはありますか?それぞれのプロジェクトがユニークであることを理解しています。私は一般的なヒントを探しています。
2 に答える
JAXB2 は、simpletype 制限の enum クラスを生成します。これらの型を使用するための文字列値の設定に依存する Java コードでは、代わりに適切な列挙型を使用する必要があります。実行時の検証警告ではなく、コンパイル時に型チェックが行われるため、これは素晴らしいことだと思います。
JABX2 は、型なしリストの代わりに型付きリストを使用するため、Java コードから多くのキャストを削除できます。
日付のサポートが大幅に改善されました。IIRC では、JAXB1 のほとんどの日付型は Calendar を生成しますが、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 クラス (logging 要素の名前のない型を参照) を生成しましたが、JAXB 2 は Logging クラスのみを生成しました。これは、この例のすべてのタグで定期的に発生するため、このような場合はかなり定期的に発生すると思います。ただし、「Type」サフィックスを削除してコンパイルを修正するだけで十分であり、他の変更は必要ありません。