Right.
> Because the expansion of Foo requires that spaces be placed on either
>side, creating this:
>
><! ENTITY Bar 'Baz'>
Right.
>and the production for a PE declaration is:
>
>PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
>
>which does not allow any space between the ! and ENTITY.
Right.
>Is this correct? Basically what I'm looking for here is a more general rule
>which says that I can consider any %blah; occurance at some place in the
>grammar that does not allow spaces at that point to be in error without even
>checking any further?
Seems to me you got it right based on the spec. -Tim