将XML文件加载到ecore模型中(反序列化)

时间:2014-03-07 16:41:26

标签: java xml eclipse xml-deserialization eclipse-emf

这真的让我神经紧张......

我已经启动并运行了所有ecore模型,但我无法将XML文件加载到这些模型中。这是我用来执行此操作的代码:

        ResultType res = ScheduleTableFactory.eINSTANCE.createResultType(); 
    ByteArrayInputStream is;

    try {

        /* Read XML file to a string and send it to a buffer */
        is = new ByteArrayInputStream((this.xml2String(fileName)).getBytes("UTF-8"));

        ResourceSet rs = new ResourceSetImpl();
        rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml", 
        new ScheduleTableResourceFactoryImpl());

        Map options = new Properties();

        // Just a dummy url to specify the type of the document
        URI uri = URI.createURI("http://www.baderous.de/doomz/trankz.xml");
        ScheduleTableResourceImpl resource = (ScheduleTableResourceImpl) rs.createResource(uri);    

        ((org.eclipse.emf.ecore.resource.Resource) resource).load(is, options);
    }
    catch (IOException e) {

        e.printStackTrace();
        System.exit(0);
    }

经过长时间的努力,现在它已经到达了try块内的最后一个方法,但它给了我这个错误:

org.eclipse.emf.ecore.resource.Resource $ IOWrappedException:Value'2013-04-23.07:55:00'不合法。 (http://www.baderous.de/doomz/trankz.xml,4,56)

我想在这个描述中更精确,但我对EMF很新,所以我会坚持基础。如果你能在这个问题上帮助我,我将非常感激。

提前致谢!

2 个答案:

答案 0 :(得分:1)

尝试在区块CDATA中附加值“2013-04-23.07:55:00”。

答案 1 :(得分:0)

问题是日期格式无法处理,所以我不得不在EMf中编辑模型,现在我将日期视为字符串。现在一切正常!

希望将来某人可以从这个答案中受益,并节省一些时间。