卡布奇诺plist结构

时间:2010-06-11 09:16:31

标签: plist cappuccino

问题是有谁知道卡布奇诺的(类型2)plist文件的结构是什么?

在Cappuccino中,plist文件有很多用途。

一些如info.plist(type-1)遵循可识别的结构。这些都很好,我可以理解它们。

<plist version="1.0">
<dict>
<key>CPApplicationDelegateClass</key>
<string>DocumentController</string>
<key>CPBundleDocumentTypes</key>
<array>
<dict> ..... etc

然而,其他(类型2)用于导入数据,从幻灯片应用程序导入pptx文件,我相信Atlas的开发工具没有。

他们有这样的结构

280NPLIST;1.0;D;K;4;$topD;K;23;DocumentPresentationKeyD;K;6;CP$UIDd;1;1E;E;K;8;$objectsA;S;5;$nullD;K;6;$classD;K;6;CP$UIDd;1;2E;K;23;SKPresentationSlideSizeD;K;6;CP$UIDd;1;3E;K;23;SKPresentationNotesSizeD;K;6;CP$UIDd;1;4E;K;20;SKPresentationSlidesD;K;6;CP$UIDd;1;5E;K;26;SKPresentationSlideMastersD;K;6;CP$UIDd;1;7E;K;19;SKPresentationThemeD;K;6;CP$UIDd;1;8E;E;D;K;10;$classnameS;14;

无论大小如何,这似乎都出现在单行上(我现在有一个超过130万个字符。

一些结构与字符计数有关,但我看起来像失败的有效文件和看起来可疑的文件没有。

我怀疑我刚刚问了一个Tumbleweed徽章问题,但是因为我已经有了问题并不重要。

2 个答案:

答案 0 :(得分:4)

我只能猜出风滚草徽章是什么,但让我们看看我们是否可以避免这种情况。您正在查看的文件是'280 North format Plist',这是一种针对Cappuccino应用程序优化的plist特殊格式。如果您想深入了解它,可以使用cplutil工具并将其转换为常规XML plist。

cplutil -convert xml1 -o Info3.plist Info1.plist

Nice Panorama有more info

答案 1 :(得分:3)

要回答关于plist实际结构的问题,它有点类似于netstrings(http://cr.yp.to/proto/netstrings.txt)。当然,内容与XML plist相同。

格式以魔术字符串(和版本)开头,以识别用于阅读的plist类型。然后是几个plist类型的常量(d->字典,k-&gt;键等),项目的长度,然后是项目本身。这些部分是以分号分隔的。

因此,如果我们只关注您发布的内容的第一部分:

280NPLIST;1.0;这告诉我们格式,这是版本1.0

D;第一个条目是一个字典,它总是有一个键然后是对象

K;4;$top字典中的第一项是第一个键,长度为4

D;K;23;DocumentPresentationKey关联值本身是第一个键长度为23个字符的字典

该格式旨在简化只读取部分文档的过程,而无需解析整个plist。