As with most software, what you get out of the box is never exactly what you want, so you have to tweak the preferences, settings and if you're a hacker, maybe even the code.
With DTDs, it is also the same. Thankfully, Norm Walsh designed DocBook with modularity and customization layers in mind. The problem is that many XML editors don't like DTDs with external parameter entities or entity references, and want them flattened.
Here are a few DTD flatteners you can try, should you need to create your own customization layers, or need a flattened DTD:
- http://www.cowtowncoder.com/proj/dtdflatten/
- http://www.nwalsh.com/perl/flatten/
- http://freshmeat.net/projects/nekodtd/
- http://xmlbuddy.com/2.0/features.html
- http://www.tei-c.org/Software/carthage/#index-div-c16b1b4b4b6
Hopefully this will give you some options. I've had the best luck with the dtdflatten and flatten.pl programs on Solaris.
See also: DocBook