http://toyoda-eizi-ja.blogspot.com/2013/02/wmo.html の続き。
XML要素名の命名規則、あまり抽象的に書きすぎたのはよくなかったのでもう一度。
実例持ってない人は http://goo.gl/ZPuyi の view source でもみてください。
ISO 19139 にしたがうXML文書のルート要素は gmd:MD_Metadata です。大文字で始まるのはクラスを表わしています。クラスわかんなかったらデータ型の名前と思ってください。MD_Metadata型。その中に gmd:fileIdentifier だの gmd:language だのといった要素が並んでいます。
まず、gmd:fileIdentifier は一番単純な例で、この項目は文字列型です(ええと、項目は、UML的には属性というのが正しいんですが、XMLの属性と紛らわしいので、私は日本では項目といって逃げています)。なので中に gco:CharacterString という要素があって、その中に値が入ります。
<gmd:fileIdentifier><gco:CharacterString>urn:x-wmo:md:int.wmo.wis::SMDL01EDZW</gco:CharacterString></gmd:fileIdentifier>
わざわざ型名を表わす CharacterString を書くのは面倒ですが、XPath でいえば
string(/中略/gmd:fileIdentifier) としてしまえばその中のテキストノードが取得できますから、読む手間はあってもなくてもあまり変わりません。
次の類型が、gmd:language 列挙型(C や Java の enum)です。任意の文字列値じゃなくて、メタデータレコード(この XML 文書)の外で誰かが決めたリストに制約されるということで
すね。この場合、どのリストを使ったかをURLで指示するようになっています。一見
LinkedData かと思われるのですが、URL で指示されるのは語句じゃなくて複数の語句を連ねたリストです。
<gmd:language>
<gmd:LanguageCodecodeList="http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/Codelist/gmxCodelists.xml#LanguageCode"codeListValue="eng">eng</gmd:LanguageCode></gmd:language>
本当は、codeListValue 属性が機械可読な語句で、内部のテキストノード
gmd:LanguageCode/text() は多言語化ができるらしいのですが、WMO では結局英語をデフォルト言語にしろといっているので両方同じ文字列を入れろということになります。
さいごに、値が文字列1つじゃなくて、さらに内部に項目がたくさんあるのはクラスといいます(C なら構造型といったところ)。下の例だと gmd:contact 要素は
CI_ResponsibleParty クラスで、その中には organisationName やら positionName
といった項目が含まれるわけです。
<gmd:contact>
<gmd:CI_ResponsibleParty>
<gmd:organisationName><gco:CharacterString>Deutscher Wetterdienst</gco:CharacterString></gmd:organisationName>
<gmd:positionName><gco:CharacterString>RTH Focal Point</gco:CharacterString></gmd:positionName>
...
</gmd:CI_ResponsibleParty>
</gmd:contact>
あるクラスのなかに他のクラスの項目が入るといったことがありえて、全体でいうとけっこう複雑です。その関係をあらわした図が UML です。
どのくらい複雑かというとですね、ISO 19115 そのものの UML は ISO から規格票を買っていただく必要があって困るのですが、WMO プロファイルバージョン 1.1 はかなりそれに近いのでご
らんいただけばいいと思います。
http://wis.wmo.int/2010/metadata/version_1-1/WMOCoreVer1.1_UML20100318.pdf
いかがです? 覚えなくていいですよ。ごく控えめに言って、これをそのまま非専門家に使いこなしてもらうことは期待できません。
要はいろいろ欲張るから肥大化するので、本当に必要なところはどこですかというのを煮詰めていった結果が今回発行されたバージョン 1.3 の Part 1 p.20 にある UML です。
http://wis.wmo.int/2012/metadata/WMO_Core_Metadata_Profile_v1.3_Specification_Part_1_v1.0FINALcorrected.pdf#page=20
…ながくなったのでこの辺で。
(飽きるまで続きます)
0 件のコメント:
コメントを投稿