1) The encoding declaration
[81] EncodingDecl ::= S 'encoding' Eq '"' EncName '"' | "'" EncName "'"
should have parentheses around the quoted names:
[81'] EncodingDecl ::= S 'encoding' Eq ('"'EncName '"' | "'" EncName "'")
2) The version info production
[25] VersionInfo ::= S 'version'
Eq ('"VersionNum"' | "'VersionNum'")
Here VersionNum is a nonterminal, not a literal string, and I think
what was meant was
[25'] VersionInfo ::= S 'version' Eq
('"' VersionNum '"' | "'" VersionNum "'")
I also have one suggestion for improvement of the proposal. The notation
type production is
[58] NotationType ::= 'NOTATION' S '(' S? Name
(S? '|' Name)* S? ')'
It allows for space before the the alternation '|' but not after. It
would be more symmetric to have
[58'] NotationType ::= 'NOTATION' S '(' S? Name
(S? '|' S? Name)* S? ')'
as in the enumeration production. Comments?
-Mark