---
title: "Mapowanie danych przy użyciu funkcji matematycznych XSLT3"
date: "2021-04-14"
categories: 
  - "data-integration"
  - "xpath"
  - "xquery"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-data-mapping"
  - "xslt3"
description: Odkryj, w jaki sposób XSLT3 udoskonala mapowanie danych XML dzięki zaawansowanym funkcjom matematycznym, w tym trygonometrii, co pozwala rozwiązywać złożone problemy integracji przy użyciu narzędzia MapForce.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-data-mapping #xslt3

Categories: [data-integration](/blog/pl/category/data-integration.md) | [xpath+xquery](/blog/pl/category/xpathxquery.md) | [xpath+xquery](/blog/pl/category/xpathxquery.md)
# Mapowanie danych przy użyciu funkcji matematycznych XSLT3

XSLT3 dodaje funkcje trygonometryczne oraz inne zaawansowane funkcje matematyczne, nowe funkcje formatowania, funkcje do zbierania zmiennych środowiskowych i wiele innych, rozszerzając standardy transformacji XML XSLT i XSLT2. Analitycy danych i inni specjaliści ds. danych mogą wykorzystywać funkcje XSLT3 [do rozwiązywania problemów związanych z mapowaniem i integracją danych XML](https://www.altova.com/pl/mapforce), które wymagają złożonych obliczeń matematycznych. Przyjrzyjmy się kilku przykładom wykorzystania MapForce do [mapowania danych za pomocą funkcji matematycznych XSLT3](https://www.altova.com/pl/xslt-3#mapforce), w tym funkcji trygonometrycznych i innych złożonych wyrażeń matematycznych.

![](/blog/images/shutterstock_248233801.jpg)

<!--more-->

MapForce oferuje wewnętrzne silniki przetwarzania, które można dostosować do różnych typów danych i zastosowań.

[![Wybór silnika przetwarzania do mapowania danych przy użyciu XSLT3](/blog/images/processing-engine.png)](processing-engine.png)

Po wybraniu silnika XSLT3, funkcje wyświetlone poniżej zostaną dodane do okna Biblioteki Funkcji i będą dostępne do mapowania danych

[![Funkcje XQuery do mapowania danych z wykorzystaniem XSLT3](/blog/images/xslt3-functions.png)](xslt3-functions.png)

Na przykład, możemy stworzyć mapowanie danych, które generuje wartości funkcji sinus, cosinus i tangens dla wartości wejściowych przechowywanych w pliku XML. Oryginalna lista została dostarczona w formacie CSV, którą zaimportowaliśmy do programu XMLSpy, który jest najlepiej sprzedającym się programem do przetwarzania XML na świecie [Edytor plików JSON i XML](https://www.altova.com/pl/xmlspy-xml-editor), w celu konwersji do formatu XML.

Rozpoczynamy mapowanie w programie MapForce, importując schematy XML dla plików wejściowych i wyjściowych, a następnie łącząc elementy główne. Na tym etapie ważne jest wybranie standardowego typu połączenia, opartego na definicji celu. Dzięki temu możemy dostosować każde kolejne połączenie.

[![Elementy połączeń zdefiniowane przez cel, umożliwiające dostosowanie mapowania danych](/blog/images/data-mapping-1-3.png)](data-mapping-1-3.png)

Następnie łączymy elementy "Row", wciągamy funkcje trygonometryczne z biblioteki i łączymy element "xvalue" z źródła z każdą funkcją oraz elementem wyjściowym. Poniżej znajduje się kompletne odwzorowanie danych:

[![Generowanie wartości funkcji sinus, cosinus i tangens dla danych wejściowych](/blog/images/data-mapping-2-3.png)](data-mapping-2-3.png)

Kliknięcie przycisku "Wygeneruj" znajdującego się pod panelem mapowania przetwarza plik wejściowy, generuje wynik i otwiera okno podglądu.

[![Plik XML zawierający wartości funkcji sinus, cosinus i tangens](/blog/images/output-1-1.png)](output-1-1.png)

W tym przykładzie wartości wejściowe zaczynają się od zera i zwiększają się do 15, przyrostem 0,1. Wynik zawiera odpowiednio wartości sinus, cosinus i tangens dla każdej z tych wartości. Możemy zapisać plik i otworzyć go w programie XMLSpy, aby skorzystać z widoku tabelarycznego XMLSpy, stworzyć wysoce spersonalizowany wykres i nawet wyeksportować ten wykres, aby umieścić go w raporcie lub prezentacji

[![Wyświetlenie zawartości pliku wynikowego w formacie XML w widoku tabelarycznym w programie XMLSpy, wraz z wygenerowanym wykresem](/blog/images/sin-cos-graph.png)](sin-cos-graph.png)

**Mapowanie danych za pomocą XSLT3 do tworzenia złożonych wyrażeń**

Można łączyć funkcje XSLT3 z innymi funkcjami w bibliotece, aby tworzyć złożone wyrażenia. Załóżmy, że chcemy zastosować równanie kwadratowe, takie jak y = 4x² – 3, do listy wartości wejściowych. Możemy stworzyć mapowanie, które łączy funkcję potęgowania `pow` z XSLT3 z podstawowymi funkcjami biblioteki służącymi do mnożenia i dodawania.

[![Tworzenie wyrażenia kwadratowego do mapowania danych za pomocą XSLT3](/blog/images/quadratic-mapping-1.png)](quadratic-mapping-1.png)

Należy zwrócić uwagę, że kolejność funkcji w mapowaniu wyraźnie określa kolejność wykonywania operacji, która jest implikowana w wyrażeniu: najpierw potęgowanie, następnie mnożenie, a na końcu odejmowanie. Jeśli wyrażenie używa nawiasów, aby zmienić domyślną kolejność wykonywania operacji, zmienilibyśmy kolejność funkcji w mapowaniu, aby określić pożądaną kolejność.

Być może chcemy przetestować różne warianty wyrażenia, podając mu szereg wartości wejściowych i porównując wyniki. Możemy stworzyć funkcję użytkownika, która będzie opisywać to wyrażenie, a także możemy zmodyfikować strukturę pliku wyjściowego, aby rejestrować wykładnik, mnożnik i modyfikator użyte do wygenerowania każdego pliku wyjściowego.

Oto pożądana struktura każdego pliku wyjściowego generowanego przez różne warianty tego wyrażenia:

[![Pożądana struktura danych dla pliku wynikowego wyrażenia kwadratowego](/blog/images/result-structure.png)](result-structure.png)

Funkcja użytkownika będzie przyjmować wartości zmiennej x z pliku XML, obliczać wyrażenie oraz przekazywać parametry funkcji, które zostaną zapisane w pliku wynikowym.

[![Wyrażenie kwadratowe jako funkcja zdefiniowana przez użytkownika](/blog/images/user-function-1.png)](user-function-1.png)

Oto pełne odwzorowanie wraz z przykładem użycia w funkcji użytkownika:

[![Mapowanie danych przy użyciu funkcji zdefiniowanej przez użytkownika dla wyrażenia kwadratowego](/blog/images/quadratic-mapping-2.png)](quadratic-mapping-2.png)

 A oto wygenerowany plik wynikowy:

[![Fragment widoku mapowania danych przy użyciu XSLT3 dla wyrażenia kwadratowego](/blog/images/output-2-2.png)](output-2-2.png)

Funkcję użytkownika można łatwo wstawić do innych mapowań lub udostępnić wielu użytkownikom MapForce. Rozpoczynamy tworzenie funkcji użytkownika, wybierając funkcje, które definiują wyrażenie, a następnie klikamy menu "Funkcja":

[![Tworzenie funkcji użytkownika z wykorzystaniem komponentów z istniejącej mapy](/blog/images/build-user.png)](build-user.png)

Oto nasza ostateczna definicja funkcji użytkownika:

[![Definicja funkcji użytkownika dla wyrażenia kwadratowego w mapowaniu danych przy użyciu XSLT3](/blog/images/user-function-definition-1.png)](user-function-definition-1.png)

Jeśli projekt mapowania i integracji danych wymaga wykorzystania mapowania danych z wykorzystaniem XSLT3, w tym funkcji trygonometrycznych lub innych zaawansowanych funkcji XSLT3, zapoznaj się z MapForce, nagradzanym, graficznym narzędziem do mapowania danych, przeznaczonym do konwersji i integracji danych pomiędzy dowolnymi formatami. Pobierz [Wersja próbowa MapForce](https://www.altova.com/pl/mapforce/download) w tym samouczki, pomoc i wiele innych przykładów!
