Introduction to Databases with Stanford University : DTD Exercises


 * Introduction to Databases by Standford University http://db-class.org
 * Additional materials: http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=IntroToDatabases
 * Use xmllint (XML_Validation) to validate the result.

1. Create a DTD for XML data at http://s3.amazonaws.com/dbclass-resources/docs/courses-noID.xml (Alternate link:Courses-noID.xml)

<!ELEMENT Course_Catalog (Department*)> <!ELEMENT Department (Title, Chair, Course+)> <!ATTLIST Department Code CDATA #REQUIRED>

<!ELEMENT Chair (Professor)> <!ELEMENT Course (Title, Description*, Instructors, Prerequisites*)> <!ATTLIST Course Number CDATA #REQUIRED Enrollment CDATA #IMPLIED>

<!ELEMENT Instructors (Lecturer|Professor)+> <!ELEMENT Prerequisites (Prereq*)> <!ELEMENT Lecturer (First_Name,Middle_Initial*,Last_Name)+> <!ELEMENT Professor (First_Name,Middle_Initial*,Last_Name)+> <!ELEMENT Title (#PCDATA)> <!ELEMENT Description (#PCDATA)> <!ELEMENT First_Name (#PCDATA)> <!ELEMENT Last_Name (#PCDATA)> <!ELEMENT Middle_Initial (#PCDATA)> <!ELEMENT Prereq (#PCDATA)>

2. Create a DTD for XML data at http://s3.amazonaws.com/dbclass-resources/docs/courses-ID.xml (Alternate link: Courses-ID.xml)

<!ELEMENT Course_Catalog (Department*)> <!ELEMENT Department (Title, Course+,(Professor|Lecturer)*)> <!ATTLIST Department Code CDATA #REQUIRED Chair IDREF #IMPLIED>

<!ELEMENT Course (Title, Description*)> <!ATTLIST Course Number ID #REQUIRED Prerequisites CDATA #IMPLIED Instructors IDREFS #REQUIRED Enrollment CDATA #IMPLIED>

<!ELEMENT Courseref EMPTY> <!ATTLIST Courseref Number IDREF #REQUIRED> <!ELEMENT Lecturer (First_Name,Middle_Initial*,Last_Name)> <!ELEMENT Professor (First_Name,Middle_Initial*,Last_Name)> <!ATTLIST Lecturer InstrID ID #REQUIRED> <!ATTLIST Professor InstrID ID #REQUIRED> <!ELEMENT Title (#PCDATA)> <!ELEMENT Description (#PCDATA|Courseref)*> <!ELEMENT First_Name (#PCDATA)> <!ELEMENT Last_Name (#PCDATA)> <!ELEMENT Middle_Initial (#PCDATA)>

3. Create a DTD for XML data at http://s3.amazonaws.com/dbclass-resources/docs/countries.xml (Alternate link: Countries.xml)

<!ELEMENT countries (country*)>

<!ATTLIST country name CDATA #REQUIRED population CDATA #REQUIRED area CDATA #REQUIRED>

<!ELEMENT country ((language|city)*)>

<!ELEMENT city (name,population)> <!ELEMENT language (#PCDATA)> <!ATTLIST language percentage CDATA #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT population (#PCDATA)>