2.1 StringTable

The StringTable structure describes a set of new strings to which subsequent records can refer. As specified in [MC-NBFS] (section 2.2), the static DictionaryStrings defined by [MC-NBFS] map even integers to a static set of characters, leaving odd integers for extension. The StringTable structure takes advantage of the extensibility point by defining a mapping of odd integers to strings.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Size (variable)

...

Strings (variable)

...

Size (variable): An integer value that is encoded by using the MultiByteInt31 structure that indicates the overall size in bytes of the String structures that follow.

Strings (variable): A series of strings. The Strings MUST fit exactly within the Size specified. Each String MUST be unique and MUST NOT have been present in a prior StringTable.

The first String of the first StringTable is assigned an ID of 1, and each subsequent String is assigned the next-higher odd number. A consumer of this format MUST maintain this mapping until there are no further documents to process. Subsequent records and documents will refer to this String by this ID, as specified in section 2.2.