<!ELEMENT modelglue (controllers,event-handlers,include*,config*)><!ELEMENT config (setting*)> <!ELEMENT setting (#PCDATA)> <!ATTLIST setting name CDATA #REQUIRED value CDATA #REQUIRED> <!ATTLIST include template CDATA #REQUIRED> <!ELEMENT controllers (controller+)> <!ELEMENT controller (message-listener+)> <!ATTLIST controller name CDATA #REQUIRED type CDATA #REQUIRED> <!ELEMENT message-listener (#PCDATA)> <!ATTLIST message-listener message CDATA #REQUIRED function CDATA #REQUIRED> <!ELEMENT event-handlers (event-handler|scaffold)+> <!ELEMENT scaffold (broadcasts*,results*,views*)> <!ATTLIST scaffold object CDATA #REQUIRED type CDATA #IMPLIED access CDATA #IMPLIED> <!ELEMENT event-handler (broadcasts*,results*,views*)> <!ATTLIST event-handler name CDATA #REQUIRED access CDATA #IMPLIED> <!ELEMENT broadcasts (message*)> <!ELEMENT message (argument*)> <!ATTLIST message name CDATA #REQUIRED> <!ELEMENT argument (#PCDATA)> <!ATTLIST argument name CDATA #REQUIRED value CDATA #REQUIRED> <!ELEMENT results (result*)> <!ELEMENT result (#PCDATA)> <!ATTLIST result name CDATA #IMPLIED do CDATA #REQUIRED redirect CDATA #IMPLIED append CDATA #IMPLIED anchor CDATA #IMPLIED preserveState CDATA #IMPLIED reset CDATA #IMPLIED> <!ELEMENT views (include*,value*)> <!ELEMENT include (value*)> <!ATTLIST include name CDATA #IMPLIED template CDATA #REQUIRED append CDATA #IMPLIED> <!ELEMENT value (#PCDATA)> <!ATTLIST value name CDATA #REQUIRED value CDATA #REQUIRED overwrite CDATA #IMPLIED>