javax.xml.bind.UnmarshalException:意外元素(uri:“”,本地:"ClientConfigData")。预期元素是 <{}clientConfigData>
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"ClientConfigData"). Expected elements are <{}clientConfigData>
我收到上述错误。添加代码片段以更多地了解我在做什么。请看看并提供帮助。提前致谢。
我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<ClientConfigData>
<requestType>type1</requestType>
<refreshEnable>false</refreshEnable>
<compressionEnable>false</compressionEnable>
<transformationEnable>true</transformationEnable>
...
</ClientConfigData>
我的Java:
@XmlRootElement
public class ClientConfigData {
private String requestType;
private boolean refreshEnable;
private boolean compressionEnable;
private boolean transformationEnable;
...
}
在这里,我正在从 xml:
创建 java 对象
File configFile = new File(classLoader.getResource("ClientRegistration.xml").getFile());
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance(ClientConfigData.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
ClientConfigData configData= (ClientConfigData) jaxbUnmarshaller.unmarshal(configFile);
System.out.println(configData);
} catch (JAXBException e) {
e.printStackTrace();
}
您应该将限定的根元素名称添加到 @XmlRootElement
注释中。在你的情况下它将是:
@XmlRootElement(name = "ClientConfigData")
默认情况下 JAXB
搜索 clientConfigData
(首字母小写)。
我收到上述错误。添加代码片段以更多地了解我在做什么。请看看并提供帮助。提前致谢。 我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<ClientConfigData>
<requestType>type1</requestType>
<refreshEnable>false</refreshEnable>
<compressionEnable>false</compressionEnable>
<transformationEnable>true</transformationEnable>
...
</ClientConfigData>
我的Java:
@XmlRootElement
public class ClientConfigData {
private String requestType;
private boolean refreshEnable;
private boolean compressionEnable;
private boolean transformationEnable;
...
}
在这里,我正在从 xml:
创建 java 对象File configFile = new File(classLoader.getResource("ClientRegistration.xml").getFile());
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance(ClientConfigData.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
ClientConfigData configData= (ClientConfigData) jaxbUnmarshaller.unmarshal(configFile);
System.out.println(configData);
} catch (JAXBException e) {
e.printStackTrace();
}
您应该将限定的根元素名称添加到 @XmlRootElement
注释中。在你的情况下它将是:
@XmlRootElement(name = "ClientConfigData")
默认情况下 JAXB
搜索 clientConfigData
(首字母小写)。