As explained above, the structure of your document type, plus a variety of entities, is declared in the DTD, which, because it is common to a large number of documents, is held separately from the document you are writing.
It is possible, however, for a specific document to adjust or add to the declarations within the DTD, and this is done within the `document type declaration subset'.
The DTD subset is typically used to declare entities of one type or another, as described in Section 3.3.
The subset is a DTD fragment which is processed before the declaration refers to. Thus, any (parameter) entity declarations there override corresponding ones in the DTD, so it is possible for a document author to do some limited rewriting of the DTD on the fly. This will be most common when a DTD is modular, as the Starlink DTD is. As described in Section 4.1, you can enable features within your DTD by setting a suitable entity.
This get-out-of-jail-free card is obviously eminently abusable, and you should avoid doing anything clever here.