おひさしぶりです。へたれのこみや(pinkmac)です。
YAMLとは何かを今更知ったので、覚え書きしておきます。
折角なので他のデータ形式もいっしょに見直してみることにしました。
サンプルデータ on XML
XML:
-
<zgundam>
-
<organization name="エゥーゴ">
-
<person>
-
<name>カミーユ・ビダン</name>
-
<ms>Zガンダム</ms>
-
</person>
-
<person>
-
<name>クワトロ・バジーナ</name>
-
<ms>百式</ms>
-
</person>
-
</organization>
-
<organization name="ティターンズ">
-
<person>
-
<name>パプテマス・シロッコ</name>
-
<ms>ジ・O</ms>
-
</person>
-
<person>
-
<name>レコア・ロンド</name>
-
<ms>パラス・アテネ</ms>
-
</person>
-
</organization>
-
<organization name="アクシズ">
-
<person>
-
<name>ハマーン・カーン</name>
-
<ms>キュベレイ</ms>
-
</person>
-
</organization>
-
</zgundam>
思いっきり偏ったサンプルで恐縮ですが、、
このデータ構造を、YAML、ついでにJSONで書いてみたいと思います。
YAML
特徴
- YAML Ain't Markup Language の名が顕すようにマークアップ言語ではない
- スキーマやDTDの概念がない
- 利用可能な言語: Java / JavaScript / Perl / PHP / Python / Ruby / XML/
基本的な記述法
- インデントで階層構造を表現
- インデントにはスペースのみ利用可能。タブは使用できません
- 配列・ハッシュ・スカラーでデータを表現
- 日本語の扱いに難あり?
- 詳しくはYAMLの仕様をご参照あれ
RUBY:
-
#Zガンダムの登場人物
-
##エゥーゴ
-
aeug:
-
- kamille
-
name:Kamille Bidan
-
sex:men
-
ms:z-gundam
-
- quattro
-
name:Quattro Vageena
-
sex:men
-
ms:type-100
-
-
##ティターンズ
-
titans:
-
- scirocco
-
name:Paptimus Scirocco
-
sex:men
-
ms:THE-O
-
- sarah
-
name:Sarah Zabiarov
-
sex:women
-
ms:messala
-
- reccoa
-
name:Reccoa Londe
-
sex:women
-
ms:palace-athene
-
-
##アクシズ
-
axis:
-
- haman
-
name:Haman Karn
-
sex:women
-
ms:qubeley
インデントだけで記述するスタイルは非常にシンプルですね。
JSON
特徴
JavaScript:
-
{
-
"zgundam": {
-
"organization": [
-
{
-
"name": "エゥーゴ",
-
"person": [
-
{
-
"name": "カミーユ・ビダン",
-
"sex": "men",
-
"MS": "Zガンダム"
-
},
-
{
-
"name": "クワトロ・バジーナ",
-
"sex": "men",
-
"MS": "百式"
-
}
-
]
-
},
-
{
-
"name": "ティターンズ",
-
"person": [
-
{
-
"name": "ジェリド・メサ",
-
"sex": "men",
-
"MS": "マラサイ"
-
},
-
{
-
"name": "パプテマス・シロッコ",
-
"sex": "men",
-
"MS": "ジ・O"
-
},
-
{
-
"name": "サラ・ザビアロフ ",
-
"sex": "women",
-
"MS": "ボリノーク・サマーン"
-
},
-
{
-
"name": "レコア・ロンド",
-
"sex": "women",
-
"MS": "パラス・アテネ"
-
}
-
]
-
},
-
{
-
"name": "アクシズ",
-
"person": {
-
"name": "ハマーン・カーン",
-
"sex": "men",
-
"MS": "キュベレイ"
-
}
-
}
-
]
-
}
-
}
もはや大分アタマがこんがらがってきましたが…
次の機会には各種実装からこれらを使ってみたいと思います。
No comments yet.