Java:从 .xml 文件填充 .xsd-生成的 class

Java: Populating .xsd-generated class from .xml file

我有一个从 .xsd 文件生成的 class,我有一个 .xml 文件,其中包含符合 .xsd。类似于:

有没有一种简单的方法可以将 MyObject.xml 反序列化为 MyObject.java 的实例?我希望有比手动遍历 DOM 元素并设置对象的所有属性更简单的方法。

基本上,我正在寻找 java.beans.XMLDecoder 中的功能,但由于我的 .xml 文件不是从 XMLEncoder 创建的,我不相信我可以使用解码器。

首先您需要使用静态 newInstance 方法创建一个 JAXBContext 实例。然后使用 createMarshaller 方法创建一个 Unmarshaller 实例,并在该实例上调用适当的 unmarshal 方法:

InputStream is = new FileInputStream("MyObject.xml");
JAXBContext jc = JAXBContext.newInstance(MyObject.class);
Unmarshaller u = jc.createUnmarshaller();
MyObject o = (MyObject)u.unmarshal(is);