複合データ型をとるクラス属性のXML表現

2011-02-15
第1章 実世界のモデル化と形式化
3.地物インスタンスの表現
太田守重
[email protected]
地理情報科学教育用スライド ©太田守重
ここで学ぶこと
一般地物モデルに従って応用スキーマを作成することができるが、応用スキーマは地
物とその構造のモデルにはなっても、インスタンスの表現にはならない。インスタンスを
記述するために、ここではXMLが使われる。XMLは拡張マーク付け言語と呼ばれ、自分
自身の説明(タグ)を含む「自己記述型言語」である。
ここでは、この講義で使用する一般地物モデルに準拠した、インスタンス表現のため
の規則(インスタンスモデル)を紹介する。
地理情報科学教育用スライド ©太田守重
XML (eXtended Markup Language)
マークアップでデータに意味付けし、構造化し、文書化するための規則
マークアップは < と > で区切るシンボルで、タグとよばれる。
データは内容 (content) ともよばれる。
例: <title>算法入門</title>
タグで囲まれた情報の単位は要素とよばれる。UMLのクラスをXMLで表現すると
き、クラスは要素になる。
例: <道路>
............
</道路>
ただし、タグの下に下位の要素が入らないときは、終了タグは省略し、
<道路・・・/>
のように表記してもいい。
地理情報科学教育用スライド ©太田守重
基本データ型をとるクラス属性のXML表現
クラス図で基本データ型をもつ属性は、XMLの属性として表現する。XML属性は、
開始タグの中で、属性名=”属性値” という形式で示す。
例: <Abc id=“p01” name=“木下奈保子” position=“課長”/>
Abc
name: String
position: String
属性の型が Sequence<基本データ型> の場合は、カンマで区切られた属性値の
列で表現する。
例: <Abc id=“w10” name=“saito,tokuda,utsugi”/>
Abc
name: Sequence<String>
・・・・・・・・・・・・・・・・・・・・
地理情報科学教育用スライド ©太田守重
複合データ型をとるクラス属性のXML表現
複合データ型(クラス)をとる属性はXMLの下位要素とし、実際の要素をidrefで参照
する。
例: <Abc id=“a01”>
Book
Abc
<efg idref=“bk01”/>
title: String
efg: Book
</Abc>
publish: Date
<Book id=“bk01” title=算法入門” publish=“2010-10-01”/>
属性の型が Sequence<複合データ型> の場合は、<sequence>…</sequence>の下
位要素の列で属性値の列を表現する。
例: <Abc id=“a23”>
<sequence>
<efg idref=“bk01” />
Abc
…………
efg: Sequence<Book>
</sequence>
</Abc>
地理情報科学教育用スライド ©太田守重
関連の表現
他の要素への関連は、関連種類を示すタグ (association, aggregation,
composition) で囲んで
<役割名 相手要素の参照/> で示す。
例: <Abc id=“f98”>
<association>
<kml idref=“h001”/>
</association>
</Instance>
............
<Efg id=“h001” .... />
Abc
kml
地理情報科学教育用スライド ©太田守重
Efg
多重度をもつ関連
関連する要素の多重度が1以上の場合、関連種類を示すタグで囲んで
<役割名 ・・・・/>の列が、その中に入る。
。
例:<Abc id=“sss”>
<aggregation>
<kml idref=“n02”/>
<kml iderf=“n04”/>
・・・・・
</aggregation>
</Instance>
・・・・・
1..*
Abc
<Efg id=“n02” name=“Taro”/>
<Efg id=“n04” name=“Hanako”/>
・・・・・
地理情報科学教育用スライド ©太田守重
kml
Efg
name: String
継承
上位のクラスを継承する場合は、継承するプロパティを全て含むため、上位の
クラスを指定する。下位のクラスは複数になる可能性がある。
例:EfgがAbcを継承するとき、Efgには継承する属性を入れる。
<Abc id=“abc01” bcg=“o” kml=“p”/>
Abc
bcg: *
kml: *
<Efg id=“kk03” bcg=“o” kml=“p” pqr=“q” stu=“r”/>
Efg
pqr: *
stu: *
*: 任意のデータ型
地理情報科学教育用スライド ©太田守重
地物インスタンスのXML表現
UMLクラス図
建物
名称:String
使用目的:Sequence<String>
床面積:Float
形状:曲面
建物形状
id=“s001”
名称:本郷ビル
使用目的:商用、住居
床面積:500
形状:形状データ “s001” 参照
<建物 id=“buil02” 名称=“本郷ビル” 使用目的=“商用,住居” 床面積=“500” >
<形状 idref=“s001”/>
</建物>
*)形状など、空間属性の具体的な表現
法は「空間スキーマ」で学ぶ。
地理情報科学教育用スライド ©太田守重
まとめ
地物インスタンスの表現には、XMLを使用することができる。
ここでは、UMLで記述された、一般地物モデルに従う応用スキーマに準拠する
XML文書を作成するための規則を示した。
地理情報科学教育用スライド ©太田守重
参考文献
1. 有川正俊、太田守重監修(2007)『GISのためのモデリング入門』ソフトバンクク
リエイティブ
2. 村山祐司,柴崎亮介監修(2008)『GISの理論』朝倉書店
3. ISO, ISO 19118:2005 – Geographic Information - Encoding
地理情報科学教育用スライド ©太田守重