這里介紹基于Type的連接的建立方法,仍然用上一篇基于Reference的連接中用到的例子School,有老師類和學生類,同時老師能夠指導多名學生。這種指導關系在GMF編輯器中用連接來表示,基于Type的連接就是在ecore模型中為該連接創建一個類TeacherToStudent,ecore模型對應的ecore_diagram圖形如下所示:

與上一篇的不同在于Teacher中少了表示指導關系的Reference,而是在整個模型中加入了TeacherToStudent類,這個類有兩個引用,分別指向Teacher和Student。生成school.genmodel,school.gmfgraph,school.gmftool的過程同前面一樣,只是school.gmfmap中Link Mapping的設置有些不同:

不同點在于基于Reference的連接的Domain meta information只有最后一項Target Feature需要設置為代表該連接的Reference。而這里這四項都需要設置,containment feature是指模型中包含該類的feature,Element則是代表該連接的類,source和target feature分別是該類到源和目標的引用名字。
生成的GMF編輯器中的操作是完全一樣的,如下圖:
這是查看保存semantic model的school文件,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<School:School xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:School="http://example.School">
<teachers name="ProfessorLi"/>
<students name="Sara"/>
<students name="Mike"/>
<teacherToStudents teacher="//@teachers.0" student="//@students.0"/>
<teacherToStudents teacher="//@teachers.0" student="//@students.1"/>
</School:School>
與上一篇的不同在于Teacher中少了表示指導關系的Reference,而是在整個模型中加入了TeacherToStudent類,這個類有兩個引用,分別指向Teacher和Student。生成school.genmodel,school.gmfgraph,school.gmftool的過程同前面一樣,只是school.gmfmap中Link Mapping的設置有些不同:
不同點在于基于Reference的連接的Domain meta information只有最后一項Target Feature需要設置為代表該連接的Reference。而這里這四項都需要設置,containment feature是指模型中包含該類的feature,Element則是代表該連接的類,source和target feature分別是該類到源和目標的引用名字。
生成的GMF編輯器中的操作是完全一樣的,如下圖:
這是查看保存semantic model的school文件,內容如下:







