监控 XML 模式定义 (monitor.xsd)

Business Monitor 的监控模型采用 monitor.xsd 模式定义所定义的 XML 格式。

本页提供了完整的模式定义。 您也可以从 monitor.xsd 下载模式定义。

<xsd:schema 
        xmlns:mon="http://www.ibm.com/xmlns/prod/websphere/monitoring/8.5/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.5/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="dashboardOption" type="mon:DashboardOptionType" 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:attribute name="inTransaction" type="xsd:boolean" use="optional" default="true"/>
                <xsd:attribute name="queueBypass" type="xsd:boolean" use="optional" default="true"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    
    <xsd:complexType name="DashboardOptionType">
        <xsd:attribute name="enabled" type="xsd:boolean" use="optional" default="false"/>
        <xsd:attribute name="user" type="xsd:string" use="optional"/>
        <xsd:attribute name="name" type="xsd:string" use="optional"/>
    </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:attribute name="eventPointKey" 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>