検索
連載

第3回 plist(プロパティリスト)とFoundation【前編】Undocumented Mac OS X(3/4 ページ)

Mac OS Xにおいてオブジェクトの永続化に用いられるファイル形式plist。今回から2回にわたって、plistとこれに対応するFoundationフレームワークがMac OS Xをどのように支えているのか解説する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

NeXT形式plistの文法

 NeXT形式plistの文法は極めて簡単である。小括弧「()」でくくられた中身が配列、中括弧「{}」でくくられた中身がディクショナリを表す。配列の要素ごとの区切りは「,」(カンマ)、ディクショナリの要素ごとの区切りは「;」(セミコロン)である。文字列は「"」(ダブルクオート)でくくられるのが前提だが、空白などほかに紛らわしい要素がなければダブルクオートを省略することも許される。文字列以外のバイナリデータは「<>」でくくられた16進数の集まりで表現される。数値および真偽値に対応する表現は存在しない(リスト1)

 すでに述べたように、Mac OS XではXML形式plistが推奨されており、各フレームワークでもこのNeXT形式(ドキュメントではold-styleとされている)は読み込みのみのサポートとなっている。しかし、いったん慣れるとそらで書けるほどに簡単であり、またXMLに比べれば読みやすいため、defaultsコマンドなどの出力ではいまだ使用されている(実行例1)

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

実行例1 defaultsコマンドの出力例

XML形式plistの文法

 Mac OS X標準のplistは、XMLを用いた書式になる。前のページで示したリスト2は、リスト1と同じ内容をXMLで書き直したものだ。リスト2に登場していないタグには、データを示すがある。また数値は、整数のや実数のといったタグでくくることで表現され、そしての2つの独立したタグをもって真偽値を表現する。XMLの宣言を利用することでどんな文字コードを使っているかも明確に表現できる。

 なお、リスト3はリスト1、2と同じデータの構造をRubyでの表現で示したものだ。

{

    "キー1" => "値1",

    "キー2" => {

        "サブキー1" = "値2"

    },

    "キー3" => [

        "配列メンバー1",

        "配列メンバー2",

        "配列メンバー3"

    ]

}


リスト3  リスト1〜2をRubyでの表現で書き直したもの

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る