Overview
M-Files allows generating content packages of the contents of a vault. These packages can contain information on the vault structure, objects or even the entire contents of the vault.
This article briefly describes the structure of the content package if someone wants to extract data - such as object versions and files associated with them from the package. This is not intended to be a full specification.
The information in this article is subject to change and provided as is.
Solution
The root of the content package looks like following:
The 'Files' folder contains the actual files, 'Metadata' folder the metadata, 'Index.xml' has some info on the package and the presence of the 'Ready' file indicates the package generation is finished.
The 'Metadata' folder has the following content, however there may be several content files depending on the size of the package.
The 'Prologue.xml' and 'Structure.xml' are mainly intended for M-Files internal usage and are not discussed here. The 'Content*.xml' files contain information on the actual objects in the vault.
The structure is rather simple:
For each M-Files object there is an 'object' entity, providing information on the object itself in attributes and 'property' elements.
For each version of the object there is a 'version' element, which contains information on the version of the object in attributes and 'property' elements. The 'docfiles' property lists all the files associated with this specific version. Each file is in a separate 'docfile' element, containing information on the file in attributes. There is a 'pathfrombase' attribute, which points to the actual file - see the root of the content package for the 'Files' folder.
