Descripción: este punto de extensión permite definir esquemas
de Correlación de ID XML internos utilizando el elemento
mapping. A continuación, estos esquemas pueden utilizarse al realizar
una comparación XML para identificar de manera exclusiva los elementos XML por
el valor de un atributo o el texto de un elemento hijo.
Además, los elementos ordered pueden utilizarse para especificar que
los hijos directos de un elemento deben compararse de forma ordenada en lugar
de la manera desordenada 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. Además, los esquemas internos de correlación de ID tienen prioridad sobre los esquemas de correlación de ID del usuario cuando se definen extensiones duplicadas.
Aviso: cuando se elimina un esquema de correlación de ID interno con asociación de extensión (de plugin.xml), tiene que volver a cargarse el conector Comparación de XML para desasociarlo de la extensión. En caso contrario, en la primera comparación de archivos con esta extensión, el conector Comparación de XML se utilizará con el algoritmo por omisión Unordered. (No obstante, al llegar a este punto ya se habrá desasociado la extensión del conector XML, puesto que el conector ya se ha cargado.)
<!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 siguiente ejemplo ilustra un caso en 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 Comparación de XML define un esquema de correlación de ID para
los archivos
plugin.xml de Eclipse, otro para archivos .classpath y otro
para archivos ANT.