プロパティリスト

プロパティリスト（property list）は、macOS Cocoa・NeXTSTEP・GNUstepなどで利用されるオブジェクトシリアライゼーションのためのファイルである。また、 codice_1という拡張子をもつので、plistファイルと呼ばれることが多い。
プロパティリストは codice_2クラスによってパースされる。プロパティリストが含むことができるのは、codice_3 または codice_4 のオブジェクトのみである。プロパティリスト全体は配列（codice_5）または連想配列（codice_6）でなければならない。
実用では、ユーザーの設定を保存するのによく使われる。これはWindowsにおけるレジストリと似た使い方である。また、プロパティリストはバンドルの情報を格納するためにも用いられ、以前のMac OSではリソースフォークが近い用途に用いられていた。
表現形式.
プロパティリストが表現するデータは抽象的なもので、永続化のためのファイルフォーマットは固定されてはいない。元々、NeXTSTEPではひとつのフォーマットが使われていたが、その後のGNUstepやmacOSのフレームワークで異なるフォーマットが誕生した。
NeXTSTE}.
においては、プロパティリストは可読なフォーマットとして設計され、人間が手で編集し、プログラミング言語風の構文をもつテキストに直列化された。
文字列 (codice_7) は、
 codice_8
バイナリデータ (codice_9) は16進表記で、
 codice_10
配列は、
 codice_11
連想配列は、
 codice_12
と表記する。
このオリジナルのプロパティリストには制限があり、codice_13（数値、真偽値など）のオブジェクトは表現できなかった。
GNUstep.
GNUstep は NeXTSTEP のフォーマットを採用し、いくつかの拡張を施した。
GNUstep はまた、後述するmacOSのフォーマットも読み書きすることができる。（defaults）
 codice_19
のようにすることでplist内の階層化されたキーに対応する値が取得できる。
macOS.
macOSはNeXTSTEPのフォーマットも扱うことができるが、Appleは別にふたつの新しいフォーマットを開発した。
Mac OS X 10.0では、NeXTSTEPのフォーマットは非推奨とされ、Appleが定義したDTD を持つ、新しいXMLフォーマットが登場した。
しかし、XMLは空間効率に問題があるため、10.2で新しいバイナリフォーマットが登場した。これはv10.4以降のデフォルトのフォーマットとなった。
10.2以降で利用できるユーティリティ「plutil」を使うと、プロパティリストの文法チェックや、フォーマット間の変換が可能となる。
macOSのXMLフォーマットで使われるタグと、それに対応するcodice_3のクラスを示す。ルート要素はcodice_21である。また、のフォーマットとは多少違いがある。
codice_22要素の中身は
 codice_23
のように記述する。