Processing conrefs
When processing content references, DITA processors compare the restrictions of each context to ensure that the conrefed content is valid in its new context.
Except where allowed by weak constraints, a conref processor MUST NOT permit resolution of a reuse relationship that could be rendered invalid under the rules of either the reused or reusing content.
@conref
attribute is a transclusion
mechanism similar to XInclude and to HyTime value references. DITA differs from these mechanisms,
however, in that conref validity does not apply simply to the current content at the time of
replacement, but to the possible content given the restrictions of both the referencing document
type and the referenced document type.When pulling content with the conref mechanism, if the referenced element is the same type as
the referencing element, and the set of domains declared on the
@domains
attribute in the referenced topic or map instance is the same as or a
subset of the domains declared in the referencing document, the element set allowed in the
referenced element is guaranteed to be the same as, or a subset of, the element set allowed in
the referencing element.
When pushing content with the conref mechanism, the domain checking algorithm is reversed. In
this case, if the set of domains declared on the @domains
attribute in the
referencing topic or map instance is the same as or a subset of the domains declared in the
referenced document, the element set allowed in the pushed content is guaranteed to be the same
as, or a subset of, the element set allowed in the new location.
In both cases, processors resolving conrefs SHOULD tolerate specializations of valid elements and generalize elements in the pushed or pulled content fragment as needed for the resolving context.