EMF鐨勫叏縐版槸Eclipse Modeling Framework. 瀹冩槸Eclipse MDA錛?/span>Model Driven Architecture錛夌殑涓涓噸瑕佺粍鎴愰儴鍒嗭紝鏄?/span>Eclipse涓澶氶」鐩殑鍩虹( e.g, GEF)錛?/span> EMF鍙互灝嗘ā鍨嬭漿鎹㈡垚楂樻晥鐨勶紝姝g‘鐨勶紝鍜屾槗浜庡畾鍒剁殑Java浠g爜銆?/span>EMF欏圭洰鐨勬渶鍒濈洰鏍囨槸瑕佸疄鐜?/span>OMG(Object Management Group)鐨?/span>MOF瑙勮寖錛?/span>Meta Object Facility錛夈傚湪欏圭洰鐨勮繘琛屼腑EMF鐨勫紑鍙戜漢鍛樻牴鎹ぇ閲忕殑瀹炶返緇忛獙瀵?/span>MOF瑙勮寖榪涜浜嗗啀鍔犲伐錛屾彁鍙栧嚭浜嗕竴浜涙牳蹇冪殑鍏冪礌闆嗭紙MOF 2.0 涓О涓?/span>EMOF錛?/span>Essential MOF錛夛級銆傚彲浠ヨEMF 鏄?/span>MOF鏍稿績瀛愰泦鐨?/span>java楂樻晥瀹炵幇錛屽湪EMF 涓?/span>MOF鏍稿績瀛愰泦鐨勫疄鐜扮О涓?/span>Ecore銆?br>
褰撳墠EMF鐢變笁涓儴鍒嗙粍鎴愶細
1錛?/span>EMF.Core(EMF鐨勬牳蹇冩垨鍩虹)錛屽寘鎷竴涓敤浜庢弿榪版ā鍨嬬殑meta model,縐頒負Ecore錛屽畠瀹炵幇浜?/span>MOF鐨勬牳蹇冨厓绱犻泦銆傝繕鍖呮嫭涓浜?/span>runtime
support,濡傦細妯″瀷鏀瑰彉閫氱煡錛?/span>org.eclipse.emf.common.notify
鍖呬腑瀹氫箟浜嗕竴浜涙帴鍙g敤浜庡疄鐜拌繖涓満鍒訛級錛屾ā鍨嬫寔涔呭寲錛堥粯璁ゆ槸XMI
serialization錛夛紝楂樻晥鐨?/span>Reflective
API for manipulating EMF objects generically.
2錛?/span>EMF.Edit錛?/span>include generic reusable classes for building
editors for EMF models. It provides:
(1).Content
and label provider classes, property source support, and other convenience
classes that allow EMF models to be displayed using standard desktop (JFace)
viewers and property sheets.
(2).
A commond framework, including a set of generic commond implementation classes
for building editors that support fully automatic undo and redo.
3錛?/span>EMF.Codegen錛氱敤浜庝駭鐢?/span>EMF妯″瀷鐨?/span>java浠g爜銆?br>
鎴戜滑鐭ラ亾model鏄氳繃瀹冪殑meta model鏉ユ弿榪扮殑錛岄偅涔?/span>EMF model鐨?/span>meta model 鏄粈涔堝憿錛熷湪Eclipse涓?/span>EMF model 鐨?/span>meta model縐頒負Ecore, Ecore model鏄嚜鎻忚堪鐨勶紙self-description錛夛紝鎵浠?/span>Ecore model鏈韓涔熸槸涓涓?/span>EMF model.
鏈夊嚑縐嶆柟寮忓彲浠ュ緱鍒頒竴涓?/span>EMF
model:
1.
閫氳繃鏂囨湰緙栬緫鍣ㄧ洿鎺ョ紪杈戜竴涓?/span>model鏂囦歡錛?/span>XMI鏍煎紡錛夈?/span>
2.
閫氳繃Annotated Java code銆?/span>
3.
XML schema
4.
Rose class model.