-- XSD schema extracted from ITU-T H.761 (11/2014)

<!-- XML Schema for the NCL modules This is NCL Copyright: 2005 PUC-RIO/LABORATORIO TELEMIDIA, All Rights Reserved. See http://www.telemidia.puc-rio.br Public URI: http://www.ncl.org.br/NCL3.1/modules/NCL31ConnectorCausalExpression.xsd Author: TeleMidia Laboratory Revision: 30/06/2013 Schema for the NCL Connector Causal Expression module namespace. --> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:connectorCausalExpression="http://www.ncl.org.br/NCL3.1/ConnectorCausalExpression" xmlns:connectorCommonPart="http://www.ncl.org.br/NCL3.1/ConnectorCommonPart" targetNamespace="http://www.ncl.org.br/NCL3.1/ConnectorCausalExpression" elementFormDefault="qualified" attributeFormDefault="unqualified" > <!-- import the definitions in the modules namespaces --> <import namespace="http://www.ncl.org.br/NCL3.1/ConnectorCommonPart" schemaLocation="http://www.ncl.org.br/NCL3.1/modules/NCL31ConnectorCommonPart.xsd"/> <simpleType name="conditionRoleUnion"> <union memberTypes="string connectorCausalExpression:conditionRolePrototype"/> </simpleType> <simpleType name="conditionRolePrototype"> <restriction base="string"> <enumeration value="onBegin" /> <enumeration value="onEnd" /> <enumeration value="onPause" /> <enumeration value="onResume" /> <enumeration value="onAbort" /> <enumeration value="onSelection" /> <enumeration value="onBeginSelection" /> <enumeration value="onEndSelection" /> <enumeration value="onBeginAttribution" /> <enumeration value="onEndAttribution" /> <enumeration value="onPauseAttribution" /> <enumeration value="onResumeAttribution" /> <enumeration value="onAbortAttribution" /> </restriction> </simpleType> <simpleType name="maxUnion"> <union memberTypes="positiveInteger connectorCausalExpression:unboundedString"/> </simpleType> <simpleType name="unboundedString"> <restriction base="string"> <pattern value="unbounded"/> </restriction> </simpleType> <complexType name="simpleConditionPrototype"> <attribute name="role" type="connectorCausalExpression:conditionRoleUnion" use="required"/> <attribute name="eventType" type="connectorCommonPart:eventPrototype" use="optional"/> <attribute name="key" type="string" use="optional"/> <attribute name="transition" type="connectorCommonPart:transitionPrototype" use="optional"/> <attribute name="delay" type="string" use="optional" default="0s"/> <attribute name="min" type="positiveInteger" use="optional" default="1"/> <attribute name="max" type="connectorCausalExpression:maxUnion" use="optional" default="1"/> <attribute name="qualifier" type="connectorCommonPart:logicalOperatorPrototype" use="optional" default="or"/> </complexType> <complexType name="compoundConditionPrototype"> <attribute name="operator" type="connectorCommonPart:logicalOperatorPrototype" use="required" default="or"/> <attribute name="delay" type="string" use="optional" default="0s"/> </complexType> <simpleType name="actionRoleUnion"> <union memberTypes="string connectorCausalExpression:actionNamePrototype"/> </simpleType> <simpleType name="actionNamePrototype"> <restriction base="string"> <enumeration value="start" /> <enumeration value="stop" /> <enumeration value="pause" /> <enumeration value="resume" /> <enumeration value="abort" /> <enumeration value="set" /> </restriction> </simpleType> <simpleType name="actionOperatorPrototype"> <restriction base="string"> <enumeration value="seq" /> </restriction> </simpleType> <complexType name="simpleActionPrototype"> <attribute name="role" type="connectorCausalExpression:actionRoleUnion" use="required"/> <attribute name="eventType" type="connectorCommonPart:eventPrototype" use="optional"/> <attribute name="actionType" type="connectorCausalExpression:actionNamePrototype" use="optional"/> <attribute name="delay" type="string" use="optional" default="0s"/> <attribute name="value" type="string" use="optional"/> <attribute name="min" type="positiveInteger" use="optional" default="1"/> <attribute name="max" type="connectorCausalExpression:maxUnion" use="optional" default="1"/> <anyAttribute/> </complexType> <complexType name="compoundActionPrototype"> <choice minOccurs="2" maxOccurs="unbounded"> <element ref="connectorCausalExpression:simpleAction" /> <element ref="connectorCausalExpression:compoundAction" /> </choice> <attribute name="operator" type="connectorCausalExpression:actionOperatorPrototype" use="optional" default="seq"/> <attribute name="delay" type="string" use="optional" default="0s"/> </complexType> <!-- declare global elements in this module --> <element name="simpleCondition" type="connectorCausalExpression:simpleConditionPrototype" /> <element name="compoundCondition" type="connectorCausalExpression:compoundConditionPrototype" /> <element name="simpleAction" type="connectorCausalExpression:simpleActionPrototype" /> <element name="compoundAction" type="connectorCausalExpression:compoundActionPrototype" /> </schema>