IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Developing monitor models > What are monitor models?

Monitor XML schema definition (monitor.xsd)

Monitor models for Business Monitor are in an XML format that is defined by the monitor.xsd schema definition.

The complete schema definition is provided on this page.

You can also download the schema definition from monitor.xsd.

<xsd:schema 
        xmlns:mon="http://www.ibm.com/xmlns/prod/websphere/monitoring/8.0/mm" 
        xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.ibm.com/xmlns/prod/websphere/monitoring/8.0/mm">
    
    <xsd:element name="monitor" type="mon:MonitorType" />

    <xsd:complexType name="MonitorType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                   <xsd:element name="xpathFunctions" type="mon:XPathFunctionsType" minOccurs="0" maxOccurs="1"/>
                    <xsd:element name="monitorDetailsModel" type="mon:MonitorDetailsModelType" minOccurs="1" maxOccurs="1"/>    
                    <xsd:element name="kpiModel" type="mon:KPIModelType" minOccurs="0" maxOccurs="1"/>    
                    <xsd:element name="dimensionalModel" type="mon:DimensionalModelType" minOccurs="0" maxOccurs="1"/>
                    <xsd:element name="visualModel" type="mon:VisualModelType" minOccurs="0" maxOccurs="1"/>
                    <xsd:element name="eventModel" type="mon:EventModelType" minOccurs="1" maxOccurs="1"/>
                </xsd:sequence>
                <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="optional"/>
                <xsd:attribute name="timestamp" type="xsd:dateTime" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="XPathFunctionsType">
	    <xsd:sequence>
	        <xsd:element name="import" type="mon:ImportType" minOccurs="0" maxOccurs="unbounded" />
	    </xsd:sequence>
    </xsd:complexType>
    
<!-- BASE DEFINITIONS START ================================================================================-->

    <xsd:complexType name="DescribableElementType" abstract="true" >
        <xsd:choice minOccurs="0" maxOccurs="1">
            <xsd:element name="description" type="xsd:string"/>
        </xsd:choice>
    </xsd:complexType>

    <xsd:complexType name="NamedElementType" abstract="true" >
        <xsd:complexContent>
            <xsd:extension base="mon:DescribableElementType">
                <xsd:attribute name="id" type="xsd:NCName" use="required"/>
                <xsd:attribute name="displayName" type="mon:NameType" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="ImportType" >
        <xsd:attribute name="location" type="xsd:anyURI" use="optional"/>
        <xsd:attribute name="namespace" type="xsd:anyURI" use="optional"/>
    </xsd:complexType>

    <xsd:complexType name="ReferenceType">
        <xsd:attribute name="ref" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <xsd:simpleType name="NameType">
        <xsd:restriction base="xsd:string">
            <xsd:maxLength value="256"/>
        </xsd:restriction>
    </xsd:simpleType>    
    
    <xsd:complexType name="ValueSpecificationType" >
        <xsd:choice minOccurs="1" maxOccurs="1">
            <xsd:element name="singleValue" type="mon:ExpressionSpecificationType"/>
            <xsd:element name="assignments" type="mon:AssignmentListSpecificationType"/>
        </xsd:choice>
    </xsd:complexType>

    <xsd:complexType name="ExpressionSpecificationType" >
        <xsd:attribute name="expression" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <xsd:complexType name="AssignmentListSpecificationType" >
        <xsd:sequence>
            <xsd:element name="assignment" type="mon:AssignmentSpecificationType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="AssignmentSpecificationType" >
        <xsd:attribute name="leftValue" type="xsd:string" use="required"/>
        <xsd:attribute name="rightValue" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <xsd:complexType name="TimeIntervalsType" >
        <xsd:attribute name="minutes" type="xsd:nonNegativeInteger" default="0" />
        <xsd:attribute name="hours" type="xsd:nonNegativeInteger" default="0" />
        <xsd:attribute name="days" type="xsd:nonNegativeInteger" default="0" />
    </xsd:complexType>

    <xsd:simpleType name="AggregationType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="min"/>
            <xsd:enumeration value="max"/>
            <xsd:enumeration value="sum"/>
            <xsd:enumeration value="count"/>
            <xsd:enumeration value="avg"/>
            <xsd:enumeration value="stddev"/>
            <xsd:enumeration value="countdistinct"/>
            <xsd:enumeration value="median"/>
            <xsd:enumeration value="variance"/>
        </xsd:restriction>
    </xsd:simpleType>
    
