如何使用EMF读取XML文件?

EMF = Eclipse Modeling Framework

我必须在我的一个班级项目中使用EMF.我试图了解如何使用EMF执行以下操作:

>阅读XML,
>将值获取到对象中.
>使用ORM将对象中的值持久保存到数据库. – 完成
>使用ORM从数据库获取数据并生成XML.

我需要使用以下所有内容:EMF(不知道是什么)和JPA(DONE).

我使用过JAXB,我知道,这可以使用JAXB完成,但是(EMF == JAXB)怎么办?!

我使用EMF创建了许多java类,但是它们有很多!我在哪里实现读/写方法以及如何运行EMF项目?

谢谢

UPDATE1
暗示
http://www.eclipsezone.com/eclipse/forums/t58829.html

UPDATE2

我有架构,我使用.xsd生成了模型代码.现在我在从XML文件中读取数据时遇到了问题.

EMF使用(认的,最流行的方式)XMIResourceImpl序列化数据模型,XMIResourceImpl严格使用XMI格式,而不是自定义XML结构.

有关EMF及其用例的文章,请参阅http://eclipsedriven.blogspot.com/.

我同意其他的回答者说EMF可能不是你想要的.

如果我真的想要使用自定义XML结构的EMF(即不是XMI),我可能会使用JAXB来编组/解组我的EMF对象(EObjects).

因此,EMF与JAXB不同,它们有不同的目的和目标.事实上,你可能会以某种方式结合EMF和JAXB.我从来没有尝试过,但似乎有一些有效的用例. (正如我上面所说的,用于将EMF对象编组到/从XML解组/解组)

要了解EMF,您需要切换范例.首先删除“XML”部分,让它离开你的脑海.然后我建议你做以下事情:

>创建一个空的EMF项目.
>创建一个简单的Ecore文件(.ecore),或从Internet获取它.或者从任何XML Schema / UML文件导入到Ecore模型中.
>右键单击EClass,然后“创建动态实例”,这将创建一个.xmi文件.
>使用Eclipse打开.xmi文件,这将打开该模型的EMF编辑器.根据需要进行编辑.
>检查(编辑过的).xmi文件内容.您将看到格式与Ecore模型完全一致.您将无法更改/自定义模型< - >的映射. XMI文件,因为顾名思义,XMIResourceImpl只读取/保存XMI文件(恰好在XML之上实现),但它不读取/保存任意XML格式.

EMF支持读取/写入XML Schema元模型(即XSD文件),以便将它们转换为Ecore元模型,但不支持符合此类模式的XML文件(甚至不是Ecore),除非这些文件采用XMI格式.

要将EMF模型保存到关系数据库中,请参阅:
http://eclipsedriven.blogspot.com/2010/12/persisting-emf-objects-to-rdbms-with.html

我正在使用Teneo. (以及可选的CDO)

关于“XML”,如果您坚持使用XMI并对其满意,EMF将使您的生活更轻松,因为您不需要进行任何映射(与JAXB不同).缺点是我们的对象必须是EMF对象.

EMF对象是由EMF生成并实现EObject并直接或间接扩展EObjectImpl的对象.你通常不想手工编写EMF对象,这将是一件苦差事.另一方面,JAXB“对象”通常是纯域对象POJO,并且没有JAXB的额外要求.请注意,与JAXB不同,EMF对象不是POJO.这解释了EMF和JAXB之间的一个不同目标.他们的重叠比你想象的要少.

从XMI(而不是XML)读取非常简单:

XMIResource resource = new XMIResourceImpl(URI.create("file:/path/to/mymodel.xmi"));
resource.load(null);
System.out.println( resource.eContents().get(0) );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