Based on past papers, the DTD question seems to take the exact same format every year, hence, the answers can be memorised and specified to apply to the current question.
Most Recent Sample Paper
For the XML:
<BankRegistery>
<Bank BankID=”1” Classification=”community” >
<BankName>Allied Irish Bank</BankName>
<BankManager>
<title>Ms</title>
<firstname>Sarah</firstname>
<lastname>Greene</lastname>
</BankManager>
<Branch BranchID=”10” CounterService = “No”>
<Name>AIB Ranelagh</Name>
<NoOfATM>3</NoOfATM>
</Branch>
<Branch BranchID= ”2” CounterService=”yes”>
<Name>AIB Crumlin</Name>
<NoOfATM>1</NoOfATM>
</Branch>
</Bank>
<Bank BankID=”2” Classification="Commercial">
<BankName>CitiBank Europe</BankName>
<BankManager>
<title>Mr</title>
<firstname>Thomas</firstname>
<firstname>Harry</firstname>
<lastname>Duffy</lastname>
</BankManager>
<Branch BranchID ="5" CounterService =”no”>
<Name>CitiBank Dublin</Name>
<NoOfATM/>
</Branch>
</Bank>
<Bank BankID =”3”>
<BankName>Bank Of Ireland</BankName>
<BankManager>
<firstname>Jean</firstname>
<lastname>Murphy</lastname>
</BankManager>
</Bank>
</BankRegistery>
The following DTD question was posed:
Question
Use DTD Notation to fully describe the XML document shown in Figure B above. Provide explanations for your design decisions.
For the purposes of this question, we will imagine that this is an internal XML document instead of an external one we load in, for simplicity.
<!DOCTYPE banks [
<!ELEMENT BankRegistry (Bank+)>
<!ELEMENT Bank (BankName, BankManager, Branch*)>
<!ATTLIST Bank BankID CDATA #REQUIRED>
<!ATTLIST Bank Classification CDATA>
<!ELEMENT BankName (#CDATA)>
<!ELEMENT BankManager (title, firstname+, lastname)>
<!ELEMENT title (#CDATA)>
<!ELEMENT firstname (#CDATA)>
<!ELEMENT lastname (#CDATA)>
<!ELEMENT Branch (Name, NoOfATM)>
<!ATTLIST Branch BranchID CDATA #REQUIRED>
<!ATTLIST CounterService "yes"|"no" #REQUIRED>
<!ELEMENT Name (#CDATA)>
<!ELEMENT NoOfATM (#CDATA?)>
]>
Note