Constraints can be classified into two categories: Weak and strong. This classification determines whether processors enforce strict compatibility during conref or conkeyref resolution.
- Strong constraints
- Constraints for which processors enforce strict compatibility during conref or conkeyref resolution.
- Weak constraints
- Constraints for which a processor does not enforce strict compatibility during conref or conkeyref resolution.
By default, constraints are weak unless they are explicitly designated as strong.
Any constraint declaration can designate a constraint as strong. A constraint can be designated as strong by prefixing the letter "s" to the domains attribute contribution, for example, "s(topic task strictTaskbody-c)". Processors also can be configured to treat all constraints as strong.
The following behavior is expected of processors:
- Processors MAY perform constraint compatibility checking.
- If processors perform constraint compatibility checking, they SHOULD enforce strict compatibility for strong constraints.
- Processors MAY have an option for configuring whether all constraints are treated as strong constraints.