<!-- BASE DEFINITIONS END ================================================================================-->


<!-- MONITOR DETAILS MODEL START =========================================================================-->

    <xsd:complexType name="MonitorDetailsModelNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="MDM"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="MonitorDetailsModelType" >
        <xsd:complexContent>
            <xsd:extension base="mon:MonitorDetailsModelNamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="monitoringContext" type="mon:MonitoringContextType"/>
                </xsd:choice>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>        

    <xsd:complexType name="ContextType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                   <xsd:choice minOccurs="0" maxOccurs="unbounded">
                       <xsd:element name="trigger" type="mon:TriggerType"/>
                       <xsd:element name="inboundEvent" type="mon:InboundEventType"/>
                       <xsd:element name="outboundEvent" type="mon:OutboundEventType"/>
                   </xsd:choice>
                   <xsd:attribute name="eventSequenceIDPath" type="xsd:string" use="optional"/>
                   <xsd:attribute name="creationTimePath" type="xsd:string" use="optional"/>
                   <xsd:attribute name="globalInstanceIDPath" type="xsd:string" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="MonitoringContextType" >
        <xsd:complexContent>
            <xsd:extension base="mon:ContextType">
		   <xsd:choice minOccurs="0" maxOccurs="unbounded">
                       <xsd:element name="metric" type="mon:MetricType"/>
                       <xsd:element name="counter" type="mon:CounterType"/>
                       <xsd:element name="stopwatch" type="mon:StopwatchType"/>
                       <xsd:element name="monitoringContext" type="mon:MonitoringContextType"/>
                   </xsd:choice>
		   <xsd:attribute name="hideFromDashboards" type="xsd:boolean" use="optional" default="false"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="BaseMetricType" abstract="true" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:attribute name="type" type="xsd:QName" use="required"/>
                <xsd:attribute name="isSortable" type="xsd:boolean" default="false"/>
                <xsd:attribute name="hideFromDashboards" type="xsd:boolean" use="optional" default="false"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
            
    <xsd:complexType name="StopwatchType" >
        <xsd:complexContent>
            <xsd:extension base="mon:BaseMetricType">
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="startedWhen" type="mon:ReferenceType" minOccurs="1" maxOccurs="unbounded"/>
                    <xsd:element name="stoppedWhen" type="mon:ReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="resetWhen" type="mon:ReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:choice>
                <xsd:attribute name="isAccumulated" type="xsd:boolean" default="false"/>                
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="CounterType" >
        <xsd:complexContent>
            <xsd:extension base="mon:BaseMetricType">
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="incrementedWhen" type="mon:ReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="decrementedWhen" type="mon:ReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="setToZeroWhen" type="mon:ReferenceType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:choice>        
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="MetricType" >
        <xsd:complexContent>
            <xsd:extension base="mon:BaseMetricType">
                <xsd:sequence>
                    <xsd:element name="map" type="mon:MapType" minOccurs="0" maxOccurs="unbounded"/>                
                    <xsd:element name="defaultValue" type="mon:ValueSpecificationType" minOccurs="0" maxOccurs="1"/>
                </xsd:sequence>
                <xsd:attribute name="isPartOfKey" type="xsd:boolean" default="false"/>
                <xsd:attribute name="valueRequired" type="xsd:boolean" default="false"/>
                <xsd:attribute name="maxStringLength" type="xsd:integer" default="256"/>
                <xsd:attribute name="isMultiByte" type="xsd:boolean" default="false"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="TriggerType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>                
                    <xsd:choice minOccurs="1" maxOccurs="unbounded">
                        <xsd:element name="onTrigger" type="mon:ReferenceType"/>
                        <xsd:element name="evaluationTime" 
                          type="mon:TimeIntervalsType"/>
                        <xsd:element name="onValueChange" 
                          type="mon:ReferenceType"/>
                        <xsd:element name="onEvent" type="mon:ReferenceType" />
                        <xsd:element name="evaluateAtDateTime" 
                          type="mon:ExpressionSpecificationType" />
                        <xsd:element name="evaluateAtTimeEachDay"
                          type="mon:ValueSpecificationType" />
                    </xsd:choice>
                    <xsd:element name="gatingCondition" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="1"/>
                </xsd:sequence>
                <xsd:attribute name="isRepeatable" type="xsd:boolean" default="false"/>
                <xsd:attribute name="terminateContext" type="xsd:boolean" default="false"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="InboundEventType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                    <xsd:element name="eventPart" type="mon:EventPartType" minOccurs="0" maxOccurs="unbounded" />
                    <xsd:element name="correlationPredicate" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="1" />
                    <xsd:element name="filter" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="1" />
                    <xsd:element name="parentCorrelationPredicate" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="1" />
                </xsd:sequence>
                <xsd:attribute name="rootElement" type="xsd:QName" use="required" />
                <xsd:attribute name="extensionName" type="xsd:string" use="optional" />
                <xsd:attribute name="eventSequenceIDPath" type="xsd:string" use="optional"/>
                <xsd:attribute name="creationTimePath" type="xsd:string" use="optional"/>
                <xsd:attribute name="globalInstanceIDPath" type="xsd:string" use="optional"/>
                <xsd:attribute name="noCorrelationMatches" type="mon:EventDeliveryOptionNoMatchesType" use="optional"/>
                <xsd:attribute name="oneCorrelationMatch" type="mon:EventDeliveryOptionOneMatchType" use="optional"/>
                <xsd:attribute name="multipleCorrelationMatches" type="mon:EventDeliveryOptionMultipleMatchesType" use="optional"/>
                <xsd:attribute name="terminateContext" type="xsd:boolean" default="false"/>
		<xsd:attribute name="eventPartitionPath" type="xsd:string" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="OutboundEventType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                	<xsd:element name="eventPart" type="mon:EventPartType" minOccurs="0" maxOccurs="unbounded" />
                    <xsd:element name="map" type="mon:MapType" minOccurs="1" maxOccurs="unbounded"/>
                    <xsd:element name="filter" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="1"/>
                </xsd:sequence>
                <xsd:attribute name="rootElement" type="xsd:QName" use="required" />    
                <xsd:attribute name="extensionName" type="xsd:string" use="optional" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="EventPartType">
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
		    	<xsd:attribute name="path" type="xsd:string" use="required"/>
		    	<xsd:attribute name="type" type="xsd:QName" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="MapType" >
        <xsd:complexContent>
            <xsd:extension base="mon:DescribableElementType">
                <xsd:sequence>
                    <xsd:element name="trigger" type="mon:ReferenceType" minOccurs="0" maxOccurs="1" />            
                    <xsd:element name="outputValue" type="mon:ValueSpecificationType" minOccurs="1" maxOccurs="1" />
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:simpleType name="EventDeliveryOptionNoMatchesType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="ignore"/>
            <xsd:enumeration value="raiseException"/>
            <xsd:enumeration value="createNewContext"/>
            <xsd:enumeration value="retry"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="EventDeliveryOptionOneMatchType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="ignore"/>
            <xsd:enumeration value="raiseException"/>
            <xsd:enumeration value="deliverEvent"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="EventDeliveryOptionMultipleMatchesType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="ignore"/>
            <xsd:enumeration value="raiseException"/>
            <xsd:enumeration value="deliverToAny"/>
            <xsd:enumeration value="deliverToAll"/>
        </xsd:restriction>
    </xsd:simpleType>

