Hi Chandra,
I think that your DTD declaration
<!ELEMENT TOPIC (TITLE , DESCRIPTION? , (UNIT | %PERIPHERALITEM; | QUIZ)*)>
interpretes that Topic can have any number of either UNIT or PERIPHERALITEM or QUIZ under TOPIC. But they must come after TITLE and DESCRIPTION.
In other words, the following XML document is not valid..
<!DOCTYPE TOPIC [
<!ELEMENT TOPIC (UNIT | QUIZ)>
<!ELEMENT UNIT (#PCDATA)>
<!ELEMENT QUIZ (#PCDATA)>
]>
<TOPIC>
<UNIT/>
<QUIZ/>
</TOPIC>
You can either have UNIT or QUIZ but not both. This is what the declaration <!ELEMENT TOPIC (UNIT | QUIZ)> means.
I hope this helps.
-david