You can't use character or general entities in the DTD, you have to use parameter entities. This is a consequence of SGML's basic design choice that DTDs use a different syntax from that of documents. It is fairly likely that future-generation schema replacements will use XML, not DTD, syntax; thus there will be no necessity for parameter entities.
Back-link to specCopyright © 1998, Tim Bray. All rights reserved.