Property List

Property List

Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

Property List
Dateiendung: .plist
MIME-Type: application/x-plist
Entwickelt von: NeXT und Apple
Art: Dateiformat zur Serialisierung assoziativer Arrays ("Dictionaries")

Unter Mac OS X, iOS, NeXTSTEP und GNUstep dienen Property List-Dateien (dt. Liste von Eigenschafen) der Serialisierung von assoziativen Datenfeldern (engl. auch dictionaries). Da diese Dateien fast immer die Endung .plist haben, werden sie of auch p-list-Dateien genannt.

Die beiden heute gültigen plist-Formate sind einerseits auf XML-Basis, und zum anderen binär kodiert. Sie werden vom System gleichermaßen unterstützt und sind zueinander kompatibel.

Die Dateien werden häufig genutzt, um die Einstellungen des Benutzers zu speichern; weiterhin besitzt jedes Bundle mindestens eine Datei namens Info.plist, in der allgemeine Informationen zum Bundle enthalten sind.

Inhaltsverzeichnis

Geschichte

In NeXTSTEP wurde ein Dateiformat zur Serialisierung assoziativer Arrays (im Grunde verschachtelte Name-Wert-Paare oder Arrays von Werten) eingeführt. Entwickler konnten so einfach z.B. Einstellungen oder Informationen abspeichern und auslesen.

Da Mac OS X der direkte Nachfolger von NeXTSTEP ist, übernahm es auch das Datenformat für plist-Dateien. Apple erklärte das bisherige Format als ungültig, und führte ein neues auf der Basis von XML ein, das den Funktionsumfang seines Vorgängers übernahm und gleichzeitig neue Datentypen hinzufügte.

GNUstep, ein NeXTSTEP-Klon, übernahm das alte Format aus Gründen der Kompatibilität, und erweiterte es um zwei Datentypen.

Darstellung

Da die Daten, die in diesen Dateien gespeichert werden können, sehr abstrakt sind, lassen sie sich auf vielfältige Art und Weise speichern. Im Lauf der Zeit hat sich das Format der Dateien verändert; so nutzte NeXTSTEP ein anderes Format, als Mac OS X und GNUstep dies tun.

NeXTSTEP

Die plist-Dateien unter NeXTSTEP waren darauf ausgelegt, von Menschen lesbar und von Hand veränderbar zu sein; deswegen wurden sie als ASCII serialisiert.

Die Datentypen wurden so dargestellt:

Datentyp Darstellung
Strings
"Ein Beispiel-String"
Binärdaten
< [Hexadezimal-Code in ASCII] >
Arrays
( "1", "2", "3" )
Dictionaries/assoziative Arrays
{
    "key" = "value";
    ...
}

Ein Nachteil dieses Formates war, dass keine NSValue (Zahl, Boolean, usw.) gespeichert werden konnten.

GNUstep

GNUstep übernahm das plist-Format von NeXTSTEP, nahm aber einige Änderungen vor. Zum einen wurden NSValues unterstützt (dargestellt als ASCII), zum anderen wurde NSDate hinzugefügt (Darstellung: <*DYYYY-MM-DD HH:MM:SS timezone>).

Weiterhin kann GNUstep das plist-Format von Mac OS X lesen und schreiben[1].

Mac OS X

Mac OS X kann zwar das alte NeXTSTEP-Format lesen, mit Mac OS X 10.0 wurde es jedoch als veraltet deklariert und ein neues, auf XML basierendes plist-Format wurde eingeführt. Apple hat dafür ein DTD veröffentlicht[2].

Da XML-Dateien zwar von Menschen lesbar sind, aber dadurch sehr speicherineffizient sind, wurde mit Mac OS X 10.2 ein neues binäres plist-Format eingeführt. Die beiden Formate sind kompatibel, und können mit plutil[3] umgewandelt werden.

XML-plist-Dateien können zwar per Hand bearbeitet werden, da das aber ab einer gewissen Komplexität ein mühevolles Unterfangen ist, lieferte Apple mit dem Xcode-Paket bis Version 3.2 den Property List Editor mit aus. Ab Xcode 4.0 ist der Editor in die Xcode-IDE integriert.

AppleScript kann, durch Aufrufen von defaults, ebenfalls plist-Dateien lesen und schreiben.

