<!--
  This is a DTD for the registry component of a corpus-based
  dictionary, version 0.1, prepared for Explorations 2000 by Steve
  Tinney (stinney@sas.upenn.edu).

  This document is placed in the public domain.
 -->
<!ELEMENT cbd:registry     (cbd:desc? , cbd:item*)>
<!ATTLIST cbd:registry
          %cbd.ns;
          type             NMTOKEN  #REQUIRED>

<!-- 
 cbd:item is recursively defined to permit disambiguation of like
 items by distinct keys.

 Validation constraint: no two cbd:item's should have identical sets
 of key=value pairs.

 Some systemic means of clicking through from the registry to relevant
 external resources is also required.
 -->
<!ELEMENT cbd:item         ((cbd:desc? , cbd:key*) | cbd:subitem+)>
<!ATTLIST cbd:item
          %global-attr;
          nm               NMTOKEN  #REQUIRED>

<!ELEMENT cbd:subitem      ((cbd:desc? , cbd:key*) | cbd:subitem+)>
<!ATTLIST cbd:subitem
          %global-attr;>

<!--
 A (possibly informal) description of the item.
 -->
<!ELEMENT cbd:desc         (%text.content;)*>