NeXT形式plistの文法は極めて簡単である。小括弧「()」でくくられた中身が配列、中括弧「{}」でくくられた中身がディクショナリを表す。配列の要素ごとの区切りは「,」(カンマ)、ディクショナリの要素ごとの区切りは「;」(セミコロン)である。文字列は「"」(ダブルクオート)でくくられるのが前提だが、空白などほかに紛らわしい要素がなければダブルクオートを省略することも許される。文字列以外のバイナリデータは「<>」でくくられた16進数の集まりで表現される。数値および真偽値に対応する表現は存在しない(リスト1)。
すでに述べたように、Mac OS XではXML形式plistが推奨されており、各フレームワークでもこのNeXT形式(ドキュメントではold-styleとされている)は読み込みのみのサポートとなっている。しかし、いったん慣れるとそらで書けるほどに簡単であり、またXMLに比べれば読みやすいため、defaultsコマンドなどの出力ではいまだ使用されている(実行例1)。
% defaults read org.mozilla.firefox
{
"AppleNavServices:PutFile:0:Disclosure" = <01>;
"AppleNavServices:PutFile:0:Position" = <013700d8 >;
"AppleNavServices:PutFile:0:Size" = <00000000 00bd0230 >;
NavPanelPreferredColumnContentWidth = 170;
Mac OS X標準のplistは、XMLを用いた書式になる。前のページで示したリスト2は、リスト1と同じ内容をXMLで書き直したものだ。リスト2に登場していないタグには、データを示すがある。また数値は、整数の
なお、リスト3はリスト1、2と同じデータの構造をRubyでの表現で示したものだ。
{
"キー1" => "値1",
"キー2" => {
"サブキー1" = "値2"
},
"キー3" => [
"配列メンバー1",
"配列メンバー2",
"配列メンバー3"
]
}
Copyright © ITmedia, Inc. All Rights Reserved.