XML-jämförelse på Eclipse-plattformen
Med insticksprogrammet XML-jämförelse kan du utföra en strukturell jämförelse av två XML-dokument. Ett skillnadsträd returneras med en indikation av vilka XML-element som har lagts till eller tagits bort och, för ändrade XML-element, skillnaden i attribut och brödtext.
Installera insticksprogrammet
- Kopiera mappen org.eclipse.compare.examples.xml till Eclipse-undermappen plugins.
Använda insticksprogrammet
Insticksprogrammet används automatiskt vid jämförelse av filer med filtillägget .xml.
Som standard används jämförelsemetoden Unordered i XML-jämförelse, vilken ignorerar i vilken ordning XML-elementen visas i dokumentet och matchar dem så att de element, som är mest lika, matchas.
Jämförelsemetoden Ordered finns också, i den jämförs helt enkelt XML-elementen exakt i samma ordning som de visas i dokumentet. Vanligen är denna jämförelsemetod inte så användbar.
Jämförelsemetoden kan ändras i en listruta i strukturvyns verktygsfält.
När ett XML-dokument innehåller element som unikt kan identifieras med hjälp av ett attribut eller texten i ett underordnat element rekommenderar vi att ett ID-avbildningsschema skapas för den här typen av XML-dokument.
I Självstudiekurs och exempel finns mer information om hur du använder insticksprogrammet.
ID-avbildningsscheman
Ett ID-avbildningsschema anges för XML-element, via ett attribut eller texten i ett underordnat element som unikt identifierar elementet. Detta säkerställer att, i jämförelseprocessen, de högra elementen matchas och därefter jämförs med varandra. Om inget ID-avbildningsschema anges för ett XML-element, används en allmän matchningsalgoritm. Denna allmänna matchningsalgoritm returnerar emellertid inte alltid önskat resultat.
Orsaken är att den allmänna matchningsalgoritmen letar efter en matchning, som minimerar skillnaderna, av noderna för de två tolkade träden. Ofta matchas därför två XML-element som påminner om varandra strukturellt men som representerar två helt skilda informationsposter.
Sorterade poster
När standardjämförelsen Osorterad används (med eller utan ID-avbildningar) är det ibland önskvärt att ange att de underordnade objekten till vissa element jämförs på ett sorterat sätt, i stället för på det vanliga osorterade sättet.
När ANT-filer jämförs är t.ex. ordningen på visningen av de underordnade objekten i target-elementet viktigt.
I sådana fall kan man skapa en Sorterad post. Med en Sorterad post anges att de direkt underordnade objekten i ett xml-element, identifierade via sökväg, jämförs på ett sorterat sätt (attribut jämförs emellertid fortfarande på ett osorterat sätt).
De underordnade objekten till dessa underordnade objekt fortsätter att jämföras på ett osorterat sätt, om inget annat angetts.
Definiera ID-avbildningsscheman och sorterade poster
ID-avbildningsscheman kan skapas på tre olika sätt:
- Utöka utökningspunkten idMapping
- Använda Inställningssidan för XML-jämförelse.
- Använda Knappen för att skapa nytt ID-avbildningsschema i verktygsfältet och kontextmenyn
Med metod 1 skapas ett så kallat internt avbildningsschema. Ett internt ID-avbildningsschema kan inte ändras vid körningstillfället. Med hjälp av Redigera > Kopiera på inställningssidan kan däremot en ändringsbar kopia av det interna ID-avbildningsschemat skapas.
Med metoderna 2 och 3 skapas så kallade användaravbildningsscheman. Dessa skapas av användaren vid körningstillfället och kan när som helst ändras på inställningssidan.
Interna avbildningsscheman och användaravbildningsscheman kan associeras till ett filtillägg. Vid jämförelse av två XML-filer med detta filtillägg används därför automatiskt det speciella ID-avbildningsschemat med det här filtillägget.
När du skapar eller ändrar ID-avbildningen för ett visst XML-element måste fyra objekt anges (se exempel):
- Elementnamnet.
- Elementsökvägen. Detta är sökvägen till elementet från XML-dokumentets rot till elements överordnade objekt.
- Namnet på IDt som identifierar elementet.
- Om ID-namnet enligt punkt 3 är namnet på ett elementattribut eller namnet på ett av dessa underordnade objekt (i vilket fall texten i det underordnade elementet används som ID).
Utökningspunkter
Det finns bara en utökningspunkt tillgänglig i insticksprogrammet XML-jämförelse. Det används för att skapa ett internt
ID-avbildningsschema: