2015-01-01 15 views
19

私はサードパーティのXSDを持っている新しいプロジェクトを開始しています。私のJavaアプリケーションは、このXSDに準拠したXMLメッセージを生成し、このXSDに準拠する受信XMLメッセージを読み取る必要があります。過去に私はこれにApache XMLBeansを使用しました(http://xmlbeans.apache.org/)。 XMLBeansが廃止されたようです。引退したXMLBeansの代わりになるものは何ですか?私は他のプロジェクトでXStreamを使用しましたが、XStreamがXSDからJavaクラスを生成できることを思い出さないので、このユースケースのXMLBeansよりも良い選択ではないと思います。 XSDには何百もの型が定義されており、手でJavaでそれらを表現するために何百ものJavaクラスを作成しなくても大丈夫です。XMLBeansの代わりに、廃止されたものを使用しますか?

つまり、ここで与えられたXStreamの例:http://x-stream.github.io/tutorial.htmlを使用すると、私はXSDで定義されたPerson型(およびその他99個)を持っています。 XMLBeansを使用すると、これらのオブジェクトを表すJavaクラスを生成できますが、XStreamを使用すると、Javaクラス(Personなど)を手作業で作成するか、他のツールを使用して作成する必要があります。この場合、どのツールを使用しますか?

ご協力いただければ幸いです。

おかげで、 ジョン

+1

ですここ](https://axis.apache.org/axis2/java/core/docs/userguide-creatingclients.html#choosingclient)。 – mystarrocks

+0

xsdを使用してクラスを生成する – MihaiC

+0

申し訳ありませんが、ライブラリの推奨リクエストは明示的にオフトピックです。私はあなたに "xsd java generate"のためのGoogleを勧めます...または "ソフトウェア推奨"サイトを試してください。下記参照。 –

答えて

8

あなたはJAXBで見たことがありますか?私はこれらのいずれかで何もしていませんが、 "XMLBeansの代替"を検索すると、このパッケージへの参照がたくさん出てきます。あなたは `JiBX`と(現在は引退)` XMLBeans`、彼らはADB` `で提案するオプションをチェックアウトしてください、` axis2`を使用している場合、ここではそれらを比較記事は[...

http://blog.bdoughan.com/2012/01/how-does-jaxb-compare-to-xmlbeans.html

+0

(これまでのところ)JAXBは私たちが必要とするものを正確に提供するようです。私はxsdからJavaクラスを生成することができました(573 Javaクラスが生成されました)。 XMLBeansクラスを生成したときに発生しなかった「プロパティ値が既に定義されています」というエラーが発生しました。私は今、この問題を回避することができました(永続的な修正のためにjaxbバインディングファイルを書く必要があると思います)。助けてくれてありがとうSteveとても感謝しています。 – John

+1

?私のためにJAXBの問題は、 "unmarshaller/marshaller"混乱です...: - \ XMLBeansは非常に単純で透明です。また、私は "xmlデータベース"(xmlbeansはリストや配列としてxml elmentsを操作するメソッドを作成する)を実装する方法を知らない – marcolopes

+0

私たちが遭遇した問題は、スレッドセーフなパフォーマンスの問題でした。コンテキストオブジェクトの作成は、非常に大きなxmlでは遅くなります。マーシャラーとアンマーシャラーはスレッドセーフではありません。詳細はこちら:https://jaxb.java.net/guide/Performance_and_thread_safety.htmlおよびこちら:http://stackoverflow.com/questions/7400422/jaxb-creating-context-and-marshallers-cost – John

関連する問題