<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2000/10/XMLSchema">
	<xsd:group name = "executable.content">
		<xsd:choice>
			<xsd:element ref = "accept"/>
			<xsd:element ref = "createcall"/>
			<xsd:element ref = "join"/>
			<xsd:element ref = "unjoin"/>
			<xsd:element ref = "createconference"/>
			<xsd:element ref = "destroyconference"/>
			<xsd:element ref = "dialogstart"/>
			<xsd:element ref = "dialogterminate"/>
			<xsd:element ref = "send"/>
			<xsd:element ref = "disconnect"/>
			<xsd:element ref = "assign"/>
			<xsd:element ref = "var"/>
			<xsd:element ref = "script"/>
			<xsd:element ref = "if"/>
			<xsd:element ref = "goto"/>
			<xsd:element ref = "fetch"/>
			<xsd:element ref = "exit"/>
			<xsd:element ref = "redirect"/>
			<xsd:element ref = "move"/>
		</xsd:choice>
	</xsd:group>
	<xsd:element name = "accept">
		<xsd:complexType>
			<xsd:attribute name = "callid" use = "default" value = "_event.callid" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "authenticate">
		<xsd:complexType>
			<xsd:attribute name = "server" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "userid" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "password" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "assign">
		<xsd:complexType>
			<xsd:attribute name = "name" use = "required" type = "xsd:%esvar;"/>
			<xsd:attribute name = "expr" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ccxml">
		<xsd:complexType>
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:element ref = "assign"/>
				<xsd:element ref = "var"/>
				<xsd:element ref = "eventhandler"/>
				<xsd:element ref = "script"/>
			</xsd:choice>
			<xsd:attribute name = "version" use = "required" type = "xsd:%version;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "createcall">
		<xsd:complexType>
			<xsd:attribute name = "dest" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "name" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "createccxml">
		<xsd:complexType>
			<xsd:attribute name = "fetchid" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "start" type = "xsd:%expression;"/>
			<xsd:attribute name = "sessionid" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "createconference">
		<xsd:complexType>
			<xsd:attribute name = "id" use = "required" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "destroyconference">
		<xsd:complexType>
			<xsd:attribute name = "id" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "dialogstart">
		<xsd:complexType>
			<xsd:attribute name = "callid" use = "default" value = "_event.dialogid" type = "xsd:%expression;"/>
			<xsd:attribute name = "src" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "type" use = "default" value = "application/xml+vxml" type = "xsd:%content.type;"/>
			<xsd:attribute name = "namelist" type = "xsd:%esvars;"/>
			<xsd:attribute name = "dialogid" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "dialogterminate">
		<xsd:complexType>
			<xsd:attribute name = "dialogid" use = "default" value = "_event.dialogid" type = "xsd:%expression;"/>
			<xsd:attribute name = "immediate" use = "default" value = "false">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "true"/>
						<xsd:enumeration value = "false"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "disconnect">
		<xsd:complexType>
			<xsd:attribute name = "callid" use = "default" value = "_event.callid" type = "xsd:%expression;"/>
			<xsd:attribute name = "reason" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "else">
		<xsd:complexType>
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "executable.content"/>
				<xsd:element ref = "elseif"/>
				<xsd:element ref = "else"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "elseif">
		<xsd:complexType>
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "executable.content"/>
				<xsd:element ref = "elseif"/>
				<xsd:element ref = "else"/>
			</xsd:choice>
			<xsd:attribute name = "cond" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "eventhandler">
		<xsd:complexType>
			<xsd:sequence minOccurs = "0" maxOccurs = "unbounded">
				<xsd:element ref = "transition"/>
			</xsd:sequence>
			<xsd:attribute name = "id" type = "xsd:ID"/>
			<xsd:attribute name = "statevariable" use = "required" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "exit">
		<xsd:complexType>
			<xsd:attribute name = "expr" use = "default" value = "0" type = "xsd:%expression;"/>
			<xsd:attribute name = "namelist" type = "xsd:%esvars;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "fetch">
		<xsd:complexType>
			<xsd:attribute name = "next" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "namelist" type = "xsd:%esvars;"/>
			<xsd:attribute name = "method" use = "default" value = "get">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "get"/>
						<xsd:enumeration value = "post"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "fetchid" type = "xsd:%esvar;"/>
			<xsd:attribute name = "sync" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "goto">
		<xsd:complexType>
			<xsd:attribute name = "fetchid" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "if">
		<xsd:complexType>
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "executable.content"/>
				<xsd:element ref = "elseif"/>
				<xsd:element ref = "else"/>
			</xsd:choice>
			<xsd:attribute name = "cond" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "join">
		<xsd:complexType>
			<xsd:attribute name = "id1" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "id2" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "duplex" use = "default" value = "full" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "move">
		<xsd:complexType>
			<xsd:attribute name = "endpoint" type = "xsd:%expression;"/>
			<xsd:attribute name = "event" type = "xsd:%expression;"/>
			<xsd:attribute name = "sessionid" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "redirect">
		<xsd:complexType>
			<xsd:attribute name = "callid" use = "default" value = "_event.callid" type = "xsd:%expression;"/>
			<xsd:attribute name = "dest" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "reason" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "reject">
		<xsd:complexType>
			<xsd:attribute name = "reason" type = "xsd:%expression;"/>
			<xsd:attribute name = "callid" use = "default" value = "_event.callid" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "script">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "src" type = "xsd:%expression;"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "send">
		<xsd:complexType>
			<xsd:attribute name = "event" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "target" type = "xsd:%expression;"/>
			<xsd:attribute name = "name" type = "xsd:%expression;"/>
			<xsd:attribute name = "delay" type = "xsd:%duration;"/>
			<xsd:attribute name = "namelist" type = "xsd:%esvars;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "transition">
		<xsd:complexType>
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "executable.content"/>
			</xsd:choice>
			<xsd:attribute name = "state" type = "xsd:%string;"/>
			<xsd:attribute name = "event" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "cond" type = "xsd:%expression;"/>
			<xsd:attribute name = "name" type = "xsd:%esvar;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "unjoin">
		<xsd:complexType>
			<xsd:attribute name = "id1" use = "required" type = "xsd:%expression;"/>
			<xsd:attribute name = "id2" use = "required" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "var">
		<xsd:complexType>
			<xsd:attribute name = "name" use = "required" type = "xsd:%esvar;"/>
			<xsd:attribute name = "expr" type = "xsd:%expression;"/>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>