XML.com FAQs > D. Developers and Implementors (including WebMasters and server operators)
Question:  D.14 How do I include one DTD (or fragment) in another?

This works exactly the same as for regular SGML. First you declare the entity you want to include, and then you reference it by name as a parameter:

<!ENTITY % mylists SYSTEM "dtds/listfrag.ent">

Such declarations traditionally go all together towards the top of the main DTD file, where they can be managed and maintained, but this is not essential so long as they are declared before they are used. You use Parameter Entity Syntax for this (the percent sign) because the file is to be included at DTD compile time, not when the document instance itself is parsed.

Note that a URL is compulsory in XML as the System Identifier for all external file references: standard rules for dereferencing URLs apply (assume the same method, server, and directory as the containing document). A Formal Public Identifier can also be used, following the same rules as elsewhere.

This FAQ is from The XML FAQ, maintained by Peter Flynn