java – JAXB unmarshalling错误:预期的元素是<{} Root>
发布时间:2020-12-15 05:03:02 所属栏目:Java 来源:网络整理
导读:我正在重用其他地方生成的现有对象来解组以String类型形式出现的 XML数据. 物体: /* 3: */ import java.util.ArrayList;/* 4: */ import java.util.List;/* 5: */ import javax.xml.bind.annotation.XmlAccessType;/* 6: */ import javax.xml.bind.annotati
我正在重用其他地方生成的现有对象来解组以String类型形式出现的
XML数据.
物体: /* 3: */ import java.util.ArrayList; /* 4: */ import java.util.List; /* 5: */ import javax.xml.bind.annotation.XmlAccessType; /* 6: */ import javax.xml.bind.annotation.XmlAccessorType; /* 7: */ import javax.xml.bind.annotation.XmlElement; /* 8: */ import javax.xml.bind.annotation.XmlRootElement; /* 9: */ import javax.xml.bind.annotation.XmlType; /* 10: */ /* 11: */ @XmlAccessorType(XmlAccessType.FIELD) /* 12: */ @XmlType(name="",propOrder={"policy"}) /* 13: */ @XmlRootElement(name="MyNodeResponse") /* 14: */ public class MyNodeResponse /* 15: */ { /* 16: */ @XmlElement(name="Policy") /* 17: */ protected List<Policy> policy; /* 18: */ /* 19: */ public List<Policy> getPolicy() /* 20: */ { /* 21:65 */ if (this.policy == null) { /* 22:66 */ this.policy = new ArrayList(); /* 23: */ } /* 24:68 */ return this.policy; /* 25: */ } /* 26: */ } 我的解组代码: JAXBContext jc = JAXBContext.newInstance(MyNodeResponse.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); MyNodeResponse myNodeResponse = (MyNodeResponse)unmarshaller.unmarshal(new InputSource(new ByteArrayInputStream(xmlStringInput.getBytes("utf-8")))); 我的输入XML: <ns2:MyNodeResponse xmlns:ns2="mynamespace/2010/10"> <ns2:Policy> ....more data.... <ns2:Policy/> <ns2:MyNodeResponse /> 解组时我收到以下错误: unexpected element (uri:"mynamespace/2010/10",local:"MyNodeResponse"). Expected elements are <{}MyNodeResponse> “{}”究竟在错误中引用了什么,以及如何以匹配输入XML中存在的内容以及对象期望的方式进行解组? 解决方法
错误消息说的是什么
在{} MyNodeRespons中,{}部分引用没有设置名称空间URI部分的限定名称. 如何解决它 您需要使用包级别@XmlSchema注释来映射命名空间限定: package-info.java @XmlSchema( namespace = "mynamespace/2010/10",elementFormDefault = XmlNsForm.QUALIFIED) package example; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; 欲获得更多信息 > http://blog.bdoughan.com/2010/08/jaxb-namespaces.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |