javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“Group”)

2022-08-31 09:09:55
unexpected element (uri:"", local:"Group"). Expected elements are <{}group>

从 xml 取消编组时遇到异常

JAXBContext jc = JAXBContext.newInstance(Group.class); 
Unmarshaller unmarshaller = jc.createUnmarshaller();
Group group = (User)unmarshaller.unmarshal(new File("group.xml"));

组类没有任何注释和组.xml只包含数据。

任何事情都可以是原因吗?


答案 1

看起来您的 XML 文档具有根元素“组”而不是“组”。您可以:

  1. 将 XML 上的根元素更改为“组”
  2. 将注释@XmlRootElement(name=“Group”) 添加到 Group 类。

答案 2

幸运的是,包信息类不是必需的。我能够用爱荷华虎08解决方案解决我的问题。

这是我的修复程序,显示错误消息以帮助连接某些点。

错误信息

javax.xml.bind.UnmarshalException: unexpected element (uri:“http://global.aon.bz/schema/cbs/archive/errorresource/0”, local:“errorresource”).预期的元素<{}errorresource>

修复前的代码

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="", propOrder={"error"})
@XmlRootElement(name="errorresource")
public class Errorresource

修复后的代码

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="", propOrder={"error"})
@XmlRootElement(name="errorresource", namespace="http://global.aon.bz/schema/cbs/archive/errorresource/0")
public class Errorresource

您可以看到添加到@XmlRootElement命名空间,如错误消息中所示。


推荐