-<!ELEMENT cfgdirdoc (topleveldir+)>
-
-<!ELEMENT topleveldir (description?,(dir|file|script)+)>
-<!ATTLIST topleveldir
- type CDATA #REQUIRED>
-<!ELEMENT dir (description?,(dir|file|symlink|script)*)>
-<!ATTLIST dir
- name CDATA #REQUIRED
- type (fixed|symbolic) #REQUIRED
- optional (yes|no) #IMPLIED>
-<!ELEMENT file (description)>
-<!ATTLIST file
- name CDATA #REQUIRED
- type (fixed|symbolic) #IMPLIED
- optional (yes|no) #IMPLIED
->
-
-<!ELEMENT script (description,params)>
-<!ATTLIST script
- name CDATA #REQUIRED
- type (fixed|symbolic) #IMPLIED
->
+<!ELEMENT database (collection*)>
+
+<!ELEMENT collection (collection?,data?,link?,scalar?,program?,boolean?,list?,description?,hash?)*>
+<!ATTLIST collection
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ use CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT data (description?)>
+<!ATTLIST data
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED>
+
+
+<!ELEMENT link (default?,description?)>
+<!ATTLIST link
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+<!ELEMENT default (#PCDATA)>
+
+
+<!ELEMENT scalar (default?,description?,restriction?)>
+<!ATTLIST scalar
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
<!ELEMENT description ANY>
+<!ELEMENT program (description?,parameterList?)>
+<!ATTLIST program
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ type CDATA #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT boolean (description?)>
+<!ATTLIST boolean
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ default (on|off) #IMPLIED
+ since CDATA #IMPLIED>
+
+<!ELEMENT list (description?,elements?)>
+<!ATTLIST list
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT parameterList (parameter*)>
+<!ELEMENT parameter (description?)>
+<!ATTLIST parameter
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT ulink (#PCDATA)>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT hash (description?,keys*)>
+<!ATTLIST hash
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT keys (key*)>
+<!ELEMENT key (description?)>
+<!ATTLIST key
+ id CDATA #IMPLIED
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+
+<!ELEMENT elements (element*)>
+<!ELEMENT element (description?)>
+<!ATTLIST element
+ name CDATA #REQUIRED
+ since CDATA #IMPLIED>
+
+<!ELEMENT restriction (enumeration*)>
+<!ELEMENT enumeration EMPTY>
+<!ATTLIST enumeration
+ value CDATA #REQUIRED
+ since CDATA #IMPLIED>
-<!ELEMENT symlink (description,default?)>
-<!ATTLIST symlink
- name CDATA #REQUIRED>
+<!ELEMENT directory (#PCDATA)>
+<!ELEMENT filename (#PCDATA)>
-<!ELEMENT params (param*)>
-<!ELEMENT param (description)>
-<!ATTLIST param
- id CDATA #REQUIRED>
+<!ELEMENT optionref (#PCDATA)>
+<!ATTLIST optionref
+ ref CDATA #IMPLIED>
-<!ELEMENT default ANY>
+<!ELEMENT br EMPTY>
+<!ELEMENT p ANY>
+<!ELEMENT tool (#PCDATA)>
+<!ELEMENT command (#PCDATA)>