9. Appendix II: DTD for the people.xml file

<!-- DTD for the `people' file of the knowledge matrix project
 !-->

<!-- The root element is <people>, and represents the list of
 !   TCC staff members.  People are divided into groups under
 !   a single manager.
 !-->

<!ELEMENT   people  (group+)>

<!-- The <group> element is a container for <person> elements, and
 !   has a `title' attribute to name the group.
 !-->

<!ELEMENT   group   (person*)>
<!ATTLIST   group
    title       CDATA   #REQUIRED>

<!-- The <person> element represents one employee.  Attributes:
 !     initials: a 2- or 3-letter code to be used as a heading
 !       on narrow columns (e.g., initials="MT" for Mike Topliff).
 !     login: The account name of their staff account.
 !     href: Their homepage, work or personal, if known.
 !-->
<!ELEMENT   person  (first-name, surname)>
<!ATTLIST   person
    initials    CDATA   #REQUIRED
    login       CDATA   #REQUIRED
    href        CDATA   #IMPLIED>

<!-- The person's name is broken down into <first-name> and
 !   <surname>. Initials, nicknames, etc., are contained in
 !   the <first-name>.
 !-->
<!ELEMENT first-name  (#PCDATA)>
<!ELEMENT surname     (#PCDATA)>