通过xsd创建JAXB类,并获得在类的对象中解组xml的结果

时间:2019-06-20 06:30:42

标签: java xml xsd jaxb unmarshalling

通过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)

0 个答案:

没有答案