解组工作不正确:javax.xml.bind.UnmarshalException:意外元素

时间:2012-08-29 09:06:27

标签: java xml jaxb

得到例外

javax.xml.bind.UnmarshalException: unexpected element 
(uri:"", local:"ConnectorCommandType")

尝试解组xml,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  <ConnectorCommandType> ........ </ConnectorCommandType>

该异常基本上表示在jaxb上下文中找不到该元素。但调试显示此类在当前jaxb上下文中存在且已知。 ConnectorCommandType类是从xsd xml生成为<xs:complexType>元素。

xsd可能有错误吗?

有没有人遇到这样的问题?有什么建议?感谢。

1 个答案:

答案 0 :(得分:1)

解决方案取决于以下问题的答案:

@XmlRootElement(name="ConnectorCommandType")类上是否有ConnectorCommandType注释,@XmlElementDecl(name="ConnectorCommandType")类中的创建方法上有ObjectFactory

如果答案是肯定

生成的模型中是否有package-info?看起来好像您的JAXB (JSR-222)实现期望一个名称空间限定文档。类似的东西:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCommandType xmlns="YOUR_NAMESPACE_HERE">
     ........ 
</ConnectorCommandType>

了解更多信息

如果答案为否

如果ConnectorCommandType元素与某个类没有关联,那么您需要 使用一个带有类参数的unmarshal方法。