プロパティリスト
[Wikipedia|▼Menu]

プロパティリスト拡張子.plist
MIMEタイプapplication/x-plist
開発者Apple および GNUstep、
かつては NeXT
種別データシリアライゼーション

プロパティリスト(property list)は、macOS CocoaNeXTSTEPGNUstepなどで利用されるオブジェクトシリアライゼーションのためのファイルである。また、 .plistという拡張子をもつので、plistファイルと呼ばれることが多い。

プロパティリストは NSPropertyListSerializationクラスによってパースされる。プロパティリストが含むことができるのは、Foundation または Core Foundation のオブジェクトのみである。プロパティリスト全体は配列(NSArray)または連想配列(NSDictionary)でなければならない。

実用では、ユーザーの設定を保存するのによく使われる。これはWindowsにおけるレジストリと似た使い方である。また、プロパティリストはバンドルの情報を格納するためにも用いられ、以前のMac OSではリソースフォークが近い用途に用いられていた。
表現形式

プロパティリストが表現するデータは抽象的なもので、永続化のためのファイルフォーマットは固定されてはいない。元々、NeXTSTEPではひとつのフォーマットが使われていたが、その後のGNUstepやmacOSのフレームワークで異なるフォーマットが誕生した。
NeXTSTEP

NeXTSTEPにおいては、プロパティリストは可読なフォーマットとして設計され、人間が手で編集し、プログラミング言語風の構文をもつASCIIテキストに直列化された。

文字列 (NSString) は、"This is a plist string"

バイナリデータ (NSData) は16進表記で、< 54637374 696D67 >

配列は、( "one", "two", "three" )

連想配列は、{"key" = "value";…}

と表記する。

このオリジナルのプロパティリストには制限があり、NSValue(数値、真偽値など)のオブジェクトは表現できなかった。
GNUstep

GNUstep は NeXTSTEP のフォーマットを採用し、いくつかの拡張を施した。

NSValueをサポートした。<*INNN>(NNNが数値)のように表記する。

NSDate(時刻)をサポートした。<*DYYYY-MM-DD HH:MM:SS timezone>のように表記する。

GNUstep はまた、後述するmacOSのフォーマットも読み書きすることができる。( ⇒defaults

GNUstep に付属するツールにplget[1]などがある。
$ cat com.example.app.plist 。plget key$ cat com.example.app.plist 。plget key 。plget key

のようにすることでplist内の階層化されたキーに対応する値が取得できる。
macOS

macOSはNeXTSTEPのフォーマットも扱うことができるが、Appleは別にふたつの新しいフォーマットを開発した。

Mac OS X 10.0では、NeXTSTEPのフォーマットは非推奨とされ、Appleが定義したDTD [2]を持つ、新しいXMLフォーマットが登場した。

しかし、XMLは空間効率に問題があるため、10.2で新しいバイナリフォーマットが登場した。これはv10.4以降のデフォルトのフォーマットとなった。

10.2以降で利用できるユーティリティ「plutil」を使うと、プロパティリストの文法チェックや、フォーマット間の変換が可能となる。

macOSのXMLフォーマットで使われるタグと、それに対応するFoundationのクラスを示す。ルート要素は<plist>である。また、GNUstepのフォーマットとは多少違いがある。

クラス名XML要素
NSStringstring
NSNumberreal、integer、true、false
NSDatedate
NSDatadata
NSArrayarray
NSDictionarydict

dict要素の中身は<dict><key>key</key><string>value</string></dict>

のように記述する。
脚注^http://manpages.ubuntu.com/manpages/intrepid/man1/pldes.1.html
^ https://www.apple.com/DTDs/PropertyList-1.0.dtd

外部リンク

Manual Page For plist(5)

Property List Programming Guide for Cocoa

NSPropertyListSerialization class documentation

OpenStep plist API










macOS
バージョン

Public Beta

10.0

10.1

10.2

10.3

10.4

10.5

10.6

10.7

10.8

10.9

10.10

10.11

10.12

10.13

10.14

10.15

11

12

13

14

アプリケーション



Automator

DVD プレーヤー

FaceTime

Finder

Font Book

Launchpad

Mac App Store

News(英語版)

Photo Booth


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:20 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef