---
title: "Cartographie des données à l'aide des fonctions mathématiques XSLT3"
date: "2021-04-14"
categories: 
  - "data-integration"
  - "xpath"
  - "xquery"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-data-mapping"
  - "xslt3"
description: Découvrez comment XSLT3 améliore la transformation des données XML grâce à des fonctions mathématiques avancées, notamment la trigonométrie, afin de relever des défis d'intégration complexes en utilisant MapForce.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-data-mapping #xslt3

Categories: [data-integration](/blog/fr/category/data-integration.md) | [xpath+xquery](/blog/fr/category/xpathxquery.md) | [xpath+xquery](/blog/fr/category/xpathxquery.md)
# Cartographie des données à l'aide des fonctions mathématiques XSLT3

XSLT3 ajoute des fonctions trigonométriques et d'autres fonctions mathématiques avancées, de nouvelles fonctions de formatage, des fonctions pour collecter les variables d'environnement, et bien plus encore, étendant ainsi les normes XSLT et XSLT2 de transformation XML. Les analystes de données et les autres professionnels des données peuvent utiliser les fonctions XSLT3 [pour résoudre les problèmes liés à la cartographie et à l'intégration des données XML](https://www.altova.com/fr/mapforce) qui nécessitent des calculs mathématiques complexes. Examinons quelques exemples de MapForce [Cartographie des données avec XSLT3](https://www.altova.com/fr/xslt-3#mapforce) fonctions mathématiques utilisant la trigonométrie et d'autres expressions mathématiques complexes.

![](/blog/images/shutterstock_248233801.jpg)

<!--more-->

MapForce propose des moteurs de traitement internes, personnalisés pour différents types de données et applications.

[![Choisir le moteur de traitement pour la transformation des données avec XSLT3](/blog/images/processing-engine.png)](processing-engine.png)

Lorsque vous sélectionnez le moteur XSLT3, les fonctions indiquées ci-dessous sont ajoutées à la fenêtre de la bibliothèque de fonctions et sont disponibles pour la transformation des données

[![Fonctions XQuery pour la transformation de données avec XSLT3](/blog/images/xslt3-functions.png)](xslt3-functions.png)

Par exemple, nous pouvons créer une correspondance de données qui génère des valeurs de sinus, de cosinus et de tangente pour des valeurs d'entrée stockées dans un fichier XML. La liste originale était fournie sous forme de fichier CSV, que nous avons importé dans XMLSpy, le logiciel le plus vendu au monde dans sa catégorie [Éditeur JSON et XML](https://www.altova.com/fr/xmlspy-xml-editor), pour la conversion au format XML.

Nous commençons la configuration de la transformation dans MapForce en important les schémas XML pour les fichiers d'entrée et de sortie, puis en reliant les éléments racines. À ce stade, il est important de sélectionner le type de connexion "cible-dirigée" standard. Cela nous permet de personnaliser chaque connexion suivante.

[![Connexion d'éléments basée sur des objectifs pour une personnalisation de la cartographie des données](/blog/images/data-mapping-1-3.png)](data-mapping-1-3.png)

Ensuite, nous connectons les éléments "Row", nous glissons les fonctions trigonométriques depuis la bibliothèque, et nous connectons l'élément "xvalue" de la source à chaque fonction et à chaque élément de sortie. Voici la configuration complète de la correspondance des données :

[![Calculer les valeurs du sinus, du cosinus et de la tangente pour les données d'entrée](/blog/images/data-mapping-2-3.png)](data-mapping-2-3.png)

En cliquant sur le bouton "Sortie" situé sous le panneau de mappage, le fichier d'entrée est traité, le résultat est généré et la fenêtre de prévisualisation s'ouvre.

[![Fichier XML de sortie contenant les valeurs du sinus, du cosinus et de la tangente](/blog/images/output-1-1.png)](output-1-1.png)

Dans cet exemple, les valeurs d'entrée varient de zéro à 15, par incréments de dixièmes, et la sortie contient le sinus, le cosinus et la tangente correspondants pour chaque valeur. Nous pouvons enregistrer le fichier et l'ouvrir dans XMLSpy, afin de profiter de la vue en grille de XMLSpy, créer un graphique très personnalisé, et même exporter le graphique pour l'inclure dans un rapport ou une présentation

[![Vue du fichier de sortie dans l'interface de grille d'XMLSpy, avec un graphique généré](/blog/images/sin-cos-graph.png)](sin-cos-graph.png)

**Cartographie des données avec XSLT3 pour créer des expressions complexes**

Vous pouvez combiner les fonctions XSLT3 avec d'autres fonctions de la bibliothèque pour créer des expressions complexes. Par exemple, si nous voulons appliquer une équation quadratique comme y = 4x² – 3 à une liste de valeurs d'entrée, nous pouvons créer une transformation qui combine la fonction `pow` de XSLT3 pour l'exposant avec les fonctions de base de la bibliothèque pour la multiplication et l'addition.

[![Création d'une expression quadratique pour la transformation de données avec XSLT3](/blog/images/quadratic-mapping-1.png)](quadratic-mapping-1.png)

Notez que la séquence des fonctions dans la correspondance définit explicitement l'ordre de traitement impliqué dans l'expression : l'exponentiation en premier, puis la multiplication, puis la soustraction. Si l'expression utilisait des parenthèses pour modifier l'ordre de traitement par défaut, nous modifierions la séquence des fonctions dans la correspondance afin de définir l'ordre de traitement souhaité.

Il est possible que nous souhaillions soumettre un ensemble de valeurs d'entrée à plusieurs variations de l'expression et comparer les résultats. Nous pouvons créer une fonction utilisateur pour décrire l'expression, et nous pouvons modifier la structure du fichier de sortie afin d'enregistrer l'exposant, le multiplicateur et le modificateur utilisés pour générer chaque fichier de sortie.

Voici la structure souhaitée pour chaque fichier de sortie généré par les différentes variantes de l'expression :

[![Structure de données souhaitée pour le fichier de résultats de l'expression quadratique](/blog/images/result-structure.png)](result-structure.png)

La fonction définie par l'utilisateur recevra les valeurs de x à partir du fichier XML d'entrée, calculera l'expression et transmettra également les paramètres de la fonction qui seront enregistrés dans la sortie.

[![L'expression quadratique en tant que fonction définie par l'utilisateur](/blog/images/user-function-1.png)](user-function-1.png)

Voici la correspondance complète, avec l'expression utilisée dans une fonction utilisateur :

[![La mise en correspondance des données en utilisant la fonction définie par l'utilisateur pour l'expression quadratique](/blog/images/quadratic-mapping-2.png)](quadratic-mapping-2.png)

 Et le fichier de sortie généré :

[![Une vue partielle de la correspondance des données utilisant XSLT3 pour l'expression quadratique](/blog/images/output-2-2.png)](output-2-2.png)

Une fonction utilisateur peut être facilement intégrée à d'autres transformations ou partagée entre plusieurs utilisateurs de MapForce. Pour créer une fonction utilisateur, nous sélectionnons d'abord les fonctions qui définissent l'expression, puis nous cliquons sur le menu principal "Fonction" :

[![Créer une fonction utilisateur à partir de composants intégrés dans une cartographie existante](/blog/images/build-user.png)](build-user.png)

Voici notre définition finale de la fonction utilisateur :

[![Définition de la fonction utilisateur pour l'expression quadratique dans la transformation des données avec XSLT3](/blog/images/user-function-definition-1.png)](user-function-definition-1.png)

Si votre projet de modélisation et d'intégration de données nécessite une modélisation avec XSLT3, notamment avec des fonctions trigonométriques ou d'autres fonctions XSLT3 avancées, découvrez MapForce, l'outil de modélisation de données graphique primé, conçu pour la conversion et l'intégration de données de n'importe quel format. Téléchargez une version d'essai gratuite de [MapForce](https://www.altova.com/fr/mapforce/download) qui comprend des tutoriels, une aide en ligne et de nombreux exemples !
