<!-- 
Saba Competency Format DTD
Daniel Lipkin
v1.0
-->

<!-- A competencyLibrary defines one or more competencies.
A competencyLibrary contains an optional set of group definition, an optional shared set of competency levels, and
one or more competency definitions.
metadataRef is an optional URI to a Catalog Format document containing metadata for 
this competency library. -->
<!ELEMENT competencyLibrary (group*, sharedLevels?, competency+)>
<!ATTLIST competencyLibrary metadataRef CDATA #IMPLIED
                            xml:lang NMTOKEN #IMPLIED>

<!-- Competencies can be grouped, and groups can be nested. -->
<!ELEMENT group (name, description?, group*)>
<!ATTLIST group id ID #REQUIRED>

<!-- SharedLevels defines one or more competency levels available for all competencies.  -->
<!ELEMENT sharedLevels (level+)>

<!-- A competency has a name and an optional description.  
By default, it inherits the competencylevels defined by the shared levels.  
It may also choose to override these defaults by defining one or more levels specific to this competency. 
Note that if there is no sharedLevel definition, each competency must explicitly define at least one level.
A competency can also be associated with a group. -->
<!ELEMENT competency (name, description?, level*)>
<!ATTLIST competency id ID #REQUIRED
                     groupRef IDREF #IMPLIED>

<!-- A competency level has an optional name, an optional description, and one or more optional evidence descriptions. 
It has an optional numeric value as a property. -->
<!ELEMENT level (name?, description?, evidence*)>
<!ATTLIST level id ID #REQUIRED>
<!ATTLIST level value CDATA #IMPLIED>

<!ELEMENT name (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT evidence (#PCDATA)>

