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.
To address a review #3 comment from David Helfinstine, I broke the original topic (11 pages!) down into four child topics. (Caveat: This was quick and dirty work on an area that wasn't my primary responsibility.) This area needs additional work, so I did not add <shortdesc> elements for all new topics. I have the following concerns:
- I think this content is nested too deeply in the architecture.
- Ideally, I think the examples should be integrated into the topics, rather than segregated into a separate topic.
- Is the syntax for key-based addressing covered in the language reference topics? While I think we need a sound overview of key-based addressing the in the arch spec topics, I think users will look first to the language reference when wanting to retrieve information about syntax.