XML-sammenlikning for Eclipse-plattformen
Med plugin-modulen for XML-sammenlikning kan du utføre en strukturell sammenlikning av to XML-dokumenter. Det
returnerer et differansetre som viser hvilke XML-elementer som er lagt til og fjernet, og - for endrede
XML-elementer - hvilke forskjeller det er med hensyn til attributter eller brødtekst.
Installere plugin-modulen
- Kopier mappen org.eclipse.compare.examples.xml til plugins-undermappen i Eclipse.
Bruke plugin-modulen
Plugin-modulen blir automatisk brukt når du sammenlikner filer som har filtypen .xml.
Som standard bruker XML-sammenlikning en Usortert sammenlikningsmetode, som ignorerer
rekkefølgen som XML-elementene blir vist i, i dokumentet og sammenlikner de elementene som likner mest.
Det finnes
også en Sortert sammenlikningsmetode, som ganske enkelt sammenlikner XML-elementene nøyaktig i
den rekkefølgen de blir vist i, i dokumentet. I de fleste tilfeller vil ikke denne sammenlikningsmetoden være til
særlig nytte.
Sammenlikningsmetoden kan endres fra en valgliste på verktøylinjen i strukturvisningen.
Når et XML-dokument inneholder elementer som kan identifiseres unikt av et attributt eller teksten i et underordnet
element, anbefaler vi at du oppretter et ID-tilordningsskjema for denne typen XML-dokument.
Se Opplæring og eksempler hvis du vil ha mer informasjon om hvordan du
bruker plugin-modulen.
ID-tilordningsskjema
For XML-elementer oppgir et ID-tilordningsskjema et attributt eller teksten i et underordnet element som
unikt identifiserer dette elementet. Dette sikrer at de riktige elementene blir sammenliknet med hverandre i
sammenlikningsprosessen. Hvis det ikke er oppgitt en ID-tilordning for et XML-element, blir en generell
sammenlikningsalgoritme brukt. Men denne generelle sammenlikningsalgoritmen returnerer ikke alltid ønsket
resultat.
Årsaken til det er at den generelle sammenlikningsalgoritmen ser etter samsvar i nodene til de to
analyserte trærne som sammenliknes, for å minimere forskjellene. Resultatet er ofte en sammenlikning av to
XML-elementer som er strukturelt like, men som representerer to helt forskjellige entiteter med informasjon.
Sorterte oppføringer
Når du bruker den usorterte standardsammenlikningen (med eller uten ID-tilordning), er det noen ganger ønskelig
å oppgi at de underordnede elementene for bestemte elementer blir sammenliknet på en sortert måte i stedet for
på den vanlige usorterte måten.
Når du for eksempel sammenlikner ANT-filer, er rekkefølgen på de underordnede
elementene for target-elementene viktig.
I slike tilfeller bør en opprette en sortert oppføring. En sortert oppføring oppgir at de direkte
underordnede elementene for et XML-element, som er identifisert av banen, blir sammenliknet på en sortert måte
(attributter blir imidlertid likevel sammenliknet på en usortert måte).
De underordnede elementene for disse
underordnede elementene vil fortsette å sammenlikne på en usortert måte, hvis ikke annet er oppgitt.
Definere ID-tilordningsskjemaer og sorterte oppføringer
ID-tilordningsskjemaer kan opprettes på tre forskjellige måter:
- Ved å utvide utvidelsespunktet idMapping
- Ved hjelp av siden for preferanser for XML-sammenlikning
- Ved hjelp av knappen for å opprette nytt ID-tilordningsskjema på
verktøylinjen og hurtigmenyen
Metode 1 oppretter et såkalt internt tilordningsskjema. Et internt ID-tilordningsskjema kan ikke redigeres
under kjøring. Men hvis du bruker knappen for å redigere kopi på
preferansesiden, kan du opprette en redigerbar kopi av det interne ID-tilordningsskjemaet.
Metode 2 og 3 oppretter såkalte brukertilordningsskjemaer. Disse blir opprettet av brukeren under
kjøring og kan når som helst endres på preferansesiden.
Interne tilordningsskjemaer og brukertilordningsskjemaer kan knyttes til en filtype. Når du så sammenlikner to
XML-filer med denne filtypen, blir det bestemte ID-tilordningsskjemaet med denne filtypen automatisk brukt.
Når du oppretter eller redigerer ID-tilordningen for et bestemt XML-element, må du oppgi fire elementer (se
eksempel):
- Elementnavnet.
- Elementbanen. Dette er banen til elementet fra roten i XML-dokumentet til elementets overordnede element.
- Navnet på IDen som identifiserer elementet.
- Om ID-navnet i punkt 3 er navnet på et attributt for elementet eller navnet på et av de underordnede
elementene (og da blir teksten i dette underordnede elementet brukt som ID).
Utvidelsespunkter
Det er bare ett tilgjengelig utvidelsespunkt i plugin-modulen for XML-sammenlikning. Det blir brukt til å opprette
interne ID-tilordningsskjemaer: