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

时间:2015-08-12 17:33:30

标签: java xml xsd jaxb2

我有一个从.xsd文件生成的类,我有一个.xml文件,其中包含符合.xsd架构的数据。类似的东西:

  • XML架构文件:MyObject.xsd
  • 从架构生成的Java类:MyObject.java
  • 与架构匹配的XML:MyObject.xml

我是否可以轻松地将MyObject.xml反序列化为MyObject.java的实例?我希望比手动遍历DOM元素和设置对象上的所有属性更容易。

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

1 个答案:

答案 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);