Ab Mac OS X 10.7 bietet plutil auch die Möglichkeit, plist-Dateien in JSON umzuwandeln, und umgekehrt.

Das Kommandozeilen-Tool defaults[4] war ursprünglich dafür gedacht, Einstellungen von Programmen über die Shell ändern zu können; da diese Dateien jedoch in aller Regel plist-Dateien sind, lassen sich mit dem Tool auch beliebige plist-Dateien verändern.

Im Laufe der Zeit haben Entwickler für die verschiedensten Programmiersprachen plist-Editoren und Bibliotheken entwickelt, die plist-Dateien serialisieren und in Datentypen der jeweiligen Sprache konvertieren können.

In plist-Dateien im XML-Format sind für die folgenden Datentypen (und die zugehörigen Cocoa- und CoreFoundation-Typen) die folgenden Tags gültig:

Datentyp XML-Tag Cocoa-Typ[5] CoreFoundation-Typ[6]
UTF-8-kodierte Zeichenkette <string> NSString CFString
Dezimalzahlen (als String) <real> oder <integer> NSNumber CFNumber
Boolean (wahr/falsch) <true /> oder <false /> NSNumber CFBoolean
String (ISO 8601-formatiert) <date> NSDate CFDate
Base64-kodierte Daten <data> NSData CFData
Array
(kann beliebig viele Unterelemente aufnehmen)
<array> NSArray CFArray
Assoziatives Array/dictionary
(abwechselnd <key>-Tags und plist-Elemente)
<dict> NSDictionary CFDictionary

Einzelnachweise

  1. NSPropertyListSerialization class documentation
  2. plist-DTD. Abgerufen am 13. November 2011.
  3. The plist(5) manual page auf developer.apple.com. Abgerufen am 13. November 2011.
  4. The defaults(1) manual page auf developer.apple.com. Abgerufen am 13. November 2011.
  5. Property List Programming Guide for Cocoa. Abgerufen am 13. November 2011.
  6. Property List Programming Topics for Core Foundation. Abgerufen am 11. November 2011.

Weblinks

Editoren

Bibliotheken

Die folgenden Bibliotheken können alle XML- und Binär-plist-Dateien lesen und schreiben.


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Property list — Infobox file format name = Property List extension = .plist mime = owner = Apple Computer and GNUstep, formerly NeXT creatorcode = genre = Serialization of dictionary objects. containerfor = containedby = extendedfrom = extendedto = In the Mac OS …   Wikipedia

  • Property List Editor — Développeur Apple Dernière version …   Wikipédia en Français

  • List of terms relating to algorithms and data structures — The [http://www.nist.gov/dads/ NIST Dictionary of Algorithms and Data Structures] is a reference work maintained by the U.S. National Institute of Standards and Technology. It defines a large number of terms relating to algorithms and data… …   Wikipedia

  • List of California ballot propositions 1980–1989 — List of California ballot propositions: 1980 1989See also: List of California ballot propositions 1970 1979, List of California ballot propositions 1990 1999ElectionsJune 3, 1980*1 Failed Parklands And Renewable Resources Investment Program. *2… …   Wikipedia

  • List of British Jews — is a list that includes Jewish people from the United Kingdom and its predecessor states.Although the first Jews may have arrived on the island of Great Britain with the Romans, it wasn t until the Norman Conquest of William the Conqueror in 1066 …   Wikipedia

  • List of California ballot propositions 1970–1979 — List of California ballot propositions: 1970 1979See also: List of California ballot propositions 1960 1969, List of California ballot propositions 1980 1989ElectionsJune 2, 1970*1 Failed University Of California Health Science Facilities. *2… …   Wikipedia

  • List of California ballot propositions 1990–1999 — List of California ballot propositions: 1990 1999See also: List of California ballot propositions 1980 1989, List of California ballot propositions 2000–2009ElectionsJune 5, 1990*107 Passed Housing And Homeless Bond Act Of 1990. *108 Passed… …   Wikipedia

  • List of National Historic Landmarks in Alabama — …   Wikipedia

  • List of National Historic Landmarks in Oregon — …   Wikipedia

  • property register — ➔ register1 * * * property register UK US noun [C] PROPERTY ► in the UK, an official list containing details about land or buildings, kept by the land registry: »The property register gives the geographical location and the extent of the… …   Financial and business terms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”