Posted on 2007-05-07 14:10
xiaoxiaoleemin 阅读(984)
评论(1) 编辑 收藏 所属分类:
EMF
我习惯于直接用ECore Editor建立ecore模型,如果装了GMF插件的话,在ecore文件上点击鼠标右键,通过菜单“Initialize ecore-diagram diagram file”可以生成类似类图的表示,这样可以从整体上看模型。而且在建模的过程中可以随时"Validate"以检查当前存在的错误。以下是一些常见的问题:
1.Ecore Editor中根元素的直接子元素属性页中有“Ns Prefix"和"Ns URI"两项需要设置,前者可以设置为模型的名字,后者随便设置一个URI地址,如"http://"+模型名字。如果这两项不设置,那么当修改了ecore模型后,从genmodel上“Reload" ecore模型时出错。
2.某个EReference如果多重性为"0...*",则在属性页中把lower bound设置为0,upper bound设置为-1。
3.genmodel根元素的第一层子元素的属性页中,"All"类别中“prefix”属性值是指EMF生成的代码中Factory和Package等类的前缀,可以指定为模型名字,首字母大写以符合类名的习惯;“base package”属性值是生成的各个包的前缀,假设指定为“com.example"。然后有“Ecore”类别,其中的各个属性值是从ecore模型中读过来的,不可修改,其中“Package”类别下的"Name"属性值是包名的一部分(假设指定为model),接在前面的base package值之后,那么生成的Model 部分代码分别有三个包:com.example.model; com.example.model.impl; com.example.model.util.
btw:在有的GMF 版本中,如果包名存在首字母大写的单词,那么生成代码的时候会出错。