XML-vergelijking op Eclipse-platform

Met de XML-vergelijkingsplugin kunt u een structurele vergelijking uitvoeren van twee XML-documenten. Dit levert een verschillenboom op waarmee wordt aangegeven welke XML-elementen zijn toegevoegd of verwijderd - voor gewijzigde XML- elementen - en welke verschillen er bestaan wat betreft kenmerken of lopende tekst.

Plugins installeren

Plugin gebruiken

De plugin wordt automatisch gebruikt als u bestanden vergelijkt met de extensie .xml.
Standaard gebruikt de XML-vergelijkingsfunctie de vergelijkingsmethode Niet gesorteerd waarmee de volgorde wordt genegeerd waarin de XML-elementen in het document verschijnen en worden de elementen die het meest met elkaar als match worden gepresenteerd. Er bestaat ook een vergelijkingsmethode Gesorteerd waarmee de XML-elementen worden vergeleken volgens de volgorde waarin deze in het document verschijnen. In de meeste gevallen zal deze vergelijkingsmethode niet erg bruikbaar zijn.
De vergelijkingsmethode kan worden gewijzigd vanuit een vervolgkeuzelijst in de werkbalk van de structuurview.

Als een XML-document elementen bevat die op een unieke manier kunnen worden geïdentificeerd door een kenmerk of de tekst van een subelement, is het raadzaam op een ID-toewijzingsschema te maken voor dit type XML-document.

Zie Zelfstudieprogramma en voorbeelden voor meer informatie over het gebruik van de plugin.

ID-toewijzingsschema's

In een ID-toewijzingsschema wordt voor XML-elementen een kenmerk of de tekst van een subelement opgegeven waarmee dit element op een unieke manier wordt geïdentificeerd. Dit zorgt ervoor dat - in het vergelijkingsproces - de juiste elementen met elkaar overeenkomen en met elkaar worden vergeleken. Als er voor een XML-element geen ID-toewijzing is opgegeven, wordt er een algemeen matchingalgoritme gebruikt. Met dit algemene matchingalgoritme wordt echter niet altijd het gewenste resultaat opgehaald. De reden hiervoor is dat door het algemene matchingalgoritme naar een overeenkomst wordt gekeken tussen de knooppunten van de twee ontlede bomen waarmee de verschillen worden geminimaliseerd. Het effect is dat er vaak twee XML-elementen met elkaar overeenkomen die structureel gezien vergelijkbaar zijn maar twee volledig verschillende gegevensentiteiten vertegenwoordigen.

Geordende gegevens

Als u de standaardvergelijking Niet gesorteerd gebruikt (met of zonder ID-toewijzingen) is het soms wenselijk om aan te geven dat de subelementen van bepaalde elementen op een geordende manier met elkaar moeten worden vergeleken in plaats van met de gebruikelijke ongeordende methode. Als u bijvoorbeeld ANT-bestanden vergelijkt, is de volgorde belangrijk waarin de subelementen van target-elementen worden weergegevens.
In dergelijke gevallen kunt u een Geordend gegeven maken. Met een geordend gegeven wordt opgegeven dat de directe subelementen van een xml-element )dat met het pad wordt aangegeven) op een geordende manier worden vergeleken (kenmerken worden echter nog steeds op een niet geordende manier vergeleken). De subelementen van deze subelementen worden nog steeds op een ongeordende manier met elkaar vergeleken, tenzij er iets anders is opgegeven.

ID-toewijzingsschema's en geordende gegevens wijzigen

ID-toewijzingsschema's kunnen op drie verschillende manieren worden gemaakt:
  1. Door het uitbreiden van extensiepunt idMapping
  2. Door het gebruiken van de voorkeurspagina XML-vergelijking.
  3. Door het gebruiken van de knop Nieuw ID-toewijzingsschema maken in de werkbalk en het voorgrondmenu
Met methode 1 wordt een zogenaamd intern toewijzingsschema gemaakt. Een intern ID-toewijzingsschema kan tijdens runtime niet worden bewerkt. Als u echter de knop Kopie bewerken in de voorkeurspagina gebruikt, kunt u een bewerkbare kopie van het interne ID-toewijzingsschema maken.
Met methoden 2 en 3 worden zogenaamde gebruikerstoewijzingsschema's gemaakt. Deze worden gemaakt tijdens runtime door de gebruiker gemaakt en kunnen elk moment worden gewijzigd op de voorkeurspagina.

Interne toewijzingsschema's en gebruikerstoewijzingsschema's kunnen aan een bestandsextensie worden gekoppeld. Het gevolg is dat, wanneer u twee XML-bestanden met deze bestandsextensies vergelijkt, het specifieke schema met deze extensie automatisch wordt gebruikt.

Als u de ID-toewijzing maakt of bewerkt voor een bepaald XML-element, moet u vier items opgeven (zie voorbeeld):

  1. De elementnaam.
  2. Het elementpad. Dit is het pad van het element van de hoofddirectory van het XML-document naar de directory van het element.
  3. De naam van het ID waarmee het element wordt geïdentificeerd.
  4. Geeft aan of de ID-naam in punt 3 de naam is van een kenmerk van het element of de naam van een van de subelementen (in welk geval de tekst van dit subelement als ID wordt gebruikt).


Extensiepunten

Slechts een extensiepunt is beschikbaar in de XML-vergelijkingsplugin. Het wordt gebruikt om interne toewijzingsschema's te maken: