使用EMF持久化和WTP持久化EMF对象两种方案的模型区别
来源:互联网 发布:阿里云合作伙伴有哪些 编辑:程序博客网 时间:2024/04/30 00:03
这里是我自己写的一个小例子,一个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
- 使用EMF持久化和WTP持久化EMF对象两种方案的模型区别
- 使用WTP跨文件持久化EMF对象
- EMF学习笔记(三)——使用EMF编程——持久化
- EMF学习笔记(四)——使用EMF编程——持久化(续)
- 使用 EMF Query 查询 EMF 模型
- REDIS学习(6)查看redis状态,以及rdb和aof两种持久化方案的区别
- 对象持久化的几个方案
- hibernate中使用session对象获得持久化对象get和load方法的区别
- EMF
- 【转】Hibernate 对象持久化操作的区别和联系
- 数据库和持久化方案
- TensorFlow模型的保存和持久化
- 对象的持久化
- 使用MFC::CArchive实现对象的持久化和反持久化
- 脱离eclipse的插件环境使用EMF模型
- 脱离eclipse的插件环境使用EMF模型
- 脱离eclipse的插件环境使用EMF模型
- 脱离eclipse的插件环境使用EMF模型
- GoF 23个经典的设计模式05--创建模式之单例模式(未完代续)
- IE图标显示
- C#编程规范
- BVT(Build Verification Test)
- 开博
- 使用EMF持久化和WTP持久化EMF对象两种方案的模型区别
- 第一篇 梦开始的地方
- C 编程最佳实践
- DES的建立过程
- 论坛灌水机(续二--验证码)
- Unix环境高级编程 读书笔记一
- 热烈庆祝新博访问过百 ^_^
- Vista Office2007 Exchange2007发布现场简报
- JavaScript基础的全部东东