2.1.9 Revision Manifest

A revision manifest specifies a set of objects (section 2.1.5), the object states, the choice of root objects (section 2.1.7) for an object space (section 2.1.4), and an identity. Together, these resolve to a revision (section 2.1.8). The revision manifest can also specify the identity of another revision as a dependency. When a dependency revision is specified, the objects, object states, and root object of the dependency revision are also included in this revision, except where they are specified by this revision manifest.

A revision manifest is specified by a sequence of FileNode structures (section 2.4.3) within a revision manifest list (section 2.1.10).

The sequence MUST begin with one of the FileNode structures described in the following table.

File format

Valid structures

.one

0x01E (RevisionManifestStart6FND structure, section 2.5.7)

0x01F (RevisionManifestStart7FND structure, section 2.5.8)

.onetoc2

0x01B (RevisionManifestStart4FND structure, section 2.5.6)

If the object space is encrypted, then the second FileNode in the sequence MUST be a FileNode structure with a FileNodeID equal to 0x07C (ObjectDataEncryptionKeyV2FNDX structure, section 2.5.19).

The remainder of the sequence can contain the FileNode structures described in the following table, and MUST NOT contain any other FileNode structures.

File format

Valid contents

.one

Zero or more sequences of object group FileNode structures:

  • 0x0B0 (ObjectGroupListReferenceFND structure, section 2.5.31)

  • 0x084 (ObjectInfoDependencyOverridesFND structure, section 2.5.20)

Where each ObjectGroupListReferenceFND structure MUST be followed by an ObjectInfoDependencyOverridesFND structure.

Zero or one sequence of global identification table FileNode structures:

  • A FileNode structure with a FileNodeID field value equal to 0x022 (GlobalIdTableStart2FND structure, section 2.4.3)

  • Zero or more FileNode structures with a FileNodeID field value equal to 0x024 (GlobalIdTableEntryFNDX structure, section 2.5.10)

  • A FileNode structure with a FileNodeID field value equal to 0x028 (GlobalIdTableEndFNDX structure, section 2.4.3)

Where the global identification table sequence of FileNode structures MUST NOT be followed by any object group sequences of FileNode structures.

Zero or more FileNode structures with FileNodeID field values equal to any of:

  • 0x05A (RootObjectReference3FND structure section 2.5.16)

  • 0x084 (ObjectInfoDependencyOverridesFND structure, section 2.5.20)

.onetoc2

Zero or more FileNode structures with FileNodeID field values equal to any of the following:

  • 0x059 (RootObjectReference2FNDX structure, section 2.5.15)

  • 0x084 (ObjectInfoDependencyOverridesFND structure)

Zero or one sequence of global identification table FileNode structures:

  • A FileNode structure with a FileNodeID field value equal to 0x021 (GlobalIdTableStartFNDX structure, section 2.5.9)

  • Zero or more FileNode structures with FileNodeID field values equal to one of:

  • 0x024 (GlobalIdTableEntryFNDX structure, section 2.5.10)

  • 0x025 (GlobalIdTableEntry2FNDX structure, section 2.5.11)

  • 0x026 (GlobalIdTableEntry3FNDX structure, section 2.5.12)

  • A FileNode structure with a FileNodeID field value equal to 0x028 (GlobalIdTableEndFNDX structure, section 2.4.3)

Zero or more FileNode structures with FileNodeID field values equal to the following:

  • 0x08C (DataSignatureGroupDefinitionFND structure, section 2.5.33)

  • 0x02D (ObjectDeclarationWithRefCountFNDX structure, section 2.5.23)

  • 0x02E (ObjectDeclarationWithRefCount2FNDX structure, section 2.5.24)

  • 0x041 (ObjectRevisionWithRefCountFNDX structure, section 2.5.13)

  • 0x042 (ObjectRevisionWithRefCount2FNDX structure, section 2.5.14)

that MUST follow a global identification table sequence.

The sequence MUST end with a FileNode structure with a FileNodeID field value equal to 0x01C (RevisionManifestEndFND structure, section 2.4.3).