<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_IndicationFilter" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_IndicationFilter">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<xs:element name="SystemCreationClassName">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">A System's CreationClassName. The Filter is defined in the context of a CIM_System, where it is hosted or to which it applies. In a future release, a weak relationship will be explicitly added to the model. This is not done now to allow further refinement of the Filter definition and its inheritance tree. Keys are defined now to allow the class to be instantiated.</cim:Qualifier>
<cim:Qualifier name="MaxLen" type="cim:cimUnsignedInt">256</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimString">
<xs:maxLength value="256"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="SystemName">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">A System's Name. The Filter is defined in the context of a CIM_System, where it is hosted or to which it applies. In a future release, a weak relationship will be explicitly added to the model. This is not done now to allow further refinement of the Filter definition and its inheritance tree. Keys are defined now to allow the class to be instantiated.</cim:Qualifier>
<cim:Qualifier name="MaxLen" type="cim:cimUnsignedInt">256</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimString">
<xs:maxLength value="256"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="CreationClassName">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">Indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, it allows all instances of this class and its subclasses to be uniquely identified.</cim:Qualifier>
<cim:Qualifier name="MaxLen" type="cim:cimUnsignedInt">256</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimString">
<xs:maxLength value="256"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Name" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The name of the filter.</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="SourceNamespace" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Deprecated" type="cim:cimString">CIM_IndicationFilter.SourceNamespaces</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The path to a local namespace where the Indications originate. If NULL, the namespace of the Filter registration is assumed.</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="SourceNamespaces" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The names of the local namespaces where the Indications originate. If NULL, the namespace of the Filter registration is assumed. SourceNamespaces replaces the SourceNamespace property on IndicationFilter to provide a means of defining the multiple namespaces where indications may originate.</cim:Qualifier>
<cim:Qualifier name="ArrayType" type="cim:cimString">Indexed</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_Namespace.Name</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="IndividualSubscriptionSupported" nillable="true" type="cim:cimBoolean">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">If IndividualSubscriptionSupported is true, the implementation shall support direct subscription to this IndicationFilter. If IndividualSubscriptionSupported is false, the implementation shall not support direct subscription to this IndicationFilter.</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
<cim:Defaultvalue type="cim:cimBoolean">true</cim:Defaultvalue>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Query" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Required" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">A query expression that defines the condition(s) under which instances of CIM_Indication will be generated. For CIM_InstIndication subclasses of CIM_Indication classes, the query expression may also define the instance properties to be copied to the CIM_InstIndication's SourceInstance and PreviousInstance properties. Query language semantics include projection (e.g., Select), range (e.g., From) and predicate (e.g., Where). 
When used with QueryLanguage set to "DMTF:CQL" or "DMTF:CQLT", the FROM clause shall contain at least one subclass of CIM_Indication and may contain any number of other classes or subqueries. If only one subclass of CIM_Indication is named, it defines the CIM_Indication that this Instance of CIM_IndicationFilter will produce. If more than one subclass of CIM_Indication is named, then one of them must be named explicitly in the select-list. 
The select-list must refer explicitly or implicitly to exactly one CIM_Indication subclass. In addition, it shall conform to one of several options: 
1) only a "*": This may only be used if the Indication subclass is the only entry on the FROM list. 
2) only a "&lt;Indicationclass or alias&gt;.*": This form may be used if the FROM clause contains more than one Indication subclass. 
3) a list of the form "&lt;propertyname&gt;*[","[&lt;literal&gt; AS ]&lt;propertyname&gt;]": This form may only be used if the CIM_Indication subclass is the only entry on the FROM list. In this form, the literal is assigned to the named property of the selected CIM_Indication subclass 
4) a list of the form "&lt;Indicationname&gt;.&lt;propertyname&gt; *["," [&lt;Indicationname&gt;.&lt;propertyname&gt; |"": &lt;literal&gt; AS &lt;propertyname&gt; | &lt;fromname&gt;.&lt;propertyname&gt; AS &lt;propertyname&gt; ] ]" : The first term selects the appropriate CIM_Indication subclass to produce. Subsequent terms allow other properties of that indication, or allow a literal or property of another class to be assigned to the output as one of the properties of the selected CIM_Indication subclass. 
Note that in all cases, only the property names of the selected CIM_Indication subclass may be referred to in the select-list.
When used with "DMTF:CQLT", the additional string array property TemplateVariable should be used to provide additional filtering information to the query.</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.QueryLanguage</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.TemplateVariable</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="QueryLanguage" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Required" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The language in which the query is expressed. . 
"DMTF:CQL" indicates a CIM Query Language string. 
"DMTF:CQLT" indicates a CIM Query Language Template string. When used, the identifiers recognized in the $identifier$ tokens are "SELF" and the property names of this class, or one of its subclasses. As seen by a CIM client, the value of the Query property is not changed as a result of template processing. Template processing conceptually produces a new query string, which defines the actual conditions that will trigger production of a CIM_Indication instance. When used in the Query string, $SELF$ will be replaced by a string corresponding to a WBEM URI referencing the instance of this class that contains the Query template string. Tokens of the form $&lt;propertyname&gt;$ will be replaced by a string representing the corresponding property value of the instance of this class that contains the Query string. The Query string must be evaluated when the CIM_IndicationFilter is created and at any time when one any modification of any property referenced by tokens in the Query string are modified.</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.Query</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.TemplateVariable</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="TemplateVariable" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">This property may be used to hold application specific filtering information for use within a "DMTF:CQLT" formatted query.

