Re: draft proposal for catalog resolution

I am having problems with understanding the following two productions in the
draft proposals:

catComment ::= '--*' (Char* - (Char* '*--' Char*) '*--'

catKeyword ::= (Char* - (S | SystemLiteral | 'PUBLIC' 
               | PublicID | catComment))

Firstly, I cannot understand the Char* - part of theses productions. Why is
the initial Char optional, and what role does the hyphen take? Is it the
same as "-" or does it imply "NOT"?

Secondly, what is the purpose of a catKeyword. I don't find the text reassuing.

>The catalog format is that defined by SGML Open Technical Resolution 
>9401:1995 (Amendment 1 to TR 9401), which
>defines several keywords in addition to PUBLIC. These are matched by the 
>otherEntry rule, and may be ignored (or acted
>on) by XML processors

We should at very least list the keywords in the 1995 version of the TR, and
ensure that the model in catKeyword matches this. (Can you really have no
string in front  of the system literal or publid ID? Can you have a public
ID that is not preceded by 'PUBLIC' as the model for catKeyword implies?) At
present I have severe doubts about the validity of the catKeyword formal

If a catKeyword may be ignored, what is the difference between when it is
implemented and when it is ignored? We need to explain this to our Dirty
Perl Hacker if we are going to leave such cryptic comments in the text.
Martin Bryan, The SGML Centre, Churchdown, Glos. GL3 2PU, UK 
Phone/Fax: +44 1452 714029   WWW home page: http://www.sgml.u-net.com/