If you read (and understand) the note just above, you might reasonably ask why this set of rules also has to be complex. This is a validity constraint, right, and if you're validating, and find an undeclared entity, that should always be an error, right?
Well yes, but sometimes it's a validity error (which you can survive, and keep processing) and sometimes it's a well-formedness (i.e. fatal) error. The reason all this verbiage is here is to make that the "undeclared-ness" of some entity isn't both a validity and well-formedness error. So all this language is simply the mirror-image of that in the well-formedness constraint above, and restricts this rule to the cases where that one doesn't apply.
Back-link to specCopyright © 1998, Tim Bray. All rights reserved.