Kohsuke KAWAGUCHI wrote:
> One of my concern to the current restriction is that it's probably not
> closed to boolean operations(union/intersection/difference).
>
> Mine is made to satisfy closedness property, and it exactly exclude
> those patterns which cause the problem to validators. No more, no less.
#18. restrictStringUse is still open.
Let me propose another possibility. Allow me to write in a formal
manner.
We denote the class of regular languages over a finite set X by REC(X).
Given a normalized grammar G, let N be the (finite) set of <ref>
in G, A be the (finite) set of <attribute> in G, and D be the (finite)
set of <data> in G.
Any content model (i.e., the children of some <element>) in G certainly
denotes a regular set L over the union of N, A, and D. That is,
L is in REC(N \cup A \cup D).
I would propose the following restriction.
L - D is in REC(N \cup A)
This restriction is closed under intersection and union, but is not
closed under difference. This is closer to James' proposal, but is
more restrictive.
Cheers,
Makoto