The gutbook dtd has the basic top level structure, and can take as many
book elements as you want. 'book' can also stand alone with its own DTD (bookfrag.dtd) for ease of authoring. The full 'bookfrag' dtd can be obtained here. The next page also has a description and a few notes on the use of this DTD. A tutorial on using this DTD to mark up books can be found here
The following figure shows the top level structure of the gutbook DTD.
Here are the element content declarations for the gutbook1.DTD
<!ELEMENT gutbook (gutblurb,markupblurb,book*,endmarkupblurb?,endgutblurb?)> <!ELEMENT gutblurb (#PCDATA|para|subsect|title)*> <!ELEMENT markupblurb (#PCDATA|para|subsect|title)*> <!ELEMENT endmarkupblurb (#PCDATA|para|subsect|title)*> <!ELEMENT endgutblurb (#PCDATA|para|subsect|title)*>