Next: , Up: Light Detail Member Format   [Contents]


2.2.1 Header

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.


Next: Titles, Up: Light Detail Member Format   [Contents]