5038
Each ID Table in a Packed Objects registration shall include an IDvalue column, and may 5039
include other columns that are defined in this specification as Optional, and/or 5040
Informative columns (whose column heading is not defined in this specification). 5041
J.2.1 IDvalue column (Mandatory)
5042
Each ID Table in a Packed Objects registration shall include an IDvalue column. The ID 5043
Values on successive rows shall increase monotonically. However, the table may 5044
terminate before reaching the full number of rows indicated by the Keyword line 5045
containing K-IDsize. In this case, a receiving system will assume that all remaining ID 5046
Values are reserved for future assignment (as if the OIDs column contained the keyword 5047
“K-RFA”). If a registered Base ID Table does not include the optional OIDs column 5048
described below, then the IDvalue shall be used as the last arc of the OID. 5049
J.2.2 OIDs and IDstring columns (Optional)
5050
A Packed Objects registration always assigns a final OID arc to each identifier (either a 5051
number assigned in the “OIDs” column as will be described below, or if that column is 5052
absent, the IDvalue is assigned as the default final arc). The OIDs column is required 5053
rather than optional, if a single IDvalue is intended to represent either a combination of 5054
OIDs or a choice between OIDs (one or more Secondary ID bits are invoked by any entry 5055
that presents a choice of OIDs). 5056
A Packed Objects registration may include an IDString column, which if present assigns 5057
an ASCII-string name for each OID. If no name is provided, systems must refer to the 5058
identifier by its OID (see J.4). However, many registrations will be based on data 5059
systems that do have an ASCII representation for each defined Identifier, and receiving 5060
systems may optionally output a representation based on those strings. If so, the ID 5061
Table may contain a column indicating the IDstring that corresponds to each OID. An 5062
empty IDstring cell means that there is no corresponding ASCII string associated with the 5063
OID. A non-empty IDstring shall provide a name for every OID invoked by the OIDs 5064
column of that row (or a single name, if no OIDs column is present). Therefore, the 5065
sequence of combination and selection operations in an IDstring shall exactly match 5066
those in the row’s OIDs column. 5067
A non-empty OIDs cell may contain either a keyword, an ASCII string representing (in 5068
decimal) a single OID value, or a compound string (in ABNF notation) that a defines a 5069
choice and/or a combination of OIDs. The detailed syntax for compound OID strings in 5070
this column (which also applies to the IDstring column) is as defined in section J.3. 5071
Instead of containing a simple or compound OID representation, an OIDs entry may 5072
contain one of the following Keywords: 5073
• K-Verbatim = OIDddBnn, where “dd” represents the chosen penultimate arc of the 5074
OID, and “Bnn” indicates one of the Base 10, Base 40, or Base 74 encoding tables. 5075
This entry invokes a number of Secondary ID bits that serve two purposes: 5076
• They encode an ASCII identifier “name” that might not have existed at the time 5077
the table was registered. The name is encoded in the Secondary ID bits section as 5078
a series of Base-n values representing the ASCII characters of the name, preceded 5079
by a four-bit field indicating the number of Base-n values that follow (zero is 5080
permissible, in order to support RFA entries as described below). 5081
• The cumulative value of these Secondary ID bits, considered as a single unsigned 5082
binary integer and converted to decimal, is the final “arc” of the OID for this 5083
“verbatim-encoded’ identifier. 5084
• K-Secondary = Snn, where “Snn” represents the Table ID of a Secondary ID Table 5085
in the same registration file. This is equivalent to a Base ID Table row OID entry that 5086
contains a single Selection list (with no other components at the top level), but instead 5087
of listing these components in the Base ID Table, each component is listed as a 5088
separate row in the Secondary ID Table, where each may be assigned a unique OID, 5089
ID string, and FormatString. 5090
• K-Proprietary=OIDddPnn, where nn represents a fixed number of Secondary ID 5091
bits that encode an optional Enterprise Identifier indicating who wrote the proprietary 5092
data (an entry of K-Proprietary=OIDddP0 indicates an “anonymous” proprietary 5093
data item). 5094
• K-RFA = OIDddBnn, where “Bnn” is as defined above for Verbatim encoding, 5095
except that “B0” is a valid assignment (meaning that no Secondary ID bits are 5096
invoked). This keyword represents a Reserved for Future Assignment entry, with an 5097
option for Verbatim encoding of the Identifier “name” once a name is assigned by the 5098
entity who registered this Data Format. Encoders may use this entry, with a four-bit 5099
“verbatim” length of zero, until an Identifier “name” is assigned. A specific 5100
FormatString may be assigned to K-RFA entries, or the default a/n encoding may be 5101
utilized. 5102
Finally, any OIDs entry may end with a single “R” character (preceded by one or more 5103
space characters), to indicate that a “Repeat” bit shall be encoded as the last Secondary 5104
ID bit invoked by the entry. If ‘1’, this bit indicates that another instance of this class of 5105
identifier is also encoded (that is, this bit acts as if a repeat of the ID Value were encoded 5106
on an ID list). If ‘1’, then this bit is followed by another series of Secondary ID bits, to 5107
represent the particulars of this additional instance of the ID Value. 5108
An IDstring column shall not contain any of the above-listed Keyword entries, and an 5109
IDstring entry shall be empty when the corresponding OIDs entry contains a Keyword. 5110
J.2.3 FormatString column (Optional)
5111
An ID Table may optionally define the data characteristics of the data associated with a 5112
particular identifier, in order to facilitate data compaction. If present, the FormatString 5113
entry specifies whether a data item is all-numeric or alphanumeric (i.e., may contain 5114
characters other than the decimal digits), and specifies either a fixed length or a variable 5115
length. If no FormatString entry is present, then the default data characteristic is 5116
alphanumeric. If no FormatString entry is present, or if the entry does not specify a 5117
length, then any length >=1 is permitted. Unless a single fixed length is specified, the 5118
length of each encoded data item is encoded in the Aux Format section of the Packed 5119
Object, as specified in I.7. 5120
If a given IDstring entry defines more than a single identifier, then the corresponding 5121
FormatString column shall show a format string for each such identifier, using the same 5122
sequence of punctuation characters (disregarding concatenation) as was used in the 5123
corresponding IDstring. 5124
The format string for a single identifier shall be one of the following: 5125
• A length qualifier followed by “n” (for always-numeric data); 5126
• A length qualifier followed by “an” (for data that may contain non-digits); or 5127
• A fixed-length qualifier, followed by “n”, followed by one or more space characters, 5128
followed by a variable-length qualifier, followed by “an”. 5129
A length qualifier shall be either null (that is, no qualifier present, indicating that any 5130
length >= 1 is legal), a single decimal number (indicating a fixed length) or a length 5131
range of the form “i*j”, where “I” represents the minimum allowed length of the data 5132
item, “j” represents the maximum allowed length, and i <= j. In the latter case, if “j” is 5133
omitted, it means the maximum length is unlimited. 5134
Data corresponding to an “n” in the FormatString are encoded in the KLN subsection; 5135
data corresponding to an “an” in the FormatString are encoded in the A/N subsection. 5136
When a given instance of the data item is encoded in a Packed Object, its length is 5137
encoded in the Aux Format section as specified in I.7.2. The minimum value of the range 5138
is not itself encoded, but is specified in the ID Table’s FormatString column. 5139
Example: 5140
A FormatString entry of “3*6n” indicates an all-numeric data item whose length 5141
is always between three and six digits inclusive. A given length is encoded in two 5142
bits, where ‘00’ would indicate a string of digits whose length is “3”, and ‘11’ 5143
would indicate a string length of six digits. 5144
J.2.4 Interp column (Optional)
5145
Some registrations may wish to specify information needed for output representations of 5146
the Packed Object’s contents, other than the default OID representation of the arcs of 5147
each encoded identifier. If this information is invariant for a particular table, the 5148
registration file may include keyword lines as previously defined. If the interpretation 5149
varies from row to row within a table, then an Interp column may be added to the ID 5150
Table. This column entry, if present, may contain one or more of the following keyword 5151
assignments (separated by semicolons), as were previously defined (see J.1.1 and J.1.2): 5152 • K-RootOID = urn:oid:i.j.k.l… 5153 • K-Interpretation = string 5154 • K-ISO15434=nn 5155
If used, these override (for a particular Identifier) the default file-level values and/or 5156
those specified in the Table Header section. 5157