---
title: "Mapeo de datos utilizando funciones matemáticas de XSLT3"
date: "2021-04-14"
categories: 
  - "data-integration"
  - "xpath"
  - "xquery"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-data-mapping"
  - "xslt3"
description: Descubra cómo XSLT3 mejora el mapeo de datos XML con funciones matemáticas avanzadas, incluyendo trigonometría, para abordar desafíos de integración complejos utilizando MapForce.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-data-mapping #xslt3

Categories: [data-integration](/blog/es/category/data-integration.md) | [xpath+xquery](/blog/es/category/xpathxquery.md) | [xpath+xquery](/blog/es/category/xpathxquery.md)
# Mapeo de datos utilizando funciones matemáticas de XSLT3

XSLT3 incorpora funciones trigonométricas y otras funciones matemáticas avanzadas, nuevas funciones de formato, funciones para recopilar variables de entorno, y mucho más, ampliando los estándares de transformación XML de XSLT y XSLT2. Los analistas de datos y otros profesionales del sector pueden utilizar las funciones de XSLT3 [para resolver los desafíos relacionados con el mapeo e integración de datos XML](https://www.altova.com/es/mapforce) que requieren cálculos matemáticos complejos. Veamos algunos ejemplos de MapForce [mapeo de datos con XSLT3](https://www.altova.com/es/xslt-3#mapforce) funciones matemáticas que utilizan trigonometría y otras expresiones matemáticas complejas.

![](/blog/images/shutterstock_248233801.jpg)

<!--more-->

MapForce ofrece motores de procesamiento internos, personalizados para diferentes tipos de datos y aplicaciones.

[![Seleccionar el motor de procesamiento para el mapeo de datos con XSLT3](/blog/images/processing-engine.png)](processing-engine.png)

Al seleccionar el motor XSLT3, las funciones que se muestran a continuación se añaden a la ventana de la Biblioteca de Funciones y están disponibles para el mapeo de datos

[![Funciones XQuery para el mapeo de datos con XSLT3](/blog/images/xslt3-functions.png)](xslt3-functions.png)

Por ejemplo, podemos crear un mapeo de datos que genere funciones seno, coseno y tangente para valores de entrada almacenados en un archivo XML. La lista original se proporcionó en un archivo CSV que importamos a XMLSpy, el software más vendido a nivel mundial [Editor de JSON y XML](https://www.altova.com/es/xmlspy-xml-editor), para la conversión a formato XML.

Comenzamos la configuración de la transformación en MapForce importando los esquemas XML para los archivos de entrada y salida, y luego conectando los elementos raíz. En este punto, es importante seleccionar el tipo de conexión "basado en el destino" estándar. Esto nos permite personalizar cada conexión subsiguiente.

[![Conexión de elementos basada en objetivos para la personalización del mapeo de datos](/blog/images/data-mapping-1-3.png)](data-mapping-1-3.png)

A continuación, conectamos los elementos "Row", arrastramos las funciones trigonométricas desde la biblioteca y conectamos el elemento "xvalue" de la fuente a cada función y elemento de salida. Aquí está el mapeo de datos completado:

[![Generar los valores de seno, coseno y tangente para los datos de entrada](/blog/images/data-mapping-2-3.png)](data-mapping-2-3.png)

Al hacer clic en el botón "Salida" que se encuentra debajo del panel de configuración, se procesa el archivo de entrada, se genera el resultado y se abre la ventana de vista previa.

[![Archivo XML de salida que contiene los valores del seno, el coseno y la tangente](/blog/images/output-1-1.png)](output-1-1.png)

En este ejemplo, los valores de entrada varían desde cero hasta 15, incrementándose de diez en diez, y la salida contiene el seno, el coseno y la tangente correspondientes a cada valor. Podemos guardar el archivo y abrirlo en XMLSpy para aprovechar la vista de cuadrícula de XMLSpy, crear un gráfico altamente personalizado e incluso exportar el gráfico para incluirlo en un informe o una presentación

[![Vista del archivo de salida en la interfaz de cuadrícula de XMLSpy, con un gráfico generado](/blog/images/sin-cos-graph.png)](sin-cos-graph.png)

**Mapeo de datos con XSLT3 para crear expresiones complejas**

Puede combinar las funciones XSLT3 con otras funciones de la biblioteca para crear expresiones complejas. Por ejemplo, supongamos que queremos aplicar una ecuación cuadrática como y = 4x² – 3 a una lista de valores de entrada. Podemos crear una función que combine la función `pow` de XSLT3 para calcular la potencia con las funciones básicas de la biblioteca para la multiplicación y la suma.

[![Crear una expresión cuadrática para el mapeo de datos utilizando XSLT3](/blog/images/quadratic-mapping-1.png)](quadratic-mapping-1.png)

Tenga en cuenta que la secuencia de funciones en la asignación define explícitamente el orden de procesamiento implícito en la expresión: primero la exponenciación, luego la multiplicación y, finalmente, la resta. Si la expresión utilizara paréntesis para anular el orden de procesamiento predeterminado, modificaríamos la secuencia de funciones en la asignación para establecer el orden de procesamiento deseado.

Quizás queramos aplicar un conjunto de valores de entrada a varias variaciones de la expresión y comparar los resultados. Podemos crear una función de usuario para definir la expresión, y podemos modificar la estructura del archivo de salida para registrar el exponente, el multiplicador y el modificador utilizados para generar cada archivo de salida.

Aquí se muestra la estructura deseada para cada archivo de salida generado por las diferentes variantes de la expresión:

[![Estructura de datos deseada para el archivo de resultados de la expresión cuadrática](/blog/images/result-structure.png)](result-structure.png)

La función definida por el usuario recibirá los valores de 'x' del archivo XML de entrada, calculará la expresión y también transmitirá los parámetros de la función para que se registren en la salida.

[![La expresión cuadrática como una función definida por el usuario](/blog/images/user-function-1.png)](user-function-1.png)

Aquí se muestra el mapeo completo, con la expresión utilizada en una función definida por el usuario:

[![La asignación de datos utilizando la función definida por el usuario para la expresión cuadrática](/blog/images/quadratic-mapping-2.png)](quadratic-mapping-2.png)

 Y el archivo de salida generado:

[![Una vista parcial del mapeo de datos utilizando XSLT3 para la expresión cuadrática](/blog/images/output-2-2.png)](output-2-2.png)

Una función definida por el usuario se puede insertar fácilmente en otras configuraciones o compartirse entre varios usuarios de MapForce. Para crear una función definida por el usuario, comenzamos seleccionando las funciones que definen la expresión, y luego hacemos clic en el menú principal "Función":

[![Crear una función de usuario a partir de componentes en un mapeo existente](/blog/images/build-user.png)](build-user.png)

Aquí está nuestra definición final de la función del usuario:

[![Definición de la función del usuario para la expresión cuadrática en el mapeo de datos utilizando XSLT3](/blog/images/user-function-definition-1.png)](user-function-definition-1.png)

Si su proyecto de mapeo e integración de datos requiere el uso de mapeo con XSLT3, funciones trigonométricas de fortrigonometry u otras funciones avanzadas de XSLT3, explore MapForce, la herramienta gráfica de mapeo de datos galardonada, ideal para la conversión e integración de datos de cualquier tipo. ¡Descargue una versión de prueba gratuita de [MapForce](https://www.altova.com/es/mapforce/download) que incluye tutoriales, ayuda y muchos más ejemplos!
