The DITA key-reference mechanism provides a layer of abstraction so that the resources addressed by references can be defined globally at the DITA map level instead of locally in each topic.
When using DITA topics in the context of different maps, it is often necessary to have a relationship resolve to different resources. For example, a content reference to a <ph> element that contains a product name might need to resolve to a different <ph> element when used in a different product-specific map. The DITA key-reference mechanism provides an indirect addressing mechanism that separates references (topicrefs, conrefs, cross references, etc.) from the direct address of the target. (A direct address is the address specified on the element that references the key, for example via @href or @conref.) Linking elements can refer to key names; the key names then are bound to specific resources by maps. Different maps can bind the same key names to different resources. This form of indirection is late bound, because the binding of key names to resources is determined at processing time based on the current set of key definitions for the map context rather than from a static binding that is created when a topic or map is authored.