Eclipse 平台 XML 比較

XML 比較外掛程式可讓您將兩個 XML 文件進行結構化比較。 它會傳回一個差異樹狀結構,指出哪些 XML 元素已被加入或移除,以及(修改過的 XML 元素)屬性或主體內容有哪些差異。

安裝外掛程式

使用外掛程式

在以副檔名 .xml 比較檔案時,會自動採用外掛程式。
依預設,XML 比較會使用未排序的比較方法,這個方法並不考慮 XML 元素在文件中的出現順序, 而是選出最相似的元素,作為相符的元素。 另外還有一個排好順序的比較方法,它完全按照它們出現在文件中的順序來比較 XML 元素。 不過,在大部分的情況下,這個方法用處不大。
您可以從結構視圖的工具列的下拉清單,來變更這個比較方法。

如果 XML 文件所含的元素,可以由某個屬性或子項元素的文字專門識別,則我們建議您為這類型的 XML 文件,建立一個 ID 對映架構。

請參閱指導教學和範例,以取得使用外掛程式的詳細資訊。

ID 對映方法

ID 對映架構可以為 XML 元素,指定一個專門識別這個元素的屬性或子項元素文字。 此舉可以確保在比較程序中比對正確的元素,並且得以彼此比對。 如果沒有指定任何 ID 對映給 XML 元素,則採用一般的比對演算法。 不過,一般比對演算法不見得都會傳回您所要的結果。 因為一般比對演算法是在兩個被剖析的樹狀結構中比對節點,把差異降到最低。 不過常會發生一種情形,就是兩個被比對的 XML 元素雖然在結構上很類似,但卻代表兩個完全不同的資訊實體。

排好順序的項目

使用預設的未排序比較時(不一定有 ID 對映),有時候會需要指定讓某些元素的子項,以排好順序的方式(而不是不排順序的方式)來進行比對。 比方說,在比較 ANT 檔案時,target 元素的子項出現順序就很重要。
遇到這種情況時,可以建立一個排好順序的項目。 排好順序的項目可以指定,由路徑識別的 XML 元素的直屬子項, 是以排好順序的方式加以比較(不過,屬性仍是以未排序的方式比較)。 除非另外指定,否則這些子項的子項會繼續以不排序的方式比較。

定義 ID 對映架構和排好順序的項目

ID 對映架構可以用下列三種方法建立:
  1. 繼承 idMapping 延伸點
  2. 使用 XML 比較喜好設定頁面
  3. 使用工具列的建立新的 ID 對映架構按鈕快速功能表
方法 1 會建立一個所謂的內部對映架構。 內部 ID 對映架構無法在執行時期時編輯。 不過,您可以使用「喜好設定」頁的編輯複本按鈕,建立一份可以編輯的內部 ID 對映架構複本。
方法 2 和 3 可以建立所謂的使用者對映架構。 它們是由使用者在執行時期所建立,而且可以在「喜好設定」頁隨時修改。

內部和使用者對映架構可以關聯到某個副檔名。 因此,在比較兩個這個副檔名的 XML 檔時,會自動採用具有這個副檔名的特定 ID 對映架構。

在為特定的 XML 元素建立或編輯 ID 對映時,必須指定四個項目(請參閱範例):

  1. 元素名稱。
  2. 元素路徑。這是元素的路徑(從 XML 文件的根到該元素的母項)。
  3. 識別該元素的 ID 名稱。
  4. 第 3 點中的 ID 名稱是該元素的屬性名稱,還是其中一個子項的名稱(在這些案例中,這個子項元素的文字被視為 ID)。


延伸點

在 XML 比較外掛程式中,只有一個延伸點可以使用。 其用途是建立內部 ID 對映架構: