Dataomzetting met behulp van wiskundige functies in XSLT3

XSLT3 voegt trigonometrie en andere geavanceerde wiskundige functies toe, nieuwe opmaakfuncties, functies om omgevingsvariabelen op te halen, en meer, waardoor de XSLT- en XSLT2-standaarden voor XML-transformatie worden uitgebreid. Data-analisten en andere professionals die met data werken, kunnen gebruikmaken van XSLT3-functies om uitdagingen op het gebied van XML-datamapping en -integratie op te lossen die complexe wiskundige berekeningen vereisen. Laten we eens kijken naar enkele MapForce-voorbeelden van datamapping met XSLT3, waarbij gebruik wordt gemaakt van wiskundige functies, waaronder trigonometrie en andere complexe wiskundige uitdrukkingen.

MapForce biedt interne verwerkingsmodules die zijn aangepast aan verschillende datatypes en toepassingen.

Wanneer u de XSLT3-engine selecteert, worden de hieronder weergegeven functies toegevoegd aan het venster "Functiebibliotheek" en zijn ze beschikbaar voor het omzetten van gegevens

Bijvoorbeeld, we kunnen een datamapping maken die sinus-, cosinus- en tangenswaarden genereert voor invoerwaarden die zijn opgeslagen in een XML-bestand. De oorspronkelijke lijst was in een CSV-bestand, die we hebben geïmporteerd in XMLSpy, de best verkochte JSON- en XML-editor, om deze om te zetten naar XML.

We beginnen met het aanmaken van de mapping in MapForce door de XML-schema's voor de invoer- en uitvoerbestanden toe te voegen, en vervolgens de hoofdelementen met elkaar te verbinden. Op dit punt is het belangrijk om het standaard type verbinding te selecteren, waarbij de focus ligt op het doel. Dit stelt ons in staat om elke volgende verbinding aan te passen.

Vervolgens verbinden we de rij-elementen, slepen we de trigonometrische functies uit de bibliotheek en verbinden we het element "xwaarde" van de bron met elke functie en elk uitvoerelement. Hieronder ziet u de voltooide datamapping:

Door op de knop "Output" onder het configuratiepaneel te klikken, wordt het invoerbestand verwerkt, de uitvoer gegenereerd en het voorbeeldscherm geopend.

In dit voorbeeld lopen de invoerwaarden van nul tot 15, in stappen van tienden, en de uitvoer bevat de bijbehorende sinus-, cosinus- en tangenswaarden. We kunnen het bestand opslaan en openen in XMLSpy, om gebruik te maken van de XMLSpy-rasterweergave, een zeer aangepaste grafiek te maken en zelfs de grafiek te exporteren om deze op te nemen in een rapport of presentatie:

Data-mapping met XSLT3 om complexe expressies te creëren

U kunt XSLT3-functies combineren met andere functies in de bibliotheek om complexe expressies te creëren. Stel dat we een kwadratische vergelijking, zoals y = 4x² – 3, willen toepassen op een lijst met invoerwaarden. We kunnen een mapping maken die de XSLT3-functie pow voor de exponent combineert met de kernfuncties van de bibliotheek voor vermenigvuldiging en optelling.

Let op dat de volgorde van de functies in de mapping expliciet de verwerkingsvolgorde aangeeft die in de expressie wordt gehanteerd: eerst exponentiële bewerking, dan vermenigvuldiging, en vervolgens aftrekking. Als de expressie haakjes gebruikt om de standaard verwerkingsvolgorde te overrulen, zouden we de volgorde van de functies in de mapping aanpassen om de gewenste verwerkingsvolgorde te bepalen.

Misschien willen we een reeks invoerwaarden door verschillende variaties van de formule leiden en de resultaten vergelijken. We kunnen een gebruikersfunctie maken om de formule te beschrijven, en we kunnen de structuur van het uitvoerbestand aanpassen om de exponent, de vermenigvuldigingsfactor en de modifier die gebruikt zijn om elk uitvoerbestand te genereren, op te slaan.

Hieronder volgt de gewenste structuur voor elk uitvoerbestand dat wordt gegenereerd door verschillende varianten van de expressie:

De gebruikersfunctie zal x-waarden uit het invoer-XML-bestand accepteren, de expressie berekenen en ook de functieparameters doorgeven om in de uitvoer op te slaan.

Hieronder volgt de volledige mapping, met de expressie in een gebruikersfunctie:

En het gegenereerde uitvoerbestand:

Een gebruikersfunctie kan eenvoudig worden ingevoegd in andere mappingen of gedeeld worden tussen meerdere MapForce-gebruikers. Om een gebruikersfunctie te maken, selecteert u eerst de functies die de expressie definiëren en klikt u vervolgens op het hoofdmenu "Functie":

Hier is onze definitieve beschrijving van de gebruikersfunctie:

Als uw project voor data-mapping en -integratie data-mapping vereist met XSLT3, fortrigonometry of andere geavanceerde XSLT3-functies, bekijk dan MapForce, de bekroonde, grafische tool voor data-mapping, geschikt voor elke vorm van data-conversie en -integratie. Download een gratis proefversie van MapForce, inclusief tutorials, helpbestanden en nog veel meer voorbeelden!