私はjaxbについては初めてです。私の質問は次のとおりです。jaxb を使用して、xml ファイルから Java オブジェクトへの自動マッピングを行うことは可能ですか? xml ファイルから始めて、アノテーション jaxb relaitve を使用して Java クラスを生成するものはありますか?
4680 次
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
自動的に実行されますがmarshalling
、unmarshalling
スキーマ ファイルが必要です。JaxB は、XML を Java オブジェクトにバインドするために使用されます。スキーマ ファイルを使用して、XSD
マーシャリングとアンマーシャリングを行います。使用できる XJC のような単純な ant タスクはほとんどありません。
于 2013-05-06T10:41:49.920 に答える