<!-- Paparazzi Modules DTD -->

<!ELEMENT module (doc?,settings_file*,settings*,depends?,conflicts?,header,init*,periodic*,event*,datalink*,makefile*)>
<!ELEMENT doc (description|define|configure|section)*>
<!ELEMENT settings_file (file*)>
<!ELEMENT settings (dl_settings?)>
<!ELEMENT depends (#PCDATA)>
<!ELEMENT conflicts (#PCDATA)>
<!ELEMENT header (file*)>
<!ELEMENT init EMPTY>
<!ELEMENT periodic EMPTY>
<!ELEMENT event (handler*)>
<!ELEMENT handler EMPTY>
<!ELEMENT datalink EMPTY>
<!ELEMENT makefile (configure|define|flag|file|file_arch|raw)*>
<!ELEMENT section (define|configure)*>
<!ELEMENT description (#PCDATA)>
<!ELEMENT configure EMPTY>
<!ELEMENT define EMPTY>
<!ELEMENT flag EMPTY>
<!ELEMENT file EMPTY>
<!ELEMENT file_arch EMPTY>
<!ELEMENT raw (#PCDATA)>
<!ELEMENT dl_settings (dl_setting|dl_settings)+>
<!ELEMENT dl_setting (strip_button|key_press)*>
<!ELEMENT strip_button EMPTY>
<!ELEMENT key_press EMPTY>

<!ATTLIST module
name CDATA #REQUIRED
dir CDATA #IMPLIED>

<!ATTLIST header>

<!ATTLIST init
fun CDATA #REQUIRED>

<!ATTLIST periodic
fun CDATA #REQUIRED
period CDATA #IMPLIED
freq CDATA #IMPLIED
delay CDATA #IMPLIED
start CDATA #IMPLIED
stop CDATA #IMPLIED
autorun (TRUE|FALSE|LOCK) #IMPLIED >

<!ATTLIST event
fun CDATA #REQUIRED>

<!ATTLIST handler
fun CDATA #REQUIRED>

<!ATTLIST datalink
message CDATA #REQUIRED
fun CDATA #REQUIRED>

<!ATTLIST makefile
target CDATA #IMPLIED>

<!ATTLIST section
name CDATA #REQUIRED
prefix CDATA #IMPLIED>

<!ATTLIST configure
name CDATA #REQUIRED
value CDATA #REQUIRED
description CDATA #IMPLIED>

<!ATTLIST define
name CDATA #REQUIRED
value CDATA #IMPLIED
unit CDATA #IMPLIED
type CDATA #IMPLIED
description CDATA #IMPLIED
cond CDATA #IMPLIED>

<!ATTLIST flag
name CDATA #REQUIRED
value CDATA #REQUIRED>

<!ATTLIST file
name CDATA #REQUIRED
dir CDATA #IMPLIED>

<!ATTLIST file_arch
name CDATA #REQUIRED
dir CDATA #IMPLIED>

<!ATTLIST settings_file
name CDATA #REQUIRED
>

<!ATTLIST settings
name CDATA #IMPLIED
>

<!ATTLIST dl_settings
name CDATA #IMPLIED
>

<!ATTLIST dl_setting
var CDATA #REQUIRED
min CDATA #REQUIRED
max CDATA #REQUIRED
type CDATA #IMPLIED
step CDATA #IMPLIED
widget CDATA #IMPLIED
shortname CDATA #IMPLIED
module CDATA #IMPLIED
handler CDATA #IMPLIED
param CDATA #IMPLIED
unit CDATA #IMPLIED
alt_unit CDATA #IMPLIED
alt_unit_coef CDATA #IMPLIED
values CDATA #IMPLIED
persistent CDATA #IMPLIED
>

<!ATTLIST strip_button
name CDATA #REQUIRED
value CDATA #REQUIRED
icon CDATA #IMPLIED
group CDATA #IMPLIED
>

<!ATTLIST key_press
key CDATA #REQUIRED
value CDATA #REQUIRED
>
