---
title: "Mappatura dei dati con le funzioni matematiche XSLT3"
date: "2021-04-14"
categories: 
  - "data-integration"
  - "xpath"
  - "xquery"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-data-mapping"
  - "xslt3"
description: Scoprite come XSLT3 migliora la mappatura dei dati XML grazie a funzioni matematiche avanzate, tra cui la trigonometria, per affrontare sfide di integrazione complesse utilizzando MapForce.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-data-mapping #xslt3

Categories: [data-integration](/blog/it/category/data-integration.md) | [xpath+xquery](/blog/it/category/xpathxquery.md) | [xpath+xquery](/blog/it/category/xpathxquery.md)
# Mappatura dei dati con le funzioni matematiche XSLT3

XSLT3 introduce funzioni trigonometriche e altre funzioni matematiche avanzate, nuove funzioni di formattazione, funzioni per raccogliere variabili d'ambiente e molto altro, ampliando gli standard XSLT e XSLT2 per la trasformazione di documenti XML. Gli analisti di dati e altri professionisti del settore possono utilizzare le funzioni XSLT3 [per risolvere le problematiche legate alla mappatura e all'integrazione dei dati XML](https://www.altova.com/it/mapforce) che richiedono calcoli matematici complessi. Esaminiamo alcuni esempi di MapForce [mappatura dei dati con XSLT3](https://www.altova.com/it/xslt-3#mapforce) funzioni matematiche che utilizzano la trigonometria e altre espressioni matematiche complesse.

![](/blog/images/shutterstock_248233801.jpg)

<!--more-->

MapForce offre motori di elaborazione interni personalizzabili per diversi tipi di dati e applicazioni.

[![La scelta del motore di elaborazione per la mappatura dei dati con XSLT3](/blog/images/processing-engine.png)](processing-engine.png)

Quando si sceglie il motore XSLT3, le funzioni elencate di seguito vengono aggiunte alla finestra della libreria delle funzioni e diventano disponibili per la mappatura dei dati

[![Funzioni XQuery per la mappatura dei dati con XSLT3](/blog/images/xslt3-functions.png)](xslt3-functions.png)

Ad esempio, possiamo creare una mappatura dei dati che generi seno, coseno e tangente per i valori di input memorizzati in un file XML. L'elenco originale era in formato CSV e lo abbiamo importato in XMLSpy, l'editor [JSON e XML più venduto al mondo](https://www.altova.com/it/xmlspy-xml-editor), per convertirlo in formato XML.

Iniziamo la mappatura in MapForce importando gli schemi XML per i file di input e output, quindi collegando gli elementi radice. A questo punto, è importante selezionare il tipo di connessione "basato sul target". Questo ci permette di personalizzare ogni connessione successiva.

[![Connessione degli elementi basata su obiettivi, per una mappatura dei dati personalizzata](/blog/images/data-mapping-1-3.png)](data-mapping-1-3.png)

Successivamente, colleghiamo gli elementi "Row", trasciniamo le funzioni trigonometriche dalla libreria e colleghiamo l'elemento "xvalue" proveniente dalla sorgente a ciascuna funzione e a ciascun elemento di output. Ecco la mappatura dei dati completata:

[![Calcolare i valori di seno, coseno e tangente per i dati di input](/blog/images/data-mapping-2-3.png)](data-mapping-2-3.png)

Cliccando sul pulsante "Output" situato sotto il pannello di mappatura, il file di input viene elaborato, l'output viene generato e si apre la finestra di anteprima.

[![File XML di output contenente i valori di seno, coseno e tangente](/blog/images/output-1-1.png)](output-1-1.png)

In questo esempio, i valori di input variano da zero a 15, con incrementi di un decimo, e l'output contiene il seno, il coseno e la tangente corrispondenti per ciascun valore. Possiamo salvare il file e aprirlo in XMLSpy, per sfruttare la visualizzazione a griglia di XMLSpy, creare un grafico altamente personalizzato e persino esportare il grafico per includerlo in un rapporto o una presentazione

[![Visualizzazione del file di output in formato XML in una griglia di XMLSpy, con un grafico generato](/blog/images/sin-cos-graph.png)](sin-cos-graph.png)

**Mappatura dei dati con XSLT3 per creare espressioni complesse**

È possibile combinare le funzioni XSLT3 con altre funzioni della libreria per creare espressioni complesse. Supponiamo di voler applicare un'equazione quadratica come y = 4x² – 3 a una lista di valori di input. Possiamo creare una mappatura che combini la funzione `pow` di XSLT3, utilizzata per l'elevamento a potenza, con le funzioni principali della libreria per la moltiplicazione e l'addizione.

[![Creare un'espressione quadratica per la mappatura dei dati utilizzando XSLT3](/blog/images/quadratic-mapping-1.png)](quadratic-mapping-1.png)

Si noti che la sequenza delle funzioni nella mappatura definisce esplicitamente l'ordine di elaborazione implicito nell'espressione: prima l'esponente, poi la moltiplicazione e infine la sottrazione. Se l'espressione utilizzasse le parentesi per modificare l'ordine di elaborazione predefinito, modificheremmo la sequenza delle funzioni nella mappatura per impostare l'ordine di elaborazione desiderato.

Potremmo voler applicare una serie di valori di input a diverse varianti dell'espressione e confrontare i risultati. Possiamo creare una funzione definita dall'utente per descrivere l'espressione e possiamo modificare la struttura del file di output per registrare l'esponente, il moltiplicatore e il modificatore utilizzati per generare ciascun file di output.

Ecco la struttura desiderata per ogni file di output generato dalle diverse varianti dell'espressione:

[![Struttura dati desiderata per il file contenente i risultati dell'espressione quadratica](/blog/images/result-structure.png)](result-structure.png)

La funzione definita dall'utente riceverà i valori di x dal file XML di input, calcolerà l'espressione e trasmetterà anche i parametri della funzione che verranno registrati nell'output.

[![L'espressione quadratica come funzione definita dall'utente](/blog/images/user-function-1.png)](user-function-1.png)

Ecco la mappatura completa, con l'espressione utilizzata in una funzione definita dall'utente:

[![La mappatura dei dati utilizzando una funzione definita dall'utente per l'espressione quadratica](/blog/images/quadratic-mapping-2.png)](quadratic-mapping-2.png)

 E il file di output generato:

[![Una visualizzazione parziale della mappatura dei dati utilizzando XSLT3 per l'espressione quadratica](/blog/images/output-2-2.png)](output-2-2.png)

Una funzione definita dall'utente può essere facilmente inserita in altre configurazioni o condivisa tra più utenti di MapForce. Per creare una funzione definita dall'utente, si inizia selezionando le funzioni che definiscono l'espressione, quindi si fa clic sul menu principale "Funzione":

[![Creare una funzione utente a partire da componenti presenti in una mappatura esistente](/blog/images/build-user.png)](build-user.png)

Ecco la nostra definizione finale della funzione utente:

[![Definizione della funzione utente per l'espressione quadratica nella mappatura dei dati utilizzando XSLT3](/blog/images/user-function-definition-1.png)](user-function-definition-1.png)

Se il vostro progetto di mappatura e integrazione dati richiede la mappatura dei dati con XSLT3, inclusa la trigonometria o altre funzioni XSLT3 avanzate, date un'occhiata a MapForce, lo strumento di mappatura dati grafico, pluripremiato, per la conversione e l'integrazione di dati da qualsiasi formato a qualsiasi altro. Scaricate una versione di prova gratuita di [MapForce](https://www.altova.com/it/mapforce/download), che include tutorial, assistenza e molti altri esempi!
