Comparação XML da plataforma Eclipse
O conector Compare de XML permite ao utilizador executar uma comparação estrutural de dois documentos XML. Devolve uma árvore de diferenças que indica quais os elementos XML que foram adicionar ou removidos, e - para os elementos XML modificados - quais as diferenças que dizem respeito a atributos ou o texto do corpo.
Instalar o conector
- Copie a pasta org.eclipse.compare.examples.xml para a sub-pasta plugins do Eclipse.
Utilizar o conector
O conector é utilizado automaticamente ao comprar ficheiros com a extensão .xml.
Por predefinição, a comparação XML utiliza o método de comparação Unordered, que ignora a ordem pela qual os elementos XML aparecem no documento e os faz corresponder de modo a que os elementos mais semelhantes sejam correspondidos.
Existe também o método de comparação Ordered, que compara simplesmente os elementos XML na ordem exacta pela qual aparecem no documento. Na maior parte dos casos, este método de comparação não será de grande utilidade.
O método de comparação pode ser alterado a partir da lista pendente na barra de ferramentas da vista da estrutura.
Quando um documento XML contém elementos que podem ser identificados de modo único por um atributo ou pelo texto de um elemento descendente, recomenda-se que seja criado um esquema de correlação do ID para este tipo de documento XML.
Consulte a secção Guia de Iniciação e Exemplo para obter mais informações sobre a utilização do conector.
Esquemas de Correlação de ID
Um esquema de correlação de ID especificar um atributo ou o texto de um elemento descendente para elementos XML que identificam de modo único o elemento. Isto assegura que - no processo de comparação - os elementos correctos serão correspondidos e, por conseguinte, comparados uns com os outros. Se não especificada nenhuma correlação de ID para um elemento XML, será utilizado um algoritmo de correspondência geral. No entanto, este algoritmo de correspondência geral não sempre devolve o resultado pretendido.
A razão para que tal aconteça é que o algoritmo de correspondência geral procura uma correspondência, dos nós das duas árvores analisadas para comparar, que diminua as diferenças. O resultado é que muitas vezes são comparados dois elementos XML estruturalmente semelhantes, mas que representam duas entidades de informação completamente diferentes.
Entradas ordenadas
Ao utilizar o método desordenado predefinido (com ou sem correlações de id), é por vezes preferível especificar que os descendentes de determinados elementos devem ser comparados da forma ordenada, em vez da forma desordenada predefinida.
Por exemplo, ao comparar ficheiros ANT, a ordem em que aparecem os descendentes dos elementos target é importante.
Nesses casos, pode criar-se uma entrada ordenada. Uma entrada ordenada especifica que o descendente directo de um elemento xml, identificado pelo respectivo caminho, será comparado de forma ordenada (no entanto, os atributos serão ainda assim comparados de forma desordenada).
Os descendentes destes descendentes continuarão a ser comparados de forma desordenada, a não ser que se especifique o contrário.
Definir esquemas de correlação de ID de entradas ordenadas
Os esquema de correlação de ID podem ser criados de três formas diferentes:
- Expandindo o ponto de extensão idMapping.
- Utilizando a página de preferências de comparação XML.
- Utilizando o botão Criar novo esquema de correlação de ID na barra de ferramentas e o menu de contexto
O método 1 cria um chamado esquema de correlação interno. Um esquema de correlação de ID interno não pode ser editado no ambiente de execução. No entanto, utilizar o botão Editar Cópia na página de preferências, pode ser criada uma cópia editável do esquema de correlação de ID interno.
Os métodos 2 e 3 criam os chamados esquemas de correlação de utilizador. Estes são criados pelo utilizador no ambiente de execução e podem ser alterados em qualquer momento na página das preferências.
O esquemas de correlação internos ou de utilizador podem ser associados a uma extensão de ficheiro. Como resultado, ao comparar dois ficheiros XML com esta extensão de ficheiro, é automaticamente utilizado o esquema de correlação de ID específico com esta extensão.
Ao criar ou editar a correlação de ID para um elemento XML específico, devem ser especificados quatro artigos (consultar o exemplo):
- O elemento name.
- O elemento path. Este é o caminho do elemento desde a raiz do documento XML até ao ascendente do elemento.
- O nome do id que irá identificar o elemento.
- Indica se o nome do id no ponto 3 é o nome de um atributo do elemento ou o nome de um dos respectivos descendentes (em qualquer um dos casos, será utilizado o texto deste elemento descendente como id).
Pontos de Extensão
Apenas está disponível um ponto de extensão no conector Compare de XML. É utilizado para criar esquemas de correlação de ID internos: