Strict constraints allow grammar file creators to disable conref
This has all of the problems of ordinary constraint tokens, but with an extra wrinkle. It's a way for the person creating a constraint to say "I don't care what the end user of this document type thinks. I don't want content references to be possible between this document and unconstrained ones."
Keep in mind that it is still not possible for a processor to know what is constrained.
- Differently constrained document types, where you are
- Pulling from unconstrained context into constrained context, but more specifically
- Pulling the specific element that is constrained, and finally
- Pulling a specific instance of the element that would violate the constraint.
The chances that this will be harmful are high (if anybody ever actually creates one). Consider
the "Strict taskbody constraint" from OASIS, which only affects children of
<taskbody>
. If it was actually a "strict constraint" as defined by the
specification, you would no longer be able to conref from any other OASIS document type into
the strict task. This is because a processor cannot know from the token what is constrained,
only that something is. So if you try to reuse <keyword>
from a concept – a
processor can't allow it, because a constraint might be violated. If you try to reuse
<note>
from a reference – same thing.
Chances that this will be useful, and prevent the case it's intended to prevent: no more likely that with other constraints.
Chances this will be harmful: high.