我有一个从.xsd文件生成的类,我有一个.xml文件,其中包含符合.xsd架构的数据。类似的东西:
MyObject.xsd
MyObject.java
MyObject.xml
我是否可以轻松地将MyObject.xml
反序列化为MyObject.java
的实例?我希望比手动遍历DOM元素和设置对象上的所有属性更容易。
基本上,我在java.beans.XMLDecoder
中寻找功能,但由于我的.xml文件不是从XMLEncoder
创建的,我不相信我可以使用解码器。< / p>
答案 0 :(得分:2)
首先,您需要使用静态JAXBContext
方法创建newInstance
实例。然后使用Unmarshaller
方法创建createMarshaller
实例,并在该实例上调用相应的unmarshal
方法:
InputStream is = new FileInputStream("MyObject.xml");
JAXBContext jc = JAXBContext.newInstance(MyObject.class);
Unmarshaller u = jc.createUnmarshaller();
MyObject o = (MyObject)u.unmarshal(is);