Opis: ten punkt rozszerzenia umożliwia definiowanie wewnętrznych schematów odwzorowywania identyfikatorów XML za pomocą elementu mapping. Schematy te mogą być wykorzystane podczas porównywania XML do jednoznacznego identyfikowania elementów XML według wartości atrybutu lub tekstu w elemencie potomnym.
Dodatkowo uporządkowane elementy mogą być używane do określenia, że bezpośrednie elementy potomne danego elementu mają być porównywane w uporządkowany sposób zamiast domyślnej metody nieuporządkowanej.
Znaczniki konfiguracji:
<!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>
Uwaga: jeśli rozszerzenie jest powiązane więcej niż jeden raz, tylko pierwsze powiązanie będzie brane pod uwagę. Ponadto w przypadku zdefiniowania zduplikowanych rozszerzeń wewnętrzne schematy odwzorowywania identyfikatorów mają wyższy priorytet niż schematy odwzorowywania identyfikatorów utworzone przez użytkownika.
Uwaga: po usunięciu wewnętrznego schematu odwzorowywania identyfikatorów z powiązanym rozszerzeniem (z pliku plugin.xml) wtyczka porównywania XML musi zostać ponownie załadowana, aby usunąć powiązanie z rozszerzeniem. W przeciwnym razie podczas pierwszego porównania plików z tym rozszerzeniem wtyczka porównywania XML zostanie użyta z domyślnym nieuporządkowanym algorytmem. W tym momencie jednak powiązanie z rozszerzeniem zostanie usunięte z wtyczki XML w wyniku załadowania tej wtyczki.
<!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>
W poniższym przykładzie przedstawiono przypadek, w którym tekst elementu potomnego jest używany jako identyfikator:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
Dostarczona implementacja:
wtyczka porównywania XML definiuje schemat odwzorowywania identyfikatorów dla plików Eclipse plugin.xml, jeden dla plików .classpath i jeden dla plików ANT.