轉換編寫的版本注意事項

© Copyright International Business Machines Corporation 2006. All rights reserved.US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

版本注意事項

1.0 限制
   1.1 建立模型至 UML 的對映時,不會自動對映預設的 UML 設定檔
   1.2 在模型至模型的轉換中,融合支援僅適用於有 contentTypes 延伸的目標模型
   1.3 在編寫模型至模型的轉換時,您指定為輸入或輸出的 Ecore 模型必須有相對應的 genmodel
   1.4 在模型至模型轉換配置中,必須指定檔案做為目標儲存器
   1.5 轉換編寫與 JET 轉換不會自動整合
2.0 已知的問題和暫行解決方法
   2.1 UML Meta 模型不會自動新增至模型至模型對映
   2.2 在「對映編輯器」中,轉換的 "to" 和 "from" 過濾內容呈現毀損
   2.3 在對映檔中刪除模型的唯一參照會導致從對映檔中除去模型
   2.4 如果合併模式為 automatic 或 visual,則在模型至模型轉換配置編輯器中可以選取 runSilent 選項
   2.5 使用已登錄的設定檔從模型對映至 uml 時,如果不使用設定檔的登錄 id,則會發生合併錯誤
   2.6 從對映模型產生程式碼時,不會重新產生基本專案檔,包括 'plugin.xml' 和 'MANIFEST.MF'

1.0 限制

1.1 建立模型至 UML 的對映時,不會自動對映預設的 UML 設定檔

在編寫模型至模型的轉換時,如果目標是 UML 2 模型,則不會自動對映預設的 UML 設定檔。例如,不會自動對映 default.epx UML 設定檔。必須手動對映這些設定檔,或採用 UMLDefaultLibrariesAddRule 架構。如果目標是 UML 模型 EClass,您可以手動將這個架構新增至轉換。

若要將架構新增至轉換,請將下列程式碼新增至轉換:

    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated NOT
     */
    protected void addTransformElements(Registry registry) {
 add(new UMLDefaultLibrariesAddRule());
     addGeneratedTransformElements(registry);
     // 在這裡,您可以在產生的轉換元素後面新增更多轉換元素
     // 請記得移除 @generated 標示或加上 NOT
    }

1.2 在模型至模型的轉換中,融合支援僅適用於有 contentTypes 延伸的目標模型

在編寫模型至模型的轉換時,若要在目標模型中使用「融合」支援,則 Eclipse 工作區的外掛程式中必須有 "org.eclipse.core.runtime.contentTypes" 延伸。 您可以在網域名稱衍生自目標模型網域的外掛程式中指定此延伸。如需此延伸的相關資訊,請參閱「比較/合併」專案的延伸點文件。這可讓您為目標模型製定更準確的融合策略。若為較簡單的 EMF 策略,您可以指定下列延伸(將 "xxx" 改為您的目標檔副檔名):

<extension
  point="org.eclipse.core.runtime.contentTypes">
  <file-association
   content-type="com.ibm.xtools.comparemerge.emf.emfContentType"
  file-extensions="xxx"/>
 </extension>

1.3 在編寫模型至模型的轉換時,您指定為輸入或輸出的 Ecore 模型必須有相對應的 genmodel

在編寫模型至模型的轉換時,您指定為輸入或輸出的 Ecore 模型必須有相對應的 genmodel。您可以利用「EMF 模型」精靈來建立 genmodel。 請確定在建立 genmodel 之後才產生程式碼。genmodel 必須登錄在開發工作台,不然就必須在相對應的 Ecore 模型的相同路徑中。 genmodel 必須有 .genmodel 副檔名,且要有類似 Ecore 模型的名稱和相同的大小寫。 否則,轉換編寫引擎會找不到 genmodel。如果轉換編寫引擎找不到所需的 genmodel,則會停止產生程式碼。

1.4 在模型至模型轉換配置中,必須指定檔案做為目標儲存器

在建立模型至模型轉換的轉換配置時,必須指定代表目標模型的檔案,即使檔案空白也一樣。您不能指定 URI 做為目標儲存器。