<!-- MONITOR DETAILS MODEL END ========================================================================-->


<!-- KPI MODEL START ==================================================================================-->

    <xsd:complexType name="KPIModelType" >
        <xsd:complexContent>
            <xsd:extension base="mon:KPIModelNamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="kpiContext" type="mon:KPIContextType"/>
                </xsd:choice>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>        


    <xsd:complexType name="KPIModelNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="KM"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="KPIContextType" >
        <xsd:complexContent>
            <xsd:extension base="mon:ContextType">
                <xsd:choice minOccurs="0" maxOccurs="unbounded">
                    <xsd:element name="kpi" type="mon:KPIType"/>
                </xsd:choice>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="KPIType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                    <xsd:choice minOccurs="1" maxOccurs="1">
                        <xsd:element name="aggregatedDefinition" type="mon:KPIAggregatedDefinitionType"/>
                        <xsd:element name="calculatedDefinition" type="mon:KPICalculatedDefinitionType"/>
                    </xsd:choice>					
                        <xsd:element name="target" type="mon:TargetValueType" minOccurs="0" maxOccurs="1" />					
                        <xsd:element name="range" type="mon:RangeType" minOccurs="0" maxOccurs="unbounded"/>
               </xsd:sequence>
                    <xsd:attribute name="type" type="xsd:QName" use="required"/>				
                    <xsd:attribute name="rangeType" type="mon:RangeTypeType" use="required"/>
                    <xsd:attribute name="enableKpiHistory" type="xsd:boolean" default="true"/>
                    <xsd:attribute name="currency" type="mon:KPICurrencyType" use="optional"/>
                    <xsd:attribute name="decimalPrecision" type="xsd:nonNegativeInteger" default="0"/>
                    <xsd:attribute name="showPercent" type="xsd:boolean" default="false"/>
                    <xsd:attribute name="hideFromDashboards" type="xsd:boolean" use="optional" default="false"/>
           </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="TargetValueType">
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
            	<xsd:attribute name="value" type="xsd:decimal" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


	 <xsd:complexType name="KPIAggregatedDefinitionType">
        <xsd:sequence>
        	 <xsd:element name="monitoringContext" type="mon:ReferenceType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="metric" type="mon:ReferenceType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="metricFilter" type="mon:KPIMetricFilterRefType" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="dateTimeMetricFilter" type="mon:KPIDateTimeMetricFilterRefType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="aggregationType" type="mon:AggregationType" use="required"/>
        <xsd:attribute name="versionAggregation" type="mon:VersionAggregationType" default="allVersions"/>
    </xsd:complexType>	
    
    <xsd:simpleType name="VersionAggregationType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="singleVersion"/>
            <xsd:enumeration value="allVersions"/>
        </xsd:restriction>
    </xsd:simpleType>
	
	 <xsd:complexType name="KPICalculatedDefinitionType">
        <xsd:sequence>
			<xsd:element name="kpiCalculation" type="mon:ExpressionSpecificationType" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>	
	
    <xsd:complexType name="KPIDateTimeMetricFilterRefType">
        <xsd:complexContent>
            <xsd:extension base="mon:ReferenceType">
                <xsd:choice minOccurs="1" maxOccurs="1">
                    <xsd:element name="repeatingPeriod" type="mon:DateTimeDimensionRepeatingPeriodType"/>
                    <xsd:element name="rollingPeriod" type="mon:DateTimeDimensionRollingPeriodType"/>
                    <xsd:element name="fixedPeriod" type="mon:DateTimeDimensionFixedPeriodType"/>
                </xsd:choice>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="DateTimeDimensionRepeatingPeriodType">
        <xsd:attribute name="periodType" type="mon:RepeatingPeriodTypeType" use="required"/>
        <xsd:attribute name="periodBasis" type="mon:PeriodBasisType" use="required"/>
		<xsd:attribute name="timezone" type="xsd:string" use="required"/>
    </xsd:complexType>    

	
    <xsd:complexType name="DateTimeDimensionRollingPeriodType">
	    <xsd:attribute name="numPeriods" type="xsd:positiveInteger" use="required"/>
		<xsd:attribute name="periodType" type="mon:RollingPeriodTypeType" use="required"/>
    </xsd:complexType>    

    <xsd:complexType name="DateTimeDimensionFixedPeriodType">
    	<!-- These datetime attributes must be timezoned -->
        <xsd:attribute name="startDate" type="xsd:dateTime" use="optional"/>
        <xsd:attribute name="endDate" type="xsd:dateTime" use="optional"/>
   	    <xsd:attribute name="timezone" type="xsd:string" use="required"/>        
    </xsd:complexType>    

    <xsd:simpleType name="RepeatingPeriodTypeType">
        <xsd:restriction base="xsd:string">
			<xsd:enumeration value="daily"/>
            <xsd:enumeration value="monthly"/>
			<xsd:enumeration value="quarterly"/>
            <xsd:enumeration value="yearly"/>
        </xsd:restriction>
    </xsd:simpleType>
	
    <xsd:simpleType name="RollingPeriodTypeType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="minutes"/>
			<xsd:enumeration value="hours"/>
			<xsd:enumeration value="days"/>
            <xsd:enumeration value="months"/>
            <xsd:enumeration value="years"/>
        </xsd:restriction>
    </xsd:simpleType>	

    <xsd:simpleType name="PeriodBasisType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="previousPeriod"/>
            <xsd:enumeration value="periodInProgress"/>
        </xsd:restriction>
    </xsd:simpleType>


    <xsd:complexType name="KPIMetricFilterRefType">
        <xsd:complexContent>
            <xsd:extension base="mon:ReferenceType">
				<xsd:sequence>
					<xsd:element name="value" type="mon:ExpressionSpecificationType" minOccurs="0" maxOccurs="unbounded"/>
				</xsd:sequence>				
				<xsd:attribute name="operator" type="mon:KPIMetricFilterOperatorType" use="required"/>
				<xsd:attribute name="isCaseSensitive" type="xsd:boolean" default="false"/>  				
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:simpleType name="KPIMetricFilterOperatorType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="equals"/>
            <xsd:enumeration value="lessThan"/>
            <xsd:enumeration value="lessThanOrEquals"/>
            <xsd:enumeration value="greaterThan"/>
            <xsd:enumeration value="greaterThanOrEquals"/>
            <xsd:enumeration value="notEquals"/>
            <xsd:enumeration value="in"/>
            <xsd:enumeration value="notIn"/>
            <xsd:enumeration value="isNull"/>
            <xsd:enumeration value="isNotNull"/>			
            <xsd:enumeration value="like"/>
            <xsd:enumeration value="isNotLike"/>					
        </xsd:restriction>
    </xsd:simpleType>	
			
    <xsd:simpleType name="KPICurrencyType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[A-Z]{3}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="KPIRangeColorType">
        <xsd:restriction base="xsd:string">
            <xsd:length value="6"/>
            <xsd:pattern value="[0-9a-fA-F]{6}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="RangeType">
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                    <xsd:element name="startValue" type="mon:StartValueNamedElementType" minOccurs="1" maxOccurs="1"/>
                    <xsd:element name="endValue" type="mon:EndValueNamedElementType" minOccurs="1" maxOccurs="1"/>
                </xsd:sequence>
                <xsd:attribute name="color" type="mon:KPIRangeColorType" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="StartNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="startValue"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="StartValueNamedElementType" >
        <xsd:complexContent>
            <xsd:extension base="mon:StartNamedElementType">
                <xsd:attribute name="value" type="xsd:decimal" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="EndNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="endValue"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="EndValueNamedElementType" >
        <xsd:complexContent>
            <xsd:extension base="mon:EndNamedElementType">
                <xsd:attribute name="value" type="xsd:decimal" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:simpleType name="RangeTypeType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="actualValue"/>
            <xsd:enumeration value="percentage"/>
        </xsd:restriction>
    </xsd:simpleType>
    

