Resolve content references (`conref`)
The conref
step resolves content references, processing only the DITA maps or topics that use the @conref
attribute. This step is implemented in XSLT.
The values of the @id
attribute on referenced content are changed as the elements are pulled into the new locations. This ensures that the values of the @id
attribute within the referencing topic remain unique.
If an element is pulled into a new context along with a cross reference that references the target, both the values of the @id
and @xref
attributes are updated so that they remain valid in the new location. For example, a referenced topic might include a section as in the following example:
When the section is referenced using a @conref
attribute, the value of the @id
attribute on the <fig>
element is modified to ensure that it remains unique in the new context. At the same time, the <xref>
element is also modified so that it remains valid as a local reference. For example, if the referencing topic has an @id
set to "new_topic", then the conrefed element may look like this in the intermediate document <section>
.
In this case, the value of the @id
attribute on the <fig>
element has been changed to a generated value of "d1e25". At the same time, the <xref>
element has been updated to use that new generated ID, so that the cross reference remains valid.