锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鐜板湪鏉ヨ璁轟竴涓媏mf鎵鐢熸垚鐨勫嚑涓猵lugin銆備竴鑸氳繃ecore妯″瀷鍙互鐢熸垚涓変釜鎻掍歡鍒嗗埆鏄痚mf妯″瀷錛宔mf.edit鍜宔mf.editor銆?BR>璁╂垜浠幇鍦ㄧ湅妯″瀷鎻掍歡
瀵逛簬鎵鏈夌殑EPackage錛岄兘浼氱敓鎴愪袱涓垨涓変釜java package錛屾湰鍒槸base package(*)錛宨mplemention package(*.impl),tool package(*.util)銆傚叾涓紝絎笁涓寘鏄彲閫夌殑錛岃繖鍙栧喅浜庣敓鎴愬睘鎬х殑璁劇疆錛岄粯璁ゆ槸鐢熸垚銆傚寘鍚?*)涔熸槸鍦ㄧ敓鎴愬睘鎬т腑璁劇疆鐨勩?BR> 瀵逛簬鎵鏈塃Class錛屽湪base package涓敓鎴愮浉搴旂殑interface錛岃屽叾java瀹炵幇鍒欏湪impl鍖呬腑錛屽鏋滀竴涓狤Class緇ф壙浜庡彟涓涓狤Class錛岄偅涔堢敓鎴愮殑interface鍜宨mplemention閮界戶鎵夸簬鐩稿簲鐨勮秴綾葷殑interface鍜宨mplemention銆傚鏋滆繖涓被鏈夊涓秴綾伙紝閭d箞鍦╡SuperTypes涓殑絎竴涓猚lass灝嗕綔涓轟富瓚呯被(primary supertype)銆傚浜庤繖涓瓙綾葷殑瀹炵幇瀹冨皢緇ф壙涓昏秴綾葷殑瀹炵幇錛屽茍涓斿疄鐜板叾浠栬秴綾繪帴鍙d腑鐨勬柟娉曘?BR> 瀵逛簬Feature錛実etter鍜宻etter鏂規硶鍦ㄧ被鍜屾帴鍙d腑琚畾涔夈傚鏋滀竴涓竴涓猣eature錛堟垚鍛樺彉閲忥級涓嶆槸volatile錛岄偅涔堝畠鐨勫間細琚瓨鍌ㄥ湪涓涓噺鍊鹼紙field錛変腑銆傚鏋滀竴涓猣eature鏄彧璇葷殑錛岄偅涔堝彧鐢熸垚瀹冨搴旂殑getter鏂規硶銆傚浜庡鍊煎睘鎬т竴鑸嬌鐢‥List琛ㄧず錛岃屽崟鍊煎氨鐢ㄩ偅涓睘鎬х殑綾誨瀷琛ㄧず銆侲List鐨勭被鍨嬪彇鍐充簬妯″瀷鐨勭害鏉燂紝渚嬪錛屼竴涓猲on-containment reference灝嗕細浣跨敤EObjectWithInverseResolvingEList,瀵逛簬涓涓猚ontainment reference灝嗕細浣跨敤EObjectContainmentWithInverseEList琛ㄧず銆?BR> 瀵逛簬Operation錛屽湪鍖呭惈綾?containing class)鐨勬帴鍙d腑鐢熸垚涓涓叕鍏辨柟娉曟爣絳撅紝鍦ㄥ搴旂殑瀹炵幇涓敓鎴愬疄鐜伴鏋躲?BR> 瀵逛簬DataType錛屽叾涓璄Enum浜х敓浜庝竴涓戶鎵夸簡org.eclipse.common.util.AbstractEnumerator鐨勫疄鐜般傚浜庡叾浠栫殑EDataType錛屾槸娌℃湁鎺ュ彛鍜屽疄鐜扮敓鎴愮殑錛屽畠浠殑瀹炰緥鍖栫被灝辨槸鐩存帴浣跨敤浜咵Attribute鐨勭被鍨嬨?BR>鍐嶆潵鐪嬬湅edit鎻掍歡錛?BR> 瀵逛簬edit鎻掍歡provider package涓殑鎵鏈夌被閮芥湁鐩稿簲鐨処temProviders綾葷敓鎴愩傛洿榪涗竴姝ワ紝瀵逛簬鏁翠釜鎻掍歡鏈変竴涓狤MFPluginClass鐢熸垚銆侷temProvider綾葷戶鎵夸簬org.eclipse.emf.edit.provider.ItemProviderAdaptor錛岀敤浜庨傞厤妯″瀷涓浉搴旂殑EObject錛堟墍鏈塭mf綾葷殑鍩虹被錛夈傚綋妯″瀷瀵硅薄鐢變簬fireNotifyChanged()鏀瑰彉錛孖temProvider浼氫紶閫佺浉搴旂殑閫氱煡錛屽茍榪囨護鍏朵粬鐨勩傚綋浣犵敓鎴愭彃浠舵椂錛屼綘鍙互鎺у埗鍝簺閫氱煡琚繃婊ゃ?BR> ItemProvider涔熺鐞嗗睘鎬ф弿榪幫紙property descriptors錛夊浜庢墍鏈夌殑featur of the class錛岄氳繃getImage鍜実etText鏂規硶鏉ョ鐞嗙被鐨刬con鍜宒escrition銆?BR> 瀵逛簬鎵鏈夌殑ItemProvider閮芥湁涓涓狪temProviderAdaptorFactory銆?BR>鏈鍚庢椂editor鎻掍歡錛?BR> 瀵逛簬鎵鏈夌殑妯″瀷閮戒細鍐峱resentation package涓敓鎴愪笁涓被銆?BR> 涓涓欏電紪杈戝櫒錛屽畠緇欐ā鍨嬪垱寤哄嚑涓笉鍚岀殑jface viewer錛屽寘鍚竴涓猅reeViewer錛屼嬌鐢╡dit鎻掍歡涓殑ItemProvider浣滀負榪欎釜treeviewer鐨刢ontent鍜宭abel鐨刾rovider銆傝繖涓猠ditor榪樺垱寤簅utline鍜宲roperty鏉ユ樉紺哄湪viewer涓変腑瀵硅薄鐨勫睘鎬с?BR> 涓涓狝ctionBarContributor錛屽畠琚敤浜庡緙栬緫鍣ㄨ鍥句腑閫変腑鐨刬tem鎵鍒涘緩鐨刢ontext menu娣誨姞閫夐」銆?BR> 鏈鍚庢槸涓涓悜瀵鹼紝鍏佽浣犲垱寤轟竴涓寘鍚ā鍨嬪璞$殑涓涓疄渚嬬殑璧勬簮(resource)銆?/P>
EMF is part of the Model Driver Architecture(MDA).MDA鏄皢鏁翠釜搴旂敤杞歡鐢熷瓨鍛ㄦ湡鐨勫紑鍙戠鐞嗛兘闆嗕腑浜庢ā鍨嬩笂銆傝繖縐嶆ā鍨嬫槸鐢ㄥ厓妯″瀷(meta-model)瀹氫箟鐨勩傜劧鍚庯紝浣跨敤鏄犲皠錛屾ā鍨嬭鐢ㄤ簬鐢熸垚software artefacts, 榪欏氨瀹炵幇浜嗘暣涓郴緇熴?BR>EMF鎵鑳藉仛鐨勶細emf鑳藉鐢ㄤ簬鎻忚堪鍜屾瀯寤烘ā鍨嬨傛墍瀹炵幇鐨勬ā鍨嬪彲浠ヨ鐢ㄤ簬浠諱綍java搴旂敤紼嬪簭鐨勫紑鍙戙?BR>瀵逛簬ecore妯″瀷鎴戜滑鏈夊嚑鐐歸渶瑕佹敞鎰忥細
1銆傚湪ecore鏂囦歡鐨剎mi鎻忚堪涓病鏈夊悇涓厓绱犱箣闂寸殑鑱旂郴錛屾垜浠嬌鐢‥Reference鏉ヨ〃紺哄悇涓厓绱犱箣闂寸殑鑱旂郴銆?BR> 瀵逛簬涓や釜鏂瑰悜涓婄殑鑱旂郴錛岄氳繃涓や釜鎴愬鐨凟Reference鏉ヨ〃紺猴紝姣忎釜鑱旂郴鐨勭被錛岄兘鏈変竴涓猠Opposite鏉ヤ繚瀛樺畠鑷繁鍦ㄦ墍鑱旂郴綾諱腑鐨勫悕瀛楋紙寮曠敤錛夈?BR> 瀵逛簬鍗曟柟鍚戜笂鐨勮仈緋伙紝浣跨敤涓涓崟鐙殑EReference錛屽茍涓旇繖涓猺eference娌℃湁eOpposite錛堝洜涓哄鏂瑰茍娌℃湁瀵硅嚜宸辯殑寮曠敤錛夈?BR> 榪炴帴鐨勫閲嶆ч氳繃upperBound鍜宭owerBound鏉ヨ〃紺恒傚涓敤-1銆?BR>2銆備嬌鐢‥Package鍙互鍍廽ava涓殑package涓鏍風敤銆?BR>3銆備袱縐嶆ā鍨嬶紝涓縐嶆槸涓氬姟妯″瀷錛屼竴縐嶆槸瑙嗗浘妯″瀷銆備竴鑸皢涓ょ妯″瀷鏀懼湪涓嶅悓鐨刾ackage涓備袱縐嶆柟娉曞皢涓ょ妯″瀷鑱旂郴璧鋒潵錛?BR> 涓鏄瀯寤轟竴涓柊package錛屾瀯寤轟竴涓閲嶇戶鎵跨殑鏂皃ackage鏉ュ皢涓や釜package鑱旂郴璧鋒潵銆?BR> 浜屾槸灝嗕袱縐嶆ā鍨嬪垎寮瀛樺偍錛屾坊鍔犱粠瑙嗗浘妯″瀷鍒頒笟鍔℃ā鍨嬬殑寮曠敤銆傝繖縐嶆柟娉曚袱涓ā鍨嬫槸鏉捐﹀悎鐨勩傝繖縐嶅崟鏂瑰悜鐨勫紩鐢ㄤ篃涓嶄細鐮村潖錛堟薄鏌擄級涓氬姟妯″瀷銆傛敞鎰忥紝鐢變簬榪欑寮曠敤鏄袱涓猵ackage涔嬮棿鐨勶紝鎵浠ュ湪縐葷敤鐨別Type綾誨瀷涓渶瑕佹寚鏄庡寘鍚嶃?nbsp;
闄ゆ涔嬪錛宔core榪樻彁渚涗簡涓縐嶉掑綊鐨勫畾涔夋柟娉曘傚氨鏄嬌鐢╡SubPackage鏉ュ垎鍒寘鍚笟鍔℃ā鍨嬪拰瑙嗗浘妯″瀷錛屽茍涓斿湪榪欎袱涓猻ubPackage闂村緩绔媟eference錛堝浜巔ackage鏉ヨ鏄嚜宸卞紩鐢ㄨ嚜宸憋級銆?BR>4銆傛垜浠彲浠ユ湁澶氱鏂規硶鏉ョ敓鎴恊core妯″瀷銆傞氳繃娉ㄩ噴鐨刯ava鎺ュ彛(annotated java interface),閫氳繃rantional rose鍒涘緩妯″瀷錛岄氳繃XML Schema絳夌瓑銆?/P>