Descripción: Este punto de extensión permite definir esquemas de correlación de ID XML interna mediante el elemento mapping. A continuación, estos esquemas pueden utilizarse al realizar una comparación XML para identificar de forma exclusiva los elementos XML por el valor de un atributo o del texto de un elemento hijo.
Además, pueden utilizarse elementos ordenados para especificar que los hijos directos de un elemento deben compararse de forma ordenada en lugar de hacerlo de forma desordenada, que es el valor por omisión.
Código de configuración:
<!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>
Aviso: si una extensión se asocia más de una vez, sólo se tendrá en cuenta la primera asociación. Asimismo, los esquemas de correlación de ID interna tienen prioridad sobre los esquemas de correlación de ID de usuario cuando se definen extensiones duplicadas.
Aviso: cuando se elimina un esquema de correlación de ID interna con una asociación de extensión (de un archivo plugin.xml), el conector de comparación XML debe recargarse para desasociarlo de la extensión. En caso contrario, en la primera comparación de archivos con esta extensión, se utilizará el conector de comparación XML con el algoritmo por omisión Unordered (desordenado). (Sin embargo, en este punto la extensión se habrá desasociado del conector XML, ya que se ha cargado el conector).
<!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>
El ejemplo siguiente ilustra un caso en el que el texto de un elemento hijo se utiliza como ID:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
Implementación suministrada:
El conector de comparación XML define un esquema de correlación XML para archivos
plugin.xml de Eclipse, uno para archivos .classpath y uno para archivos ANT.