<!-- KPI MODEL END ==================================================================================-->


<!-- DIMENSIONAL MODEL START ================================================================================-->

    <xsd:complexType name="DimensionalModelType" >
        <xsd:complexContent>
            <xsd:extension base="mon:DimensionalModelNamedElementType">
                <xsd:sequence>
                    <xsd:element name="cube" type="mon:CubeType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="DimensionalModelNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="DMM"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="CubeType">
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                    <xsd:element name="measure" type="mon:MeasureType" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="dimension" type="mon:DimensionType" minOccurs="0" maxOccurs="unbounded" />
                    <xsd:element name="report" type="mon:ReportType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
                <xsd:attribute name="monitoringContext" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>	
	
    <xsd:complexType name="ReportType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:attribute name="measureId" type="xsd:string" use="required"/>
                <xsd:attribute name="dimensionId" type="xsd:string" use="required"/> 
                <xsd:attribute name="chartType" type="mon:ChartType" default="bar"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="MeasureType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
		<xsd:attribute name="source" type="xsd:string" use="required"/>
                <xsd:attribute name="aggregationType" type="mon:AggregationType" use="required"/>
                <xsd:attribute name="trackingKey" type="xsd:string" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    
    <xsd:complexType name="DimensionType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence>
                    <xsd:element name="attribute" type="mon:DimensionAttributeType" minOccurs="1" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>    

    <xsd:complexType name="DimensionAttributeType" >
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:attribute name="attributeSource" type="xsd:string" use="required"/>
                <xsd:attribute name="level" type="xsd:positiveInteger" use="required" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>    

    <xsd:simpleType name="ChartType">
	<xsd:restriction base="xsd:string">
	    <xsd:enumeration value="bar"/>
 	    <xsd:enumeration value="pie"/>
	    <xsd:enumeration value="line"/>
            <xsd:enumeration value="area"/>
	    <xsd:enumeration value="scatter"/>
	    <xsd:enumeration value="gauge"/>
	</xsd:restriction>
    </xsd:simpleType>


