PLIST(5)                      File Formats Manual                     PLIST(5)

NAME
     plist – property list format

SYNOPSIS
     plist

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
     produce data that is meaningfully structured, transportable, storable,
     and accessible, but still as efficient as possible. The property list
     programming interface allows you to convert hierarchically structured
     combinations of these basic types to and from two formats: standard XML
     and an optimized, opaque binary format. This document describes the
     standard XML format. The data can be saved to disk and later used to
     reconstruct the original Core Foundation objects. Note that property
     lists should be used for data that consists 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
     CFDictionary 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
     CFArray 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
     with the corresponding value in the appropriate tag from the table above.
     See EXAMPLES below for an example XML data generated from a property
     list.

     The XML data format is documented here strictly for help in understanding
     property lists and as a debugging aid. These tags may change in future
     releases so you shouldn't rely on them directly. You should not edit the
     XML data by hand unless you are very familiar with XML syntax and the
     format of property lists. If you want to modify the contents of a
     property list saved on disk as XML data, use the Property List Editor
     application.

     More complete documentation can be found on disk at

     /Developer/Documentation/CoreFoundation/ProgrammingTopics/CFPropertyLists/CFPropertyLists.html

     or online at

     https://developer.apple.com/documentation/corefoundation/cfpropertylist

     BINARY FORMAT PROPERTY LISTS

     The binary property list format is opaque and does not use XML. However,
     binary property lists and XML property lists are generally
     interchangeable. The plutil(1) utility may be used to convert property
     lists between different formats. For example, to view a binary property
     list in XML format on stdout:

           plutil -convert xml1 -o - <file name>

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 X                         July 9, 2003                         Mac OS X