XMLスキーマのライブラリを使用してコードを生成し、人々がXMLBeansとJAXBの間で好みを持っているかどうかを知りたい。パフォーマンス、スキーマ検証機能、メモリ使用量..任意のインジケーターが役立ちます..
5 に答える
私の個人的な好みは JAXB です。注釈と多くの Java 5 機能を使用した、より最新のアプローチを採用しています。一方、XMLBeans は依然として Java 1.4 に準拠しています (これが必要な場合)。順不同のその他の考えは次のとおりです。
- JAXB の Java 6 以降は JDK にバンドルされているため、そのまま使用できます。
- JAXB は、注釈付きの Java (POJO のような) クラスで動作します - XMLBeans によって生成されたインターフェイスであり、クラスはありません
- JAXB では、Java クラスに注釈を付けてマーシャリングとアンマーシャリングに使用できます。または、XML スキーマから始めて Java クラスを生成し、次に un-/marshalling に変換することもできます。
- XMLBeans は、XML スキーマで開始することのみを許可し、インターフェースを生成してから、これを un-/marshalling に使用します
Joachimの答えは+1で、私のお気に入りの機能の1つを追加するために、JAXB2.0は制限された単純型からJava列挙型を作成します。
XmlObjects は、効率的な解析のために xml infoset に簡単にアクセスできるビュー オブジェクトと同様に、ファースト クラスのドメインおよび DTO オブジェクトでもあります。通常、ビジネス オブジェクトは粒度が粗すぎるため、DTO アセンブラーまたはマッピング フレームワークを使用して、XmlBeans と JAXB の両方に対して何らかのマッピングを実装する必要があります。JAXB はマーシャリング時間の検証を提供し、インフラストラクチャとの統合が優れていますが、XmlBeans の利点は JAXB の利点よりも強いと思います
JAXB のもう 1 つの利点は、POJO を使用しているため、POJO をファースト クラスのドメイン オブジェクトとして快適に使用でき、アプリケーション スタック全体で使用できることです。
それらを DAO レイヤーの値オブジェクトとして使用したいですか? UIレイヤーのモデルとしていかがですか?頑張れ。
そうすれば、マッピング レイヤーと DTO が少なくなり、作成、テスト、および保守するコードが少なくなります。
私が XMLBeans を好むのは、XML 文書からスキーマを生成できる「inst2xsd」という便利なツールが付属しているためです。JAXB はスキーマをコンパイルすることしかできず、スキーマを生成することはできません。