Descrição: Este ponto de extensão permite definir os esquemas de correlação de ID de XML utilizando o elemento mapping. Estes esquemas podem depois ser utilizados ao executar uma comparação XML para identificar de modo único os elementos XML pelo valor de um atributo ou o texto num elemento descendente.
Além disso, os elementos ordered podem ser utilizados para especificar que os descendentes directos de um elemento devem ser comparados de forma ordenada em vez da forma desordenada predefinida.
Configuração de Marcação:
<!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: se uma mesma extensão for adicionada mais do que uma vez, apenas se terá em consideração a primeira associação. Além disso, os esquemas de correlação de ID têm prioridade sobre os esquemas de correlação de ID de utilizador quando são definidas extensões duplicadas.
Aviso: quando é removido um esquema de correlação de ID com associação de extensão (de um ficheiro plugin.xml), o conector Compare de XML tem de ser recarregado para se dissociar da extensão. Caso contrário, na primeira comparação de ficheiros com esta extensão, o conector Compare de XML será utilizador com o algoritmo Unordered predefinido. (No entanto, nesta altura a extensão já tirá sido dissociada do conector XML, já que o conector foi carregado.)
<!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>
O exemplo seguinte ilustra um caso onde o texto de um elemento descendente é utilizado como id:
<idmap name="Book Catalog" extension="book">
<mapping signature="catalog>book" id="isbn" id-source="body"/>
<idmap>
Implementação Fornecida:
O conector Compare de XML define um esquema de correlação de ID para os ficheiros plugin.xml do Eclipse, um para ficheiros .classpath e outro para ficheiros ANT.