#PCDATA
should be suffixed by an asterisk. The section should read:
[51] Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? '#PCDATA' S? ')'
Production [51] says that mixed content is either the literal
(#PCDATA)
(with allowances for optional whitespace) or a choice that includes the literal#PCDATA
as its first content particle and is suffixed by an asterisk. These are some grammatical mixed-content models:(#PCDATA) ( #PCDATA ) (#PCDATA | PERSON)* ( #PCDATA | PERSON )* ( #PCDATA | TITLE | JOURNAL | MONTH | YEAR | SERIES | VOLUME )*
These are ungrammatical mixed content models:
(PERSON | #PCDATA)* (#PCDATA | PERSON) (#PCDATA, TITLE, #PCDATA, JOURNAL, MONTH, YEAR, #PCDATA)* (#PCDATA | (NAME, STREET, APT, CITY, STATE, ZIP))*