Previous: , Up: SPV Legacy Detail Member Binary Format   [Contents][Index]

D.3.2 Data

Data ⇒ NumericData*[n-variables] StringData?
NumericData ⇒ byte*288[variable-name] double*[n-data]

Data follow the Metadata in the legacy binary format, with sources in the same order. Each NumericSeries begins with a variable-name that generally indicates its role in the pivot table, e.g. “cell”, “cellFormat”, “dimension0categories”, “dimension0group0”, followed by the numeric data, one double per datum. A double with the maximum negative double -DBL_MAX represents the system-missing value SYSMIS.

StringData ⇒ i1 string[source-name] Pairs Labels

Pairs ⇒ int[n-string-vars] PairSeries*[n-string-vars]
PairVar ⇒ string[pair-var-name] int[n-pairs] Pair*[n-pairs]
Pair ⇒ int[i] int[j]

Labels ⇒ int[n-labels] Label*[n-labels]
Label ⇒ int[frequency] int[s]

A source may include a mix of numeric and string data values. When a source includes any string data, the data values that are strings are set to SYSMIS in the NumericData, and StringData follows the NumericData. A source that contains no string data omits the StringData. To reliably determine whether a source includes StringData, the reader should check whether the offset following the NumericData is the offset of the next source, as indicated by its Metadata (or the end of the member, in the case of the last source).

StringData repeats the name of the source (from Metadata).

The string data overlays the numeric data. n-string-vars is the number of variables in the source that include string data. More precisely, it is the 1-based index of the last variable in the source that includes any string data; thus, it would be 4 if there are 5 variables and only the fourth one includes string data.

Each PairVar consists a sequence of 0 or more Pair nonterminals, each of which maps from a 0-based index within variable i to a 0-based label index j, e.g. pair i = 2, j = 3, means that the third data value (with value SYSMIS) is to be replaced by the string of the fourth Label.

The labels themselves follow the pairs. The valuable part of each label is the string s. Each label also includes a frequency that reports the number of pairs that reference it (although this is not useful).

Previous: , Up: SPV Legacy Detail Member Binary Format   [Contents][Index]