structure
I.9 ID Map and Directory encoding options
I.9.1 ID Map Section structure
4715
An IDMPO represents ID Values using a structure called an ID Map section, containing 4716
one or more ID Maps. Each ID Value encoded in a Data IDMPO is represented as a ‘1’ 4717
bit within an ID Map bit field, whose fixed length is equal to the number of entries in the 4718
corresponding Base Table. Conversely, each ‘0’ in the ID Map Field indicates the 4719
absence of the corresponding ID Value. Since the total number of ‘1’ bits within the ID 4720
Map Field equals the number of ID Values being represented, no explicit NumberOfIDs 4721
field is encoded. In order to implement the range of functionality made possible by this 4722
representation, the ID Map Section contains elements other than the ID Map itself. If 4723
present, the optional ID Map Section immediately follows the leading pattern indicating 4724
an IDMPO (as was described in I.4.2), and contains the following elements in the order 4725
listed below: 4726
• An Application Indicator subsection (see I.5.3.1) 4727
• an ID Map bit field (whose length is determined from the ID Size in the Application 4728
Indicator) 4729
• a Full/Restricted Use bit (see I.5.3.2) 4730
• (the above sequence forms an ID Map, which may optionally repeat multiple times) 4731
• a Data/Directory indicator bit, 4732
• an optional AuxMap section (never present in a Data IDMPO), and 4733
• Closing Flag(s), consisting of an “Addendum Flag” bit. If ‘1’, then an Addendum 4734
subsection is present at the end of the Object Info section (after the Object Length 4735
Information). 4736
These elements, shown in Figure I 9-1 as a maximum structure (every element is 4737
present), are described in each of the next subsections. 4738
Figure I 9-1: ID Map section 4739
First ID Map Optional additional ID Map(s) Null App Indicator (single zero bit) Data/ Directory Indicator Bit (If directory) Optional AuxMap Section Closing Flag Bit(s) App Indicator ID Map Bit Field (ends with F/R bit) App Indicator ID Map Field (ends with F/R bit) See See I.9.1.1 As As See See Figure I 9- Addendum
I.5.3.1 and I.5.3.2
previous previous I.5.3.1 2 Flag Bit
4740
When an ID Map section is encoded, it is always followed by an Object Length and Pad 4741
Indicator, and optionally followed by an Addendum subsection (all as have been 4742
previously defined), and then may be followed by any of the other sections defined for 4743
Packed Objects, except that a Directory IDMPO shall not include a Data section. 4744
I.9.1.1 ID Map and ID Map bit field 4745
An ID Map usually consists of an Application Indicator followed by an ID Map bit field, 4746
ending with a Full/Restricted Use bit. An ID Map bit field consists of a single 4747
“MapPresent” flag bit, then (if MapPresent is ‘1’) a number of bits equal to the length 4748
determined from the ID Size pattern within the Application Indicator, plus one (the 4749
Full/Restricted Use bit). The ID Map bit field indicates the presence/absence of encoded 4750
data items corresponding to entries in a specific registered Primary or Alternate Base 4751
Table. The choice of base table is indicated by the encoded combination of DSFID and 4752
Application Indicator pattern that precedes the ID Map bit field. The MSB of the ID Map 4753
bit field corresponds to ID Value 0 in the base table, the next bit corresponds to ID Value 4754
1, and so on. 4755
In a Data Packed Object’s ID Map bit field, each ‘1’ bit indicates that this Packed Object 4756
contains an encoded occurrence of the data item corresponding to an entry in the 4757
registered Base Table associated with this ID Map. Note that the valid encoded entry 4758
may be found either in the first (“parentless”) Packed Object of the chain (the one 4759
containing the ID Map) or in an Addendum IDLPO of that chain. Note further that one 4760
or more data entries may be encoded in an IDMPO, but marked “invalid” (by a Delete 4761
entry in an Addendum IDLPO). 4762
An ID Map shall not correspond to a Secondary ID Table instead of a Base ID Table. 4763
Note that data items encoded in a “parentless” Data IDMPO shall appear in the same 4764
relative order in which they are listed in the associated Base Table. However, additional 4765
“out of order” data items may be added to an existing data IDMPO by appending an 4766
Addendum IDLPO to the Object. 4767
An ID Map cannot indicate a specific number of instances (greater than one) of the same 4768
ID Value, and this would seemingly imply that only one data instance using a given ID 4769
Value can be encoded in a Data IDMPO. However, the ID Map method needs to support 4770
the case where more two or more encoded data items are from the same identifier “class” 4771
(and thus share the same ID Value). The following mechanisms address this need: 4772
• Another data item of the same class can be encoded in an Addendum IDLPO of the 4773
IDMPO. Multiple occurrences of the same ID Value can appear on an ID List, each 4774
associated with different encoded values of the Secondary ID bits. 4775
• A series of two or more encoded instances of the same “class” can be efficiently 4776
indicated by a single instance of an ID Value (or equivalently by a single ID Map bit), 4777
if the corresponding Base Table entry defines a “Repeat” Bit (see J.2.2). 4778
An ID Map section may contain multiple ID Maps; a null Application Indicator section 4779
(with its AppIndicatorPresent bit set to ‘0’) terminates the list of ID Maps. 4780
I.9.1.2 Data/Directory and AuxMap indicator bits 4781
A Data/Directory indicator bit is always encoded immediately following the last ID Map. 4782
By definition, a Data IDMPO has its Data/Directory bit set to ‘0’, and a Directory 4783
IDMPO has its Data/Directory bit set to ‘1’. If the Data/Directory bit is set to ‘1’, it is 4784
immediately followed by an AuxMap indicator bit which, if ‘1’, indicates that an optional 4785
AuxMap section immediately follows. 4786
I.9.1.3 Closing Flags bit(s) 4787
The ID Map section ends with a single Closing Flag: 4788
• The final bit of the Closing Flags is an Addendum Flag Bit which, if ‘1’, indicates 4789
that there is an optional Addendum subsection encoded at the end of the Object Info 4790
section of the Packed Object. If present, the Addendum subsection is as described in 4791
Section I .5.6. 4792