2.3.1 Metadata

Metadata =>
    int32[n-values] int32[n-variables] int32[data-offset]
    vAF(byte*28[source-name])
    vB0(byte*64[source-name] int32[x])

A data source has n-variables variables, each with n-values data values.

source-name is a 28- or 64-byte string padded on the right with 0-bytes. The names that appear in the corpus are very generic: usually tableData for pivot table data or source0 for chart data.

A given Metadata’s data-offset is the offset, in bytes, from the beginning of the member to the start of the corresponding Data. This allows programs to skip to the beginning of the data for a particular source. In every case in the corpus, the Data follow the Metadata in the same order, but it is important to use data-offset instead of reading sequentially through the file because of the exception described below.

One SPV file in the corpus has legacy binary members with version 0xb0 but a 28-byte source-name field (and only a single source). In practice, this means that the 64-byte source-name used in version 0xb0 has a lot of 0-bytes in the middle followed by the variable-name of the following Data. As long as a reader treats the first 0-byte in the source-name as terminating the string, it can properly interpret these members.

The meaning of x in version 0xb0 is unknown.