> Let's consider this in terms of the grammar I posted. If we added
> <difference> then the unrestricted grammar for pattern would simply get
> another choice:
>
> | <difference> pattern pattern </difference>
>
> For the restricted grammar, I think the right thing to do is to change
> things as follows:
>
... (rules snipped)...
That looks like a reasonable restriction in terms of the implementation
of validators. It would be fairly easy to add this capability.
> Wouldn't it also have the benefit of
> making the language as a whole closed under difference?
Unlike the <difference> in name class, <difference> for values doesn't.
Because generally we cannot know if a <difference> p1 p2 </difference>
is equivalent to <notAllowed/>.
When we are talking about closures, I think we can forget about
datatypes. There is no way to make the language closed with respect to
datatypes.
> It might be simpler to disallow <text/> in <list> altogether.
I prefer to disallow <text/> in <list> very much. It's nothing but
confusing. Or (as I wrote before) I'd like to change the semantics of
<text/> to match only one string token.
regards,
--
Kohsuke KAWAGUCHI +1 650 786 0721
Sun Microsystems