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
If both @keyref
and @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
@conkeyref
and @conref
attributes 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 @keys
,
@processing-role
, and @id
attributes, are combined as for
content references, including the special processing for the @xml:lang
,
@dir
, and @translate
attributes.
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 <resourceid>
within topic
references to specify distinct anchor components for each instance of the topic.
with the @appid-role
attribute set to
deliverable-anchor to specify different source URIs for each
reference to a topic.
Error conditions
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.