I've been playing with this without much success. The
idea is to make available a DTD so that editors like
emacs and jedit can help a user in editing book files.
Here's one that's kind of close:
<!DOCTYPE BOOK [
<!ELEMENT CONTENTS (#PCDATA) >
<!ELEMENT TOPICS (#PCDATA) >
<!ELEMENT TEXT (#PCDATA) >
<!ELEMENT RIGHTANSWER (#PCDATA) >
<!ELEMENT WRONGANSWER (#PCDATA) >
<!ELEMENT BOOK (CONTENTS, CHAPTER+) >
<!ATTLIST BOOK NAME CDATA #REQUIRED
AUTHOR CDATA "No Author"
COVER CDATA "No Cover" >
<!ELEMENT CHAPTER ( TOPICS, QUESTION+ ) >
<!ATTLIST CHAPTER
NAME CDATA #REQUIRED
AUTHOR CDATA "No Author"
COVER CDATA "No Cover" >
<!ELEMENT WRONGANSWERS (WRONGANSWER+)>
<!ELEMENT QUESTION
(TEXT,RIGHTANSWER,WRONGANSWERS)>
<!ATTLIST QUESTION
ID CDATA #REQUIRED>
]>
on a related note, all the identifiers should be lower
case, which will involve some editing of BookXMLHandler
for backwards-compatibility.