DESCRIPTION
Property lists organize data into named values and lists of values using
several Core Foundation types: CFString, CFNumber, CFBoolean, CFDate,
CFData, CFArray, and CFDictionary. These types give you the means to pro-
duce data that is meaningfully structured, transportable, storable, and
accessible, but still as efficient as possible. The property list pro-
gramming interface allows you to convert hierarchically structured combi-
nations of these basic types to and from standard XML. The XML data can
be saved to disk and later used to reconstruct the original Core Founda-
tion objects. Note that property lists should be used for data that con-
sists primarily of strings and numbers because they are very inefficient
when used with large blocks of binary data.
PROPERTY LIST STRUCTURE AND CONTENTS
Property lists are constructed from the basic Core Foundation types
CFString, CFNumber, CFBoolean, CFDate, and CFData. To build a complex
data structure out of these basic types, you put them inside a CFDic-
tionary or CFArray. To simplify programming with property lists, any of
the property list types can also be referred to using a reference of type
CFPropertyListRef.
In a CFDictionary, data is structured as key-value pairs, where each key
is a string and the key's value can be a CFString, a CFNumber, a
CFBoolean, a CFDate, a CFData, a CFArray, or another CFDictionary. When
using CFDictionary as a property list, all keys must be strings.
In a CFArray, data is structured as an ordered collection of objects that
can be accessed by index. In a property list, a CFArray can contain any
of the basic property list types, as well as CFDictionary and other CFAr-
ray objects.
PROPERTY LIST XML TAGS
When property lists convert a collection of Core Foundation objects into
an XML property list, it wraps the property list using the document type
tag <plist>. The other tags used for the Core Foundation data types are
listed in the table below:
Core Foundation Types with XML Equivalents
CF type XML tag
CFString <string>
CFNumber <real> or <integer>
CFDate <date>
CFBoolean <true/> or <false/>
CFData <data>
CFArray <array>
CFDictionary <dict>
When encoding the contents of a CFDictionary, each member is encoded by
placing the dictionary key in a <key> tag and immediately following it
/Developer/Documentation/CoreFoundation/ProgrammingTopics/CFProp-
ertyLists/CFPropertyLists.html
or online at
http://developer.apple.com/documentation/CoreFoundation/Concep-
tual/CFPropertyLists/index.html
EXAMPLES
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Year Of Birth</key>
<integer>1965</integer>
<key>Pets Names</key>
<array/>
<key>Picture</key>
<data>
PEKBpYGlmYFCPA==
</data>
<key>City of Birth</key>
<string>Springfield</string>
<key>Name</key>
<string>John Doe</string>
<key>Kids Names</key>
<array>
<string>John</string>
<string>Kyra</string>
</array>
</dict>
</plist>
SEE ALSO
plutil(1)
Mac OS July 9, 2003 Mac OS
Man(1) output converted with
man2html
|