<!-- DIMENSIONAL MODEL END ================================================================================-->


<!-- VISUAL MODEL START ================================================================================-->

    <xsd:complexType name="VisualModelNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="VM"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="VisualModelType">
        <xsd:complexContent>
            <xsd:extension base="mon:VisualModelNamedElementType">
                <xsd:sequence>
		            <xsd:element name="visualization" type="mon:VisualizationType" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="VisualizationType">
        <xsd:sequence>
            <xsd:element name="shapeSets" type="mon:ShapeSetsType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="actions" type="mon:ActionsType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="svgDocument" type="mon:SvgDocumentType" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="context" type="xsd:string" use="required"/>
    </xsd:complexType>
    
    <xsd:complexType name="ShapeSetsType">
        <xsd:sequence>
            <xsd:element name="shapeSet" type="mon:ShapeSetType" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    
    <xsd:complexType name="ShapeSetType">
        <xsd:complexContent>
            <xsd:extension base="mon:NamedElementType">
                <xsd:sequence minOccurs="1" maxOccurs="1">
                    <xsd:element name="shapes" type="mon:ShapesListType"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:simpleType name="ShapesListType">
        <xsd:restriction base="xsd:NMTOKENS">
            <xsd:minLength value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:complexType name="ActionsType">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="setColor" type="mon:SetColorType"/>
            <xsd:element name="setText" type="mon:SetTextType"/>
            <xsd:element name="hideShapes" type="mon:HideShapesType"/>
            <xsd:element name="setDiagramLink" type="mon:SetDiagramLinkType"/>
            <xsd:element name="sendHumanTaskNotification" type="mon:SetSelectionType"/>
            <xsd:element name="sendNotification" type="mon:SetSelectionType"/>
        </xsd:choice>
    </xsd:complexType>
    
    <xsd:complexType name="ActionType">
        <!--  The value of 'condition' must be a valid XPath 1.0 expression -->
        <xsd:attribute name="condition" type="xsd:string" use="optional"/>
    </xsd:complexType>
    
    
    <xsd:complexType name="SvgDocumentType">
        <xsd:choice>
            <!--  Used to import the SVG document -->
            <xsd:element name="import" type="mon:ImportType" />
        </xsd:choice>
    </xsd:complexType>

    <xsd:complexType name="ShapeSetRefType">
        <xsd:attribute name="ref" type="xsd:string" use="required"/>
    </xsd:complexType>

    <xsd:complexType name="PositionType">
        <xsd:attribute name="x" type="xsd:integer" use="required"/>
        <xsd:attribute name="y" type="xsd:integer" use="required"/>
    </xsd:complexType>    

    
    <!--  set color action -->
    <xsd:complexType name="SetColorType">
        <xsd:complexContent>
            <xsd:extension base="mon:ActionType">
                <xsd:sequence>
                    <!-- String value must be the id of a shape set defined in the <shapeSets> element -->
                    <xsd:element name="shapeSet" type="mon:ShapeSetRefType" minOccurs="1" maxOccurs="unbounded"/>
                </xsd:sequence>
                <!--  See http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-color for description of color values -->
                <xsd:attribute name="outlineColor" type="xsd:string"/>
                <xsd:attribute name="fillColor" type="xsd:string"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <!--  set text action -->
    <xsd:complexType name="SetTextType">
        <xsd:complexContent>
            <xsd:extension base="mon:ActionType">
                <xsd:choice minOccurs="1" maxOccurs="1">
                    <xsd:element name="shapeSet" type="mon:ShapeSetRefType" />
                    <xsd:element name="textPosition" type="mon:PositionType" />
                </xsd:choice>
                <!-- textValue must be a valid XPath 1.0 expression -->
                <xsd:attribute name="textValue" type="xsd:string" use="required"/>
                <!--  See http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-color for description of color values -->
                <xsd:attribute name="textColor" type="xsd:string" use="optional"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <!--  hide shapes action -->
    <xsd:complexType name="HideShapesType">
        <xsd:complexContent>
            <xsd:extension base="mon:ActionType">
                <xsd:sequence>
                    <!-- String value must be the name of a shape set defined in the <shapeSets> element -->
                    <xsd:element name="shapeSet" type="mon:ShapeSetRefType" minOccurs="1" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <!--  set diagram link action -->
    <xsd:complexType name="SetDiagramLinkType">
        <xsd:complexContent>
            <xsd:extension base="mon:ActionType">
                <xsd:sequence>
                    <!-- String value must be the name of a shape set defined in the <shapeSets> element -->
                    <xsd:element name="shapeSet" type="mon:ShapeSetRefType" minOccurs="1" maxOccurs="unbounded"/>
                </xsd:sequence>
                <xsd:attribute name="targetContext" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="PropertyNameValueType">
        <xsd:attribute name="name" type="xsd:string" use="required"/>
        <xsd:attribute name="value" type="xsd:string" use="optional"/>
    </xsd:complexType>

      <!--  set selection action -->
    <xsd:complexType name="SetSelectionType">
        <xsd:complexContent>
            <xsd:extension base="mon:ActionType">
                <xsd:choice minOccurs="1" maxOccurs="unbounded">
                    <!-- String value must be the name of a shape set defined in the <shapeSets> element -->
                    <xsd:element name="shapeSet" type="mon:ShapeSetRefType" minOccurs="1" maxOccurs="unbounded"/>
                    <xsd:element name="selectionProperty" type="mon:PropertyNameValueType" minOccurs="1" maxOccurs="unbounded"/>
                </xsd:choice>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

<!-- VISUAL MODEL END ================================================================================-->


<!-- EVENT MODEL START ================================================================================-->

    <xsd:complexType name="EventModelType" >
        <xsd:complexContent>
            <xsd:extension base="mon:EventModelNamedElementType">
                <xsd:sequence>
                    <xsd:element name="import" type="mon:ImportType" minOccurs="0" maxOccurs="unbounded" />
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="EventModelNamedElementType" >
        <xsd:complexContent>
            <xsd:restriction base="mon:NamedElementType">
                <xsd:choice minOccurs="0" maxOccurs="1">
                    <xsd:element name="description" type="xsd:string"/>
                </xsd:choice>
                <!-- The 'id' attribute is required to be 'fixed' because it is needed for path references, but has no semantic meaning -->
                <xsd:attribute name="id" type="xsd:NCName" use="required" fixed="EM"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

<!-- EVENT MODEL END ================================================================================-->



     
</xsd:schema>

What are monitor models?