javax.xml.bind.UnmarshalException: 意外元素 (uri:"", local:"Group")

新手上路,请多包涵
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"));

Group 类没有任何注释,group.xml 只包含数据。

什么都可能是原因?

原文由 user496949 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

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

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

原文由 bdoughan 发布,翻译遵循 CC BY-SA 2.5 许可协议

幸运的是,不需要 package-info 类。我能够使用 iowatiger08 解决方案解决我的问题。

这是我的修复程序,显示错误消息以帮助加入一些点。

错误信息

javax.xml.bind.UnmarshalException:意外元素(uri:“ http://global.aon.bz/schema/cbs/archive/errorresource/0 ”,本地:“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 的命名空间,如错误消息中所示。

原文由 Glenn Mason 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题