DTD syntax is not difficult. DTDs do a lot of things well. I never
get confused reading them until someone mixes too many document types
into the same definition.
But XSDs have pattern facets and those are quite useful particularly
in systems that use structured identifiers (eg, S1000D data module
codes). Prior to 4.0, DTDs were used and errors in the DMCs had to be
tracked and beaten manually. With pattern facets, that became the
validtor's responsibility and life in a batch trust but verify
identifier system is much better.
It would be even better if the xs:include implementations actually
implemented the XPath locators so I wouldn't have to use the FOSI to
trick the rendering engine into skipping over identificationAndStatus
sections.
Local Vs Global - ID/IDREF aside because one man's globe is another
man's locale: using the web as a platform for distributed document
production is like stacking all the ammo in one location in the
compound as a means to test the enemy's aim.