Description: This extension point allows to define internal XML ID Mapping
schemes using the mapping element. These schemes can then be used when performing an XML compare to uniquely identify XML elements by the value of an
attribute or the text in a child element.
Additionally, ordered elements can be used to specify that the direct children of an element should be compared in ordered fashion instead of the
default unordered way.
Configuration Markup:
<!ELEMENT idmap (mapping*)>
<!ATTLIST idmap
name
CDATA #REQUIRED
extension
CDATA
>
<extension
point="org.eclipse.compare.structureMergeViewers">
<structureMergeViewer
extensions="cxml,classpath,cd"
class="org.eclipse.compare.xml.XMLStructureViewerCreator">
</structureMergeViewer>
Warning: If an extension is associated more than once, only the first association will be considered. Also, internal ID Mapping schemes have priority over user ID Mapping schemes when duplicate extensions are defined.
Warning: When an internal ID Mapping scheme with extension association is removed (from a plugin.xml), the XML Compare plugin has to be reloaded to disassociate itself from the extension. If not, on the first compare of files with this extension, the XML Compare plugin will be used with the default Unordered algorithm. (However, at this point the extension will have been disassociated from the XML Plugin, as the plugin has been loaded.)
<!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>
The following example illustrates a case where the text of a child element is used as id:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
Supplied Implementation:
The XML Compare plugin defines an ID Mapping scheme for Eclipse plugin.xml files, one for .classpath files and one for ANT files.