3

プロジェクトのjaxbバージョンを1から2に更新したいと思っています。プロジェクトでこれを試した人はいますか。これを実行したい人にヒントはありますか?それぞれのプロジェクトがユニークであることを理解しています。私は一般的なヒントを探しています。

4

2 に答える 2

4

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

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

日付のサポートが大幅に改善されました。IIRC では、JAXB1 のほとんどの日付型は Calendar を生成しますが、JAXB2 では XMLGregorianCalendar を生成します。

于 2008-11-08T07:05:17.183 に答える
1

今日、私は 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」サフィックスを削除してコンパイルを修正するだけで十分であり、他の変更は必要ありません。

于 2010-02-05T20:26:50.547 に答える