例外了
javax.xml.bind.UnmarshalException: unexpected element
(uri:"", local:"ConnectorCommandType")
尝试解组xml,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCommandType> ........ </ConnectorCommandType>
异常基本上表明在jaxb上下文中找不到元素。但是调试显示该类在当前的jaxb上下文中存在并且是已知的。从xsd xml作为
<xs:complexType>
元素生成类ConnectorCommandType。xsd中可能有错误?
有没有人遇到过这样的问题?有什么建议么?谢谢。
最佳答案
解决方案取决于以下问题的答案:@XmlRootElement(name="ConnectorCommandType")
类上是否有ConnectorCommandType
批注,或@XmlElementDecl(name="ConnectorCommandType")
类中的create方法上是否有ObjectFactory
批注?
如果答案为是
您生成的模型中是否有package-info
?似乎您的JAXB (JSR-222)实现期望使用名称空间限定的文档。就像是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCommandType xmlns="YOUR_NAMESPACE_HERE">
........
</ConnectorCommandType>
想要查询更多的信息
http://blog.bdoughan.com/2010/08/jaxb-namespaces.html
http://blog.bdoughan.com/2012/07/jaxb-and-root-elements.html
如果答案是否定的
如果
ConnectorCommandType
元素未与类关联,则您需要使用采用类参数的解组方法之一。
http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html#unmarshal%28javax.xml.stream.XMLStreamReader,%20java.lang.Class%29
关于java - 解码工作不正确:javax.xml.bind.UnmarshalException:意外元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12174354/