通过Jaxb,使用(xjc -d C:\ temp -p proj path * xsd *)(以cmd为单位)从xsd文件创建了一个类,同时使用同一类对象读取将我们使用过xsd的xml文件解组的结果。
错误:javax.xml.bind.JAXBElement无法转换为 TypeConversionSteps.Conversion.ESPARKType。
conversion cmd命令:xjc -d C:\ temp -p MarshalAnd C:\ Users \ shuklqq \ Documents \ MarshalAndUnmarshal \ OCLEntry.xsd
解组码
public void unmarshal() throws JAXBException , IOException{
try{
ESPARKType test1 = new ESPARKType();
JAXBContext context = JAXBContext.newInstance(ESPARKType.class.getPackage().getName());
System.out.println (context.createUnmarshaller().unmarshal(new FileReader("C:\\Users\\shuklqq\\Documents\\Conversion\\target\\OCL.xml")));
test1 = (ESPARKType)context.createUnmarshaller().unmarshal(new FileReader("C:\\Users\\shuklqq\\Documents\\Conversion\\target\\OCL.xml"));
System.out.println(test1);
}catch (Exception e){
System.out.println("ERROR "+e.getMessage());
e.printStackTrace();
}
}
错误消息:
javax.xml.bind.JAXBElement@4459eb14错误javax.xml.bind.JAXBElement 无法转换为TypeConversionSteps.Conversion.ESPARKType java.lang.ClassCastException:javax.xml.bind.JAXBElement不能为 转换为TypeConversionSteps.Conversion.ESPARKType TypeConversionSteps.Conversion.ApplicationUnmarshalling.unmarshal(ApplicationUnmarshalling.java:18) 在 TypeConversionSteps.Conversion.ConversionApplication.main(ConversionApplication.java:15)