2012-02-04 5 views
0

最近、私はいくつかのデータをXMLとして保存する必要があることに気付いたプロジェクトに移動しました。Castor Generated Classes(XMLマーシャリング) - XSDを使用できません

先のチームはCastorで生成されたクラスを使用してデータをマーシャルし、アンマーシャルしました。

私はこのXMLにいくつかの追加(ただしオプション)フィールドを追加する必要があるという新しい要件があります。しかし、私は以前のチームがXSDをチェックインしていないと思っていました。私は彼らに手を差し伸べる方法がありません。

約50のクラスを生成するため、XSDは大規模かつ複雑でした。だから、XSDをもう一度書くことは、エラーを起こしやすく、古いXMLと互換性のあるXMLを作成する危険性があります。

もう1つの方法は、XML Spyのようなツールを使用してXSDをXMLからリバースエンジニアリングすることでしたが、XSDを生成するために20の奇妙なXMLをリバースエンジニアリングする必要があるため、 XMLにはいくつかのオプションのセクションがあるので、これらのXSDをすべて1つにマージします。このアプローチでは依然としてエラーの要素があります。

私が考えることのできる最良の選択肢は、クラスをXSDにリバースエンジニアリングすることです。しかし、Castorはこの機能をサポートしていないと思われます。だから、私はこれらのCastor生成クラスをXSDに変換する手段がありません! Castorによって生成されたクラスはいくつかのCastor固有のメソッドを持っていますが、Castor固有のメソッドが無視された場合、それらはPojosです!

JavaクラスからXSDを取得または生成するための提案はありますか?議論した問題を解決するための他の提案はありますか?

ありがとうございます。

答えて

0

私が探していたものの100%を達成していないにもかかわらず、JAXBのschemagenツールを使用してXSDをリバースエンジニアリングすることができました。

castersは実際のXSDにマップされないので、各クラスでXXXDescriptorを生成するだけで、XXXDescriptorクラスはschemagenツールへの入力として渡されません。

schemagenツールはgetterメソッドで動作し、Castorのvalidate、marshall、unmarshallなどのメソッドを無視します。

私は最初に質問を投稿したときの状況と比べて、この時点では非常に有望です。

ありがとうございました。

関連する問題