An SPV light member begins with a 39-byte header:
Header => 01 00 (i1 | i3)[version] bool[x0] bool[x1] bool[rotate-inner-column-labels] bool[rotate-outer-row-labels] bool[x2] int32[x3] int32[min-col-heading-width] int32[max-col-heading-width] int32[min-row-heading-width] int32[max-row-heading-width] int64[table-id]
version
is a version number that affects the interpretation of
some of the other data in the member. We will refer to “version 1”
and “version 3” later on and use v1(…) and v3(…) for
version-specific formatting (as described previously).
If rotate-inner-column-labels
is 1, then column labels closest
to the data are rotated 90° counterclockwise; otherwise, they are
shown in the normal way.
If rotate-outer-row-labels
is 1, then row labels farthest from
the data are rotated 90° counterclockwise; otherwise, they are shown
in the normal way.
min-col-heading-width
, max-col-heading-width
, min-row-heading-width
, and
max-row-heading-width
are measurements in 1/96 inch units (called
“device independent pixel” units in Windows) whose values influence
column widths. For the purpose of interpreting these values, a table
is divided into the three regions shown below:
+------------------+-------------------------------------------------+ | | column headings | | +-------------------------------------------------+ | corner | | | and | | | row headings | data | | | | | | | +------------------+-------------------------------------------------+
min-col-heading-width
and max-col-heading-width
apply to the columns in
the column headings region. min-col-heading-width
is the minimum width
that any of these columns will be given automatically. In addition,
max-col-heading-width
is the maximum width that a column will be
assigned to accommodate a long label in the column headings cells.
These columns will still be made wider to accommodate wide data values
in the data region.
min-row-heading-width
is the minimum width that a column in the corner
and row headings region will be given automatically.
max-col-heading-width
is the maximum width that a column in this region
will be assigned to accomodate a long label. This region doesn’t
include data, so data values don’t affect column widths.
table-id
is a binary version of the tableId
attribute in
the structure member that refers to the detail member. For example,
if tableId
is -4122591256483201023
, then table-id
would be 0xc6c99d183b300001.
The meaning of the other variable parts of the header is not known. A
writer may safely use version 3, true for x0
, false for
x1
, true for x2
, and 0x15 for x3
.