XML-gegevensmapping en -transformatie met wildcards in MapForce

MapForce 2014 ondersteunt nu het mappen van XML-wildcards, wat een ingebouwde extensiemogelijkheid creëert voor XML-schema's, geïmplementeerd als xs:any of xs:anyAttribute.

Bekijk dit XML-fragment, zoals het wordt weergegeven in XMLSpy:

Dit kleine fragment van een zeer groot bestand toont twee positiepunten die zijn vastgelegd tijdens een autorit met een Garmin GPS-apparaat. De XML-data volgt het GPX XML-schema, met toevoegingen van Garmin om snelheids- en koersinformatie toe te voegen. Met behulp van XML-wildcardmapping kunt u deze toevoegingen in MapForce koppelen, net als andere elementen die expliciet zijn gedefinieerd in het XML-schema.

Laten we aannemen dat we een .gpx-bestand willen lezen en de hoogste snelheid die tijdens een reis is geregistreerd, willen extraheren

!--meer--

We kunnen een nieuw MapForce-mappingontwerp starten door een .gpx-bestand als invoerbestand te gebruiken. MapForce toont een overzicht van alle elementen die zijn gedefinieerd in het bijbehorende XML-schema en die beschikbaar zijn voor het maken van mappings. De onderstaande screenshot toont het gedeelte van het XML-schema dat betrekking heeft op trackpunten:

De breedtegraad, lengtegraad, hoogte en tijd verschijnen direct na het element "trkpt" en definiëren de gegevens die in het XML-fragment worden weergegeven. De volgende elementen, van magnetische variatie ("magvar") tot de ID van het DGPS-station ("dgpsid"), zijn allemaal optioneel en komen niet voor in het Garmin-gegevensbestand.

De elementen die betrekking hebben op snelheid en koers zijn niet gedefinieerd in dit XML-schema. In plaats daarvan zijn snelheid en koers toegestaan op basis van xs:any aan het einde van de afbeelding. Door op het pictogram naast xs:any te klikken, wordt een dialoogvenster geopend waarmee we een ander XML-schema kunnen importeren dat de extensies definieert, en een "wrapper" kunnen maken om het oorspronkelijke XML-schema en de extensies te combineren. Na de import worden de nieuwe elementen weergegeven in het broncomponent en kunnen ze worden toegewezen:

Het sorteren van gegevens in de visualisatie

De voorbeeldbestanden die met MapForce worden geïnstalleerd, bevatten een mapping met de naam FindHighestTemperatures.mfd, die we als voorbeeld kunnen gebruiken om de hoogste snelheid uit ons bestand te extraheren, met behulp van een sorteerfunctie:

Deze functie sorteert alle snelheidswaarden van hoog naar laag en stuurt vervolgens alleen de eerste waarde door voor de uitvoer. De sorteersleutel "Z-A" sorteert numerieke gegevens automatisch van de hoogste naar de laagste waarde.

Waarden omzetten in de mapping

Tot slot moeten we de snelheid omzetten van meters per seconde naar mijlen per uur, het resultaat afronden op twee decimalen en er een beschrijvende tekst aan toevoegen:

Het resultaat van de string-concatenatiefunctie, zoals hierboven getoond, wordt geschreven naar het tekstbestand voor uitvoer:

Let op dat we de snelheid niet expliciet hoefden om te zetten van een numeriek datatype naar een string toen we tussen functies schakelden. MapForce verzorgt de datatypeconversie automatisch. Hieronder een vereenvoudigde weergave van de volledige mapping, met annotaties van de belangrijkste bewerkingen:

Klik op de afbeelding of klik hier voor een grotere weergave.

De Altova-website bevat gratis online producttraining voor MapForce. U kunt zelfs een gratis proefversie van MapForce downloaden en vandaag nog beginnen met het verbeteren van uw vaardigheden op het gebied van data-mapping en -transformatie!