-- 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/NCL31ConnectorAssessmentExpression.xsd
Author: TeleMidia Laboratory
Revision: 30/06/2013
Schema for the NCL Connector Assessment Expression module namespace.
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:connectorAssessmentExpression="http://www.ncl.org.br/NCL3.1/ConnectorAssessmentExpression"
xmlns:connectorCommonPart="http://www.ncl.org.br/NCL3.1/ConnectorCommonPart"
targetNamespace="http://www.ncl.org.br/NCL3.1/ConnectorAssessmentExpression"
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.0/modules/NCL31ConnectorCommonPart.xsd"/>
<simpleType name="comparatorPrototype">
<restriction base="string">
<enumeration value="eq" />
<enumeration value="ne" />
<enumeration value="gt" />
<enumeration value="lt" />
<enumeration value="gte" />
<enumeration value="lte" />
</restriction>
</simpleType>
<simpleType name="attributePrototype">
<restriction base="string">
<enumeration value="state" />
<enumeration value="nodeProperty" />
</restriction>
</simpleType>
<simpleType name="statePrototype">
<restriction base="string">
<enumeration value="sleeping" />
<enumeration value="occurring" />
<enumeration value="paused" />
</restriction>
</simpleType>
<simpleType name="valueUnion">
<union memberTypes="string connectorAssessmentExpression:statePrototype"/>
</simpleType>
<complexType name="assessmentStatementPrototype" >
<sequence>
<element ref="connectorAssessmentExpression:attributeAssessment"/>
<choice>
<element ref="connectorAssessmentExpression:attributeAssessment"/>
<element ref="connectorAssessmentExpression:valueAssessment"/>
</choice>
</sequence>
<attribute name="comparator" type="connectorAssessmentExpression:comparatorPrototype" use="required"/>
</complexType>
<complexType name="attributeAssessmentPrototype">
<attribute name="role" type="string" use="required"/>
<attribute name="eventType" type="connectorCommonPart:eventPrototype" use="required"/>
<attribute name="key" type="string" use="optional"/>
<attribute name="attributeType" type="connectorAssessmentExpression:attributePrototype" use="optional" default="nodeProperty"/>
<attribute name="offset" type="string" use="optional"/>
</complexType>
<complexType name="valueAssessmentPrototype">
<attribute name="value" type="connectorAssessmentExpression:valueUnion" use="required"/>
</complexType>
<complexType name="compoundStatementPrototype">
<choice minOccurs="1" maxOccurs="unbounded">
<element ref="connectorAssessmentExpression:assessmentStatement" />
<element ref="connectorAssessmentExpression:compoundStatement" />
</choice>
<attribute name="operator" type="connectorCommonPart:logicalOperatorPrototype" use="required"/>
<attribute name="isNegated" type="boolean" use="optional" default="false"/>
</complexType>
<!-- declare global elements in this module -->
<element name="assessmentStatement" type="connectorAssessmentExpression:assessmentStatementPrototype" />
<element name="attributeAssessment" type="connectorAssessmentExpression:attributeAssessmentPrototype" />
<element name="valueAssessment" type="connectorAssessmentExpression:valueAssessmentPrototype" />
<element name="compoundStatement" type="connectorAssessmentExpression:compoundStatementPrototype" />
</schema>