EMF = Eclipse建模框架
我必须在一个课堂项目中使用EMF。我正在尝试了解如何使用EMF执行以下操作:
我需要使用EMF(不知道是什么)和JPA(完成)来完成所有这些操作。
我使用过JAXB,我知道,可以使用JAXB完成,但是(EMF == JAXB)怎么样?
我使用EMF创建了许多Java类,但是它们太多了!我在哪里实现读/写方法,以及如何运行EMF项目?
谢谢
UPDATE1 提示
http://www.eclipsezone.com/eclipse/forums/t58829.html
更新2
我有架构,并且已经使用.xsd生成了模型代码。现在,我在从XML文件读取数据时遇到问题。
EMF使用XMIResourceImpl(默认,最流行的方式)序列化数据模型,该模型 严格使用XMI格式,而不是自定义XML结构 。
有关EMF及其使用案例的文章,请参见http://eclipsedriven.blogspot.com/。
我同意其他答复者的观点,EMF可能不是您想要的。
如果我真的想使用带有自定义XML结构的EMF(即非XMI),则可能会使用JAXB来编组/解组我的EMF对象(EObjects)。
因此,EMF与JAXB不同,它们具有不同的目的和目标。实际上,您可能可以以某种方式组合EMF和JAXB。我从未尝试过,但似乎存在有效的用例。(如上所述,用于将EMF对象编组到XML或从XML编组)
要了解EMF,您需要切换范例。首先,删除“ 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) );
问题内容: 我需要使用Java读取XML文件。它的内容就像 是否有特殊的阅读器/ JAR,还是应该使用 FileInputStream进行 阅读? 问题答案: 另一个建议:尝试使用Commons消化器。这使您可以使用基于规则的方法非常快速地开发解析代码。有一个教程在这里和图书馆可在这里 我也同意Brian和Alzoid的观点,因为JAXB非常适合快速启动和运行。您可以使用JDK附带的xjc绑定编译
我试图从XML文件中读入一些数据,但遇到了一些问题,我的XML如下所示: 我试图将这些值作为字符串读入Java程序,到目前为止,我已经编写了以下代码: 我正在努力读取和打印id、用户名等的值。
我在三个阶段阅读xml文件,在每个阶段,我对不同的元素感兴趣,基于输入参数。 使用XMLStreamReader多次读取一个xml文件的最佳方法是什么? 其中inputStream是FileInputStream实例 目前,我得到了StreamClosed异常或streamReader。当我开始第二阶段读取时,hasNext()为false。
显然,是一种新的建议的HTTP请求方式,所以我尝试使用它向美味的API发出请求,它返回一个XML响应。我得到的是: 但是,它会在位上引发异常, 其他信息:无法加载文件或程序集“NewtonSoft.json,Version=4.5.0.0,Culture=Neutral,PublicKeyToken=30AD4FE6B2A6AEED”或其依赖项之一.系统找不到指定的文件。 也许我错过了一些集会,但
问题内容: 我努力了: 找到错误消息: 另外,我尝试使用并得到了相同的错误消息,甚至使用beanshell脚本也是如此: 问题答案: 尝试以下方法: 将Beanshell Sampler添加到您的测试计划 将以下代码放入采样器的“脚本”区域: 将调试采样器和查看结果树侦听器添加到您的测试计划 运行测试 确保Beanshell Sampler为绿色并且已设置变量。如果不是,请查看 jmeter.lo