<!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 directory (#PCDATA)>
<!ELEMENT filename (#PCDATA)>

<!ELEMENT optionref (#PCDATA)>
<!ATTLIST optionref
        ref     CDATA #IMPLIED>

<!ELEMENT br EMPTY>
<!ELEMENT p       ANY>
<!ELEMENT tool    (#PCDATA)>
<!ELEMENT command (#PCDATA)>
