ISO 28560-2:2011 Clarification

Authors : Paul Chartier (editor of ISO 28560-2)



Status : For information

Bemark : Valid for ISO 28560-2:2011, not for ISO 28560-2:2014

Published by ISO/TC46/SC4/WG11 RFID in Libraries

Information and documentation, Technical interoperability

Contact :

First version: 4 November 2011





This document provides clarification relevant to ISO 28560 Part 2. Some references are made to ISO 28560-1 or its associated clarification document.


The headings (below) are to the clauses in ISO 28560-2.


6.16 Local data

The clarification that is provided for the title (see below) is also applicable to the three data elements for local data.


6.17 Title

There can be a need to encode a title with characters that are not included in the Latin alphabet. The advice in this clause in the standard needs to be followed, but this clarification note in concerned with the interoperability between the LMS/ILS and the Part 2 encoder and decoder.


The default character set of ISO/IEC 15962 is defined in ISO/IEC 8859-1 (as specified in 7.4.4 of ISO 28560-2). As this clause on compaction clearly defines, if any graphical character of the data element is outside the range of ISO/IEC 8859-1, then UTF-8 needs to be declared as the compaction scheme.


Different program languages, and therefore software, support the storage of these characters is one of two ways:

         As 16-bit code points compliant with ISO/IEC 10646 (also known as Unicode). If the LMS/ILS or the ISO 28560-2 encoding supports these characters, then the encoder needs to be responsible for the transformation to UTF-8.

         If the LMS/ILS holds the characters already transformed as UTF-8 code points, then it is essential to check that ISO 28560-2 encoding process is completely compatible.


Note: The ISO/IEC 646 IRV character set is a perfect subset of both ISO/IEC 8859-1 and of UTF-8.


6.19 Media format (other)

The assigned values of this data element are now included in the clarification document for ISO 28560-1, under section 4.2.19.


6.20 Supply chain stage

ISO 28560 Part 1 defines the code points as decimal values. The clarification note for ISO 28560-1 4.2.20 now defines the total range of possible values. To achieve interoperability in host systems, ISO 28560-2 and ISO 28560-3 require a common basis for input to their respective encoding processes and common output from their decoding processes. Each input/output value is required as an 8-bit unsigned integer.


The inherent ISO/IEC 15962 encoding rules used for ISO 28560-2 can only achieve this by using the application defined compaction scheme. This shall be the compaction to be applied with the input 8-bit unsigned integer being encoded without change.


The code point 00HEX for undefined does not apply to ISO 28560-2 and should not be encoded. It is included in the clarification note of ISO 28560-1 for encoding requirements of ISO 28560-3.


7.4.4 Data compaction

The third paragraph of this clause discusses the use of the application-defined argument on input. Even though implicit in the encoding, it could be made clearer that three other data elements not listed in the standard use this argument, and are therefore encoded using the application-defined compaction schemes. These are all defined on input as a single octet (coded list):

Data Element 5: Type of usage

Data Element 19: Media format (other)

Data Element 20: Supply chain stage Data set for OID value 15 to 127

Figure 5 shows that if the Relative-OID has a value in the range of 15 to 127, "has to be explicitly encoded as a separate component (a single byte) in the data set", preceding the encoding of the length of data. ISO 28560-2 does not explain in this clause, or any worked example how such a Relative-OID value is encoded.


Although the details are in ISO/IEC 15962, this clarification note explains the encoding rules.

The value that is encoded in the data set is not the value of the Relative-OID, but that value minus 15. The table (below) shows some examples.



Encoded value (decimal)

Encoded value (hexadecimal)


15 - 15 = 0



16 - 15 = 1



17 - 15 = 2



27 - 15 = 12



127 - 15 = 92

0x5C Locking a data set

The standard states:

The value of this offset is the number of null bytes (typically encoded as value 00HEX, but the value 80HEX is also acceptable) that are added after the final byte of the compacted data to end on a block boundary.


For clarification, each of the values of the pad byte, or null bytes, has the same status. The value encoded in the offset byte determines how many bytes to skip after the compacted data to find the precursor of the next encoded data set. The null byte value 80HEX is used when modifying or deleting data to minimise the number of air interface transactions.


The decode process is expected to accept tags encoded with one or other pad byte value, and even with these intermixed on the same tag.