<?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_UnitOfWork" 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_UnitOfWork">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<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="Override" type="cim:cimString">Description</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">Since UnitOfWork is designed to be an extremely lightweight object, it is recommended that this property not be used. The Description specified for the instance's associated CIM_UnitOfWorkDefintion should apply.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Id" type="cim:cimLong">
<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 identifier of the UnitOfWork, within the context of the UnitOfWorkDefinition.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UoWDefId">
<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 16 byte value that uniquely identifies the UnitOfWork Definition. The use of OSF UUID/GUIDs is recommended.</cim:Qualifier>
<cim:Qualifier name="MaxLen" type="cim:cimUnsignedInt">16</cim:Qualifier>
<cim:Qualifier name="Propagated" type="cim:cimString">CIM_UnitOfWorkDefinition.Id</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimString">
<xs:maxLength value="16"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="UserName" 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 name of the user who initiated the UnitOfWork. This may be a real user's login name or a logical name representing an application.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="StartTime" nillable="true" type="cim:cimDateTime">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The time that the UnitOfWork was started.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="ElapsedTime" nillable="true" type="cim:cimDateTime">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The elapsed time since the UnitOfWork was started. Upon completion of the UnitOfWork, this property contains the total amount of time taken in processing the entire UnitOfWork.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Status" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">An enumeration identifing the status of the UnitOfWork. Most of the property values are self-explanatory, but a few need additional text: 
3="Completed" - Should be used to represent a 'completed' transaction whose status ('good', 'failed' or 'aborted') is unknown. 
6="Completed Aborted" - Should be used when a UnitOfWork has completed but was not allowed to end normally. An example would be when the Stop or Back buttons are selected from a web browser, before a page is fully loaded.</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="1">Active</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Suspended</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">Completed</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="4">Completed Good</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="5">Completed Failed</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="6">Completed Aborted</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimUnsignedShort">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="TraceLevel" nillable="true" type="cim:cimUnsignedInt">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Indicates the granularity at which traces are written for this particular instance of UnitOfWork. Traces allow providing more detailed information on the course of the execution of the UnitOfWork than just the status and the elapsed time. The trace level does not indicate where the traces are found (i.e. in which file or CIM instances). TraceLevel cannot be set (i.e. written) since an instance of UnitOfWork only publishes information. So, the application code that executes the unit of work must receive the desired trace level by its caller (e.g. the parent module, the user or some remote system that initiates the unit of work). 
If its value is 0, no traces are available. If its value is &gt; 0, traces are available. Except 0, the possible values and their semantics are implementation dependent. Two instances of UnitOfWork (even with the same definition) may have different trace levels since the desired or required granularity of traces may be dependent on the execution context (detection of an error, analysis of an error, etc.) of the unit of work. 
The trace level can be encoded as a bit map (each individual bit indicates a certain trace type and/or level of detail) or numbers (that are further defined by a value map). No encoding scheme is imposed since no general rules or standards exist and in consequence, application developers could reuse their existing trace level scheme.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="MutualContextId" 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 string that uniquely identifies the mutual context of UnitOfWork instances. The context is defined as an individual action that several UnitOfWork instances participate in. The use of Ids such as OSF UUID/GUIDs is recommended, although some implementations may require longer Ids. (This is the reason why no maxlen(16) qualifier has been used.) 
MutualContextId explicitly identifies the context for instances of UnitOfWork, that is otherwise provided implicitly by SubUoW association instances. In addition, one can query directly (i.e. without following the associations) for UnitOfWork instances that participate in some individual action (i.e., the mutual context). If no mutual context is needed or if it is not supported by the implementation, the value is NULL. 
Note that the MutualContextId value is to be transferred internally between the participating UnitOfWork implementations such that each UnitOfWork instance implementation receives its value from its predecessor/parent or initially creates the value if it is the first instance of the context.</cim:Qualifier>
<cim:Classorigin name="CIM_UnitOfWork"/>
</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="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_UnitOfWork" type="class:CIM_UnitOfWork_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_UnitOfWork" superclass="CIM_ManagedElement"/>
<cim:Qualifier name="Version" type="cim:cimString">2.7.0</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::Metrics::UnitOfWork</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">Each instance of UnitOfWork identifies a transaction that is either in-process or already completed. Because instances of 'in-process' UnitsOfWork can be very short-lived and there can be a great number of active ones, use of this class as an instrumentation source for determining response time may be incorrect or inefficient, unless the rate and duration of the UnitsOfWork are known. The intended use is to respond to queries about currently active or recently completed UnitsOfWork. The length of time that a UnitOfWork instance exists after the UnitOfWork completes is not defined and should be assumed to be implementation-dependent. This class is weak to its definition (CIM_UnitOfWorkDefintion).</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_UnitOfWork_Type">
<xs:sequence>
<xs:element minOccurs="0" ref="class:Caption"/>
<xs:element minOccurs="0" ref="class:Description"/>
<xs:element minOccurs="0" ref="class:ElapsedTime"/>
<xs:element minOccurs="0" ref="class:ElementName"/>
<xs:element minOccurs="0" ref="class:Generation"/>
<xs:element ref="class:Id"/>
<xs:element minOccurs="0" ref="class:InstanceID"/>
<xs:element minOccurs="0" ref="class:MutualContextId"/>
<xs:element minOccurs="0" ref="class:StartTime"/>
<xs:element minOccurs="0" ref="class:Status"/>
<xs:element minOccurs="0" ref="class:TraceLevel"/>
<xs:element ref="class:UoWDefId"/>
<xs:element minOccurs="0" ref="class:UserName"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
