---
title: "Mapowanie i transformacja danych XML z użyciem symboli wieloznacznych w programie MapForce"
date: "2013-12-17"
categories: 
  - "data-integration"
  - "xml"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-schema"
  - "xmlspy"
description: Odkryj, w jaki sposób MapForce 2014 umożliwia mapowanie i transformację danych XML z wykorzystaniem symboli wieloznacznych, co pozwala na płynną integrację niestandardowych rozszerzeń XML.
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-schema #xmlspy

Categories: [data-integration](/blog/pl/category/data-integration.md) | [xml](/blog/pl/category/xml.md)
# Mapowanie i transformacja danych XML z użyciem symboli wieloznacznych w programie MapForce

[MapForce 2014](https://www.altova.com/pl/mapforce.html) teraz obsługuje mapowanie symboli wieloznacznych XML, co umożliwia wbudowany mechanizm rozszerzeń dla schematów XML, zaimplementowany jako xs:any lub xs:anyAttribute.

Rozważmy ten fragment kodu XML, wyświetlany w programie [XMLSpy](https://www.altova.com/pl/xmlspy.html):

![Fragment dokumentu XML zgodny ze schematem XML GPX](https://lh6.ggpht.com/-Pu0lWwmXn9U/Uq8slWp5aeI/AAAAAAAABvY/8Mo49sFdmvI/clip_image001%25255B3%25255D.png?imgmax=800 "Fragment of an XML document following the GPX XML Schema")

Ten fragment bardzo długiego pliku przedstawia dwa punkty trasy zarejestrowane przez urządzenie GPS firmy Garmin podczas podróży. Dane XML zgodne są ze schematem XML [GPX](http://www.topografix.com/gpx.asp), a firma Garmin dodała rozszerzenia umożliwiające zapisywanie wartości prędkości i kierunku. Dzięki mapowaniu symboli wieloznacznych w MapForce, można przypisać te rozszerzenia tak samo, jak inne elementy zdefiniowane w schemacie XML.

Załóżmy, że chcemy odczytać plik .gpx i wyodrębnić z niego najwyższą prędkość, jaką osiągnięto podczas danej podróży

![Wynik końcowy procesu mapowania](https://lh5.ggpht.com/--tVPorv4xiI/Uq8sl13WPpI/AAAAAAAABvc/a9gkXoF2-D4/clip_image002%25255B5%25255D.png?imgmax=800 "Output of the completed mapping")!--more--

Możemy rozpocząć projektowanie nowego mapowania w MapForce, importując plik .gpx jako element wejściowy. MapForce wyświetla listę wszystkich elementów zdefiniowanych w odpowiadającym schemacie XML, które są dostępne do mapowania. Zrzut ekranu poniżej pokazuje fragment schematu XML dotyczący punktów trasy:

![Elementy potomne tagu `trkpt` są wyświetlane w mapowaniu w programie MapForce](https://lh5.ggpht.com/-5gbBfYhyIU8/Uq8smBoBIlI/AAAAAAAABvk/52Vflk2Ewh0/clip_image003%25255B3%25255D.png?imgmax=800 "Child elements of trkpt displayed in the MapForce mapping")

Szerokość geograficzna, długość geograficzna, wysokość i czas pojawiają się bezpośrednio po elemencie "trkpt" i definiują dane zawarte w fragmencie XML. Poniższe elementy – od wariacji magnetycznej (magvar) po identyfikator stacji DGPS (dgpsid) – są wszystkie opcjonalne i nie występują w pliku danych Garmin.

Elementy dotyczące prędkości i trasy nie są w ogóle zdefiniowane w tym schemacie XML. Zamiast tego, prędkość i trasa są dozwolone dzięki użyciu elementu `xs:any` na dole definicji obrazu. Kliknięcie ikony obok `xs:any` otwiera okno dialogowe, które umożliwia import innego schematu XML definiującego rozszerzenia oraz tworzy "opakowanie", które łączy oryginalny schemat XML z rozszerzeniami. Po imporcie, nowe elementy są wyświetlane w komponencie źródłowym i można je przypisać:

![Elementy rozszerzeń wyświetlane na mapie](https://lh5.ggpht.com/-t-yViZ09FFc/Uq8sm6BuQjI/AAAAAAAABvs/UjuLJ3zTygs/clip_image004%25255B3%25255D.png?imgmax=800 "Extension elements displayed in the mapping")

### Sortowanie danych w mapowaniu

Przykładowe pliki zainstalowane wraz z MapForce zawierają mapowanie o nazwie FindHighestTemperatures.mfd, które możemy wykorzystać jako przykład, aby wyodrębnić najwyższą prędkość z naszego pliku, używając funkcji sortowania:

![MapForce sortuje dane i wyodrębnia wartość najwyższej prędkości](https://lh6.ggpht.com/-5roljpZ1gVA/Uq8snIIq-RI/AAAAAAAABvw/71mlatBdiL4/clip_image005%25255B3%25255D.png?imgmax=800 "MapForce sorts and extracts the highest speed value")

Ta funkcja sortuje wszystkie wartości prędkości od najwyższej do najniższej, a następnie przesyła tylko pierwszą wartość jako wynik. Klucz sortowania "Z-A" automatycznie sortuje dane numeryczne od najwyższych do najniższych wartości.

### Konwersja wartości w mapowaniu

Na koniec, musimy przeliczyć prędkość z metrów na sekundę na mile na godzinę, zaokrąglić wynik do dwóch miejsc po przecinku i dodać opisowy tekst:

![Konwersja jednostek w MapForce: metry na sekundę na mile na godzinę](https://lh3.ggpht.com/-aMdIjCf2hmA/Uq8sndGqSsI/AAAAAAAABv8/ws9-WLt0HhI/clip_image006%25255B3%25255D.png?imgmax=800 "MapForce conversion of meters per second to miles per hour")

Wynik działania funkcji łączenia ciągów znaków, o której mowa powyżej, jest zapisywany do pliku tekstowego, który służy jako wynik

![Podgląd wyników mapowania danych](https://lh3.ggpht.com/-PtjzqAx0Pw8/Uq8sn6s4ZcI/AAAAAAAABwE/-bakYlMPqhE/clip_image002%25255B1%25255D%25255B2%25255D.png?imgmax=800 "Output preview of the complete data mapping")

Należy zauważyć, że nie musieliśmy jawnie konwertować wartości prędkości z typu danych numerycznego na ciąg znaków podczas przesyłania danych między funkcjami. MapForce automatycznie obsługuje konwersję typów danych. Poniżej znajduje się skrócona wersja kompletnego odwzorowania, z adnotacjami najważniejszych operacji:

[![Mapowanie danych XML za pomocą MapForce, wykorzystujące symbole wieloznaczne](https://lh3.ggpht.com/-xOHuzpDih5Y/Uq8soYR65qI/AAAAAAAABwI/MusDgpCMxj0/clip_image007%25255B4%25255D.png?imgmax=800 "MapForce data mapping of XML wildcards")](https://www.altova.com/images/screenshots/MapForce-XML-wildcard-mapping.PNG)

Kliknij na obrazie lub [kliknij tutaj, aby wyświetlić obraz w pełnym rozmiarze](https://www.altova.com/pl/images/screenshots/MapForce-XML-wildcard-mapping.PNG).

**Na stronie internetowej firmy Altova znajduje się [bezpłatne szkolenie online](https://www.altova.com/pl/aot/online-training.html) dotyczące programu MapForce. Można również [pobrać bezpłatną wersję próbną](https://www.altova.com/pl/download-trial.html) programu MapForce i zacząć już dziś rozwijać swoje umiejętności w zakresie mapowania i transformacji danych!**
