Teamstudio Export archive files are designed to be simple to access without requiring any proprietary APIs or tools. All of the files in the archive are text, either XML or plain text. The files are combined into a single file using standard Zip compression.
The easiest way to explore an archive file is to add a .zip extension and then open the file in Windows Explorer.
The data folder contains a file for every data document in the database. Each file is XML, using IBM's DXL format. While this is largely self-explanatory, a DTD for DXL is available at The Domino DTD. The name of each file is <noteid>.dxl where <noteid> is the id of the document, expressed as an 8 digit hexadecimal number.
The design folder has the same format as the data folder, with a DXL file for each design element named using the note id.
Domino supports two different styles of DXL: binary and default. Both are standard text-based XML, but in binary mode complex data values are exported as base-64 encoded versions of the raw binary data stored in the nsf file. Teamstudio Export does not use binary mode: while it offers maximum fidelity, it is impossible to interpret without a deep knowledge of Domino internal data structures. Instead Teamstudio Export uses the default mode that converts even complex data values to human-readable XML elements. While there is a very slight chance that minor details may be lost with this format, that is preferable to having an archive full of unreadable binary data. You can mitigate the possibility of losing some details in the XML by using the most up-to-date version of Notes available on your workstation.
The profile folder has the same format as the data folder, with a DXL file for each profile document named using the note id.
The profile folder was added in archive version 2.
The views folder contains an XML file for every view and folder in the database. Unlike the data and design folders, there is no IBM standard for view data. The format we have adopted is a very simple UTF-8 encoded XML with the following elements.
The root element, contains a sequence of document, category, and total elements.
A container element corresponding to a category row in the view. It has a single, optional attribute, indent identifying how many spaces the categorized value in the row should be indented within its column. If this attribute is omitted, the value is not indented. Indented categories occur when a categorized column contains a value such as a\b. This will generate two category rows in the view. The first with value 'a' and no indent and the second with category 'b' and indent="1". A category element contains a sequence of value elements.
A container element corresponding to a document row in the view. Every document element has a noteId attribute specifying the 8-digit hexadecimal note id of the document. As with categories, there is also an optional indent attribute specifying how many spaces the final data value should be indented within its column. Indented documents occur when you are using a response hierarchy and the document is a response or response to response. A document element contains a sequence of value elements.
A container element containing view totals (or averages etc depending on the view definition.) A total element contains a sequence of value elements.
A wrapper for a view column value. Each category, document and total element contains one or more value elements for the column values. A value element may be empty (i.e. <value />) if it is an outer column in a categorized view. Otherwise it will contain a value in standard DXL format (i.e. <text>, <number>, etc.)
This file is the DXL representation of the database ACL.
acl.dxl was added in archive version 2.
This file is created by DXL exporting an empty collection from the database. It captures database-level information such as the replica id.
This is a plain-text log file generated during the DXL export. It captures any errors and warnings generated during the export, along with some trace debugging information. Any errors and warnings in this file will have been displayed to the user when the archive was created, but we retain the log file for future review.
This is a metadata file primarily used by Teamstudio Export to maintain the UI. It consists of a single archive element with the following attributes
- server - the server from which the database was archived
- path - the path of the database on that server
- title - the database title
- archiveDate - a timestamp on which the archive was created. Since this is only used by Teamstudio Export, it is stored in a .NET-friendly format. Specifically, the value is the number of 10ms ticks since 1/1/0001 00:00 Gregorian. This is the same origin as the .NET DateTime type (see System.DateTime) but since Notes only stores times to a 10ms resolution, we divide DateTime.Ticks by 100000 to convert from 100ns ticks to 10ms ticks.
- archiveVersion - a version indicator to denote significant changes to the archive format. Currently set to "2". Future releases will use this to identify databases that should be re-archived. See Archive Version History below for details.
- demoMode - optional. Set to true if the archive was generated with a demo version of Export that limits the number of entries in each view. If false or omitted, the archive was generated with a full version of Export.
This is a plain-text CSV file generated during the export to map NoteIDs to UniversalNoteIDs (UNIDs.) Teamstudio Export itself uses note ids to identify documents, but doclinks use UNIDs so we need an index to convert UNIDs to file names during HTML export.
Archive Version History
|1||January 2018||1.0.0||Initial release|
|2||February 2018||1.0.1||Add support for database ACL and profile documents|
The archive file format is intended to be public and supported. If you have any questions about the file format, please contact us at teamstudio.com.