Структура списка капучино

Вопрос в том, знает ли кто-нибудь, какова структура файлов plist (типа 2) в Cappuccino?

В Cappuccino много используются файлы plist.

Некоторые, такие как info.plist (тип-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;

Который, кажется, находится в одной строке независимо от размера (у меня сегодня была одна с более чем 1,3 миллионами символов.

Часть структуры связана с подсчетом символов, но у меня были файлы, которые выглядят как действительные, которые терпят неудачу, а те, которые выглядят сомнительно, - нет.

Я подозреваю, что только что задал ей вопрос о значке перекати-поля, но поскольку он у меня уже есть, это не имеет значения.


person PurplePilot    schedule 11.06.2010    source источник
comment
Спасибо Александр, Росс, очень полезно   -  person PurplePilot    schedule 14.06.2010


Ответы (2)


Я могу только догадываться, что такое значок Tumbleweed, но давайте посмотрим, сможем ли мы его избежать. Файл, на который вы смотрите, представляет собой «Plist формата 280 North», специальный формат plist, оптимизированный для использования в приложениях Cappuccino. Если вы хотите покопаться в этом, вы можете использовать инструмент cplutil и преобразовать его в обычный список XML.

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

У Nice Panorama есть дополнительная информация.

person Alexander Ljungberg    schedule 11.06.2010

Чтобы ответить на ваш вопрос о фактической структуре plist, она чем-то похожа на netstrings (http://cr.yp.to/proto/netstrings.txt). Содержимое, конечно же, такое же, как и в XML-списке.

Формат начинается с волшебной строки (и версии), чтобы определить тип plist для чтения. Затем следуют константы для нескольких типов plist (d->dictionary, k->key и т. д.), длина элемента, а затем сам элемент. Эти разделы разделены точкой с запятой.

Итак, если мы посмотрим только на первую часть того, что вы опубликовали:

280NPLIST;1.0; это говорит нам о формате и о том, что это версия 1.0

D; первая запись - это словарь, в котором всегда есть ключ, затем объект

K;4;$top первый элемент словаря — это первый ключ длиной 4

D;K;23;DocumentPresentationKey Связанное значение само по себе является словарем, первый ключ которого имеет длину 23 символа.

и Т. Д.

Формат был разработан, чтобы упростить чтение только частей документа без необходимости анализа всего plist.

person Ross Boucher    schedule 12.06.2010