<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT property-groups (property-group+)>

<!ELEMENT property-group (input | suggestbox | checkbox | textarea | select | separator | text)*>
<!ATTLIST property-group
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	visible (true | false) "true"
	readonly (true | false) "false"
>

<!ELEMENT input (validator*)>
<!ATTLIST input
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	type (text | date | link | folder) "text"
	width CDATA #IMPLIED
	height CDATA #IMPLIED
	readonly (true | false) "false"
>

<!ELEMENT suggestbox (validator*)>
<!ATTLIST suggestbox
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	width CDATA #IMPLIED
	height CDATA #IMPLIED
	readonly (true | false) "false"
	table CDATA #IMPLIED
	filterQuery CDATA #REQUIRED
	valueQuery CDATA #REQUIRED
	dialogTitle CDATA #REQUIRED
	filterMinLen CDATA #IMPLIED
>

<!ELEMENT checkbox (validator*)>
<!ATTLIST checkbox
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	width CDATA #IMPLIED
	height CDATA #IMPLIED
	readonly (true | false) "false"
>

<!ELEMENT textarea (validator*)>
<!ATTLIST textarea
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	width CDATA #IMPLIED
	height CDATA #IMPLIED
	readonly (true | false) "false"
>

<!ELEMENT select (option*, validator*)>
<!ATTLIST select
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	type (simple | multiple) "simple"
	width CDATA #IMPLIED
	height CDATA #IMPLIED
	readonly (true | false) "false"
	table CDATA #IMPLIED
	optionsQuery CDATA #IMPLIED
>

<!ELEMENT option EMPTY>
<!ATTLIST option
	label CDATA #REQUIRED
	value CDATA #REQUIRED
	selected (true | false) "false"
>

<!ELEMENT validator EMPTY>
<!ATTLIST validator
	type (req | alpha | dec | num | email | url | maxlen | minlen | lt | gt | min | max | regexp) "req"
	parameter CDATA #IMPLIED
>

<!ELEMENT separator EMPTY>
<!ATTLIST separator
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	width CDATA #IMPLIED
>

<!ELEMENT text EMPTY>
<!ATTLIST text
	label CDATA #REQUIRED
	name CDATA #REQUIRED
	width CDATA #IMPLIED
	height CDATA #IMPLIED
>