eclipse WTP项目提供了一个对使用EMF建立的model的保存方案.
这里是我自己写的一个小例子,一个datasource里包含若干个table,存在两种类型的table:ltable和stable,table又可以包含若干column。假设一个样本XML文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<data-source>
<table type="ltable" name="lt1" depart="xxx">
<column name="some">
</column>
</table>
<table type="stable" name="st1" age="1">
<column/>
</table>
</data-source>
那么我会马上使用EMF这样建立model:
这样用EMF的办法保存没有问题。
但是如果要使用WTP提供的框架来保存EMF生成的对象,这样的模型好象没有办法做到。因为WTP没有办法区分LTable和Stable。
如果一定要继承,那么应该这样用EMF建模:
如果这样建模,那么WTP持久化的结果如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<data-source>
<ltable name="lt1" depart="xxx">
<column name="some"/>
</ltable>
<stable name="st1" age="1">
<column/>
</stable>
</data-source>
明显不符合要求,因为产生了两种element(ltable和stable)。而且建立的模型也不符合常规。
解决办法:
不使用继承,如下所示:
这样通过UI来控制类型的选择和编辑,就可以达到要求。
EMF提供的持久化功能的优点是方便,快速。但是保存结果对用户来说复杂了一点。而且在多页面编辑器中,xml代码不能同步(如果手工编辑xml代码,那么在图形化编辑器下再修改并保存后会重新格式化xml代码)。
WTP提供的持久化功能优点是可以完全定制结果。保存结果简单。而且在多页面编辑器中是同步的。只是要多做一些工作。
我还是比较倾向用WTP提供的框架来保存EMF生成的对象。
参考:
Persisting EMF models with WTP
http://www.eclipse.org/articles/Article-WTP-Persisting-EMF/persisting.html
分享到:
相关推荐
Eclipse Modeling Framework (EMF)是Eclipse 的一个基于Java语言的模型构建框架,它通过提供通用 的模型框架和自动代码生成工具,极大地简化了基于结 构化模型的Eclipse插件或者应用程序的开发
通过对123种不同的,较早发表的生物医学研究进行荟萃分析,分析了100种不同的EMF频率数据,揭示了这两种观察结果。 所研究的EM频率显示了12个有益(抗癌)频率和12个有害(促癌)频率的分形模式,形成了更广泛的自...
emf和wmf文件的互转,有源码,供大家学习,交流!
EMF和BMP文件格式的相互转换:BOOL CConvertEMFToBMP::ConvertBMPToEMF(const char*pszBMPFile,const char* pszEMFFile)
总体方案.emf
emf入门教程,并附有插件。比较适合初学者
基于eclipse的EMF图形化编辑程序开发,要努力看哦!
基于Eclipse的模型框架 它是Eclipse MDA(Model Driven Architecture)的一个重要组成部分 是Eclipse中许多项目的基础 e g GEF EMF可以将模型转换成高效的 正确的 和易于定制的Java代码
详细讲述了emf和gef的用法,和模型开发过程,有很多实例的
NULL 博文链接:https://winseclone.iteye.com/blog/1797563
模型二分类.emf
emf文件是windows的一种打印格式,该资源可以对emf文件进行文本提取和推送打印机打印以及转换成图像
包含3个文件: 微软emf文件格式详解.pdf emf.hlp (Enhanced Metafiles in Win32) emfexplorer_src.zip
EMF读取XML
创建动态内存内核模型序列化动态模型反序列化/装载动态模型限制结束语下载参考资料通过本文可以了解如何使用DynamicEclipseModelingFramework(EMF)在不生成Java实现类的情况下根据需要构建动态的基于Ecore的模型。...
使用freehep将EMF转换为png,项目下载导入eclipse即可运行。
EMF 自学笔记
著名的IBM红皮书系列,包含原版和中文版 适合不同人群
矢量格式转换程序,基于JAVA实现的SVG转EMF的的示例代码,下载后导入到eclipse即可运行。
文件格式 EMF (Enhanced MetaFile) ——是在印刷工业中应用与Windows操作系统的文件格式。...EMF是设备独立性的一种格式,也就是说EMF可以始终保持着图形的精度,而无论用打印机打印出何种分辨率(dot/inch)的硬拷贝