<?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_ProtocolControllerForUnit" 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_ProtocolControllerForUnit">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<xs:element name="Antecedent" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Override" type="cim:cimString">Antecedent</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The ProtocolController.</cim:Qualifier>
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForUnit"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Dependent" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Override" type="cim:cimString">Dependent</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The logical unit (eg StorageVolume) 'behind' the ProtocolController.</cim:Qualifier>
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForUnit"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="DeviceAccess" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The access rights granted to the referenced logical unit as exposed through referenced ProtocolController. The 'No Access' value is used in implementations where the DeviceNumber is reserved, but no access is granted. 
If the instrumentation exposes PrivilegeManagementService, this property MUST be synchronized with the Activities property of any Privilege instances associated with StorageHardwareIDs associated to the referenced ProtocolController and the referenced LogicalDevice. In particular, when this property is 'Read Write', Privilege.Activities MUST include entries for 'Read' and 'Write'. When this property is 'Read-Only', Privilege.Activities MUST include an entry for 'Read'. The corresponding entries for Privilege.ActivityQualifiers MUST be 'CDB=*' and the corresponding entries for Privilege.QualifierFormat MUST be 'SCSI Command'.</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="0">Unknown</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Read Write</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">Read-Only</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="4">No Access</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="5..15999">DMTF Reserved</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="16000..">Vendor Reserved</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForUnit"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimAnySimpleType">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:enumeration value="0"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="5"/>
<xs:maxInclusive value="15999"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort">
<xs:minInclusive value="16000"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DeviceNumber" 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">Address of the associated Device in the context of the Antecedent Controller.</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForDevice"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="AccessPriority" nillable="true" type="cim:cimUnsignedShort">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">This property describes the priority given to accesses of the device through this Controller. The highest priority path will have the lowest value for this parameter.</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForDevice"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="AccessState" nillable="true">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The AccessState property describes the accessibility of the LogicalDevice through the ProtocolController. 
Unknown (0) indicates the instrumentation does not know whether access is or is not functioning. 
Active (2) indicates normal access. 
Inactive (3) indicates the instrumentation knows this path is not active, and one of the other values (below) does not apply. 
Replication in Progress (4) indicates that the path is temporarily inactive due to a replication activity. 
Mapping Inconsistency (5) indicates the instrumentation has detected that this path is inactive due to an inconsistency in the DeviceNumber/DeviceAccess configuration.</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="0">Unknown</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Active</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">Inactive</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="4">Replication In Progress</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="5">Mapping Inconsistency</cim:Qualifier>
<cim:Classorigin name="CIM_ProtocolControllerForDevice"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimUnsignedShort">
<xs:enumeration value="0"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="CIM_ProtocolControllerForUnit" type="class:CIM_ProtocolControllerForUnit_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_ProtocolControllerForUnit" superclass="CIM_ProtocolControllerForDevice"/>
<cim:Qualifier name="Association" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Version" type="cim:cimString">2.8.0</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::Device::ProtocolController</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">This association is used to define a relationship between a ProtocolController and an exposed Logical Unit (for example a Storage Volume or a MediaAccessDevice such as a tape drive). An example of the use of this association is SCSI, where it link the target controller and Logical Units. This subclass is provided so that an enumeration of related controllers and units can be performed without retrieving any connected ports or other controllers.</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_ProtocolControllerForUnit_Type">
<xs:sequence>
<xs:element minOccurs="0" ref="class:AccessPriority"/>
<xs:element minOccurs="0" ref="class:AccessState"/>
<xs:element ref="class:Antecedent"/>
<xs:element ref="class:Dependent"/>
<xs:element minOccurs="0" ref="class:DeviceAccess"/>
<xs:element minOccurs="0" ref="class:DeviceNumber"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
