Eclipse-platform - XML-sammenligning
En XML-sammenlignings-plugin gør det muligt at udføre en struktureret sammenligning af to XML-dokumenter. Funktionen returnerer forskellene i en træstruktur, som angiver, hvilke XML-elementer der er tilføjet eller fjernet, og - i tilfælde af ændrede XML-elementer - hvilke forskelle er der, hvad angår attributter eller indholdstekst.
Installér plugin
- Kopiér folderen org.eclipse.compare.examples.xml til den underordnede Eclipse-folderplugins.
Brug plugin-funktionen
Plugin-funktionen bruges automatisk ved sammenligning af filerne med filtypen .xml.
Som standard anvender XML-sammenligningsfunktionen metoden Unordered, som ignorerer den rækkefølge, XML-elementerne har i dokumentet, og matcher dem, så de elementer, som i videst udstrækning ligner hinanden, matches.
Der findes også sammenligningsmetoden Ordered, som ganske enkelt sammenligner XML-elementerne i præcis den rækkefølge, de har i dokumentet. Denne sammenligningsmetode er ikke særlig anvendelig.
Sammenligningsmetoden kan ændres fra en undermenu til værktøjslinjen i strukturoversigten.
Når et XML-dokument indeholder elementer, som entydigt kan identificeres vha. en attribut eller teksten i et underordnet element, anbefales det, at der oprettes et id-tilknytningsskema til denne type XML-dokument.
Øveprogram og eksempler indeholder flere oplysninger om, hvordan du bruger plugin-funktionen.
id-tilknytningsskemaer
Et id-tilknytningsskema angiver en attribut eller teksten i et underordnet element i forbindelse med XML-elementer, som entydigt identificerer elementet.
Det sikrer, at de rigtige elementer sammensættes i sammenligningsprocessen og sammenlignes med hinanden.
Hvis der ikke angivet nogen id-tilknytning for et XML-element, bruges der en generel lighedsalgoritme.
Den generelle lighedsalgoritme returnerer dog ikke altid det ønskede resultat.
Årsagen hertil er, at den generelle lighedsalgoritme søger efter ligheder mellem noderne i de to analyserede træstrukturer, der skal sammenlignes, for at minimere forskellene.
Virkningen er, at der ofte sammensættes to XML-elementer, som har en strukturmæssig lighed, men som repræsenterer to vidt forskellige entiteter af oplysninger.
Sorterede indgange
Når standardsammenligningsmetoden Unordered bruges (med eller uden id-tilknytning vha. mapping), er det somme tider en god idé at angive, at de underordnede elementer til bestemte elementer skal sammenlignes på en sorteret måde og ikke på den sædvanlige ikke-sorterede måde.
Når du f.eks. sammenligner ANT-filer, er den rækkefølge, de underordnede elementer til target-elementer vises i, vigtig.
I sådanne tilfælde kan du oprette en sorteret indgang. En sorteret indgang angiver, at elementer, der er direkte underordnet et XML-element, og identificeret vha. dette elements sti, bliver sammenlignet på en sorteret måde (dog sammenlignes attributter stadig som ikke-sorterede).
De underordnede elementer til disse underordnede elementer sammenlignes fortsat på en ikke-sorteret måde, medmindre andet angivet.
Definér id-tilknytningsskemaer og sorterede indgange
id-tilknytningsskemaer kan oprettes på tre forskellige måder:
- Ved at udvide udvidelsespunktet idMapping
- Ved hjælp af siden med indstillinger for XML-sammenligninger.
- Ved hjælp af knappen Opret nyt id-tilknytningsskema på værktøjslinjen og i kontekstmenuen
Metode 1 opretter et såkaldt internt tilknytningsskema. Et internt id-tilknytningsskema kan ikke redigeres under runtime.
Imidlertid kan du vha. knappen Redigér kopi på indstillingssiden oprette en redigérbar kopi af det interne id-tilknytningsskema.
Metode 2 og 3 opretter såkaldte brugertilknytningsskemaer. De oprettes af brugeren under runtime og kan når som helst ændres på indstillingssiden.
Interne skemaer og brugertilknytningsskemaer kan tilknyttes en filtype. Det betyder, at når to XML-filer med denne filtype sammenlignes, bruges det særlige id-tilknytningsskema med denne filtype automatisk.
Når id-tilknytning vha. mapping oprettes eller redigeres for et bestemt XML-element, skal du angive fire punkter (se eksemplet ):
- Elementnavn.
- Elementsti. Det er elementets sti fra roden af XML-dokumentet til elementets overordnede element.
- Navnet på den id, som identificerer elementet.
- Om id-navnet i punkt 3 er navnet på en attribut til elementet eller navnet på et af dets underordnede elementer (i dette tilfælde bruges teksten i det pågældende underordnede element som id).
Udvidelsespunkter
Der er kun ét tilgængeligt udvidelsespunkt i plugin-funktionen til XML-sammenligning. Det bruges til at oprette interne id-tilknytningsskemaer: