22.214.171.124 Processing key references
Key references can resolve as links, as text, or as both. Within a map, they also can be used to create or supplement information on a topic reference. This topic covers information that is common to all key processing, regardless of how the key is used.
Processing of undefined keys
@href attributes are specified on
an element, the
@href value MUST be used as a fallback address when the key name is
undefined. If both
are specified on an element, the
@conref value MUST be used as a fallback
address when the key name is undefined.
Determining effective attributes on the key-referencing element
The attributes that are common to the key-defining element and the key-referencing
element, other than the
@id attributes, are
combined as for content references, including the special processing for the
attributes. There is no special processing associated with either the
@locktitle or the
@lockmeta attributes when
attributes are combined.
Keys and conditional processing
The effective key definitions for a key space might be affected by conditional processing (filtering). Processors SHOULD perform conditional processing before determining the effective key definitions. However, processors might determine effective key definitions before filtering. Consequently, different processors might produce different effective bindings for the same map when there are key definitions that might be filtered out based on their filtering attributes.
Reusing a topic in multiple key scopes
If a topic that contains key references is reused in multiple key scopes within a
given root map such that its references resolve differently in each use context, processors MUST produce multiple copies of the source topic in
resolved output for each distinct set of effective key definitions that are
referenced by the topic. In such cases, authors can use the
attribute to specify different source URIs for each reference to
If a referencing element contains a key reference with an undefined
key, it is processed as if there were no key reference, and the value of the
@href attribute is used as the reference. If the
@href attribute is not specified, the element is not treated as
a navigation link. If it is an error for the element to be empty, an implementation
MAY give an error message;
it also MAY recover from this
error condition by leaving the key reference element empty.