若要建立空的 Ecore 模型,請在轉換配置編輯器或精靈的「主要」頁面上,按一下建立新的目標儲存器按鈕,並指定和目標模型的副檔名一樣的檔案。

1.5 轉換編寫與 JET 轉換不會自動整合

若要將前端的模型至模型轉換整合至 JET(模型至文字)轉換,您必須手動將 JETRule 架構的實例新增至轉換提供者中的 RootTransformation 的 'postProcessing' 規則。 下列範例顯示必須在轉換提供類別中加入的程式碼。必須將 'xxx' 改為 JET 轉換的 id。

    /**
     * 建立根轉換。在這裡可以將更多規則新增至轉換
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param transform 根轉換
     * @generated NOT
     */
    protected RootTransformation createRootTransformation(ITransformationDescriptor descriptor) {
        return new RootTransformation(descriptor, new MainTransform()) {
                   protected void addPostProcessingRules() {
                            add(new JETRule("xxx"));
                   }
        };
   }

2.0 已知的問題和暫行解決方法

2.1 UML Meta 模型不會自動新增至模型至模型對映

若要產生可輸入或輸出 UML 模型的轉換,請指定 UML Meta 模型做為對映規格的根輸入、根輸出或兩者。將 UML 設定檔新增至對映規格並不會自動新增 UML Meta 模型。

暫行解決方法:在「模型至模型轉換對映」精靈和編輯器中按一下「新增模型」按鈕,新增 UML Meta 模型。

2.2 在「對映編輯器」中,轉換的 "to" 和 "from" 過濾內容呈現毀損

如果使用者將特性過濾從「基本」切換成「中級」或「進階」模式,然後建立對映,之後又切回「基本」過濾模式,則對映連接器的端點可能消失。 這會導致有端點的對映連接器變成沒有連接任何項目。這只影響對映的外觀。對映及轉換從對映產生的程式碼不受影響。

暫行解決方法:只要指定對映建立時所用的過濾模式,就可以更正對映的外觀。

2.3 在對映檔中刪除模型的唯一參照會導致從對映檔中除去模型

當對映檔中已無對映指定模型的元素做為對映輸入或輸出時,將會從對映檔中「除去」模型。刪除對映輸入或輸出時會檢查是否存在未用的模型。對映檔中會個別維護輸入及輸出的清單。

暫行解決方法:必須將模型新增至對映檔,才能從模型中選取元素做為對映輸入或輸出。請在「對映編輯器」中按一下新增模型按鈕,將模型新增至對映檔。

2.4 如果合併模式為 automatic 或 visual,則在模型至模型轉換配置編輯器中可以選取 runSilent 選項

在產生的模型至模型轉換的轉換配置編輯器中,runSilent 選項可以搭配任何合併模式來指定,包括 'automatic' 或 'visual'。如果合併模式設為 automatic 或 visual,當目標模型中有融合支援時,runSilent 選項會強制採取無聲合併策略。否則會採用置換合併策略。

2.5 使用已登錄的設定檔從模型對映至 uml 時,如果不使用設定檔的登錄 id,則會發生合併錯誤

使用設定檔來建立從 Ecore Meta 模型至 UML Meta 模型的轉換對映模型時,請驗證將在目標 UML 模型中使用的設定檔 URI。預設會使用您在對映編輯器中指定的設定檔 URI。如果指定資源 URI,則會轉換成同等的外掛程式 URI。

暫行解決方法:在內容頁面上,您可以在 profileURI override 內容中指定不同的 URI。請按一下對映編輯器的根區段來顯示內容頁。附註:如果使用登錄的設定檔,您可以指定設定檔所登錄的 URI(如果不同於自動使用的設定檔)。否則會造成登錄的設定檔在資源集裡載入多次,導致合併或融合發生問題。

2.6 從對映模型產生程式碼時,不會重新產生基本專案檔,包括 'plugin.xml' 和 'MANIFEST.MF'

在模型至模型轉換中從對映模型產生程式碼時,如果找不到基本的專案檔,例如 plugin.xml 和 manifest.mf,則會自動產生。產生之後,您可能需要編輯這些檔案。

暫行解決方法: