---
title: "Dataomzetting met behulp van wiskundige functies in XSLT3"
date: "2021-04-14"
categories: 
  - "data-integration"
  - "xpath"
  - "xquery"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-data-mapping"
  - "xslt3"
description: Ontdek hoe XSLT3 de mapping van XML-gegevens verbetert met geavanceerde wiskundige functies, waaronder trigonometrie, om complexe integratieproblemen op te lossen met behulp van MapForce.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-data-mapping #xslt3

Categories: [data-integration](/blog/nl/category/data-integration.md) | [xpath+xquery](/blog/nl/category/xpathxquery.md) | [xpath+xquery](/blog/nl/category/xpathxquery.md)
# 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](https://www.altova.com/nl/mapforce) die complexe wiskundige berekeningen vereisen. Laten we eens kijken naar enkele MapForce-voorbeelden van [datamapping met XSLT3](https://www.altova.com/nl/xslt-3#mapforce), waarbij gebruik wordt gemaakt van wiskundige functies, waaronder trigonometrie en andere complexe wiskundige uitdrukkingen.

![](/blog/images/shutterstock_248233801.jpg)

<!--more-->

MapForce biedt interne verwerkingsmodules die zijn aangepast aan verschillende datatypes en toepassingen.

[![Het selecteren van de verwerkingsengine voor data-mapping met XSLT3](/blog/images/processing-engine.png)](processing-engine.png)

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

[![XQuery-functies voor data-mapping met XSLT3](/blog/images/xslt3-functions.png)](xslt3-functions.png)

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](https://www.altova.com/nl/xmlspy-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.

[![Doelgerichte elementkoppeling voor een op maat gemaakte datamapping](/blog/images/data-mapping-1-3.png)](data-mapping-1-3.png)

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:

[![Het genereren van sinus-, cosinus- en tangenswaarden voor de invoergegevens](/blog/images/data-mapping-2-3.png)](data-mapping-2-3.png)

Door op de knop "Output" onder het configuratiepaneel te klikken, wordt het invoerbestand verwerkt, de uitvoer gegenereerd en het voorbeeldscherm geopend.

[![XML-bestand met sinus-, cosinus- en tangenswaarden](/blog/images/output-1-1.png)](output-1-1.png)

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:

[![Weergave van het uitvoerbestand in de gridweergave van XMLSpy, met een gegenereerde grafiek](/blog/images/sin-cos-graph.png)](sin-cos-graph.png)

**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.

[![Het construeren van een kwadratische expressie voor data-omzetting met XSLT3](/blog/images/quadratic-mapping-1.png)](quadratic-mapping-1.png)

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:

[![Gewenste datastructuur voor het resultaatbestand van de kwadratische expressie](/blog/images/result-structure.png)](result-structure.png)

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.

[![De kwadratische expressie als een functie die door de gebruiker kan worden gedefinieerd](/blog/images/user-function-1.png)](user-function-1.png)

Hieronder volgt de volledige mapping, met de expressie in een gebruikersfunctie:

[![De data-mapping met behulp van een gebruikersfunctie voor de kwadratische expressie](/blog/images/quadratic-mapping-2.png)](quadratic-mapping-2.png)

 En het gegenereerde uitvoerbestand:

[![Een gedeeltelijke weergave van de datamapping met XSLT3 voor de kwadratische expressie](/blog/images/output-2-2.png)](output-2-2.png)

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":

[![Een gebruikersfunctie creëren met behulp van componenten in een bestaande mapping](/blog/images/build-user.png)](build-user.png)

Hier is onze definitieve beschrijving van de gebruikersfunctie:

[![Definitie van de gebruikersfunctie voor de kwadratische expressie in de datamapping met XSLT3](/blog/images/user-function-definition-1.png)](user-function-definition-1.png)

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](https://www.altova.com/nl/mapforce/download), inclusief tutorials, helpbestanden en nog veel meer voorbeelden!
