So far, I've extended XHTML by adding elements and attributes to a DTD. You can also create a driver DTD to do the same thing (in fact, the W3C is working on creating schemas for XHTML as well as DTDs). A driver DTD does not contain any DTD declarations except for parameter entities. The parameter entities are what you use to include other DTD sections, creating one combined DTD.
For example, I can create a new DTD, ch17_22.dtd, with this new XHTML element:
<!ELEMENT underlinedredtext (#PCDATA)> <!ATTLIST underlinedredtext underlinedredtextattribute CDATA #IMPLIED >
Now I can put together a new driver DTD that includes both ch17_22.dtd and the XHTML 1.0 transitional DTD, like this: