Do you want to inherit declarations? If so, then you can
parameter entity tricks. I think Rick Jeliffe told you how to do that.
Do you want to inherit type semantics? (e.g. do you want to create a DOG
element that is a subclass of ANIMAL, for processing purposes) If so, then
you want to use architectural forms. Steven Newcomb will tell you how to
do that.
Do you want to do both? Then you must combine those features. That is a
very painful route and it won't always work the way you want it to, or
expect it to.
An XML document type is both a declaration of a grammar (which makes
declaration inheritance useful) and a simple type system (which makes
type semantics inheritance useful).
I discuss these issues in my paper:
http://www.xmledi.com/ooxmledi.htm
Paul Prescod