It is desirable to be able to reference parts of structured messages or objects by some sort of "label," "ID," or "tag." The idea is that this label forms a fixed "anchor" that can be used "globally," at least within an application domain, to reference the tagged part.
PAPER: From the paper point of view, it seems logical to just provide for a text tag, so that users or applications could easily come up with short, readable tags. These tags would probably be meaningful to a person if generated by humans (i.e., "Susan") and at least fairly short and systematic if generated automatically (i.e., "A123"). The ID attribute type in XML [XML] appears to have been thought of this way, although it can be used in other ways.
PROTOCOL: From a protocol point of view, unique internal labels look very different than they do from a paper point of view. You should assume that pieces of different protocol messages will later be combined in a variety of ways, so that previously unique labels can conflict. Only three possibilities exist if you need such tags:
From a protocol point of view, such tags are difficult. If you really need them, however, the third choice works best.