属性列表:修订间差异
小 南方的小鳥 已移動頁面 Plist 至 Property List |
小 使用DisamAssist清理消歧义链接:DTD(链接至文件类型描述)。 |
||
(未显示4个用户的10个中间版本) | |||
第20行: | 第20行: | ||
=== NeXTSTEP === |
=== NeXTSTEP === |
||
[[NeXTSTEP]]系统中,Plist被设计为[[人类可读]]的,并可以手工修改,故采用了类似于[[编程语言]]的语法将数据序列化为ASCII数据。 |
[[NeXTSTEP]]系统中,Plist被设计为[[人類可讀介質|人类可读]]的,并可以手工修改,故采用了类似于[[编程语言]]的语法将数据序列化为ASCII数据。 |
||
[[字符串]]被表示为: |
[[字符串]]被表示为: |
||
第44行: | 第44行: | ||
Mac OS X在支持读取NeXTSTEP格式的同时,并不鼓励使用它,而是推荐使用Apple导入的两种新格式。 |
Mac OS X在支持读取NeXTSTEP格式的同时,并不鼓励使用它,而是推荐使用Apple导入的两种新格式。 |
||
[[Mac OS X v10.0|Mac OS X 10.0]]中,NeXTSTEP的格式被认为是不被推荐的,并导入了一种新的[[XML]]格式,其由Apple定义的公开[[DTD]]所规范化。XML格式支持非ASCII格式,亦可存储NSValue对象。但与GNUstep的ASCII plist格式不同,Apple的NeXTSTEP格式的plist文件不支持这两种特性。 |
[[Mac OS X v10.0|Mac OS X 10.0]]中,NeXTSTEP的格式被认为是不被推荐的,并导入了一种新的[[XML]]格式,其由Apple定义的公开[[文件类型描述|DTD]]所规范化。XML格式支持非ASCII格式,亦可存储NSValue对象。但与GNUstep的ASCII plist格式不同,Apple的NeXTSTEP格式的plist文件不支持这两种特性。 |
||
由于XML文件在储存时不是最有空间效率的,[[Mac OS X v10.2|Mac OS X 10.2]]导入了一种新的格式,它将plist文件存储为二进制文件。从[[Mac OS X v10.4|Mac OS X 10.4]]开始,这是偏好设置文件的默认格式。 |
由于XML文件在储存时不是最有空间效率的,[[Mac OS X v10.2|Mac OS X 10.2]]导入了一种新的格式,它将plist文件存储为二进制文件。从[[Mac OS X v10.4|Mac OS X 10.4]]开始,这是偏好设置文件的默认格式。 |
||
第95行: | 第95行: | ||
|} |
|} |
||
<code>defaults</code>工具可以用于以[[命令行]]形式,通过程序的偏好设置域,管理用于储存偏好设置的plist文件;而[[Property List Editor]]则可以用于编辑任何plist文件(包括用于储存偏好设置的)。从[[Mac OS X v10.4|Mac OS X 10.4]]开始,Apple提供了通过System Events应用程序读写plist文件的[[AppleScript]]接口,而从[[Mac OS X v10.5|Mac OS X 10.5]]开始,Apple也提供了用于编辑,创建和写入plist文件的接口<ref> |
<code>defaults</code>工具可以用于以[[命令行]]形式,通过程序的偏好设置域,管理用于储存偏好设置的plist文件;而[[Property List Editor]]则可以用于编辑任何plist文件(包括用于储存偏好设置的)。从[[Mac OS X v10.4|Mac OS X 10.4]]开始,Apple提供了通过System Events应用程序读写plist文件的[[AppleScript]]接口,而从[[Mac OS X v10.5|Mac OS X 10.5]]开始,Apple也提供了用于编辑,创建和写入plist文件的接口<ref>{{Cite web |url=http://www.macosxautomation.com/applescript/features/propertylists.html |title=AppleScript:属性列表 |accessdate=2010-09-24 |archive-date=2010-10-09 |archive-url=https://web.archive.org/web/20101009011128/http://www.macosxautomation.com/applescript/features/propertylists.html |dead-url=no }}</ref>。 |
||
==参考文献== |
==参考文献== |
||
第104行: | 第104行: | ||
==外部链接== |
==外部链接== |
||
* [http://developer.apple.com/documentation/Darwin/Reference/ManPages/man5/plist.5.html The plist manual page] at developer.apple.com |
* [https://web.archive.org/web/20041013051557/http://developer.apple.com/documentation/Darwin/Reference/ManPages/man5/plist.5.html The plist manual page] at developer.apple.com |
||
* [http://developer.apple.com/ |
* [https://web.archive.org/web/20090519020941/http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/PropertyLists/index.html#//apple_ref/doc/uid/10000048i Property List Programming Guide for Cocoa] |
||
* [http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFPropertyLists/CFPropertyLists.html Property List Programming Topics for Core Foundation] |
* [https://web.archive.org/web/20090224195637/http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFPropertyLists/CFPropertyLists.html Property List Programming Topics for Core Foundation] |
||
* [ |
* [https://web.archive.org/web/20110519164921/http://gnustep.org/resources/documentation/Developer/Base/Reference/NSPropertyList.html NSPropertyListSerialization class documentation] from the [[GNUstep]] project |
||
* [http://docs.sun.com/app/docs/doc/802-2112/6i63mn65o?a=view OpenStep plist API] from Sun Microsystems |
* [https://web.archive.org/web/20081210064322/http://docs.sun.com/app/docs/doc/802-2112/6i63mn65o?a=view OpenStep plist API] from Sun Microsystems |
||
* [http://commons.apache.org/configuration Apache Commons Configuration] Configuration API in Java supporting the Property List format |
* [http://commons.apache.org/configuration Apache Commons Configuration] {{Wayback|url=http://commons.apache.org/configuration |date=20100924195750 }} Configuration API in Java supporting the Property List format |
||
* [http://www.apple.com/DTDs/PropertyList-1.0.dtd Apple's Property List Document Type Definition] |
* [http://www.apple.com/DTDs/PropertyList-1.0.dtd Apple's Property List Document Type Definition] {{Wayback|url=http://www.apple.com/DTDs/PropertyList-1.0.dtd |date=20100923200331 }} |
||
* [https://quaqua.dev.java.net/source/browse/quaqua/trunk/Quaqua/src/ch/randelshofer/quaqua/util/BinaryPListParser.java?view=markup BinaryPListParser.java] from [https://quaqua.dev.java.net/ Quaqua] project, which is listed as using a variant of the [[BSD licenses]]. |
* [https://quaqua.dev.java.net/source/browse/quaqua/trunk/Quaqua/src/ch/randelshofer/quaqua/util/BinaryPListParser.java?view=markup BinaryPListParser.java]{{dead link|date=2017年12月 |bot=InternetArchiveBot |fix-attempted=yes }} from [https://quaqua.dev.java.net/ Quaqua]{{dead link|date=2017年12月 |bot=InternetArchiveBot |fix-attempted=yes }} project, which is listed as using a variant of the [[BSD licenses]]. |
||
=== 第三方编辑工具 === |
=== 第三方编辑工具 === |
||
* [http://rixstep.com/acp/plistedit PlistEdit], a general property list editor |
* [http://rixstep.com/acp/plistedit PlistEdit], a general property list editor |
||
* [http://www.fatcatsoftware.com/plisteditpro PlistEdit Pro], a general property list editor |
* [http://www.fatcatsoftware.com/plisteditpro PlistEdit Pro] {{Wayback|url=http://www.fatcatsoftware.com/plisteditpro |date=20100922015945 }}, a general property list editor |
||
* [http://www.bresink.com/osx/PrefEdit.html PrefEdit], specializing in editing preference plists |
* [http://www.bresink.com/osx/PrefEdit.html PrefEdit] {{Wayback|url=http://www.bresink.com/osx/PrefEdit.html |date=20110708092453 }}, specializing in editing preference plists |
||
* [http://www.latenightsw.com/freeware/PListTools/index.html Property List Tools], an Applescript scripting addition for manipulating plists |
* [https://web.archive.org/web/20101006071131/http://www.latenightsw.com/freeware/PListTools/index.html Property List Tools], an Applescript scripting addition for manipulating plists |
||
* [http://iphone.cazisoft.com/?p=569 Pledit], a general property list editor for [[Microsoft Windows]] |
* [https://web.archive.org/web/20090126184532/http://iphone.cazisoft.com/?p=569 Pledit], a general property list editor for [[Microsoft Windows]] |
||
{{OS X}} |
{{OS X}} |
||
{{Data Exchange}} |
|||
[[Category: |
[[Category:MacOS]] |
||
[[Category:数据序列化格式]] |
[[Category:数据序列化格式]] |
||
[[Category:NeXT]] |
[[Category:NeXT]] |
2023年4月15日 (六) 13:48的最新版本
扩展名 |
.plist |
---|---|
互联网媒体类型 | application/x-plist |
开发者 | 苹果公司和GNUstep, 前NeXT |
格式类型 | 序列化对象 |
在OS X的Cocoa,NeXTSTEP和GNUstep编程框架中,属性列表(Property List)文件是一种用来存储序列化后的对象的文件。属性列表文件的文件扩展名为.plist,因此通常被称为plist文件。
Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的Mac OS中是由资源分支提供的。
表达
[编辑]由于Plist中存储的数据是抽象的,其采用的文件格式可以不止一种。NeXTSTEP只使用一种格式,而稍晚的GNUstep和OS X框架导入了不同的文件格式。
NeXTSTEP
[编辑]NeXTSTEP系统中,Plist被设计为人类可读的,并可以手工修改,故采用了类似于编程语言的语法将数据序列化为ASCII数据。
字符串被表示为:
"This is a plist string"
二进制数据被表示为:
< [文本形式的十六进制数] >
数组被表示为:
( "1", "2", "3" )
字典则被表示为:
{ "键" = "值"; ... }
NeXT的plist格式的一个限制是它不能表示NSValue对象(即数,布尔值等)。
GNUstep
[编辑]GNUstep采用了NeXTSTEP的格式,并添加了少许特性。它支持NSValue对象(以普通ASCII码表示),支持NSDate(序列化成<*DYYYY-MM-DD HH:MM:SS timezone>的格式)。
GNUstep也可以读写OS X使用的Plist格式。
Mac OS X
[编辑]Mac OS X在支持读取NeXTSTEP格式的同时,并不鼓励使用它,而是推荐使用Apple导入的两种新格式。
Mac OS X 10.0中,NeXTSTEP的格式被认为是不被推荐的,并导入了一种新的XML格式,其由Apple定义的公开DTD所规范化。XML格式支持非ASCII格式,亦可存储NSValue对象。但与GNUstep的ASCII plist格式不同,Apple的NeXTSTEP格式的plist文件不支持这两种特性。
由于XML文件在储存时不是最有空间效率的,Mac OS X 10.2导入了一种新的格式,它将plist文件存储为二进制文件。从Mac OS X 10.4开始,这是偏好设置文件的默认格式。
plutil
工具(在Mac OS X 10.2中导入)可以用来检查plist的语法,或者对plist文件进行格式转换。
可以使用任何文本编辑器对XML格式的plist进行更改,同时,Apple提供了“Property List Editor”应用程序(作为Apple Developer Tools的一部分安装),它是一个树状的查看器与编辑器,并可以处理二进制格式的plist。
对于XML格式,XML标签和相关Foundation类、Core Foundation类型、数据储存格式的关系如下表所示:
Foundation类 | Core Foundation类型 | XML标签 | 储存格式 |
---|---|---|---|
NSString | CFString | <string> | UTF-8编码的字符串 |
NSNumber | CFNumber | <real>, <integer> | 十进制数字符串 |
NSNumber | CFBoolean | <true />, or <false /> | 无数据(只有标签) |
NSDate | CFDate | <date> | ISO 8601格式的日期字符串 |
NSData | CFData | <data> | Base64编码的数据 |
NSArray | CFArray | <array> | 可以包含任意数量的子元素 |
NSDictionary | CFDictionary | <dict> | 交替包含<key>标签和plist元素标签 |
defaults
工具可以用于以命令行形式,通过程序的偏好设置域,管理用于储存偏好设置的plist文件;而Property List Editor则可以用于编辑任何plist文件(包括用于储存偏好设置的)。从Mac OS X 10.4开始,Apple提供了通过System Events应用程序读写plist文件的AppleScript接口,而从Mac OS X 10.5开始,Apple也提供了用于编辑,创建和写入plist文件的接口[1]。
参考文献
[编辑]- ^ AppleScript:属性列表. [2010-09-24]. (原始内容存档于2010-10-09).
参见
[编辑]外部链接
[编辑]- The plist manual page at developer.apple.com
- Property List Programming Guide for Cocoa
- Property List Programming Topics for Core Foundation
- NSPropertyListSerialization class documentation from the GNUstep project
- OpenStep plist API from Sun Microsystems
- Apache Commons Configuration (页面存档备份,存于互联网档案馆) Configuration API in Java supporting the Property List format
- Apple's Property List Document Type Definition (页面存档备份,存于互联网档案馆)
- BinaryPListParser.java[永久失效連結] from Quaqua[永久失效連結] project, which is listed as using a variant of the BSD licenses.
第三方编辑工具
[编辑]- PlistEdit, a general property list editor
- PlistEdit Pro (页面存档备份,存于互联网档案馆), a general property list editor
- PrefEdit (页面存档备份,存于互联网档案馆), specializing in editing preference plists
- Property List Tools, an Applescript scripting addition for manipulating plists
- Pledit, a general property list editor for Microsoft Windows