aspose.info
RU

ONE — формат файла Microsoft OneNote

Обновлено

Что такое файл .ONE?

Файл с расширением .ONE создается приложением Microsoft OneNote. OneNote позволяет собирать информацию с помощью приложения, как если бы вы использовали черновик для создания заметок. Файлы OneNote могут содержать различные элементы, которые можно размещать в нефиксированных местах на страницах документа. Эти элементы могут содержать текст, оцифрованный почерк и объекты, скопированные из других приложений, включая изображения, рисунки и мультимедийные (аудио/видео) клипы. Microsoft теперь предлагает онлайн-версию OneNote как часть Office365, где заметки могут быть доступны другим пользователям OneNote через Интернет.

Спецификации формата файла .ONE

Формат файла OneNote обеспечивает эффективный способ представления цифровых заметок в виде иерархических наборов разделов и страниц. Каждая страница содержит определяемый пользователем контент в определенной структуре для представления в формате файлов Document Object Model (DOM). Модель данных для этого формата показана ниже.

Обзор структуры

Как показано в модели данных для формата файла OneNote, документ OneNote состоит из разных элементов.

Раздел

Раздел — это самый верхний контейнер в файле OneNote, который также содержит различные элементы, например:

  • Страницы
  • Метаданные
  • Характеристики

Метаданные и свойства включают имя раздела, идентификацию страниц, содержащихся в разделе, и порядок отображения этих страниц. Термин «раздел» относится ко всем страницам, которые находятся в разделе, и к представлению этих данных в файле хранилища версий OneNote® с расширением имени файла .one.

Страница

Пользовательское содержимое в документе OneNote содержится внутри страницы. Информация о странице включает текст, списки, таблицы, заголовки страниц, изображения и теги заметок. Страница состоит из контурных объектов, к которым добавлено большинство содержащихся объектов. Каждой странице можно присвоить имя для осмысленного представления, а объекты также можно добавлять непосредственно на страницы. Страница может дополнительно содержать подстраницы в иерархической системе.

Свойства и наборы свойств

Содержимое OneNote состоит из свойств, наборов свойств и файловых объектов данных. Набор свойств — это набор свойств, который представляет некоторый тип содержимого. Объект файловых данных — это блок двоичных данных, который содержит изображения, встроенные файлы или аудио/видео контент.

Блокнот OneNote

Записная книжка — это набор файлов разделов, которые хранятся в одном каталоге. Набор свойств используется для указания таких параметров, как порядок разделов в записной книжке и цвет записной книжки.

Структура файла

Файл хранилища изменений ДОЛЖЕН начинаться со структуры Заголовок. Оставшаяся часть файла разделена на блоки байтов, где размер и структура каждого блока определяется полем, которое на него ссылается. Блок достижим, если на него ссылается структура Заголовок или если на него ссылается поле в другом достижимом блоке. Данные вне структуры Заголовок и любые достижимые блоки ДОЛЖНЫ игнорироваться.

Все структуры выровнены по 1-байтовым границам. Все целые числа имеют знак, если не указано иное. Все поля имеют формат little-endian, если не указано иное.

Заголовок

Заголовок файла .ONE состоит из фрагментов, которые содержат различные уникальные идентификаторы и поля для представления информации о файле следующим образом:

guidFileType (16 байтов): GUID, указывающий тип файла хранилища изменений. ДОЛЖНО быть одним из значений из следующей таблицы.

Формат файлаЗначение
.one{7B5C52E4-D88C-4DA7-AEB1-5378D02996D3}
.onetoc2{43FF2FA1-EFD9-4C76-9EE2-10EA5722765F}

guidFile (16 байтов): GUID, указывающий идентификатор этого файла хранилища изменений. ДОЛЖЕН быть глобально уникальным.

guidLegacyFileVersion (16 байтов): ДОЛЖНО быть “{00000000-0000-0000-0000-000000000000}” и ДОЛЖНО игнорироваться.

guidFileFormat (16 байтов): GUID, указывающий, что файл является файлом хранилища изменений. ДОЛЖЕН быть “{109ADD3F-911B-49F5-A5D0-1791EDC8AED8}”.

ffvLastCodeThatWroteToThisFile (4 байта): Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от типа файла.

Формат файлаЗначение
.один0x0000002A
.onetoc20x0000001B

ffvOldestCodeThatHasWrittenToThisFile (4 байта): Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.

Формат файлаЗначение
.один0x0000002A
.onetoc20x0000001B

ffvNewestCodeThatHasWrittenToThisFile (4 байта): Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.

Формат файлаЗначение
.один0x0000002A
.onetoc20x0000001B

ffvOldestCodeThatMayReadThisFile (4 байта): Целое число без знака. ДОЛЖЕН быть одним из значений в следующей таблице, в зависимости от формата этого файла.

Формат файлаЗначение
.один0x0000002A
.onetoc20x0000001B

fcrLegacyFreeChunkList (8 байтов): Структура FileChunkReference32, которая ДОЛЖНА иметь значение “fcrZero”.

fcrLegacyTransactionLog (8 байтов): Структура FileChunkReference32, которая ДОЛЖНА быть “fcrNil”.

