匯入 Rational Rose 內容

本主題顯示如何設定以匯入 IBM® Rational Rose® 內容。 此外,它還會說明如何查看 IBM Rational® Rhapsody® 中的已匯入內容,以及如何對 Rational Rhapsody 模型中的已匯入 Rational Rose 內容,進行後置處理。

關於這項作業

匯入 Rational Rose 模型詳細說明如何匯入 Rational Rose 模型,以及何時您還可以匯入其內容。

您必須基於工具、meta 類別及內容名稱,定義要匯入的 Rational Rose 內容,針對該內容,您必須建立 XML 對映檔。在 Rational Rhapsody 中執行匯入處理程序時,請在「匯入選項」視窗中,指向該 XML 對映檔。

設計 XML 對映檔

程序

  1. 決定要使用的 XML 對映檔。Rational Rhapsody 產品包括您可以用來設計 XML 對映檔的範例 XML 對映檔。 該範例 XML 對映檔位於 <Rational Rhapsody 安裝路徑>/Share/etc
    • rose_properties_import.xml 是基本對映檔,在該對映檔中,是屬性一般值的清單及 Rose 工具的清單。
    • rose_properties_import_java.xml 專用於匯入 Java Rational Rose 模型。
      註: XML 對映檔的預設位置及名稱是 <Rational Rhapsody 安裝路徑>/Share/etc/rose_properties_import.xml。 您可以修改 RoseInterface::Import::PropertiesXMLPath 內容,以指向 XML 對映檔的其他路徑,來變更此位置。
  2. 使用任何文字編輯器,修改 XML 對映檔。對於 XML 對映檔中的每個內容,您必須針對 Rational Rose 模型,包括其 meta 類別、工具及內容名稱。 例如,假設您在 Rational Rose 模型中具有 NewClass 類別(如下圖所示),您想要將其匯入 Rational Rhapsody
    「類別規格」視窗
    您的 XML 對映檔應包括下列對映:
    XML 對映檔

查看 Rational Rhapsody 中的已匯入 Rational Rose 內容

程序

  1. 繼續執行從 Rational Rose 匯入 NewClass 類別的範例,在 Rational Rhapsody 的瀏覽器中,展開已匯入類別所在的套件,並開啟已匯入類別的「內容」視窗。
  2. 根據是否以 Rational Rose 預設值匯入已匯入類別,執行下列動作:
    1. 如果是以內容的 Rational Rose 預設值匯入類別,請選取置換
    2. 如果以 Rational Rose 預設值以外的內容設定匯入類別,請選取本端置換。在本已匯入 NewClass 類別的範例中,其內容設定不同於類別的 Rational Rose 預設值,因此請選取本端置換,如下圖所示:
      「特性」視窗 -「內容」標籤,顯示本端置換內容

下一步

在您匯入 Rational Rose 內容之後,您必須使用 Rational Rhapsody 應用程式設計介面 (API),對模型進行後置處理。如需如何使用 Rational Rhapsody API 來處理內容的相關資訊,請參閱此說明文件

下列程式碼範例是本主題中範例的延伸,顯示您可以如何透過 Rational Rhapsody API 來擷取內容值。 此範例會使用 Model::Class::Java_Final 內容(已匯入的 Rational Rose 內容)的值 True,來列印套件中所有類別的報告。
Public Sub PrintFinalClasses(p As IRPPackage)
'
'列印從 Rose 匯入之所有最終類別名稱的常式
'
    Dim allClassifiers As RPCollection
    Set allClassifiers = p.nestedClassifiers
    Dim c As RPClassifier
    For Each c In allClassifiers
        isClass = c.isOfMetaClass("Class")
        If isClass Then
            On Error Resume Next
            If c.getPropertyValue("Model.Class.Java_Final") = "True" Then
                Print c.getFullPathName
            End If
        End If
    Next
End Sub

回饋