gpt4 book ai didi

java - JAXB 解码时出错

转载 作者:行者123 更新时间:2023-12-02 05:23:01 25 4
gpt4 key购买 nike

我创建了一个非常基本的 XML 来理解 JAXB 概念。这是 XML 文件

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>

<Abc>

<Module> India </Module>

</Abc>

创建的 Java 类是,

package oracle.ERP.Cloud.Client2;

import java.util.ArrayList;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

//Below annotation defines root element of XML file
@XmlRootElement
public class Abc{

private String Module;

public String getModule() {
System.out.println("Hi");
return Module;
}

@XmlElement
public void setModule(String Module) {
this.Module = Module;
}

}

用于解码的 Java 文件是

package oracle.ERP.Cloud.client2;

import java.io.File;

import java.io.PrintStream;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;

import oracle.ERP.Cloud.Client2.Abc;
import oracle.ERP.Cloud.client.Country;

public class JAXBXMLToJava {

public static void main(String Args[]) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{oracle.ERP.Cloud.Client2.Abc.class});
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
File XMLFile = new File("C:\\Users\\NRENTALA\\Desktop\\Analysis\\AbcXML.xml");
oracle.ERP.Cloud.Client2.Abc summary = oracle.ERP.Cloud.Client2.Abc)unmarshaller.unmarshal(XMLFile);
System.out.println("Country Name is : "+ summary.getModule());
}

catch(JAXBException e) {
e.printStackTrace();
}
}
}

当我尝试编译它时,我收到此错误

    javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Abc"). Expected elements are <{}abc>

请帮我看看问题出在哪里?第一次尝试这个。

最佳答案

XML 区分大小写,因此如果您的架构指定根元素名为“abc”(如错误消息所示),它将无法解析“Abc”。看看this question .

要实现不区分大小写的解析,请查看 this blog作者:Blaise Doughan,JAXB 规范和实现背后的人员之一。

关于java - JAXB 解码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26338989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com