本チュートリアルでは、3D都市モデルのXMLスキーマ(XML Schema)について解説します。
XMLスキーマは、3D都市モデルのデータモデルに従って、XMLというフォーマットでデータを記述(符号化)するための仕様(符号化仕様)です。3D都市モデルの記述にXMLを採用している利点としては以下のようなことが挙げられます。
l テキスト形式で記述されるため、人間が直接読んで理解しやすい
l 様々なプラットフォームやシステム間でデータをやり取りする際に互換性が高い
l 階層構造を持つことができ、複雑なデータ構造を記述できる
l XMLスキーマ(XML Schema)を使ってデータの構造を定義することで、データの整合性を確保しやすい
l 拡張性が高く、必要に応じて新しいタグや属性を追加してデータを拡張できる
地理空間データの記述に用いられている他のフォーマットには、CSVやJSON、バイナリ形式があります。しかし、3D都市モデルを広く運用する上で以下のような課題があります。
CSV
l 複雑な階層構造や関係性を表現困難である
l データの型や制約を定義することが難しく、整合性が確保しにくい
JSON
l XML程、柔軟な拡張性を持っていないため、複雑なデータモデルの表現に限界がある
バイナリ
l データを扱う際のツールやライブラリが限られ、互換性に乏しい
l データの拡張が難しいことが多く、既存のデータ構造を変更する際に問題が発生しやすい
本チュートリアルでは3D都市モデルが採用するXMLについて、まず1章でXMLの基本的な内容を説明します。次に2章でXMLスキーマの記法を説明します。そして3章では、3D都市モデルのXMLデータと3D都市モデルのXMLスキーマを対比しながら、3D都市モデルのXMLデータの構造を解説します。最後に参考として、4章では3D都市モデルのデータモデルとXMLスキーマとの関係を解説します。
3D都市モデルのXMLデータを作成したり、読み込んだりすることを目指す人は、まず3章までを読むとよいでしょう。4章は発展的な内容ですが、UMLクラス図で記述されたデータモデルとXMLスキーマとの対応関係を理解できると、XMLスキーマに従ったXMLデータの構造をより体系的に理解できるようになります。
なお、XMLやXMLスキーマには様々なルールがありますが、このチュートリアルでは、3D都市モデルで使用するXMLスキーマを理解できることを目的として、これに必要な内容のみを抽出・整理し解説しています。XMLやXMLスキーマのルールを網羅するものではないことに注意してください。
本チュートリアル内で使用する図では、XMLスキーマを表す際は灰色の背景、XMLデータを表す際は青色の背景で記載しています(図0-1)。
図 0‑1 本チュートリアルにおけるXMLスキーマとXMLデータの表記
なお、「XMLスキーマのオンラインマニュアル」では、3D都市モデル標準製品仕様書で使用するXMLスキーマの階層構造や内容とサンプルのXMLデータを示しています。本チュートリアルでXMLやXMLスキーマの基本を理解したうえでご参照ください。
また、XMLスキーマの構造を定めるデータモデルについては、「GIS標準データモデルのチュートリアル」においてデータモデルの記法を含む基礎知識を解説し、「3D都市モデル標準製品仕様書のオンラインマニュアル」において、3D都市モデル標準製品仕様書に記載されているすべてのUMLクラス図とその定義文書を対応付けることで、「データ構造」とこれに対応する「データの内容」をわかりやすく参照できます。3D都市モデルのデータ構造を視覚的に把握したい場合には、これらをご参照ください。
【オンラインマニュアルとチュートリアルの位置付け】
3D都市モデル標準製品仕様書のオンラインマニュアル
3D都市モデル標準製品仕様書のUMLクラス図、定義文書及びコードリストを対応付け、各クラスの構造と定義を参照しやすくするためのマニュアル。
XMLスキーマのオンラインマニュアル
3D都市モデル標準製品仕様書で使用されているCityGML及びi-URのElement、ComplexTypeの構造や内容、サンプルXMLデータを参照するためのマニュアル。
GIS標準データモデルのチュートリアル
3D都市モデル標準製品仕様書を活用していく上で必要となるGIS標準データモデルの基礎知識を学ぶためのチュートリアル。
XMLスキーマのチュートリアル(本書)
3D都市モデル標準製品仕様書を活用していく上で必要となるXML及びXMLスキーマの基礎知識を学ぶためのチュートリアル。