---
title: "MapForceにおけるXMLのワイルドカードデータマッピングと変換"
date: "2013-12-17"
categories: 
  - "data-integration"
  - "xml"
tags: 
  - "data-mapping"
  - "mapforce"
  - "xml-schema"
  - "xmlspy"
description: MapForce 2014が、XMLデータのワイルドカードマッピングと変換を可能にし、カスタムXML拡張機能をシームレスに統合できる方法について解説します。
---
Status: #blog

Tags:  #data-mapping #mapforce #xml-schema #xmlspy

Categories: [data-integration](/blog/ja/category/data-integration.md) | [xml](/blog/ja/category/xml.md)
# MapForceにおけるXMLのワイルドカードデータマッピングと変換

[MapForce 2014](https://www.altova.com/ja/mapforce.html)では、XMLのワイルドカードをマッピングできるようになり、XMLスキーマに組み込まれた拡張機能を実現できるようになりました。これは、xs:anyまたはxs:anyAttributeとして実装されています。

以下に、[XMLSpy](https://www.altova.com/ja/xmlspy.html)で表示されるXMLの断片を示します

![GPX XMLスキーマに準拠したXMLドキュメントの一部](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")

この非常に長いファイルの一部分ですが、ガーミン製のGPSデバイスによるロードトリップ中に記録された2つの位置情報を示しています。XMLデータは[GPX XMLスキーマ](http://www.topografix.com/gpx.asp)に準拠しており、ガーミン独自の拡張機能により、速度や進行方向の情報が追加されています。XMLのワイルドカードマッピングを使用することで、これらの拡張機能をMapForce上で、XMLスキーマに明示的に定義された他の要素と同様にマッピングすることができます。

ここでは、.gpxファイルを読み込み、その中に記録されている移動経路の中で最高速度を抽出することを想定してみましょう

![マッピング完了後の出力結果](https://lh5.ggpht.com/--tVPorv4xiI/Uq8sl13WPpI/AAAAAAAABvc/a9gkXoF2-D4/clip_image002%25255B5%25255D.png?imgmax=800 "Output of the completed mapping")
--more--

MapForceで新しいマッピングデザインを開始するには、.gpxファイルを入力コンポーネントとして取り込むことができます。MapForceは、関連するXMLスキーマで定義され、マッピングに使用可能なすべての要素を表示します。以下に、トラックポイントに関するXMLスキーマの一部を示します

![MapForceのマッピングにおいて、trkpt要素の子要素が表示されます](https://lh5.ggpht.com/-5gbBfYhyIU8/Uq8smBoBIlI/AAAAAAAABvk/52Vflk2Ewh0/clip_image003%25255B3%25255D.png?imgmax=800 "Child elements of trkpt displayed in the MapForce mapping")

「trkpt」要素の直後には、緯度、経度、標高、そして時刻が表示され、これらはXMLの断片に含まれるデータを示します。それ以降の項目（磁気偏差を示す「magvar」から、DGPS局のIDを示す「dgpsid」まで）はすべてオプションであり、Garminのデータファイルには含まれていません。

このXMLスキーマでは、速度やコースに関する要素は一切定義されていません。代わりに、画像の最下部にある`xs:any`に基づいて、速度やコースの情報が許可されています。`xs:any`の横にあるアイコンをクリックすると、拡張機能などを定義する別のXMLスキーマをインポートできるダイアログが表示されます。インポート後、元のXMLスキーマと拡張機能を組み合わせるための仕組みが作成されます。インポートされた新しい要素は、ソースコンポーネントに表示され、マッピングが可能です

![マッピング画面に表示される拡張機能要素](https://lh5.ggpht.com/-t-yViZ09FFc/Uq8sm6BuQjI/AAAAAAAABvs/UjuLJ3zTygs/clip_image004%25255B3%25255D.png?imgmax=800 "Extension elements displayed in the mapping")

### マッピングにおけるデータの並び替え

MapForceに付属するサンプルファイルには、"FindHighestTemperatures.mfd"という名前のマッピングが含まれており、これを利用して、ソート関数を使ってファイルから最高速度を抽出する例として活用できます

![MapForceは、データの中から最も高い速度の値を特定し、抽出します](https://lh6.ggpht.com/-5roljpZ1gVA/Uq8snIIq-RI/AAAAAAAABvw/71mlatBdiL4/clip_image005%25255B3%25255D.png?imgmax=800 "MapForce sorts and extracts the highest speed value")

この機能は、すべての速度値を大きい順に並べ替え、そのうちの最初の値のみを出力します。表示されている「Z-A」という並べ替え順序は、数値データを大きい順に並べ替えることを意味します。

### マッピングにおける値の変換

最後に、速度をメートル毎秒からマイル毎時へと変換し、その結果を小数点以下2桁に丸め、さらに説明的な文章を追加する必要があります

![MapForceにおけるメートル毎秒からマイル毎秒への変換](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")

上記の文字列連結関数によって得られた結果は、出力のためにテキストファイルに書き込まれます

![データマッピングの完了後の出力プレビュー](https://lh3.ggpht.com/-PtjzqAx0Pw8/Uq8sn6s4ZcI/AAAAAAAABwE/-bakYlMPqhE/clip_image002%25255B1%25255D%25255B2%25255D.png?imgmax=800 "Output preview of the complete data mapping")

注意点として、関数間でのデータ変換において、速度（speed）の数値型データを明示的に文字列型に変換する必要はありませんでした。MapForceは、データ型の変換を自動的に処理します。以下に、主要な処理に注釈を付けた、完全なマッピングの簡略化されたビューを示します

[![MapForceにおけるXMLのワイルドカードを使用したデータマッピング](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)

画像をクリックするか、または [こちらをクリックすると、拡大表示されます](https://www.altova.com/ja/images/screenshots/MapForce-XML-wildcard-mapping.PNG).

**Altovaのウェブサイトには、MapForceに関する[無料のオンライン製品トレーニング](https://www.altova.com/ja/aot/online-training.html)が用意されています。さらに、MapForceの[無料トライアル版](https://www.altova.com/ja/download-trial.html)をダウンロードして、データマッピングと変換のスキルを今すぐ向上させることができます。**
