說明:這個延伸點可讓您使用 mapping 元素定義內部 XML ID 對映方法。在執行 XML 比較時,
您可以使用這些架構,根據屬性值或是子元素中的文字,專門識別 XML 元件。
此外,也可以使用 ordered 元件,來指定元件的直屬子項,應該以排好的方式(而不是預設的未排列的方式)進行比較。
配置標記:
<!ELEMENT idmap (mapping*)>
<!ATTLIST idmap
name CDATA #REQUIRED
extension
CDATA
>
<extension
point="org.eclipse.compare.structureMergeViewers">
<structureMergeViewer
extensions="xml,classpath,cd"
class="org.eclipse.compare.xml.XMLStructureViewerCreator">
</structureMergeViewer>
警告:如果副檔名已經多次被關聯,只有第一次關聯才算數。 同時,在定義重複的副檔名時,內部 ID 對映架構的優先順序,是排在使用者 ID 對映架構前面。
警告:當您從 plugin.xml 移除內部 ID 對映架構與副檔名的關聯時, 必須重新載入 XML 比較外掛程式,解除它本身與副檔名之間的關聯。 如果沒有,則在第一次以副檔名比較檔案時,會採用具有預設 Unordered 演算法的 XML 比較外掛程式。 (不過,這時副檔名應該已經與 XML 外掛程式沒有關聯了,因為外掛程式已經載入了)。
<!ELEMENT mapping EMPTY>
<!ATTLIST mapping
signature
CDATA #REQUIRED
id
CDATA #REQUIRED
id-source CDATA
>
<!ELEMENT ordered EMPTY>
<!ATTLIST ordered
signature
CDATA #REQUIRED
>
<idmap name="ANT">
<mapping signature="project" id="name"/>
<mapping signature="project>target" id="name"/>
<ordered signature="project>target"/>
<idmap>
下例所示範的,是把子項元素的文字作為 ID 使用的案例:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
提供的實作:
XML 比較外掛程式可以定義 Eclipse plugin.xml 檔的 ID 對映架構,
其中一個檔案是用於 .classpath 檔,另一個則用於 ANT 檔。