3 Structure Examples


The following examples illustrate a typical of a OneNote Revision Store. All data is taken from a single .one file containing the data for a section, with a single page with two lines of text and an embedded file.

To navigate through the file, and to see how the pieces fit together, read it in the following order:

  1. Read the file header (section 2.3.1) to determine if it is a .one section file or a .onetoc2 table of contents file. Inside the file header, find the locations in the file of the root file node list  and of the transaction log (section 2.3.3).

  2. Read the root file node list to find the identity and location of the section and page Object Spaces (section 2.1.4), as well as the file data store in which embedded file data objects (section 2.6.13) are stored, if any.

  3. Starting with the root object space, read the object space manifest list (section 2.1.6) to get the location of the object space revision manifest list (section 2.1.10).

  4. Read the revision manifest list to find the current revision (section 2.1.8) of the object space, including the choices of root objects (section 2.1.7), and either the set of objects (section 2.1.5) directly, or the locations of object group lists (section 2.1.13).

  5. Read the object group lists to enumerate each of the objects, and to get the locations of the objects property sets (section 2.6.7).

  6. Read each of the objects’ properties. Discover the relationships between objects, and between objects and child object spaces and contexts (section 2.1.11).

  7. Return to the root file node list to find the locations of those other Object Spaces, and repeat the process.

  8. Finally, steps 2 through 7 require consulting the transaction log, to make sure that only the active portions of each file node list are read.

For brevity, several simplifications have been made when describing these examples. Some structures are expanded and described in fine detail in the first or second example, and then are merely summarized when they appear again in later examples.<12>