首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javax.xml.bind.UnmarshalException:意外元素(uri:"",local:"Group")

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

Stack Overflow用户
提问于 2011-03-05 18:50:09
回答 11查看 302.7K关注 0票数 112
代码语言:javascript
复制
unexpected element (uri:"", local:"Group"). Expected elements are <{}group>

从xml解组时遇到异常

代码语言:javascript
复制
JAXBContext jc = JAXBContext.newInstance(Group.class); 
Unmarshaller unmarshaller = jc.createUnmarshaller();
Group group = (User)unmarshaller.unmarshal(new File("group.xml"));

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

什么都有可能是原因?

EN

回答 11

Stack Overflow用户

发布于 2012-08-16 15:27:40

您需要将package-info.java放入生成的jaxb包中。它的内容应该是这样的

代码语言:javascript
复制
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.example.org/StudentOperations/")
package generated.marsh;
票数 38
EN

Stack Overflow用户

发布于 2013-02-13 06:05:39

看了更多之后,根元素必须与一个schema-namespace相关联,Blaise指出。然而,我还没有一个package-info java。因此,在不使用@XMLSchema注释的情况下,我能够通过使用

代码语言:javascript
复制
@XmlRootElement (name="RetrieveMultipleSetsResponse", namespace = XMLCodeTable.NS1)
@XmlType(name = "ns0", namespace = XMLCodeTable.NS1)
@XmlAccessorType(XmlAccessType.NONE)
public class RetrieveMultipleSetsResponse {//...}

希望这能有所帮助!

票数 9
EN

Stack Overflow用户

发布于 2016-05-12 00:07:10

这是对一个很小的用例的修复,但它每次都会让我抓狂。如果您使用的是Eclipse Jaxb生成器,它会创建一个名为package-info的文件。

代码语言:javascript
复制
@javax.xml.bind.annotation.XmlSchema(namespace = "blah.xxx.com/em/feed/v2/CommonFeed")
package xxx.blah.mh.domain.pl3xx.startstop;

如果您删除此文件,它将允许解析更通用的xml。试试看!

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5203312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档