<!-- DTD for static completion XML loaded by DefaultCompletionProviders.
     See its loadFromXML() overloads as well as CompletionXMLParser.java. -->
<!ELEMENT api (environment?, completionTypes?, keywords)>
<!ELEMENT environment EMPTY>
<!ELEMENT completionTypes (functionCompletionType?)>
<!ELEMENT functionCompletionType EMPTY>
<!ELEMENT keywords (keyword+)>
<!ELEMENT keyword (((params?, desc?) | (desc?, params?)), returnValDesc?)>
<!ELEMENT returnValDesc (#PCDATA)>
<!ELEMENT params (param*)>
<!ELEMENT param (desc?)>
<!ELEMENT desc (#PCDATA)>

<!ATTLIST api language CDATA #REQUIRED>
<!ATTLIST environment
          paramStartChar CDATA #REQUIRED
          paramEndChar   CDATA #REQUIRED
          paramSeparator CDATA #REQUIRED
          terminal       CDATA #REQUIRED>
<!ATTLIST functionCompletionType
          type       CDATA #REQUIRED>
<!ATTLIST keyword
          name       CDATA #REQUIRED
          type       CDATA #REQUIRED
          returnType CDATA #IMPLIED
          definedIn  CDATA #IMPLIED>
<!-- Need to specify at least one of the two attributes below. -->
<!ATTLIST param
          name       CDATA #IMPLIED
          type       CDATA #IMPLIED>
