8. Appendix I: DTD for the matrix.xml file

This Document Type Definition specifies the formal structure of the matrix.xml file that holds the skills data. For the relevant standards, see the TCC Help System at http://www.nmt.edu/tcc/help/xml/standards.html.

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

<!-- The root element is `skill-set'.  It is the set of all major
 !   headings.
 !-->
<!ELEMENT   skill-set   (major-head+)>

<!-- Each `major-head' has a title and contains a set of skill
 !   groups.
 !-->

<!ELEMENT   major-head  (skill-group+)>
<!ATTLIST   major-head
    title       CDATA       #REQUIRED>

<!-- A `skill-group' has a title and is a container for skills.
 !-->

<!ELEMENT   skill-group (skill+)>
<!ATTLIST   skill-group
    title       CDATA       #REQUIRED>

<!-- Each `skill' has a title and is a container for `skilled'
 !   elements describing the people who have this skill.  Some
 !   skills may have no skilled-person in them.  The `details'
 !   element is an optional description of the skill, and was
 !   prompted by the original ticket: `Can we put a what is this
 !   category button in xskill, since being new I'm not exactly
 !   sure what some of the categories meant. For example, module
 !   repair.'
 !-->

<!ELEMENT   skill       (details?, skilled*)>
<!ATTLIST   skill
    title       CDATA       #REQUIRED>
<!ELEMENT   details     (#PCDATA)>

<!-- A `skilled' element has two attributes: the login of the
 !   person with that skill, and the skill level, one of:
 !      b: beginner
 !      i: intermediate
 !      e: expert
 !   If the person has no skill, there is no `skilled' element.
 !-->

<!ELEMENT   skilled EMPTY>
<!ATTLIST   skilled
    login       CDATA       #REQUIRED
    level       (b | i | e) #REQUIRED>