5

私はjaxbについては初めてです。私の質問は次のとおりです。jaxb を使用して、xml ファイルから Java オブジェクトへの自動マッピングを行うことは可能ですか? xml ファイルから始めて、アノテーション jaxb relaitve を使用して Java クラスを生成するものはありますか?

4

2 に答える 2

6

それは確かに可能です。ただし、XML ファイルではなく XSD が必要です。1 つ以上のサンプル XML ファイルから XSD を推測できるツール (たとえばTrang ) があります。

この XSD をツールで生成すると、XML サンプルが完全でない場合、またはスキーマを 1 つの XML ファイルで完全に表現できない場合 (排他的要素など)、不正確な結果が得られる可能性があることを考慮してください。

XSD を取得したらxjc、マーシャラー/アンマーシャラー クラスを生成するために使用します。

xjc myxsd.xsd

これにより、JAXB がマーシャリング/アンマーシャリングに使用するアノテーション付きクラスが生成されます。これらのクラスを自分でコーディングすることもできたことに注意してください。それらを取得したら、コードで使用するだけです。

File file = new File("myFile.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(MyRootElement.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
MyRootElement element = (MyRootElement) jaxbUnmarshaller.unmarshal(file);
于 2013-05-06T10:42:10.750 に答える
1

はい、JAXB自動的に実行されますがmarshallingunmarshallingスキーマ ファイルが必要です。JaxB は、XML を Java オブジェクトにバインドするために使用されます。スキーマ ファイルを使用して、XSDマーシャリングとアンマーシャリングを行います。使用できる XJC のような単純な ant タスクはほとんどありません。

于 2013-05-06T10:41:49.920 に答える