cTransactionsInLog (4 байта): Целое число без знака, указывающее количество транзакций в журнале транзакций. НЕ ДОЛЖЕН быть равен нулю.

cbLegacyExpectedFileLength (4 байта): Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.

rgbPlaceholder (8 байтов): Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.

fcrLegacyFileNodeListRoot (8 байтов): Структура FileChunkReference32, которая ДОЛЖНА быть “fcrNil”.

cbLegacyFreeSpaceInFreeChunkList (4 байта): Целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.

fNeedsDefrag (1 байт): ДОЛЖЕН игнорироваться.

fRepairedFile (1 байт): ДОЛЖЕН игнорироваться.

fNeedsGarbageCollect (1 байт): ДОЛЖЕН игнорироваться.

fHasNoEmbeddedFileObjects (1 байт): целое число без знака, которое ДОЛЖНО быть равно нулю и ДОЛЖНО игнорироваться.

guidAncestor (16 байтов): GUID, указывающий поле Header.guidFile файла таблицы содержания, заданное следующей таблицей:

Формат файла оглавленияРасположение файла оглавления
Файл раздела - .OneФайл оглавления находится в той же директории, что и этот файл.
Файл оглавления - .onetoc2Файл оглавления находится в родительском каталоге этого файла.

Если GUID равен {00000000-0000-0000-0000-000000000000}, это поле не ссылается на файл оглавления.

crcName (4 байта): Целое число без знака, указывающее значение CRC имени этого файла хранилища ревизий. Имя представляет собой Unicode-представление имени файла с его расширением и дополнительным нулевым символом в конце. Этот CRC всегда рассчитывается с использованием алгоритма CRC для файла .one, независимо от формата файла хранилища изменений.

fcrHashedChunkList (12 байт): Структура FileChunkReference64x32, указывающая ссылку на первый FileNodeListFragment в списке хешированных фрагментов. Если значение структуры FileChunkReference64x32 равно «fcrZero» или «fcrNil», список хешированных фрагментов не существует.

fcrTransactionLog (12 байт): Структура FileChunkReference64x32, указывающая ссылку на первую структуру TransactionLogFragment в журнале транзакций. Значение поля fcrTransactionLog НЕ ДОЛЖНО быть «fcrZero» и НЕ ДОЛЖНО быть «fcrNil».

fcrFileNodeListRoot (12 байт): Структура FileChunkReference64x32, указывающая ссылку на список узлов корневого файла. Значение поля fcrFileNodeListRoot НЕ ДОЛЖНО быть «fcrZero» и НЕ ДОЛЖНО быть «fcrNil».

fcrFreeChunkList (12 байт): Структура FileChunkReference64x32, указывающая ссылку на первую структуру FreeChunkListFragment. Если значение структуры FileChunkReference64x32 равно «fcrZero» или «fcrNil», то список свободных фрагментов не существует.

cbExpectedFileLength (8 байтов): Целое число без знака, указывающее размер в байтах этого файла хранилища ревизий.

cbFreeSpaceInFreeChunkList (8 байтов): Целое число без знака, которое ДОЛЖНО указывать размер в байтах свободного пространства, указанного в списке свободных блоков.

guidFileVersion (16 байтов): GUID. При изменении значения поля cTransactionsInLog или поля guidDenyReadFileVersion guidFileVersion ДОЛЖЕН быть изменен на новый идентификатор GUID.

nFileVersionGeneration (8 байтов): Целое число без знака, указывающее, сколько раз файл был изменен. ДОЛЖЕН увеличиваться при изменении поля guidFileVersion.

guidDenyReadFileVersion (16 байтов): GUID. При изменении существующего содержимого файла, за исключением структуры заголовка файла и неиспользуемых блоков хранения, guidDenyReadFileVersion ДОЛЖЕН быть изменен на новый идентификатор GUID.

grfDebugLogFlags (4 байта): ДОЛЖЕН быть равен нулю. ДОЛЖЕН быть проигнорирован.

fcrDebugLog (12 байт): Структура FileChunkReference64x32, которая ДОЛЖНА иметь значение «fcrZero». ДОЛЖЕН быть проигнорирован.

fcrAllocVerificationFreeChunkList (12 байт): Структура FileChunkReference64x32, которая ДОЛЖНА быть “fcrZero”. ДОЛЖЕН быть проигнорирован.

bnCreated (4 байта): Целое число без знака, указывающее номер сборки приложения, создавшего этот файл хранилища изменений. СЛЕДУЕТ игнорировать.

bnLastWroteToThisFile (4 байта): Целое число без знака, указывающее номер сборки приложения, которое последним записывало этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.

bnOldestWritten (4 байта): Целое число без знака, указывающее номер сборки самого старого приложения, которое записывало в этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.

bnNewestWritten (4 байта): Целое число без знака, указывающее номер сборки новейшего приложения, которое записало в этот файл хранилища ревизий. СЛЕДУЕТ игнорировать.

rgbReserved (728 байт): ДОЛЖЕН быть равен нулю. ДОЛЖЕН быть проигнорирован.

Использованная литература