首页 > 解决方案 > 为什么 Jaxb Unmarshalling 因错误意外元素而失败。预期元素是(无)

问题描述

嗨,我正在使用以下代码解组 XML

JAXBContext jaxbContext = JAXBContext.newInstance(SummaryResults.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
jaxbUnmarshaller.setEventHandler(
  event -> {
    throw new RuntimeException(event.getMessage(),
      event.getLinkedException());
  }
);
SummaryResults summaryResults = (SummaryResults) jaxbUnmarshaller.unmarshal(new 
StringReader(xml));

这是我从 XSD 生成的 JAXB 类

@XmlType(name = "", propOrder = {
"responseHeader"
})
@XmlRootElement(name = "SummaryResults")
public class SummaryResults {

@XmlElement(name = "ResponseHeader", required = true)
protected SummaryResults.ResponseHeader responseHeader;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
public static class ResponseHeader {

    @XmlAttribute(name = "FileType")
    protected String fileType;
}
}

这是我的示例 xml

<SummaryResults>
<ResponseHeader>
<FileType>CFF</FileType>
 </ResponseHeader>
</SummaryResults>

但是当运行我的应用程序时,我收到一个错误

unexpected element (uri:"", local:"FileType"). Expected elements are (none)

如何解决问题?

标签: javajaxbunmarshalling

解决方案


推荐阅读