Beschreibung: Dieser Erweiterungspunkt ermöglicht die Definition von internen XML ID-Zuordnungsschemen mithilfe des Elements mapping. Diese Schemen können anschließend für die Durchführung eines XML-Vergleichs verwendet werden, um XML-Elemente ausschließlich nach dem Wert eines Attributs oder des Texts in einem untergeordneten Element zu identifizieren.
Zusätzlich können sortierte Elemente verwendet werden, um anzugeben, dass die direkt untergeordneten Elemente eines Elements in sortierter Weise anstatt in der standardmäßigen nicht sortierten Weise vergleichen werden sollen.
Konfigurationsbefehle:
<!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>
Warnung: Falls eine Erweiterung mehr als einmal zugeordnet ist, wird nur die erste Zuordnung berücksichtigt. Auch interne ID-Zuordnungsschemen haben Priorität gegenüber den ID-Zuordnungsschemen von Benutzern, wenn doppelte Erweiterungen definiert werden.
Warnung: Wenn ein internes ID-Zuordnungsschema mit einer Erweiterungszuordnung entfernt wird (aus einer plugin.xml), muss das XML-Vergleichs-Plug-in neu geladen werden, um die Zuordnung der Erweiterung aufzuheben. Falls dies nicht geschieht, verwendet das XML-Vergleichs-Plug-in beim ersten Vergleich von Dateien mit dieser Erweiterung den Standardalgorithmus Unordered. (Zu diesem Zeitpunkt ist die Erweiterungszuordnung in dem XML-Plug-in jedoch aufgehoben, da das Plug-in geladen wurde.)
<!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>
Das folgende Beispiel erläutert einen Fall, in dem der Text eines untergeordneten Elements als ID verwendet wird:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
Bereitgestellte Implementierung:
Das XML-Vergleichs-Plug-in definiert ein ID-Zuordnungsschema für Eclipse plugin.xml-Dateien, eines für .classpath-Dateien und eines für ANT-Dateien.