<!ELEMENT CONTROLSCHEDULE (MODULE*, STATE*, TRIGGER*)>
<!ELEMENT MODULE (ADDRESS, TYPE?, DESCRIPTION?)>
<!ELEMENT ADDRESS (HOUSE, UNIT)>
<!ELEMENT HOUSE (#PCDATA)>
<!ELEMENT UNIT (#PCDATA)>
<!ELEMENT TYPE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>
<!ELEMENT STATE (NAME, DESCRIPTION?, COMPONENT+)>
<!ELEMENT COMPONENT (DESCRIPTION?,ADDRESS, POSITION)>
<!ELEMENT POSITION (#PCDATA)>
<!ELEMENT TRIGGER (STATENAME, TIMED*, SWITCH*)>
<!ELEMENT STATENAME (#PCDATA)>
<!ELEMENT TIMED ((DAILY | WEEKLY | DATE), TIME)>
<!ELEMENT DAILY EMPTY>
<!ELEMENT WEEKLY (WEEKDAY*)>
<!ELEMENT WEEKDAY (#PCDATA)>
<!ELEMENT DATE (DAY,MONTH, YEAR)>
<!ELEMENT DAY (#PCDATA)>
<!ELEMENT MONTH (#PCDATA)>
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT TIME (HOUR, MINUTE, SECOND?)>
<!ELEMENT HOUR (#PCDATA)>
<!ELEMENT MINUTE (#PCDATA)>
<!ELEMENT SECOND (#PCDATA)>
<!ELEMENT SWITCH (#PCDATA)>
