Conref compatibility with constraints
To determine compatibility between two document instances, a conref processor checks
the @domains
attribute to confirm whether the referencing document has a
superset of the vocabulary modules in the referenced document. If one or both of the document
instances are constrained, the conref processor checks to confirm the compatibility of the
constraints.
Conref processors take into account whether constraints are specified as strong. For strong constraints, the following rules apply:
- Conref pull
- For each vocabulary module used by both document types, the module in the document type that contains the referencing element must be less (or equally) constrained than the same module in the document type that contains the referenced element. For example, if each document type uses the highlighting domain module, that module must be less (or equally) constrained in the document type that contains the referencing element.
- Conref push
- For each vocabulary module used by both document types, the module in the document type that contains the referencing element must be more (or equally) constrained than the same module in the document type that contains the referenced element. For example, if each document type uses the highlighting domain module, that module must be more (or equally) constrained in the document type that contains the referencing element.
Example: Conref pull and constraint compatibility
The following table contains scenarios where conref pull occurs between constrained and unconstrained document instances. It assumes that the processor is not configured to treat all constraints as strong constraints.
Values of @domains attribute in document type that contains the
referencing element |
Values of @domains attribute in document type that contains the
referenced element |
Resolution | Comments |
---|---|---|---|
(topic) |
(topic shortdescReq-c) |
Allowed | The content model of the referenced topic is more constrained than the referencing topic. |
s(topic shortdescReq-c) |
(topic) |
Prevented | The constraint is specified as a strong constraint, and the content model of the referenced topic is less constrained than the referencing topic. |
(topic shortdescReq-c) |
(topic) |
Allowed | Although the content model of referenced topic is less constrained than the referencing topic, this is a weak constraint and so permitted. |
(topic task) (topic hi-d) (topic hi-d
basicHighlightingDomain-c) |
(topic simpleSection-c) (topic task) (topic task
simpleStep-c) |
Allowed | The referenced topic has a subset of the vocabulary modules that are integrated into the document-type shell for the referencing topic. Both document types integrate constraints, but for modules used in both document types, the referencing topic is less constrained than the referenced topic. |
(topic hi-d) (topic simpleSection-c) s(topic
simpleP-c) |
(topic simpleSection-c) (topic task) (topic hi-d) (topic hi-d
basicHighlightingDomain-c) |
Prevented | The referencing document has constraints that are not present in the referenced
document, including a strong constraint applied to the <p>
element. |
Example: Conref push and constraint compatibility
The following table contains scenarios where conref push occurs between constrained and unconstrained document instances. It assumes that the processor has not been configured to treat all constraints as strong constraints.
Values of @domains attribute in document type that contains the
referencing element |
Values of @domains attribute in document type that contains the
referenced element |
Resolution | Comments |
---|---|---|---|
(topic) |
(topic shortdescReq-c) |
Allowed | Although the content model of the referenced topic is more constrained than the referencing topic, this is a weak constraint and so permitted. |
(topic) |
s(topic shortdescReq-c) |
Prevented | The constraint is specified as a strong constraint, and the content model of the referenced topic is more constrained than the referencing topic. |
(topic shortdescReq-c) |
(topic) |
Allowed | The content model of the referencing topic is more constrained than the referenced topic. |
(topic task) (topic hi-d) (topic hi-d
basicHighlightingDomain-c) |
(topic simpleSection-c) (topic task) (topic task
simpleStep-c) |
Allowed | The referenced topic has a subset of the vocabulary modules that are integrated into the document-type shell for the referencing topic. For modules used in both document types, the referenced topic is more constrained than the referencing topic, but this is a weak constraint and so permitted. |
(topic simpleSection-c) (topic task) (topic hi-d) (topic hi-d
basicHighlightingDomain-c) |
(topic hi-d) (topic simpleSection-c) s(topic
simpleP-c) |
Prevented | For the common topic module, the referenced document has more constraints than
the referencing document, including a strong constraint applied to the
<p> element. |