For example, each TemplateVariable entry might be filled with the WBEM URI formatted object path of a CIM_ManagedElement, as in the following example, which selects only indications against namedCIM_StorageSynchonized instances. It then uses SELF to select the executing IndicationFilter, and then uses the entries of the TemplateVariable array to select particular instances of CIM_StorageSynchronized.

SELECT I.* 
FROM CIM_InstIndication I, CIM_IndicationFilter F 
WHERE I.SourceInstance ISA CIM_StorageSynchronized 
	AND ObjectPath(F) = ObjectPath($SELF$)
	AND ANY x IN F.TemplateVariable[*]
		SATISFIES (ObjectPath(I.SourceInstanceModelPath) = ObjectPath(x)).</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.QueryLanguage</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_IndicationFilter.Query</cim:Qualifier>
<cim:Classorigin name="CIM_IndicationFilter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="InstanceID" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">InstanceID is an optional property that may be used to opaquely and uniquely identify an instance of this class within the scope of the instantiating Namespace. Various subclasses of this class may override this property to make it required, or a key. Such subclasses may also modify the preferred algorithms for ensuring uniqueness that are defined below.
To ensure uniqueness within the NameSpace, the value of InstanceID should be constructed using the following "preferred" algorithm: 
&lt;OrgID&gt;:&lt;LocalID&gt; 
Where &lt;OrgID&gt; and &lt;LocalID&gt; are separated by a colon (:), and where &lt;OrgID&gt; must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the &lt;Schema Name&gt;_&lt;Class Name&gt; structure of Schema class names.) In addition, to ensure uniqueness, &lt;OrgID&gt; must not contain a colon (:). When using this algorithm, the first colon to appear in InstanceID must appear between &lt;OrgID&gt; and &lt;LocalID&gt;. 
&lt;LocalID&gt; is chosen by the business entity and should not be reused to identify different underlying (real-world) elements. If not null and the above "preferred" algorithm is not used, the defining entity must assure that the resulting InstanceID is not reused across any InstanceIDs produced by this or other providers for the NameSpace of this instance. 
If not set to null for DMTF-defined instances, the "preferred" algorithm must be used with the &lt;OrgID&gt; set to CIM.</cim:Qualifier>
<cim:Classorigin name="CIM_ManagedElement"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Caption" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The Caption property is a short textual description (one- line string) of the object.</cim:Qualifier>
<cim:Qualifier name="MaxLen" type="cim:cimUnsignedInt">64</cim:Qualifier>
<cim:Classorigin name="CIM_ManagedElement"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimString">
<xs:maxLength value="64"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Description" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The Description property provides a textual description of the object.</cim:Qualifier>
<cim:Classorigin name="CIM_ManagedElement"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="ElementName" nillable="true" type="cim:cimString">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">A user-friendly name for the object. This property allows each instance to define a user-friendly name in addition to its key properties, identity data, and description information. 
Note that the Name property of ManagedSystemElement is also defined as a user-friendly name. But, it is often subclassed to be a Key. It is not reasonable that the same property can convey both identity and a user-friendly name, without inconsistencies. Where Name exists and is not a Key (such as for instances of LogicalDevice), the same information can be present in both the Name and ElementName properties. Note that if there is an associated instance of CIM_EnabledLogicalElementCapabilities, restrictions on this properties may exist as defined in ElementNameMask and MaxElementNameLen properties defined in that class.</cim:Qualifier>
<cim:Classorigin name="CIM_ManagedElement"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Generation" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Generation is an optional, monotonically increasing property that may be used to identify a particular generation of the resource represented by this class.
If Generation is supported by the implementation, its value shall not be null. 
Except as otherwise specified, a value (including null) of Generation specified at creation time shall be replaced by null if Generation is not supported by the implementation or shall be a, (possibly different), non-null value if the implementation does support Generation.
After creation and if supported, Generation shall be updated, at least once per access, whenever the represented resource is modified, regardless of the source of the modification.
Note: the Generation value only needs to be updated once between references, even if the resource is updated many times. The key point is to assure that it will be different if there have been updates, not to count each update.
Note: unless otherwise specified, the value of Generation within one instance is not required to be coordinated with the value of Generation in any other instance.
Note:the semantics of the instance, (as defined by its creation class), define the underlying resource. That underlying resource may be a collection or aggregation of resources. And, in that case, the semantics of the instance further define when updates to constituent resources also require updates to the Generation of the collective resource. Default behavior of composite aggregations should be to update the Generation of the composite whenever the Generation of a component is updated.
Subclasses may define additional requirements for updates on some or all of related instances.
For a particular instance, the value of Generation may wrap through zero, but the elapsed time between wraps shall be greater than 10's of years.
This class does not require Generation to be unique across instances of other classes nor across instances of the same class that have different keys. Generation shall be different across power cycles, resets, or reboots if any of those actions results in an update. Generation may be different across power cycles, resets, or reboots if those actions do not result in an update. If the Generation property of an instance is non-null, and if any attempt to update the instance includes the Generation property, then if it doesn't match the current value, the update shall fail.
The usage of this property is intended to be further specified by applicable management profiles. 
Typically, a client will read the value of this property and then supply that value as input to an operation that modifies the instance in some means. This may be via an explicit parameter in an extrinsic method or via an embedded value in an extrinsic method or intrinsic operation.
For example: a profile may require that an intrinsic instance modification supply the Generation property and that it must match for the modification to succeed.</cim:Qualifier>
<cim:Classorigin name="CIM_ManagedElement"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="CIM_IndicationFilter" type="class:CIM_IndicationFilter_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_IndicationFilter" superclass="CIM_ManagedElement"/>
<cim:Qualifier name="Version" type="cim:cimString">2.31.1</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::Event</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">CIM_IndicationFilter defines the criteria for generating an instance of CIM_Indication and what data should be returned in that instance. It is derived from CIM_ManagedElement to allow modeling the dependency of the filter on a specific service.
If used with the "DMTF:CQLT" language, the processing and CQLT tokens that must be supported are described in the description of the QueryLanguage property</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_IndicationFilter_Type">
<xs:sequence>
<xs:element minOccurs="0" ref="class:Caption"/>
<xs:element ref="class:CreationClassName"/>
<xs:element minOccurs="0" ref="class:Description"/>
<xs:element minOccurs="0" ref="class:ElementName"/>
<xs:element minOccurs="0" ref="class:Generation"/>
<xs:element minOccurs="0" ref="class:IndividualSubscriptionSupported"/>
<xs:element minOccurs="0" ref="class:InstanceID"/>
<xs:element ref="class:Name"/>
<xs:element ref="class:Query"/>
<xs:element ref="class:QueryLanguage"/>
<xs:element minOccurs="0" ref="class:SourceNamespace"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:SourceNamespaces"/>
<xs:element ref="class:SystemCreationClassName"/>
<xs:element ref="class:SystemName"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="class:TemplateVariable"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
